Você está na página 1de 13

IA707 Profs.

Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

Algoritmos Genticos (AGs)


Sumrio
1 INTRODUO ............................................................................................................................. 2 2 ALGORITMO GENTICO CLSSICO............................................................................................ 3 2.1 REPRESENTAO (ESTRUTURA DE DADOS) ........................................................................ 3 2.2 MECANISMO DE SELEO ................................................................................................... 4 2.3 OPERADOR DE RECOMBINAO (CROSSOVER SIMPLES) .................................................... 5 2.4 OPERADOR DE MUTAO .................................................................................................... 7 3 ALGORITMO GENTICO MODIFICADO ...................................................................................... 9 4 EXERCCIOS COMPUTACIONAIS ............................................................................................... 11 5 TEORIA DOS ESQUEMAS (SCHEMATA THEORY) ........................................................................ 17 5.1 DECEPTION PROBLEM ........................................................................................................ 24 6 REFERNCIAS .......................................................................................................................... 25

Tpico 9 Algoritmos Genticos (AGs)

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

1 Introduo
Os algoritmos genticos (AGs) foram desenvolvidos por HOLLAND (1975; 1992), da Universidade de Michigan. Metas: o abstrair e rigorosamente explicar os processos adaptativos em sistemas naturais o desenvolver simulaes em computador que retenham os mecanismos originais encontrados em sistemas naturais Caractersticas principais: o existncia de 2 espaos de trabalho: espao genotpico e espao fenotpico o AGs fazem busca sobre uma populao de pontos e no sobre um nico ponto o AGs fazem uso de descries genricas do que se quer ver presente na soluo, atravs de funes de fitness (funes-objetivo) o AGs utilizam regras de transio probabilsticas, e no regras determinsticas

Tpico 9 Algoritmos Genticos (AGs)

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

2 Algoritmo Gentico Clssico


o populao de tamanho fixo e estrutura de dados do tipo cadeias binrias o seleo natural proporcional ao fitness via algoritmo Roulette Wheel o crossover simples (crossover de um ponto) o mutao pontual 2.1 Representao (Estrutura de Dados) Cadeias binrias de comprimento fixo.
Cromossomo em um GA clssico 1 0 0 0 1 1 0 0 1 0 Gene Locus Alelos: {0,1}

Figura 1: Cadeia binria de comprimento l = 10 correspondente estrutura de dados de um GA clssico.

Tpico 9 Algoritmos Genticos (AGs)

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

O problema a ser resolvido capturado em uma funo objetivo que indica o fitness (adaptabilidade) de cada candidato a soluo. 2.2 Mecanismo de Seleo A seleo no GA clssico proporcional ao fitness e geralmente implementada utilizando um algoritmo denominado de Roulette Wheel. Exemplo: N 1 2 3 4 Cromossomo 0001100101010 0101001010101 1011110100101 1010010101001 Fitness Graus 6.0 180 3.0 90 1.5 45 1.5 45
0.25

1 0 0.5 1 4 3 2

0.75

Implementao: gerador de nmeros pseudo-aleatrios com distribuio uniforme. Note que este procedimento permite a perda (morte) do melhor indivduo e tambm permite que um indivduo seja selecionado mais do que uma vez.

Tpico 9 Algoritmos Genticos (AGs)

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

As probabilidades de reproduo de cada indivduo iro resultar na gerao de uma nova populao composta por indivduos probabilisticamente selecionados a partir da populao atual. Os indivduos selecionados iro gerar probabilisticamente filhos (descendentes) atravs de operadores genticos especficos, particularmente, crossover e mutao. 2.3 Operador de Recombinao (Crossover Simples) Nos sistemas biolgicos o crossover pode ocorrer durante a reproduo sexuada permitindo a troca de material gentico entre dois indivduos. Este processo pode ser abstrado como um operador geral para as estruturas de dados do tipo cadeia binria utilizada no GA clssico (HOLLAND, 1975): o Duas cadeias x = x1x2xl e y = y1y2yl de comprimento l so selecionadas com probabilidade de crossover pc. o Um nmero r {1,2,,l1} indicando o ponto de cruzamento (crossover) selecionado.
Tpico 9 Algoritmos Genticos (AGs)

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

