uma introduÇÃo aos algoritmos geneticosluis/ga/ga-intro.pdf · o algoritmo procura uma solução...

21
Computação Evolutiva e Engenharia do Conhecimento (EGC6011) Como estou lecionando? Ligue 0xx48-331-7121 UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS

Upload: dangkhue

Post on 02-Feb-2019

212 views

Category:

Documents


0 download

TRANSCRIPT

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

UMA INTRODUÇÃO AOS ALGORITMOS GENETICOS

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Uma visão geral dos GAs

Um algoritmo genético é uma classe de algoritmo de busca. O algoritmo procura uma solução dentro de um espaço para um problema de otimização.

A principal característica dos GAs é como esta busca pela solução ótima é feita: O algoritmo cria uma “população” de possíveis soluções para o problema e a deixa “evoluir” por várias gerações para encontrar melhores e melhores soluções.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Uma visão geral dos GAs

1. Cria uma população aleatória de candidatos a solução (pop).

2. Em quanto as condições de terminação não são satisfeitas: (cada iteração e geração):

(a) Cria uma nova população vazia (new-pop).

(b) Em quanto new-pop não estiver completa:

i. Selecione dois indivíduos aleatoriamente de pop ( dando preferência na seleção aos indivíduos mais fit) .

ii. Cross-over os dois indivíduos para obter dois novos indivíduos.

(c) Dá a cada membro de new-pop a chance de mutate.

(d) Substitui pop com new-pop.

3. Seleciona o individuo da população com a melhor fitness como a solução do problema.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Uma visão geral dos GAs

Inicializar a população

nova geraçãoIniciar

Calcular adequaçãodos cromosomos

ninhadaGerar a

Selecionar paisusando adecualçao

Mutar aninhada

tamanho da pop.Restaurar o

Solução

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

População

A população é a coleção de candidatos a soluções que se estão considerando durante o uso do algoritmo. Pelas gerações do algoritmo, novos membros “nascem” na população em quanto outros “morrem” (saem da população).

Uma simple solução na população é referenciada como um individuo. A adaptação (fitness) de um individuo é uma medida quam “boa” a solução representada pelo individuo é. Quanto melhor a solução, maior será a sua adaptação. É claro que isto depende do problema a ser resolvido.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Seleção

O processo de seleção é análogo à sobrevivência dos mais adaptados no mundo natural. Indivíduos são selecionados para “procriação” (cross-over) baseados no valor da sua adaptação (fitness) –quanto mais adaptado o individuo, maior será a chance deste individuo seja escolhido para reprodução. O cross-over ocorre pela mistura de duas soluções (indivíduos) para crias dois novos indivíduos.Durante cada geração, existe uma pequena chance de que um individuo sofra uma mutação, que vai a mudar o individuo levemente.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Questões

• Como um indivíduo é representado?

• Como a adaptação de um indivíduo é calculada?

• Como os indivíduos são selecionados para pro-criação?

• Como os indivíduos são “crossed-over”?

• Como os indivíduos são mutados?

• Qual o tamanho da população?

• Quais são as condições de terminar o processo?

A resposta as questões dependem do problema especifico.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Tamanho da População

O tamanho da população é muito variável. Quanto maior seja a população, temos maior quantidade de soluções possíveis, que significa maior variação da população.

Variações significa que é mais provável que melhores soluções sejam criadas.

Então, a população deve ser a maior possível. O limite é o tempo que vai a demorar o algoritmo em ser executado.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Terminação do Algoritmo

O significado de “Em quanto as condições de terminação não são satisfeitas” não é obvio no caso dos GAs. O motivo é que não existe fim para o algoritmo.

• A abordagem mais simples é rodar o algoritmo de busca por um determinado número de gerações –mais gerações geralmente é melhor.

• Outra abordagem é terminar o algoritmo se depois de passadas algumas gerações não se obtém uma melhora na adaptação do melhor individuo da população.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Exemplo: Maximização de funções

Uma aplicação comum dos GAs é obter valores para um grupo de variáveis que maximizem/minimizem funções destas vadeáveis. Estas variáveis pelas sua vez podem estar sujeitas as restrições:

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Exemplo: Maximização de funções

Como um indivíduo é representado?Temos que ter valores para w, x, y e z. Se temos valores (qualquer valor) para as variáveis, temos um candidato a solução do problema.

