Professional Documents
Culture Documents
1 Introduo
Os algoritmos genticos (AG) so um ramo dos algoritmos evolucionrios e como tal podem ser definidos como uma tcnica de busca baseada num metfora do processo biolgico de evoluo natural. Nesse contexto o objetivo desse trabalho fazer um estudo do funcionamento e implementao computacional de um algoritmo gentico. O estudo ser realizado utilizando como guia a seo 3 do artigo A Survey of Genetic Algorithms do autor M. Tomassini, onde exemplificado de forma didtica o processo de se encontrar o mnimo de uma funo utilizando (AG).
2 GA bsico
Pode-se definir que algoritmos genticos so algoritmos de busca baseados nos mecanismos de seleo natural e gentica. Eles combinam a sobrevivncia entre os melhores como uma forma estruturada de troca de informao gentica entre dois indivduos para formar uma estrutura heurstica de busca. A sua construo pode ser resumida algoritmicamente em uma viso de alto nvel atravs dos seguintes passos: 1. 2. 3. 4. Inicialize a populao de cromossomos. Avalie cada cromossomo na populao. Selecione os pais para gerar novos cromossomos. Aplique os operadores de recombinao e mutao a estes pais de forma a gerar os indivduos da nova gerao. 5. Apague os velhos membros da populao. 6. Avalie todos os cromossomos e insira-os na populao. 7. Se o tempo acabou, ou o melhor cromossomo satisfaz os requerimentos e desempenho, retorne-os, caso contrrio, volte para o passo 2. Tendo os seguintes aspectos fundamentais a serem considerados: Uma representao cromossomial que seja adequada ao problema; Uma funo de avaliao que penalize solues implausveis para o nosso problema e que avalie satisfatoriamente o grau de adequao de cada indivduo como soluo do problema em questo.
Figura 1
O boto Start inicia o programa e a cada gerao possvel ver os dados no grfico e convergindo at o resultado final como pode ser visualizado na Erro! Fonte de referncia no encontrada.. Para um nmero pequeno de geraes tem-se uma maior quantidade de
(a)
(b)
(c)
Figura 2: Distribuio da populao para (a) uma gerao (b) dez geraes (c) cem geraes.
possvel tambm escolher qual intervalo alm do sugerido de [0-512] que se deseja obter o mnimo da funo. Para isso basta mudar os valores de limite inferior e do limite superior, para anlise do intervalo de [250 350] por exemplo, o programa retorna como valor mdio de x 299,47 e -299,26 para funo como mostrado na Figura 3 possvel ver os pontos aglutinados em torno desses valores.
Sendo a e b limites inferiores e superiores respectivamente e stringTam o nmero de bits utilizado na representao do cromossomo. 3.1.2 Escolha da populao inicial A populao inicial foi gerada de forma aleatria em uma matriz com nmero de linhas do tamanho da populao (popTam) e colunas do tamanho do nmeros de bits digitado pelo usurio (stringTam) como pode se ver com a linha do cdigo:
pop=round(rand(popTam,stringTam));
3.1.3 Seleo O mtodo de seleo dos pais deve simular o mecanismo de seleo natural que atua sobre as espcies, em que os pais mais capazes geram mais filhos, ao mesmo tempo em que pais menos aptos tambm podem gerar descendentes. Consequentemente deve-se privilegiar os indivduos com funo de avaliao alta no caso especifico desse trabalho seria os indivduos quem geram valores mais prximo do mnimo da funo. Foi utilizado o mtodo da roleta viciada para realizar essa funo de seleo com a seguinte rotina:
% Roleta for i=1:popTam r = rand; for j=1:popTam if r <= c(j) popNova(i, :) = pop(j,:); break end end end
end end
3.1.5 Operador de mutao O operador mutao modifica um bit em uma posio aleatria. A probabilidade de ocorrncia da mutao indicada que seja pequena, da ordem de 1 a 10%. Segue a rotina:
% Mutao for i=1:popTam r = rand; if (r <= pm/100); cpoint = random('unid', stringTam); popNova(i, cpoint) = abs(popNova(i, cpoint)-1); end end
Caso no seja satisfeita o critrio de parada que no caso da implementao ficou condicionada ao nmero de geraes, realizados os passos anteriormente a partir da avaliao da funo.
4 BIBLIOGRAFIA
[1] GOLDBERG, David E. Genetic Algorithms in Search, Optimization and Machine Learning. Massachusets, Addison-Wesley, 1989. [2] Linden, Ricardo. Algoritmos Genticos. 2 ed. Rio de Janeiro: Brasport, 2008.