o Duas novas cadeias so formadas a partir de x e y atravs da troca de um conjunto de atributos direita da posio r, resultando em x = x1xiyi+1yl e y = y1yixi+1xl. Os dois novos cromosomos gerados x e y so os filhos (offspring) de x e y.
Ponto de crossover, (r = 5) 1 0 0 0 0 0 1 1 Cromossomo pai 1 0 Cromossomo pai 2

Crossover de

ponto nico

Cromossomo filho 1 Cromossomo filho 2

Figura 2: Crossover de um nico ponto para cadeias de comprimento l = 8.


Tpico 9 Algoritmos Genticos (AGs)

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

2.4 Operador de Mutao Em gentica a mutao pontual um processo no qual um alelo de um gene aleatoriamente substitudo (ou modificado) por outro, resultando em um novo cromossomo. Geralmente existe uma baixa probabilidade de mutar cada gene de um cromossomo. Isso significa que cada bit na populao P operado da seguinte forma: o Os nmeros r,,u indicando as posies que iro sofrer mutao so determinadas aleatoriamente de forma que cada posio possui uma pequena probabilidade pm de sofrer mutao independente das outras posies. o Uma nova cadeia x = x1xrxuxl gerada onde xrxu so determinadas aleatoriamente partindo do conjunto de alelos para cada gene. No caso de cadeias binrias, se uma posio possui alelo 0, ento ela se torna 1 e viceversa.
Tpico 9 Algoritmos Genticos (AGs)

IA707 Profs. Leandro de Castro/Fernando 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 11001 0010111010 1010010010

0101001001 00100 0110010101 00001 010 010100101001 001 001000101000 01100101 00101001 10 00 0100001 0111010

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 11001

1010010010 0010111010

0101001001 00001 0110010101 00100 010 001000101000 001 010100101001 01100101 00101001 10 00 0111010 0100001

1010100010100 1011111010101

Tpico 9 Algoritmos Genticos (AGs)

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

Problemas com o algoritmo clssico: o poltica de reproduo/seleo permite a perda do melhor indivduo o posio dos genes no cromossomo influi na probabilidade de permanecerem no mesmo cromossomo aps crossover o dificuldades na codificao binria de nmeros reais Algumas estratgias de soluo: o mecanismos alternativos de seleo o crossover uniforme o codificao em arranjos de nmeros reais

3 Algoritmo Gentico Modificado


o gerao de sub-populaes por meio da aplicao de operadores genticos e outros operadores sobre membros da gerao atual o avaliao (clculo do fitness) e ordenao da populao intermediria o seleo para nova gerao

Tpico 9 Algoritmos Genticos (AGs)

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

MELHOR INDIVDUO

AVALIAO E ORDENAO

OPERAES

SELEO

GERAO ATUAL (fitness j determinado)

PRXIMA GERAO

SUB-POPULAES

POPULAO INTERMEDIRIA

Tpico 9 Algoritmos Genticos (AGs)

10

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

4 Exerccios computacionais
EXERCCIO COMPUTACIONAL 3 (EC3): Dada a funo de uma nica varivel

g ( x) = 2 2(( x0.1) / 0.9 ) sen (5x) 6 , apresentada na Figura 1, tente determinar seu timo
2

global utilizando o algoritmo gentico padro. A varivel x est definida no intervalo [0,1], x [0,1]. (Exerccio 2, Seo 8.2, pg. 37, do Tutorial 1.) Escolha como representao para a varivel x uma cadeia binria m (m = ml,..., m2, m1) de comprimento l = 22, correspondente a uma preciso de seis casas decimais. O mapeamento de uma cadeia binria para um nmero real pode ser feito em dois passos: o Converta a cadeia binria m = ml,..., m2, m1 da base 2 para a base 10:
(ml ,..., m2 , m1 )2 = (li=10 mi .2i )10 = x'

