Vous êtes sur la page 1sur 10

FUNDAMENTOS DOS ALGORITMOS GENTICOS Como a fbrica do mundo a mais perfeita e foi estabelecida pelo mais sbio Criador,

, nada acontece em nosso mundo sem que um problema de mximo ou de mnimo esteja envolvido. Leonhard Euler (1707-1783) (Grande Matemtico). Bibliografia: 1- Livro: Genetic Algorithms in Search, Optmization and Machine Learning Autor: David E. Goldberg 2- Artigo: Motivao, Fundamentos e Aplicaes de Algoritmos Genticos Autor: Julio Tanomaru. Ph.D., professor da Universidade de Tokushima Japo. Anais do II Congresso Braileiro de Redes Neurais. 3- Artigo: Introduo aos Algoritmos Genticos. Autores: E. G. M. Lacerda e A .C. P.L. F. de Carvalho. Anais do XIX Congresso Nacional da Sociedade Brasileira de Computao 0- Introduo Algoritmos Genticos, AGs, so mtodos de otimizao e busca inspirados nos mecanismos de evoluo de populaes de seres vivos. Foram introduzidos por John Holland [Holland, 1975] e popularizados por um de seus alunos, David Goldberg [Goldberg, 1989]. Esses algoritmos seguem o princpio da seleo natural e sobrevivncia do mais apto, declarado em 1859 pelo naturalista e fisiologista ingls Charles Darwin em seu livro A Origem das Espcies. De acordo com Charles Darwin, Quanto melhor um indivduo se adaptar ao seu ambiente, maior ser sua chance de sobreviver e gerar descendente. Otimizao a busca da melhor soluo para um dado problema. Consiste em tentar vrias solues e utilizar a informao obtida neste processo de forma a encontrar solues cada vez melhores. Um exemplo simples de otimizao a melhoria da imagem das televises com antena acoplada no prprio aparelho. Atravs do ajuste manual da antena, vrias solues so testadas, guiadas pela qualidade de imagem obtida na TV, at a obteno de uma resposta tima, ou seja, uma boa imagem. As tcnicas de busca e otimizao geralmente apresentam: Um espao de busca, onde esto todas as possveis solues do problema; Uma funo objetivo (algumas vezes chamada funo de aptido na literatura de AGs ou de adequabilidade no artigo de Tanomaru), que utilizada para avaliar as solues produzidas, associando a cada uma delas uma nota.

1- Uma Definio Sem afirmar que esta a melhor possvel: Algoritmos Genticos (AGs) so mtodos computacionais de busca que imitam os mecanismos de evoluo natural e da gentica. Em AGs, uma populao de possveis solues para o problema em questo evolui de acordo com operadores probabilsticos concebidos a partir de metforas biolgicas, de modo que h um tendncia de que, na mdia, os indivduos representem solues cada vez melhores medida que o processo evolutivo continua 2- Caractersticas Primrias De modo geral, AGs tm as seguintes caractersticas: AGs operam numa populao(conjuntos) de pontos, e no a partir de um ponto isolado. AGs operam num espao de solues codificadas, e no no espao de busca diretamente. AGs necessitam somente de informao sobre o valor de uma funo objetivo para cada membro da populao, e no requerem derivadas ou qualquer outro tipo de conhecimento. AGs usam transies probabilsticas, e no regras determinsticas.

3- Problema de Otimizao (Em termo matemticos) Dada uma funo f : Rn R e um espao de busca S Rn, o problema de otimizao pode ser formulado assim: Maximizar f(x) | x S Em termos de um problema de busca, o mesmo problema pode ser escrito como: Encontrar x* | f(x*) f(x), x S

