Você está na página 1de 20

IA707 Prof.

Von Zuben DCA/FEEC/Unicamp

Algoritmos Genticos (AGs)


1 2 3 4 INTRODUO ................................................................................................................................................................................................................... 2 ALGORITMO GENTICO CLSSICO ................................................................................................................................................................................... 3 ALGORITMO GENTICO MODIFICADO.............................................................................................................................................................................. 5 EXEMPLOS DE OPERAES (OPERADORES GENTICOS) ................................................................................................................................................... 7 4.1 4.2 4.3 4.4 4.5 4.6 4.7 5 6 7 8 9 10 CROSSOVER DE 1 OU N PONTOS ENTRE INDIVDUOS ALEATRIOS (ROULETTE WHEEL) ........................................................................................... 8 CROSSOVER DE 1 OU N PONTOS ENTRE INDIVDUO ALEATRIO (ROULETTE WHEEL) E MELHOR INDIVDUO............................................................ 8 CROSSOVER UNIFORME OU BASEADO EM MSCARA ENTRE INDIVDUOS ALEATRIOS (ROULETTE WHEEL)............................................................ 9 CROSSOVER UNIFORME OU BASEADO EM MSCARA ENTRE INDIVDUO ALEATRIO (ROULETTE WHEEL) E MELHOR INDIVDUO ............................ 9 MAIS SOBRE CROSSOVER....................................................................................................................................................................................... 10 MUTAO DE INDIVDUOS ALEATRIOS (ROULETTE WHEEL), OU DO MELHOR INDIVDUO ................................................................................... 12 MAIS SOBRE MUTAO ......................................................................................................................................................................................... 13

MECANISMOS DE SELEO ............................................................................................................................................................................................ 16 CODIFICAO ................................................................................................................................................................................................................ 19 ABORDAGENS BASEADAS EM POPULAO ..................................................................................................................................................................... 22 DEFINIO DA POPULAO INICIAL .............................................................................................................................................................................. 22 DECISES CRTICAS ....................................................................................................................................................................................................... 23 EXERCCIOS COMPUTACIONAIS ...................................................................................................................................................................................... 24 10.1 OTIMIZAO DE UMA FUNO SIMPLES ............................................................................................................................................................... 24 10.2 PROBLEMA DO DILEMA DO PRISIONEIRO............................................................................................................................................................... 26 10.3 PROBLEMA DO CAIXEIRO VIAJANTE (TRAVELING SALESMAN PROBLEM TSP) .................................................................................................. 27

11 12

TEORIA DOS ESQUEMAS (SCHEMATA THEORY) ................................................................................................................................................................ 30 11.1 DECEPTION PROBLEM ........................................................................................................................................................................................... 38 REFERNCIAS BIBLIOGRFICAS ............................................................................................................................... ...................................................... 39

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

1 Introduo
os algoritmos genticos (AGs) foram desenvolvidos por HOLLAND (1975; 1992), da Universidade de Michigan. metas:
Y Y

abstrair e rigorosamente explicar os processos adaptativos em sistemas naturais desenvolver simulaes em computador que retenham os mecanismos originais encontrados em sistemas naturais

caractersticas principais:
Y Y Y

existncia de 2 espaos de trabalho: espao genotpico e espao fenotpico AGs fazem busca sobre uma populao de pontos e no sobre um nico ponto AGs fazem uso de descries genricas do que se quer ver presente na soluo, atravs de funes de fitness (funes-objetivo)

AGs utilizam regras de transio probabilsticas, e no regras determinsticas 2

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

2 Algoritmo Gentico Clssico


Y Y Y Y

codificao binria reproduo e seleo natural via algoritmo Roulette Wheel crossover simples (crossover de um ponto) mutao

Roullete Wheel : probabilidade de seleo de um cromossomo diretamente proporcional a seu valor de fitness. Exemplo: N 1 2 3 4 Cromossomo 0001100101010 0101001010101 1011110100101 1010010101001 Fitness 6.0 3.0 1.5 1.5 Graus 180 90 45 45
0.25

1 0 0.5 1 4 3 2

0.75

implementao: gerador de nmeros pseudo-aleatrios com distribuio uniforme


Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

IA707 Prof. Von Zuben DCA/FEEC/Unicamp


