130 likes | 230 Views
Computação Evolutiva. Inteligência Artificial. Computação Evolutiva. Técnica de IC baseada na teoria da evolução das espécies de Darwin (1859) Trabalho de Darwin com o foco na seleção natural Trabalhos recentes uniram estes fatores a herança genética
E N D
Computação Evolutiva Inteligência Artificial
Computação Evolutiva • Técnica de IC baseada na teoria da evolução das espécies de Darwin (1859) • Trabalho de Darwin com o foco na seleção natural • Trabalhos recentes uniram estes fatores a herança genética • Genética Populacional: a variabilidade entre indivíduos em uma população de organismos que se reproduzem sexualmente é produzida pela mutação e pela recombinação genética
Computação Evolutiva • Composta principalmente de: • Algoritmos Genéticos • Estratégias de Evolução • Programação Genética • Algoritmos Genéticos são mais aplicados na engenharia
Algoritmos Genéticos • Adequados para solução de problemas de busca e otimização. Tais problemas possuem: • Espaço de soluções: todas as possibilidades de solução de um determinado problema • Função de avaliação: método para avaliar o quanto uma destas possibilidades se aproxima da solução • Para um mesmo problema diversas representações de soluções e de funções de avaliação podem ser criados
Algoritmos Genéticos • O processo de busca é iterativo, e cada iteração é chamado de geração • Cada possível solução é denominada indivíduo • Em cada geração são aplicados os princípios de seleção natural e reprodução • As chances de um indivíduo ser selecionado depende da sua aptidão, resultante do cálculo da função de avaliação
Algoritmos Genéticos T = 0 gerar população inicial P(0) avaliar P(0) enquanto critério de parada não for atingido t++ selecionar população P(t) a partir de P(t-1) aplicar operadores de cruzamento sobre P(t) aplicar operadores de mutação sobre P(t) avaliar p(t) fim enquanto
Algoritmos Genéticos - Representação • Como representar uma solução (indivíduo ou cromossomo)? • Alguma estrutura de dados (vetor, matriz, estrutura) em que as características do problema estão codificadas • Tipicamente utiliza valores binários, mas isso não é obrigatório • Exemplo para o problema das 8 rainhas: matriz de 8x8, com 0 (sem rainha) ou 1 (com rainha)
Algoritmos Genéticos – Função de Avaliação • Primeiro deve ser criada a função de avaliação: uma função que recebe o cromossomo e retorna como resultado um valor (a aptidão) • Dependendo do problema, pode ser necessário maximizar ou minimizar a função de avaliação • No caso de maximizar, os indivíduos mais aptos terão valores de aptidão maiores • No caso oposto, normalmente o indivíduo com aptidão zero é a solução desejada
Algoritmos Genéticos – Seleção • Procuram favorecer indivíduos com mais aptos • Método da roleta: cada candidato possui uma fatia da “roleta” proporcional a sua aptidão • Método do torneio: n indivíduos são selecionados aleatoriamente com probabilidade igual. O indivíduo de maior aptidão entre estes é o escolhido. • Amostragem Universal Estocástica: similar a roleta porem esta possui vários apontadores e é girada uma vez só
Algoritmos Genéticos – Operadores • São usados para gerar uma população nova que, de alguma maneira, mantenha as características dos antepassados que melhoram a aptidão • Mutação: altera aleatoriamente uma o cromossomo, garantindo a diversidade genética da população • Cruzamento: os cromossomos dos pais são combinados, gerando filhos
Algoritmos Genéticos – Parâmetros • Tamanho da população: muito pequena, o algoritmo pode não encontrar a solução, muito grande, exigirá muito em termos de recursos computacionais • Taxa de cruzamento: muito alta, estruturas com boas aptidões podem ser retiradas prematuramente, muito baixas, a população pode estagnar • Taxa de mutação: muito baixa, a busca pode estagnar, muito alta, a busca se torna totalmente aleatória
Algoritmos Genéticos – Parâmetros • Intervalo de geração: qual a parcela de indivíduos que serão descartados de geração em geração. Muito alta, pode-se perder indivíduos com boa aptidão, muito baixa, o algoritmo pode tornar-se lento • Critério de parada: quando o algoritmo deve parar. Pode ser o número de gerações, a aptidão do melhor indivíduo, ou quando as aptidões dos melhores não mudarem de geração para geração
Referências • Sistemas Inteligentes, capítulo 9