A funo f(.) pode ser derivvel ou no, uni- ou multidimensional, e o espao de busca S pode ser contnuo ou discreto, finito ou infinito, cncavo ou convexo. O problema chamado unimodal quando h somente um ponto de mximo x* no espao de busca, ou multimodal em caso contrrio. Alm disso, a funo f(.) pode ser estacionria ou noestacionria, isto , varivel com o tempo. 4- Representao Cromossmica Vamos desenvolver as sees seguintes usando um exemplo como ilustrao. Vamos explorar o seguinte problema: Maximizar a funo f(x)=x2 no intervalo [0,31]. Sabemos que o mximo dessa funo encontra-se no valor x=31 da varivel independente. Claro que poderamos simplesmente calcular a funo em alguns pontos e por comparao chegarmos rapidamente a este valor. Mas vamos mostrar com este exemplo simples como funciona o A.G.. O primeiro passo para aplicao de AGs a um problema qualquer representar cada possvel soluo x no espao de busca como uma seqncia de smbolos s gerados a partir de um alfabeto finito A. No caso mais simples, usa-se o alfabeto binrio A={0,1}, mas no caso geral tanto o mtodo de representao quanto o alfabeto gentico dependem de cada problema. Usando algumas metforas extremamente simplistas, mas empregadas pelos tericos e praticantes de AGs com freqncia, cada seqncia s corresponde a um cromossomo, e cada elemento de s equivalente a um gene. Como cada gene pode assumir qualquer valor do alfabeto A, cada elemento de A equivalente a um alelo, ou seja, um valor possvel para um dado gene. A posio de um gene num cromossomo, ou seja, o ndice dentro da seqncia, corresponde a um locus gnico. Voltamos ao exemplo: Usando o alfabeto binrio para representar a varivel x no intervalo [0,31], o qual corresponde ao conjunto [00000,11111], conclumos que cada cromossomo (seqncia) ir possuir cinco smbolos, ou seja: {...}24 + {...}23 + {...}22 + {...}21 + {...}20 = x 5- Fluxo Bsico Tendo definido a representao cromossmica para o problema, gera-se um conjunto de possveis solues, chamadas de solues-candidatas. Um conjunto de solues codificadas de acordo com a representao selecionada corresponde a uma populao de indivduos, P(0). AGs so algoritmos iterativos, e a cada iterao a populao modificada.

Cada iterao de AG denominada uma gerao, embora nem todos os indivduos de uma populao seja necessariamente filhos de indivduos da populao na iterao anterior. Designando cada gerao por um ndice t o fluxo geral de um AG simples dado abaixo: Nos mtodos tradicionais o processo de otimizao tem incio em um determinado ponto. A partir dele aplicando um tipo de regra qualquer que nos indique que o valor da funo cresce em uma determinada direo, calculamos novos pontos at, se possvel, atingirmos o valor timo da funo. Esse processo nos leva em muitas circunstncias, a valores que no correspondem ao timo esperado. Algumas funes so multimodais e podem atingir falsos pontos timos. O AG no, ele no trabalha com pontos isolados, mas sim com uma populao de pontos. claro que atingir um ponto no qual encontramos um falso timo estatisticamente menos provvel. A procura do ponto timo usando uma populao de valores da varivel independente um processo muito mais eficiente, visto que estamos calculando paralelamente a funo em vrios pontos do seu domnio. Os mtodos tradicionais necessitam de muito mais informao. Por exemplo, para o algoritmo do gradiente ascendente, necessita-se do clculo da derivada, calculada analiticamente ou numericamente, para podermos subir nos picos da funo (Hill Climbing). Ao contrrio o AG completamente cego em relao a esses detalhes funcionais do problema. Ele s analisa o valor da funo e verifica se de fato ele fornece um melhor valor. Esta propriedade do AG que garante a sua generalidade e robustez. A seguir apresentamos o fluxo bsico de um AG simples com trs operadores: seleo, recombinao e mutao, que sero visto mais adiante. ALGORITMO GENTICO begin t0 inicializar P(t) avaliar P(t) while (not Condio-Terminal) do begin tt+1 selecionar P(t) a partir de P(t-1) recombinar e mutar P(t) avaliar P(t) end end Observao: P(t) uma populao qualquer num tempo t. 5- Inicializao

Na maior parte das aplicaes, a populao inicial de N indivduos gerada aleatoriamente ou atravs de algum processo heurstico. importante que a populao inicial cubra a maior parte possvel do espao de busca. No exemplo que estamos examinando podemos criar uma populao inicial da varivel x, j codificada. Escolhemos um nmero qualquer de indivduos na populao, por exemplo 4 (pequeno para AG). Para criarmos esses 4 indivduos podemos, por exemplo, jogar uma moeda sobre a mesa. Ao cair cara, escrevemos o numeral 1; ao cair coroa escolhemos o numeral 0, executando esse procedimento cinco vezes para cada indivduo. Assim procedendo, podemos obter: 01101 , 11000 , 01000 , 10011