001010010111010 110011010010010 011001010100001 110011010010010 010100100100100 101000101001001 010010100101001 001001000101000 101101010101001 001010010111010 101011111010101 001010100010100 GERAO ATUAL 010100100100100 011001010100001 010010100101001 001001000101000 Seleo de pares via Roulette Wheel 011001010100001 001010010111010 101011111010101 001010100010100 Determinao dos pontos de Crossover 00101 0010111010 11001 1010010010 0101001001 00100 0110010101 00001 010 001 010100101001 001000101000 0100001 0111010

01100101 00101001 10 00

1011111010101 1010100010100

Crossover

001011010010010 110000010111010 010100100100001 011001010101100 010001000101000 001010100101001 011001010111010 001110010100001 101010100010100 001011111010001 PRXIMA GERAO

Mutao

001011010010010 110010010111010 010100100100001 011001010100100 010001000101000 001010100101001 011001010111010 001010010100001 101010100010100 001011111010101

00101 1010010010 11001 0010111010 0101001001 00001 0110010101 00100 010 001 001000101000 010100101001 0111010 0100001

01100101 00101001 10 00

1010100010100 1011111010101

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

problemas com o algoritmo clssico:


Y Y

poltica de reproduo/seleo permite a perda do melhor indivduo posio dos genes no cromossomo influi na probabilidade de permanecerem no mesmo cromossomo aps crossover

dificuldades na codificao binria de nmeros reais

algumas estratgias de soluo:


Y Y Y

mecanismos alternativos de seleo crossover uniforme codificao em arranjos de nmeros reais

3 Algoritmo Gentico Modificado


Y

gerao de sub-populaes por meio da aplicao de operadores genticos e outros operadores sobre membros da gerao atual

Y Y

avaliao (clculo do fitness) e ordenao da populao intermediria seleo para nova gerao 5

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

MELHOR INDIVDUO

AVALIAO E ORDENAO

OPERAES

SELEO

GERAO ATUAL (fitness j determinado)

PRXIMA GERAO

SUB-POPULAES

POPULAO INTERMEDIRIA

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

4 Exemplos de Operaes (operadores genticos)


Y crossover de 1 ou n pontos entre indivduos aleatrios (Roulette Wheel), ou ento

entre indivduo aleatrio (Roulette Wheel) e melhor indivduo. Neste caso, os segmentos definem as caractersticas.
Y crossover uniforme (SYSWERDA, 1989) ou baseado em mscara entre indivduos

aleatrios (Roulette Wheel), ou ento entre indivduo aleatrio (Roulette Wheel) e melhor indivduo. Neste caso, os genes definem as caractersticas.
Y mutao de indivduos aleatrios (Roulette Wheel), ou do melhor indivduo, da

gerao atual: mutao aleatria mutao indutiva (somente para codificao usando nmeros reais)

Y outros operadores projetados para realizao de buscas locais guiadas (heursticas

dependentes da natureza do problema) algoritmos memticos


Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

4.1 Crossover de 1 ou n pontos entre indivduos aleatrios (Roulette Wheel)

Y so escolhidos dois indivduos da gerao atual, aleatoriamente ou por meio do

Roulette Wheel, determina-se o(s) ponto(s) de corte e efetua-se o crossover


Y parmetros: ponto de corte, mtodo de seleo dos indivduos
4.2 Crossover de 1 ou n pontos entre indivduo aleatrio (Roulette Wheel) e melhor indivduo

Y escolhido um indivduo da gerao atual, aleatoriamente ou por meio do

Roulette Wheel, seleciona-se o melhor indivduo da gerao atual, determina-se o(s) ponto(s) de corte e efetua-se o crossover
Y parmetros: ponto de corte, mtodo de seleo de um dos indivduos

Exemplo de crossover de 1 ponto


Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

4.3 Crossover uniforme ou baseado em mscara entre indivduos aleatrios (Roulette Wheel)

Y so escolhidos dois indivduos da gerao atual, aleatoriamente ou por meio do

Roulette Wheel, determina-se a percentagem de troca e escolhe-se os genes que vo ser trocados ou ento aplica-se a mscara, efetuando o crossover somente dos genes envolvidos
Y parmetros: percentagem de genes a serem trocados ou ento mscara, mtodo de

