ALGORITMOS GENÉTICOS
INTRODUÇÃO São métodos adaptativos que podem ser usados para resolver problemas de busca e otimização. Na natureza a combinação de boas características provenientes de diferentes indivíduos ancestrais pode produzir descendentes superindivíduos, cuja adaptação é muito maior que a de seus ancestrais. Os algoritmos genéticos usam uma analogia direta com o comportamento natural.
INTRODUÇÃO A cada indivíduo se associa um grau de aptidão, que determina a sua capacidade de competir com os demais membros da população. Basicamente os algoritmos genéticos tratam problemas de otimização como um processo iterativo de busca da melhor solução dentro do espaço de possíveis respostas para o problema.
ALGORITMO GENÉTICO SIMPLES I nício Gerar população i nicial Calcular a f unção de aval iação de cada i ndivíduo Enquanto não t erminar f aça Calcular a f unção de avaliação para os i ndivíduos novos I ncluir os descendentes na nova geração I nício Fim Para ( t amanho da população / 2 ) f aça I nício Selecionar dois i ndivíduos Real izar o c ruzamento f im f im Se população convergiu então Terminou - > verdade Apl icar mutação nos descendentes
COMO FUNCIONA Inicia com um conjunto aleatório de soluções iniciais, que constituem a população inicial. Combinando os melhores representantes dessa população, obtém uma nova, que passa a substituir a anterior, caracterizando-se como a próxima geração. O mecanismo é repetido. A cada nova iteração a população é refinada gerando novas e melhores soluções para o problema em questão, culminando com a sua convergência.
ALGORITMO GENÉTICO SIMPLES Os indivíduos componentes da população (possíveis soluções do problema) podem ser representados como um conjunto de parâmetros (denominados genes). A adaptação de um indivíduo ao problema depende de seu genótipo. A função de adaptação deve ser projetada para cada problema.
ALGORITMO GENÉTICO SIMPLES A função de avalição ou função fitness associa as características do indivíduo a um número. No caso de binário indicam a presença ou não de uma determinada característica.
OPERAÇÕES BÁSICAS CrossOver (cruzamento): é uma operação binário que a partir de dois indivíduos produz outros dois novos indivíduos utilizando uma recombinação dos cromossomos. 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0
OPERAÇÕES BÁSICAS Mutação: é uma operação unário que altera um gene de um indivíduo da população. 1 1 0 1 1 0 0 1 1 0 0 1 0 0 1 Ponto de cruzamento Novo indivíduo
1 Aplique algoritmo genético para encontrar uma boa solução para otimizar a função. F(x) = -x 2 + 3x + 5
1º passo: Definir a população inicial. como a solução ótima é menor do que 5, vamos representar no formato binário números maiores que zero e menores do que 5, portanto números de 3 bits. Universo [o,7] I 1 I 2 1 1 1 0 0 0 * I 1 e I 2 podem ser escolhidos aleatoriamente, ou não, na população.
2º passo: Escolher a função de avaliação. Neste caso utilizaremos a função que será otimizada, pois quanto maior o valor desta função, mais próximo do máximo locar ela estará.
3º passo: Avalição dos indivíduos I 1 1 1 1 = 7 -> f(7) = -49+21+5 = -23 I 2 0 0 0 =0 -> f(0) = -0 + 0 + 5 = 5
4º passo: Cruzamento seleção do ponto do cruzamento neste caso escolheu-se o ponto 1 I 3 I 1 1 1 1 -> 0 1 1 = 3 -> f(3) = -9+9+5 = 5 I 2 0 0 0 -> 1 0 0 = 4 -> f(4) = -16+12+5 = 1 I 4
5º passo: aplicar a mutação em um indivíduo I 5 I 3 0 1 1 -> 0 1 0 = 2 -> f(2) = -4+6+5 = 7 Ponto de mutação
Rank Rank I 1 I 2 I 3 I 4 I 5-23 5 5 1 7 Rank I 5 I 2 I 3 I 4 I 1 7 5 5 1-23 Como a população não está estável, replicaremos o algoritmo
4º passo: Cruzamento como a população possui 4 elementos, faremos 2 cruzamentos. I 6 I 5 0 1 0 -> 0 1 0 = 2 -> f(2) = -4+6+5 = 7 I 2 0 0 0 -> 0 0 0 = 0 -> f(0) = -0+0+5 = 5 I 7
4º passo: Cruzamento como a população possui 4 ou mais elementos, faremos 2 cruzamentos. I 8 I 5 0 1 0 -> 0 1 1 = 3 -> f(3) = -9+9+5 = 5 I 3 0 1 1 -> 0 1 0 = 2 -> f(2) = -4+6+5 = 7 I 9
5º passo: Mutação, o I 8 foi escolhido aleatoriamente I 10 I 8 0 1 1 -> 0 0 1 = 1 -> f(1) = -1+3+5 = 7 Ponto de mutação
Rank após duas gerações Rank I 1 I 2 I 3 I 4 I 5 I 6 I 7 I 8 I 9 I 10-23 5 5 1 7 7 5 5 7 7 Rank I 5 I 6 I 9 I 10 I 2 I 3 I 7 I 8 I 4 I 1 7 7 7 7 5 5 5 5 1-23 Entre os quatro melhores, a população se estabilizou em avaliação 7.
Rank após duas gerações Rank I 5 I 6 I 9 I 10 I 2 I 3 I 7 I 8 I 4 I 1 7 7 7 7 5 5 5 5 1-23 I 0 1 0 5 = 2 -> f(2) = -4+6+5 = 7 I 10 0 0 1 = 1 -> f(1) = -1+3+5 = 7 Assim, o ponto ótimo está entre I 5 = 2 e I 10 = 1 [1,2]