uma introduÇÃo aos algoritmos geneticosluis/ga/ga-intro.pdf · o algoritmo procura uma solução...
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.