seleo dos indivduos


4.4 Crossover Uniforme ou baseado em mscara entre indivduo aleatrio (Roulette Wheel) e melhor indivduo

Y anlogo aos casos anteriores.

Exemplo de crossover uniforme, com taxa de 50%


Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

4.5 Mais sobre crossover

ESHELMAN et al. (1989) relata diversos experimentos com vrios operadores de crossover. Os resultados indicam que o operador com pior desempenho mdio o crossover de um ponto; entretanto, no h nenhum operador de crossover que claramente apresente um desempenho superior aos demais. uma concluso a que se pode chegar que cada operador de crossover particularmente eficiente para uma determinada classe de problemas e extremamente ineficiente para outras. os operadores de crossover descritos at aqui tambm podem ser utilizados em cromossomos com codificao em ponto flutuante (valores reais). Entretanto, existem operadores de crossover especialmente desenvolvidos para uso com codificao em ponto flutuante. Um exemplo o chamado crossover aritmtico (MICHALEWICZ, 1996).
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

10

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

este operador definido como uma combinao linear de dois vetores (cromossomos): sejam x1 e x2 dois indivduos selecionados para crossover, ento os dois filhos resultantes sero x1 = ax1 + (1 a )x 2 e x = (1 a )x1 + ax 2 , onde a 2 um nmero aleatrio pertencente ao intervalo [0, 1]. Este operador particularmente apropriado para problemas de otimizao numrica com restries, onde a regio factvel convexa. Isto porque, se x1 e x2 pertencem regio factvel, combinaes convexas de x1 e x2 sero tambm factveis. Assim, garante-se que o crossover no gera indivduos invlidos para o problema em questo. outros exemplos de crossover especialmente desenvolvidos para utilizao em problemas de otimizao numrica restritos e codificao em ponto flutuante so o crossover geomtrico e o crossover esfrico, descritos em MICHALEWICZ & SCHOENAUER (1996). Veja tambm BCK et al. (2000b).

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

11

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

4.6 Mutao de indivduos aleatrios (Roulette Wheel), ou do melhor indivduo

mutao aleatria
Y escolhido um indivduo da gerao atual, aleatoriamente ou por meio do

Roulette Wheel, ou ento tomado o melhor indivduo da populao (aquele que apresenta o maior fitness), determina-se a percentagem de genes que vo ser trocados e procede-se a um sorteio de genes na quantidade determinada, ou ento emprega-se uma mscara, e para cada gene sorteado define-se aleatoriamente um dentre os alelos disponveis para troca.
Y parmetros: percentagem de genes a serem trocados ou ento mscara, conjunto

de alelos, mtodo de seleo de indivduos. mutao indutiva (somente para codificao usando nmeros reais)
Y Semelhante mutao aleatria, s que ao invs de sortear um novo valor para

o gene, sorteia-se um valor a ser somado ao valor corrente do gene

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

12

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

4.7 Mais sobre mutao

no caso de problemas com codificao em ponto flutuante, o operador de mutao mais popular a mutao gaussiana (MICHALEWICZ & SCHOENAUER, 1996), que modifica todos os componentes de um cromossomo x = [x1 xn] na forma: x = x + N (0, ), onde N(0, ) um vetor de variveis aleatrias gaussianas independentes, com mdia zero e desvio padro . um outro operador importante para problemas em que os indivduos empregam codificao em ponto flutuante a mutao uniforme (MICHALEWICZ ,1996). Este operador seleciona aleatoriamente um componente k {1, 2, , n} do cromossomo x = [x1 xk xn] e gera um indivduo x = [x1  x k  x n ], onde xk um nmero aleatrio (com distribuio de probabilidade uniforme) amostrado no intervalo [LB, UB] e LB e UB so, respectivamente, os limites inferior e superior da varivel xk.
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

13

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