Tpico 9 Algoritmos Genticos (AGs)

11

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

o Encontre o correspondente valor real () para x: x = x min + x'. xmin = 0 e xmax = 1, x [xmin, xmax] (domnio da varivel).
1

x max x min 2 l 1 , onde

0.8

0.6

0.4

0.2

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Figura 3: Funo g ( x ) = 2

2 (( x 0.1) / 0.9 ) 2

sin (5x) 6 a ser maximizada.

Tpico 9 Algoritmos Genticos (AGs)

12

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

Funo de Avaliao: eval(v) = f(x) Operadores Genticos: Crossover simples, mutao pontual Populao Inicial - Aleatria com 50 indivduos Parmetros: probabilidade de crossover pc = 0,5 e probabilidade de mutao pm = 0,01 EXERCCIO COMPUTACIONAL 4 (EC4): Resolver o Exerccio 3 da Seo 8.4 (pg. 37) do Tutorial 1. O problema do caixeiro viajante (travelling salesman problem TSP) de natureza combinatorial e aparece em diversas aplicaes, do projeto de circuitos integrados entrega de fast food. Em sua forma mais simples, o caixeiro deve visitar cada cidade em um dado territrio somente uma vez, e depois retornar a cidade de origem. Dado o custo da viagem entre cada uma das cidades, qual o itinerrio que resulta no custo mnimo total?

Tpico 9 Algoritmos Genticos (AGs)

13

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

Implemente um algoritmo gentico para resolver o problema do caixeiro ilustrado na Figura 4.

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

Figura 4: TSP simples com 12 cidades. Codificao - arranjo de nmeros inteiros: 1,3,4,5,6,8,9,12,11,10,7,2 Funo de fitness - soma dos custos de movimentao entre cada par de cidades.
Tpico 9 Algoritmos Genticos (AGs)

14

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

Operadores Crossover OX: 1 7 2 3 3 1 4 5 6 7 8 2 9 10 11 12 6 8

11 4 4 5 5

12 5 6 6 7 7

10 9

11 12 4

10 9

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

Tpico 9 Algoritmos Genticos (AGs)

15

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

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

EXERCCIO COMPUTACIONAL 5 (EC5): Verifique o comportamento do algoritmo implementado no exerccio 4 quando as seguintes modificaes so inseridas independentemente e em conjunto: Elitismo na seleo: mantenha sempre o melhor indivduo na populao. Crossover de todos os indivduos com o melhor indivduo.

Tpico 9 Algoritmos Genticos (AGs)

16

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

5 Teoria dos Esquemas (schemata theory)


A teoria dos esquemas foi proposta por HOLLAND (1975; 1992) para tentar explicar por que os algoritmos genticos funcionam. 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. o 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.
Tpico 9 Algoritmos Genticos (AGs)

17

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

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. o 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 9 Algoritmos Genticos (AGs)

18

IA707 Profs. Leandro de Castro/Fernando 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 2m 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 9 Algoritmos Genticos (AGs)

{x

t t i1 ,, x i p

} representados pelo esquema S

na

19

IA707 Profs. Leandro de Castro/Fernando 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

Tpico 9 Algoritmos Genticos (AGs)

20

IA707 Profs. Leandro de Castro/Fernando 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 9 Algoritmos Genticos (AGs)

21

IA707 Profs. Leandro de Castro/Fernando 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 9 Algoritmos Genticos (AGs)

22

IA707 Profs. Leandro de Castro/Fernando 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 9 Algoritmos Genticos (AGs)

23

IA707 Profs. Leandro de Castro/Fernando Von Zuben DCA/FEEC/Unicamp

5.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 9 Algoritmos Genticos (AGs)

24

IA707 Profs. Leandro de Castro/Fernando 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.

6 Referncias
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. MICHALEWICZ, Z. Genetic Algorithms + Data Structures = Evolution Programs, 3rd edition, Springer, 1996.

Tpico 9 Algoritmos Genticos (AGs)

25

Você também pode gostar