You are on page 1of 5

ALGORITMOS GENTICOS Prof. Me.

Stfano Schwenck Borges Vale Vita Exemplo de funcionamento de um Algoritmo Gentico (AG)
________________________________________________________________ Usando um AG, achar um ponto mximo para a funo abaixo. F(x) = 2x + 2 Restrio = 1 <= x <= 31 Obs.: neste exemplo sero calculadas somente duas geraes para tentar resolver o problema. RESOLUO: Indivduo = valor do x, ou seja, componente que pode resolver o problema. Sua codificao vai ser binria de 5 bits. Ex: indivduo x=0 Codificado = 00000 Tamanho da populao = 4 indivduos Funo objetivo = valor de F(x) = resposta para o problema Incio = Gerao 1 Populao inicial aleatria: Indivduos x 00101 5 01010 10 10100 20 11110 30

F(x) 12 22 42 62

Probabilidade (%) 8.7 15.9 30.4 44.9

Avaliao Total = 12 + 22 + 42 + 62 = 138 Seleo: taxa de 100% de crossover, ou seja, sero 4 indivduos selecionados aleatoriamente. Selecionados: Indivduos x F(x) 01010 10 22 11110 30 62 10100 20 42 11110 30 62

Crossover de um ponto (escolhe, atravs de um sorteio, o ponto de corte). Neste caso, foi escolhido o 3 bit e mutao de 25% dos filhos (escolhe um deles): Par 1 de pais Filhos gerados 01010 01110 11110 11010 Par 2 de pais Filhos gerados 10100 10110 Mutao no bit 5 = 10111 11110 11100 Nova populao de filhos gerados: Indivduos x F(x) 01110 14 30 11010 26 54 10111 23 48 11100 28 58 Fazendo a substituio baseada em elitismo (preserva-se o(s) melhor(es)). Populao inicial aleatria: Indivduos x F(x) 00101 5 12 01010 10 22 10100 20 42 11110 30 62 Nova populao de filhos gerados: Indivduos x F(x) 01110 14 30 11010 26 54 10111 23 48 11100 28 58 Populao total ordenada (faz a juno das duas populaes, a inicial da gerao corrente e a populao de filhos gerados). Indivduos x F(x) 11110 30 62 11100 28 58 11010 26 54 10111 23 48 10100 20 42

01110 01010 00101

14 10 5

30 22 12

Excluso dos piores, ou seja, somente continuaro na execuo do AG os primeiros indivduos. Esta quantidade igual a quantidade da populao inicial. Indivduos x F(x) 11110 30 62 melhor individuo desta gerao 11100 28 58 11010 26 54 10111 23 48 Fim da execuo da 1 gerao. **************************************************************** 2 Gerao Populao inicial da 2 gerao, ou seja, populao resultante da 1 gerao. Indivduos x F(x) Probabilidade (%) 11110 30 62 27,2 11100 28 58 26,1 11010 26 54 24,3 10111 23 48 21,6 Avaliao Total = 62 + 58 + 54 + 48 = 222 Seleo: taxa de 100% de crossover, ou seja, sero 4 indivduos selecionados aleatoriamente. Selecionados: Indivduos x F(x) 11110 30 62 11100 28 58 11100 28 58 11010 26 54 Crossover de um ponto (escolhe, atravs de um sorteio, o ponto de corte). Neste caso, foi escolhido o 4 bit e mutao de 25% dos filhos (escolhe 1 deles): Par 1 de pais Filhos gerados 11110 11100 11100 11110

Par 2 de pais 11100 11010

Filhos gerados 11110 Mutao no bit 5 = 11111 11000

Nova populao de filhos gerados: Indivduos x F(x) 11100 28 58 11110 30 62 11111 31 64 11000 24 50 Fazendo a substituio baseada em elitismo. Populao inicial aleatria: Indivduos x 11110 30 11100 28 11010 26 10111 23 Nova populao de filhos gerados: Indivduos x F(x) 11100 28 58 11110 30 62 11111 31 64 11000 24 50 Populao total ordenada (faz a juno das duas populaes, a inicial da gerao corrente e a populao de filhos gerados). Indivduos x 11111 31 11110 30 11110 30 11100 28 11100 28 11010 26 11000 24 10111 23

Excluso dos piores, ou seja, somente continuaro na execuo do AG os primeiros indivduos. Esta quantidade igual a quantidade da populao inicial. Indivduos x F(x) 11111 31 64 11110 30 62 11110 30 62 11100 28 58 Concluso: aps duas geraes do AG o ponto mximo encontrado foi 31, ou seja, o indivduo 11111 (31), no qual sua funo objetivo foi igual a 64 (maior valor). Neste caso, a resposta foi encontrada com duas geraes do AG.

You might also like