outro operador de mutao, especialmente desenvolvido para problemas de otimizao com restrio e codificao em ponto flutuante, a chamada mutao no-uniforme (MICHALEWICZ, 1996; MICHALEWICZ & SCHOENAUER, 1996). A mutao no-uniforme um operador dinmico, destinado a melhorar a sintonia fina de uma elemento simples. Podemos defini-lo da seguinte forma: seja xt = [x1 xn] um cromossomo e suponha que o elemento xk foi selecionado para mutao; o cromossomo resultante ser x t +1 = [x1  x k  x n ], onde x k + (t ,UB x k ), com 50% de probabilidade xk = x k (t , x k LB ), com 50% de probabilidade onde LB e UB so os limites inferiores e superiores da varivel xk. A funo (t, y) retorna um valor no intervalo [0, y] tal que a probabilidade de (t, y) ser prximo de zero aumenta medida que t aumenta.

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

14

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

esta propriedade faz com que este operador inicialmente explore o espao globalmente (quando t pequeno) e localmente em geraes avanadas (quando t grande); MICHALEWICZ (1996) prope a seguinte funo: (t , y ) = y 1 r (1t / T )

onde r um nmero aleatrio no intervalo [0, 1], T o nmero mximo de geraes e b um parmetro que determina o grau de dependncia do nmero de iteraes (valor proposto por MICHALEWICZ (1996): b = 5). outros exemplos de operadores de mutao para problemas de otimizao numrica e com codificao em ponto flutuante podem ser encontrados em MICHALEWICZ & SCHOENAUER (1996) e em BCK et al. (2000b).

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

15

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

5 Mecanismos de Seleo
o algoritmo gentico clssico utiliza um esquema de seleo de indivduos para a prxima gerao chamado roulette wheel (MICHALEWICZ, 1996). o roulette wheel atribui a cada indivduo de uma populao uma probabilidade de passar para a prxima gerao proporcional ao seu fitness medido, em relao somatria do fitness de todos os indivduos da populao. assim, quanto maior o fitness de um indivduo, maior a probabilidade dele passar para a prxima gerao. observe que a seleo de indivduos por roulette wheel pode fazer com que o melhor indivduo da populao seja perdido, ou seja, no passe para a prxima gerao. uma alternativa escolher como soluo o melhor indivduo encontrado em todas as geraes do algoritmo.

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

16

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

outra opo simplesmente manter sempre o melhor indivduo (ou os P% melhores indivduos) da gerao atual na gerao seguinte, estratgia essa conhecida como seleo elitista (FOGEL, 1994; MICHALEWICZ, 1996). outro exemplo de mecanismo de seleo a seleo baseada em rank (BCK et al., 2000a). Esta estratgia utiliza as posies dos indivduos quando ordenados de acordo com o fitness para determinar a probabilidade de seleo. podem ser usados mapeamentos lineares ou no-lineares para determinar a probabilidade de seleo. Para um exemplo de mapeamento no-linear, veja (MICHALEWICZ, 1996). Uma variao deste mecanismo simplesmente passar os N melhores indivduos para a prxima gerao. a seguir, citamos alguns outros possveis mecanismos de seleo: seleo por diversidade: so selecionados os indivduos mais diversos da populao. Aqui podem ser adotados critrios adicionais relacionados ao fitness.

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

17

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

seleo bi-classista: so selecionados os P% melhores indivduos e os (100 P)% piores indivduos. seleo aleatria: so selecionados aleatoriamente N indivduos da populao. Podemos subdividir este mecanismo de seleo em:
Y Salvacionista: seleciona-se o melhor indivduo e os outros aleatoriamente. Y No-salvacionista: seleciona-se aleatoriamente todos os indivduos.

seleo por torneio: um dos mais refinados processos de seleo, por permitir ajustar a presso seletiva. A seleo feita em funo do nmero de vitrias de cada indivduo em q competies contra oponentes aleatrios da populao, sendo que vence uma competio aquele que apresentar o maior fitness (comparado ao de seu oponente). Para propsitos prticos, q 10 conduz a uma forte presso seletiva, enquanto valores de q entre 3 e 5 levam a uma fraca presso seletiva. Para q = 1, temos essencialmente random walk e para q temos simplesmente a seleo por ordem de fitness, sem nenhuma aleatoriedade.
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

18

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