A partir dessa populao inicial o Algoritmo Gentico cria novos indivduos. Devemos definir uma operao que crie novos indivduos a partir da populao inicial, criar uma nova populao e esperar que ela seja mais evoluda, ou seja, possua indivduos melhores que a anterior. As regras fundamentais da evoluo das espcies, as quais o DNA obedece cegamente so as seguintes: 1- Reproduo de indivduos. 2- Cruzamento de partes dos cromossomos em torno de pontos especficos do DNA. 3- Mutao, ou seja, alterao do tipo de um par de bases ao longo do DNA, numa posio aleatria. Para um AG estas regras tem o mesmo sentido porm elas devem ser criadas para cada caso. A reproduo um processo pelo qual cada sequncia reproduz-se igual a si mesma, porm obedecendo a certo critrio, ou seja, obedecendo funo objetivo, a qual queremos otimizar. O critrio para a reproduo tem que se basear no fato de que as espcies mais aptas ou evoludas tm melhores chances de pertencerem nova gerao criada. O operador que executa esta funo uma verso simplificada da teoria Darwiniana da sobrevivncia das espcies mais aptas. 6- Avaliao e fitness (aptido) AGs necessitam da informao do valor de uma funo objetivo para cada membro da populao, que deve ser um valor no negativo. Nos casos mais simples usa-se justamente o valor da funo que se quer maximizar. A funo objetivo d, para cada indivduo, uma medida de quo bem adaptado ao ambiente ele est, ou seja, quanto maior o valor da funo objetivo, maiores so as chances do indivduo sobreviver no ambiente e reproduzir-se, passando parte de seu material gentico a geraes posteriores.

A avaliao de cada indivduo resulta num valor que, em ingls, denominado fitness. Na falta de traduo melhor, emprega-se o termo aptido (ou adequabilidade que foi usado por Tanomaru). 7- Seleo O mecanismo de seleo em AGs emula os processos de reproduo assexuada e seleo natural. Em geral gera-se uma populao temporria de N indivduos extrados com probabilidade proporcional aptido relativa de cada indivduo na populao, ou seja, a probabilidade de seleo de um cromossomo s dada por p seleo = a(s)

a(s )
i =1 i

onde a (.) a funo de aptido. A tabela 1 abaixo mostra os valores da funo objetivo (que a funo de aptido) e da p seleo para o exemplo em estudo: Funo objetivo Probab. de f(x) Seleo(%) 1 01101 169 14.4 2 11000 576 49.2 3 01000 64 5.5 4 10011 361 30.9 Total ###### 1170 100 Tabela 1 O mtodo de seleo mais conhecido o chamado mtodo da roleta em que se imagina uma roleta fictcia num cassino onde, com base na aptido de cada indivduo relativamente populao, decide-se se ele deve morrer ou sobreviver e produzir descendentes. Uma caracterstica fundamental da roleta que cada cavidade (casa) corresponde a um indivduo, sendo a rea da cavidade proporcional aptido, de modo que indivduos de maior aptido tm maior probabilidade de serem selecionados. Para selecionar candidatos para a nova populao, giramos a roleta e obtemos um candidato. A figura abaixo mostra a roleta para o problema que estamos resolvendo. Nmero Sequncia

Pode-se estimar o nmero de cpias de um dado indivduo, n esperado , multiplicandose a sua probabilidade pelo tamanho da populao.A tabela 2 abaixo mostra esses valores e o nmero de cpias realmente obtidos atravs do mtodo da roleta. Nmero 1 2 3 4 Total Sequncia 01101 11000 01000 10011 ###### Probab. de Seleo(%) 14.4 49.2 5.5 30.9 100 Tabela 2 n esperado 0.576 1.968 0.22 1.236 n obtido 1 2 0 1

O processo de seleo resulta numa populao temporria de N indivduos (no exemplo N=4), na qual ser aplicado os operadores de recombinao e mutao. nobtido o nmero de cpias obtidas atravs do mtodo da roleta. 8- Recombinao Terminado o processo de seleo, certos cromossomos so extrados aos pares da populao resultante para recombinao. O processo de recombinao um processo sexuado, ou seja, envolve mais de um indivduo que emula o fenmeno do crossover, a troca de fragmentos entre pares de cromossomos. O cross-over desempenha um papel fundamental no processo de multiplicao, inivao e melhoria na evoluo de uma populao. Na figura abaixo mostramos para um cromossomo simplificado como realizada esta troca. A parte final da cadeia 2 compondo com a inicial da 1 fornece um novo indivduo com um novo cdigo.