O problema é como representar estas 4 valores. Uma forma muito simples é usar um vetor de 4 valores ( inteiros ou reais).

Sem embargo, para GAs é geralmente melhor ter grandes indivíduos–de esta forma, as variações podem ser feitas de uma forma mais suave.

Podemos escolher uma cadeia de bits para cada variável, e concatenar as 4 cadeias formando uma única cadeia de bits

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Como é calculado a adaptação

Existe uma diferencia entre as funções de adaptação (fitness) e avaliação (evaluation) .

As funções de avaliação retorna uma medida absoluta do individuo.

As funções de adaptação mede o valor do individuo relativo ao resto da população.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Como são selecionados os Pais?

A chave do processo de seleção é que deve ser probabilisticamente tal de que indivíduos com maior adaptação (fitness) tenham maior probabilidade de serem escolhidos.

Uma possibilidade é ordenar os elementos segundo a ordem decrescente da função de adaptação. Depois calcular a probabilidade de de seleção dos indivíduos em função desta ordem: O primeiro individuo tem por exemplo 70% de chances de ser escolhido, o segundo 40 etc.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Como os indivíduos são cruzados?

Uma vez que encolhemos um par de indivíduos, eles são “procriados” – ou em linguagem de GAs eles são crossed-over. Tipicamente dois filhos são criados para cada conjunto de pais. Um método de realizar o cross-over é o seguinte:

Duas locações são escolhidas aleatoriamente dentro dos indivíduos. Estas definem os correspondentes substrings em cada individuo. Os substrings são intercambiados entre os dois indivíduos pais e formam os dos novos filhos.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Como os indivíduos mutados?

Finalmente, temos que permitir que os indivíduos mutem. Quando os indivíduos são codificados usando cadeias de bits, a forma mais fácil de implementar a mutação é permitir que cada um dos bits da cadeia tenham a chance de mutar. Esta chance deve ser muito pequena já que não queremos que os indivíduos cambiem radicalmente devido a mutações. (ver problemas com o MSB). Colocando uma porcentagem de 0,1% é razoável..

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Problema do Caixeiro viajante

GAs podem ser usados para resolver o problema do Caixeiro viajante (traveling salesman problem (TSP)).

Um caixeiro tem que atender várias cidades incluindo a sua. Tem que viajar partindo da sua, visitando todas as outras cidades (uma única vez) e retornar a sua. Ele quer realizar a viajem gastando a menor quantidade possível de dinheiro/gasolina etc.

Uma proposta mais formal: dado um grafo de N-vertices, encontrar o caminho de menor custo, partindo de uma cidade v that visitando as outras cidades exatamente uma vez e retornado a v.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Representação dos indivíduos e Fitness

Nosso primeiro passo é decidir como representar cada individuo candidato a solução, ou tour.

O modelo de cadeia de bits não é muito útil. Os cross-overs e mutações podem facilmente produzir um tour que é inválido– Cada cidade dever ser visitada uma vez no tour(fora a cidade inicial).

A forma prática de de representar os indivíduos é um vetor de cidades (armazenadas como números inteiros) . O custo de viajar entre cidades deve ser dado na forma de matriz. O uso de um vetor de inteiros produz problemas no cross-over e nas mutações

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Cross-over e Mutação

Cross-over e mutações devem produzir tours válidos. Então estes processos devem ser modificados em relação ao caso de procurar extremos de funções. Mais a idéia básica pode continuar a mesma,.

A mecânica deve ser diferente: Para cross-over, ao in vez de simplesmente trocar sub-cadeias (que pode resultar em um tour inválido), manteremos as mesmas cidades, mais mudaremos a sua ordem, para ajustar o outro pai de cross-over.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Resumo

GAs são muito úteis. Especialmente quando os problemas não podem ser resolvidos por métodos tradicionais.

São interessantes, porque não obvio que eles funcionem, mais funcionam.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Bibliografia

•Scott M. Thede - Introduction to geneticalgorithms•J.H. Holland - Adaptation in Natural andArtificial Systems, MIT Press, 1975.•Stuart Russell and Peter Norvig - Artificial Intelligence: A Modern Approach, Second Edition, Prentice Hall, 2003.

Computação Evolutiva e Engenharia do Conhecimento (EGC6011)

Como estou lecionando?Ligue 0xx48-331-7121

Engenheiros