6 Codificao
cada indivduo de uma populao representa um candidato em potencial soluo do problema em questo. No algoritmo gentico clssico, proposto por HOLLAND (1975; 1992), as solues candidatas so codificadas em arranjos binrios de tamanho fixo. a motivao para o uso de codificao binria vem da teoria dos esquemas (schemata theory), que ser apresentada mais adiante. HOLLAND (1975; 1992) argumenta que seria benfico para o desempenho do algoritmo maximizar o paralelismo implcito inerente ao algoritmo gentico, e prova que um alfabeto binrio maximiza o paralelismo implcito. entretanto, em diversas aplicaes prticas a utilizao de codificao binria leva a um desempenho insatisfatrio. Em problemas de otimizao numrica com parmetros reais, algoritmos genticos com representao em ponto flutuante freqentemente apresentam desempenho superior codificao binria.
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

19

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

MICHALEWICZ (1996)

argumenta

que

representao

binria

apresenta

desempenho pobre quando aplicada a problemas numricos com alta dimensionalidade e onde alta preciso requerida. Suponha por exemplo, que temos um problema com 100 variveis com domnio no intervalo [500, 500] e que precisamos de 6 dgitos de preciso aps a casa decimal. Neste caso precisaramos de um cromossomo de comprimento 3000, e teramos um espao de busca de dimenso aproximadamente 101000. Neste tipo de problema o algoritmo gentico clssico apresenta desempenho pobre. MICHALEWICZ (1996) apresenta tambm simulaes computacionais comparando o desempenho de algoritmos genticos com codificao binria e com ponto flutuante, aplicados a um problema de controle. Os resultados apresentados mostram uma clara superioridade da codificao em ponto flutuante. a argumentao de MICHALEWICZ (1996) de que o desempenho de um algoritmo gentico com codificao binria pobre quando o espao de busca de dimenso
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

20

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

elevada, no universalmente aceita na literatura referente a algoritmos genticos. FOGEL (1994) argumenta que o espao de busca por si s (sem levar em conta a escolha da representao) no determina a eficincia do algoritmo gentico. espaos de busca de dimenso elevada podem s vezes ser explorados eficientemente, enquanto que espaos de busca de dimenso reduzida podem apresentar dificuldades significativas. FOGEL (1994), entretanto, concorda que a maximizao do paralelismo implcito nem sempre produz um desempenho timo. fica claro, portanto, que a codificao uma das etapas mais crticas na definio de um algoritmo gentico. A definio inadequada da codificao pode levar a superfcies de fitness extremamente acidentadas. em problemas de otimizao restrita, a codificao adotada pode fazer com que indivduos modificados por crossover/mutao sejam invlidos. nestes casos, cuidados especiais devem ser tomados na definio da codificao e/ou dos operadores (BCK et al., 2000b).
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

21

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

7 Abordagens baseadas em populao


Abordagem Michigan a populao como um todo a soluo para o problema Abordagem Pittsburgh cada elemento da populao corresponde a uma soluo do problema

8 Definio da Populao Inicial


o mtodo mais comum utilizado na criao da populao a inicializao aleatria dos indivduos. Se algum conhecimento inicial a respeito do problema estiver disponvel, pode ser utilizado na inicializao da populao. por exemplo, se sabido que a soluo final (assumindo codificao binria) vai apresentar mais 0s do que 1s, ento esta informao pode ser utilizada, mesmo que no se saiba exatamente a proporo. em problemas com restrio, deve-se tomar cuidado para no gerar indivduos invlidos j na etapa de inicializao.
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

22

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

9 Decises crticas
tipo de codificao: binria ou real? representar toda ou parte da soluo? s crossover, s mutao, ou ambos? populaes de tamanho fixo ou varivel ? cromossomos de tamanho fixo ou varivel? cromossomos haplides ou diplides? qual critrio de parada? usar controle de diversidade? usar busca local? usar niching? usar co-evoluo? abordagem Michigan ou Pittsburgh? algoritmos genticos ou programao gentica?
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

23

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

10 Exerccios computacionais
10.1 Otimizao de uma Funo Simples

f(x) = x * sen(10 * x) + 1, no intervalo x [1,2]


3 2.5 2 1.5 1 0.5 0 -0.5 -1 -1

-0.5

0.5

1.5

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

24

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

Solues: xi = 2i 1 + i , para i = 1,2,... 20 2i + 1 i , para i = 1, 2, ... 20 2 ( 1) 222 1