No processo biolgico esses novos cromossomos sero testados. Se sobreviverem, faro parte de uma nova espcie. Como selecionada a posio a partir da qual se efetuar a troca? No processo biolgico ainda no sabemos como esse ponto determinado. A recombinao acontece em dois passos: (1) Os cromossomos da populao so pareados aleatoriamente, (2) Usando a probabilidade de recombino precombinao decide-se se cada par deve ou no sofrer recombinao. Em caso afirmativo, escolhe-se um ponto de corte aleatoriamente, e efetua-se a troca dos seguimentos correspondentes. No exemplo em estudo suponhamos que foi selecionado aleatoriamente o par de seqncias, A1 = 01101 e A2 = 11000 para executarem o crossover. O ponto de cruzamento escolhido aleatoriamente entre 1 e L-1, onde L o nmero de elementos (comprimento) da seqncia. No exemplo L = 5. Seja k o nmero sorteado. Ento trocamos os elementos entre k + 1 e L. Se k = 4 temos: A1 = 0 1 1 0 || 1 A2 = 1 1 0 0 || 0 0 1 1 0 0 = A1 1 1 0 0 1 = A2

A tabela 3 abaixo mostra a populao depois do processo de seleo (mostrando o ponto de cruzamento), os pares selecionados aleatoriamente, o ponto de corte, a nova populao, o valor de x e o valor de f(x). Neste caso no houve mutao! Populao depois Pares Ponto da seleo selecionados de aleatoriamente corte 0 1 1 0|1 2 4 1 1 0 0|0 1 1|0 0 0 1 0|0 1 1 1 4 3 4 2 2 Nova populao 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 0 0 0 0 Tabela 3 Observando a tabela 1 e tabela 3 observe que aptido mxima aumentou de 576 para 729. Contudo, ainda que os processos aleatrios ajudem a causar estas circunstncias felizes, comeamos a ver que esta melhora no ocorre por sorte. A melhor string da primeira gerao (1 1 0 0 0) recebe duas cpias (pela roleta) por causa da performance acima da mdia. Quando esta combina aleatoriamente com a prxima string melhor, no sentido de maior aptido, (1 0 0 1 1) e recombinada na x 12 25 27 16 f(x) 144 625 729 256

posio 2 (novamente aleatriamente), uma das strings resultantes (1 1 0 0 0) prova ser uma escolha muito melhor. 9- Mutao O processo de mutao em AG equivalente busca aleatria. Basicamente seleciona-se uma posio num cromossomo e muda-se o valor do gene correspondente aleatoriamente para um outro alelo possvel. O processo geralmente controlado por um parmetro fixo pmutao que indica a probabilidade de um gene sofre mutao. 10- Condies de Trmino Como estamos tratando de problemas de otimizao, o ideal seria que o algoritmo terminasse assim que o ponto timo fosse encontrado. No caso de funes multimodais, um ponto timo pode ser o suficiente, mas pode haver situaes onde todos ou o maior nmero possvel de pontos timos sejam desejveis. Um problema prtico que, na maioria dos casos de interesse, no se pode afirmar com certeza se um dado ponto timo corresponde a um timo global. Como conseqncia, normalmente usa-se o critrio do nmero mximo de geraes ou um tempo limite de processamento para parar um AG. Outro critrio plaulsvel parar o AG usando a idia de estagnao, ou seja, quando no se observa melhoria da populao depois de vrias geraes consecutivas. 11- Aspectos relacionados implementao Algoritmos Genticos processam populaes de strings. Assim, para o processo de recombinao, 2 strings pais parent1 e parent2 geram duas strings filhas child1 e child2. Os trs operadores seleo( ou reproduo), recombinao( ou crossover) e mutao necessitam de trs rotinas de escolha aleatria: random : retorna um nmero real aleatrio entre 0 e 1 flip : retorna um valor verdadeiro booleano com uma probabilidade especificada. rnd : retorna um valor inteiro entre um limite inferior e um limite superior Abaixo damos alguns trechos de programa em PASCAL mas que podem ser facilmente adaptados para a linguagem C:

flip: function flip(probability:real):boolean; begin if probability = 1 then flip := true else flip := (random <= probability); end rnd function rnd(low, high:integer):integer; var i:integer; begin if low >= high then i := low else begin i := trunc(random * (high low +1) + low); if i > high then i := high; end; rnd := i; end

Vous aimerez peut-être aussi