x0 = 0 xi =

Codificao: binria (22 bits) 6 casas decimais v = b21 b20  b0 Exemplo: x = bi 2i


i =0 21

x = 1 + x

v = 1000101110110101000111 x = 0,637197, pois x =2288967 e x = 1 + 2288967 3 = 0,637197 4194303

v = 0000000000000000000000 x = 1 v = 1111111111111111111111 x = 2
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

25

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

Funo de Avaliao: eval(v) = f(x) Operadores Genticos: Crossover simples, mutao simples Populao Inicial - Aleatria com 50 indivduos Parmetros: probabilidade de crossover pc = 0,25 e probabilidade de mutao pm = 0,01 EC3 - Implementar o algoritmo gentico padro para este caso e test-lo para at 150 geraes. EC4 - Implementar o algoritmo gentico modificado para o mesmo caso, e comparar o desempenho. Arbitrar os parmetros do algoritmo gentico modificado.
10.2 Problema do Dilema do Prisioneiro

EC5 Implementar o algoritmo gentico modificado para o problema do dilema do prisioneiro, testando (a) contra uma populao fixa; (b) contra os prprios indivduos da mesma gerao, incluindo o prprio.
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

26

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

10.3 Problema do Caixeiro Viajante (Traveling Salesman Problem TSP)

2 3 8

11 12

10

4 9 15 5

13 14

2 3 8

11 12

10

4 9 15 5

13 14

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

27

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

Codificao - arranjo de nmeros inteiros: 1,3,4,5,6,8,9,15,14,13,12,11,10,7,2 Funo de fitness - soma dos custos de movimentao entre cada par de cidades. Operadores Crossover OX: 1 2 3 4 5 6 7 8 9 10 11 12

11 4

12 5

10 9

11 12 4

10 9

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

28

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

Mutao Inversiva 1 2 3 4 5 6 7 8 9 10 11 12

10 11 12

Variao de Mutao Inversiva 1 1 2 2 3 3 4 5 5 4 6 6 7 7 8 8 9 9 10 11 12 10 11 12

3 3

4 4

5 5

6 6

7 7

8 8

9 9

10 11 12 10 11 1

12 2

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

29

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

EC6 Implementar o algoritmo gentico modificado para o problema do caixeiro viajante. A posio das cidades ser indicada por meio de um arquivo contendo linhas do seguinte tipo: N nmero de cidades no arquivo (x,y) coordenadas da cidade no mapa O custo de deslocamento entre duas cidades dado pela distncia entre as duas cidades. Os operadores e mecanismos de seleo a serem utilizados podem ser quaisquer.

11 Teoria dos Esquemas (schemata theory)


A teoria dos esquemas foi proposta por HOLLAND (1975; 1992) para tentar explicar por que os algoritmos genticos funcionam.

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

30

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

nesta seo, apresentaremos os principais resultados da teoria dos esquemas: o teorema de crescimento dos esquemas e a hiptese dos blocos construtivos. um esquema uma representao capaz de descrever diversos cromossomos simultaneamente. Um esquema construdo inserindo um caractere dont care () no alfabeto dos genes, indicando que aquele gene representa qualquer alelo. por exemplo, o esquema [1 0 1 0 0 1] representa os cromossomos [1 0 0 1 0 0 1] e [1 1 0 1 0 0 1]. O esquema [1 0 1 1 0] representa quatro cromossomos: [1 0 0 0 1 1 0], [1 0 0 1 1 1 0], [1 1 0 0 1 1 0] e [1 1 0 1 1 1 0]. obviamente, o esquema [1 1 1 0 0 1 0] representa apenas um cromossomo, enquanto que o esquema [ ] representa todos os cromossomos de comprimento 7. observe que cada esquema representa 2r cromossomos, onde r o nmero de caracteres dont care presentes no esquema. Por outro lado, cada cromossomo de comprimento m representado por 2m esquemas.
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

31

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

por exemplo, considere o cromossomo [0 1 0 0 1 0 0]. Este cromossomo representado pelos seguintes 27 esquemas: [0 1 0 0 1 0 0] [* 1 0 0 1 0 0] [0 * 0 0 1 0 0]  [0 1 0 0 1 0 *] [* * 0 0 1 0 0] [* 1 * 0 1 0 0]  [0 1 0 0 1 * *] [* * * 0 1 0 0]  [* * * * * * *]
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

32

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

considerando cromossomos de comprimento m, h um total de 3m possveis esquemas. Numa populao de tamanho n, entre 2m e n 2n diferentes esquemas podem ser representados. a ordem de um esquema S, o(S), definida como o nmero de 0s e 1s presentes no esquema, isto , o nmero de posies fixas (caracteres diferentes de dont care) presentes no esquema. A ordem de um esquema define sua especificidade, de modo que quanto maior a ordem, mais especfico o esquema. o comprimento definitrio de um esquema S, denotado por (S), a maior distncia entre posies fixas de um cromossomo. O comprimento definitrio define o nvel de compactao da informao contida no esquema. o fitness de um esquema S na gerao t, eval(S, t), definido como a mdia dos fitness de todos os cromossomos na populao representados pelo esquema S. Assuma que h p cromossomos gerao t. Ento:
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

{x

t t i1 ,, x i p

} representados pelo esquema S

na

33

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

eval( S i , t ) =

1 p eval x it j p j =1

( )

onde eval x it j o fitness do indivduo x it j . seja tam_pop o tamanho da populao. O fitness mdio da populao na gerao t, F (t ), dado por F (t ) =
tam _ pop 1 eval x it tam _ pop i =1

( )

( ).

sejam pc e pm as probabilidades de crossover e mutao, respectivamente, e m o comprimento dos cromossomos. Seja (Si, t) o nmero de cromossomos representados pelo esquema Si na gerao t. Pode-se mostrar que

(MICHALEWICZ, 1996): (S i , t + 1) (S i , t )eval(S i , t ) (S i ) o(S i ) p m 1 pc F (t ) m 1 34

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

a equao acima conhecida como equao de crescimento reprodutivo do esquema. Esta equao deduzida supondo que a funo de fitness f() produz apenas valores positivos. Se a funo a ser otimizada produz valores negativos, um mapeamento entre as funes de otimizao e de fitness necessrio. esta equao de crescimento mostra que a seleo aumenta a amostragem de esquemas cujo fitness est acima da mdia da populao, e este aumento exponencial (MICHALEWICZ, 1996). a seleo, por si s, no introduz nenhum novo esquema (no representado na gerao inicial em t = 0). Esta a razo da introduo do operador de crossover: possibilitar a troca de informao estruturada, ainda que aleatria. Alm disso, o operador de mutao introduz uma variabilidade maior na populao. o efeito (destrutivo) combinado destes operadores no significativo se o esquema curto e de ordem baixa. O resultado final da equao de crescimento pode ser formulado como segue:
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

35

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

Teorema dos Esquemas: Esquemas com comprimento definitrio curto, de ordem baixa, e com fitness acima da mdia, tm um aumento exponencial de sua participao em geraes consecutivas de um algoritmo gentico. Prova: Veja HOLLAND (1975; 1992). uma conseqncia imediata deste teorema que os algoritmos genticos tendem a explorar o espao por meio de esquemas curtos e de baixa ordem que, subseqentemente, so usados para troca de informao durante o crossover. Hiptese dos Blocos Construtivos: Um algoritmo gentico busca desempenho quase-timo atravs da justaposio de esquemas curtos, de baixa ordem e alto desempenho, chamados de blocos construtivos. em uma populao de tamanho tam_pop, indivduos de comprimento m processam pelo menos 2m e no mximo 2tam_pop esquemas. Alguns deles so processados de forma til: so amostrados a uma taxa crescente exponencial (desejvel); e outros so quebrados por meio de crossover e mutao.
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

36

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

HOLLAND (1975; 1992) mostrou que, em uma populao de tamanho tam_pop, pelo menos tam_pop3 so processados de forma til. Esta propriedade foi denominada paralelismo implcito, pois obtida sem nenhuma exigncia extra de memria e processamento. Entretanto, BERTONI & DORIGO (1993) mostraram que a estimativa tam_pop3 vlida apenas para o caso particular em que tam_pop proporcional a 2l, onde l = 1 m e a probabilidade de um esquema ser rompido 2 por crossover. note entretanto que, em alguns problemas, alguns blocos construtivos (esquemas curtos, de ordem baixa) podem direcionar erroneamente o algoritmo, levando-o a convergir a pontos sub-timos. Este fenmeno conhecido como decepo. Assim, a hiptese dos blocos construtivos no fornece uma explicao definitiva do porqu os algoritmos genticos funcionam. Ela apenas uma indicao do porqu os algoritmos genticos funcionam para uma certa classe de problemas.

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

37

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

11.1 Deception Problem

alguns blocos construtivos podem direcionar erroneamante o GA, levando a uma convergncia a pontos sub-timos: 1 1 1 * * * * * * * * fitness acima da mdia * * * * * * * * * 1 1 fitness acima da mdia 1 1 1 * * * * * * 1 1 fitness muito menor que 0 0 0 * * * * * * 0 0 soluo tima 1 1 1 1 1 1 1 1 1 1 1 tendncia a convergir para pontos como 0 0 0 1 1 1 1 1 1 0 0 algumas alternativas foram propostas para combater o problema da decepo (GOLDBERG, 1989; MICHALEWICZ, 1996). A primeira assume que h algum conhecimento a priori da funo-objetivo para que seja possvel codific-la de forma apropriada (que forme blocos construtivos coesos).

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

38

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

a segunda a utilizao de um operador de inverso: selecionam-se 2 pontos em um cromossomo e inverte-se a ordem dos bits entre os pontos selecionados (alterando-se a codificao em conjunto com a operao). a terceira opo utilizar algoritmos genticos messy, que diferem do algoritmo gentico clssico de vrias maneiras: codificao, operadores, presena de cromossomos de tamanho distinto e fases evolutivas.

12 Referncias bibliogrficas
BCK, T., FOGEL, D.B. & MICHALEWICZ, Z. (eds.) Evolutionary Computation 1: Basic Algorithms and Operators, Institute of Physics Publishing, 2000a. BCK, T., FOGEL, D.B. & MICHALEWICZ, Z. (eds.) Evolutionary Computation 2: Advanced Algorithms and Operators, Institute of Physics Publishing, 2000b. BERTONI, A. & DORIGO, M. Implicit Parallelism in Genetic Algorithms, Artificial Intelligence, 61(2): 307314, 1993.

Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

39

IA707 Prof. Von Zuben DCA/FEEC/Unicamp

ESHELMAN, L. J., CARUANA, R. A. & SCHAFFER, J. D. Biases in the Crossover Landscape, in Schaffer, J. (ed.), Proceedings of the Third International Conference on Genetic Algorithms, Morgan Kaufmann Publishers, 10-19, 1989. FOGEL, D. B. An Introduction to Simulated Evolutionary Computation, IEEE Transactions on Neural Networks, 5(1): 3-14, 1994. GOLDBERG, D. E. Messy Genetic Algorithms: Motivation, Analysis, and First Results, Complex Systems, 3: 493-530, 1989. HOLLAND, J.H. Adaptation in Natural and Artificial Systems, University of Michigan Press, 1975. HOLLAND, J.H. Adaptation in Natural and Artificial Systems, 2nd edition, The MIT Press, 1992. IYODA, E.M. Inteligncia Computacional no Projeto Automtico de Redes Neurais Hbridas e Redes Neurofuzzy Heterogneas, Tese de Mestrado, Faculdade de Engenharia Eltrica e de Computao (Unicamp), 2000. MICHALEWICZ, Z. Genetic Algorithms + Data Structures = Evolution Programs, 3rd edition, Springer, 1996. MICHALEWICZ, Z. & SCHOENAUER, M. Evolutionary Algorithms for Constrained Parameter Optimization Problems, Evolutionary Computation, 4(1): 1-32, 1996. SYSWERDA, G. Uniform Crossover in Genetic Algorithms, in Schaffer, J.D. (ed.), Proceedings of the Third International Conference on Genetic Algorithms, Morgan Kaufmann Publishers, pp. 2-9, 1989.
Tpico 6 Algoritmos Gentico (AGs) Adaptado de notas de aula produzidas pelo Prof. Ricardo Gudwin (DCA/FEEC/Unicamp) e de IYODA (2000)

40

Você também pode gostar