28
Algoritmos Genéticos Apostila EPAC – Encontro Paranaense de Computação Autor: André Luiz Brun 

Algoritmos Genéticos 2

  • Upload
    duanyrf

  • View
    35

  • Download
    1

Embed Size (px)

Citation preview

  • Algoritmos

    Genticos

    Apostila EPAC Encontro Paranaense de Computao

    Autor: Andr Luiz Brun

  • 2

    ndice

    Evoluo 3

    Seleo Natural 4

    Histrico 6

    Introduo 7

    Quando Utilizar um Algoritmo Gentico? 9

    Algoritmo Gentico Bsico 10

    Tipos de Codificaes para os Algoritmos Genticos 11

    Codificao Real X Clssica (Binria) 11

    Inicializao 13

    Clculo da aptido 13

    Codificao Binria 13

    Codificao Real 14

    Seleo dos indivduos 14

    Cruzamento 16

    Codificao Binria 16

    Codificao Real 18

    Mutao 20 Codificao Binria 20

    Codificao Real 21

    Elitismo 22

    Parmetros genticos 23

    Aplicaes 24

    Bibliografia 26

  • 3

    Os Algoritmos Genticos (AGs) so uma classe ou famlia de modelos

    computacionais inspirados na evoluo defendida por DARWIN (1859). Foram

    inicialmente propostos por HOLLAND (1975). So considerados tambm algoritmos de

    busca que se valem do paradigma gentico/evolucionrio.

    Para que haja uma melhor compreenso do surgimento e evoluo dos AGs

    baseados nas idias evolucionistas de Darwin, idias que ficaram conhecidas como

    darwinismo, ser visto uma breve introduo sobre evoluo natural.

    Evoluo

    O mundo sofreu uma revoluo acerca da evoluo natural com o lanamento de

    dois livros de autoria de Charles Darwin (1809 1892): On the Origin of Species by

    Means of Natural Selection (1859) e A The descent of man, and selection in relation to

    sex (1871). Livros estes em que DARWIN defendia que o homem, assim como os outros

    seres vivos, era resultado da evoluo.

    Em seus estudos, DARWIN concluiu que nem todos os organismos que nascem,

    sobrevivem ou reproduzem-se. Os indivduos mais propensos sobrevivncia so aqueles

    mais adaptados para enfrentar determinadas condies ambientais. Logo estes indivduos

    teriam maior chance de se reproduzir e assim deixar seus descendentes. Assim, com o

    passar dos anos, as variaes favorveis tendem a permanecer e as desfavorveis tendem a

    serem destrudas.

    Um exemplo clssico da teoria Darwiniana a girafa. Inicialmente (h muito tempo

    atrs) existiam girafas com caractersticas bastante divergentes, algumas com pescoo

    longo, pescoo mdio e por fim, as girafas com pescoo comprido. Segundo Darwin, no

    incio, todos os tipos de girafas conviviam normalmente, porm, com o passar do tempo, a

    vegetao mais baixa foi tornando-se mais escassa, visto que todas as girafas podiam dela

    se alimentar. Chegou ento um momento em que restou apenas a vegetao mais alta, onde

    as girafas de pescoo mais curto no alcanavam. Logo, devido falta de alimento, estas

    girafas, menos privilegiadas, foram morrendo, restando apenas as girafas mais aptas ao

    meio (as de pescoo comprido). Ento, estas tiveram uma chance maior de reproduo e

  • 4

    conseqentemente maior chance de gerar descendentes, compondo assim a atual populao

    de girafas apenas com indivduos de pescoo longo.

    A Figura 1 ilustra o exemplo da evoluo das girafas, onde a seleo natural fez

    com que apenas as girafas de pescoo comprido conseguissem gerar seus descendentes com

    o passar do tempo. No primeiro quadro da figura ( esquerda), a populao era composta

    pelos diversos tipos de girafas, no segundo quadro (ao centro) pode verificar que os

    indivduos menos aptos, os de pescoo mais curto, foram sendo extintos. Restando assim,

    apenas os indivduos de pescoo comprido, conforme o terceiro quadro da figura ( direita).

    Figura 1: Populao composta por girafas de pescoo curto e pescoo comprido ( esquerda); Girafas de pescoo curto sofrendo extino natural (ao centro); Populao composta apenas por girafas de pescoo longo ( direita).

    Seleo Natural

    Segundo DARWIN (1859), a seleo natural um processo seletivo lento que

    ocorre ao longo das geraes, atravs da qual as espcies podem se diversificar, tornando-

    se mais adaptadas ao meio em que vivem. A seleo determinada, em certa parte, pelos

    fatores ecolgicos do ambiente.

    Atravs da seleo natural, a freqncia de um gene vantajoso, que apresenta

    caractersticas positivas, aumenta gradativamente na populao. A vantagem conferida pelo

    gene pode se refletir em diversos fatores que faam com que as espcies que o apresente

    sejam mais aptas. Por exemplo, o gene pode refletir em um maior tempo de vida de um

  • 5

    elemento, aumentando assim a probabilidade do mesmo de se reproduzir. O gene pode

    aumentar a sua freqncia se ele fornecer ao indivduo maior capacidade de se proteger.

    Um exemplo bastante conhecido de seleo natural o caso das mariposas de

    Manchester na Inglaterra, ocorrido durante a revoluo industrial. Onde, antes da

    industrializao e conseqentemente pouca poluio do ar, a populao de mariposas era

    em sua maioria, composta por indivduos de cor branca. Porm com a industrializao, a

    poluio atmosfrica aumentou e, com o tempo o ambiente no qual a populao de

    mariposas vivia foi alterado. Depois de anos, constatou-se que as mariposas que

    representavam a maioria de seu conjunto eram agora as pretas. Este fato ocorreu devido ao

    poder de camuflagem que as mariposas pretas apresentaram com a poluio que tornava as

    superfcies escuras. J as mariposas brancas tornaram-se presas fceis uma vez que eram

    facilmente descobertas por seus predadores.

    Observando-se a Figura 2 fica bastante evidente a inverso entre o tamanho das

    populaes das mariposas brancas e escuras. O segundo quadro ( direita) demonstra a

    situao das mariposas em seu ambiente antes do processo que introduziu as indstrias na

    cidade de Manchester. bastante difcil detectar a presena da mariposa de cor clara

    (presente dentro do crculo amarela), j a mariposa escura facilmente identificada, o que a

    tornava presa fcil aos seus predadores (principalmente pssaros). J o primeiro quadro (

    esquerda) demonstra como o ambiente das mariposas sofreu com a poluio atmosfrica e

    tambm superficial aps o processo de industrializao. Aps esta mudana no ambiente as

    borboletas escuras passaram a ser os elementos camuflados, visto que a poluio fez com

    que seu ambiente fosse alterado devido liberao de fuligem das indstrias, tornando

    agora as mariposas brancas os alvos fceis, visto que no podiam mais se camuflar.

    De maneira rudimentar, os AGs so tcnicas de busca baseadas nas teorias da

    evoluo, nas quais as variveis so representadas como genes em um cromossomo.

    Combinam a sobrevivncia dos mais aptos com a troca de informao de uma estrutura,

    com a seleo natural, cruzamento e mutao dos elementos a fim de encontrar os

    elementos mais aptos a determinada caracterstica do meio. No caso da computao a

    melhor ou conjunto de melhores solues para o problema.

  • 6

    Figura 2: Borboleta clara camuflada pela superfcie de rvores e construes j a borboleta escura alvo dos predadores ( direita). Com a industrializao a superfcie foi alterada, favorecendo as mariposas escuras ( esquerda) colocando as mariposas brancas na mira dos predadores.

    Histrico

    O princpio de que a variabilidade entre indivduos de uma mesma populao que se

    reproduz sexualmente produzida por dois fatores: a mutao e a recombinao gentica.

    Este princpio foi desenvolvido durante os anos 30 e 40, por bilogos e matemticos de

    importantes centros de pesquisa. Nos anos 50 e 60, muitos bilogos comearam a

    desenvolver simulaes computacionais de sistemas genticos.

    A seguir, John Holland dedicou-se ao estudo de processos naturais adaptveis, tendo

    inventado os AGs em meados da dcada de 60. Ele desenvolveu os AGs em conjunto com

    seus alunos e colegas da Universidade de Michigan nos anos 60 e 70, com o objetivo de

    estudar formalmente o fenmeno da adaptao como ocorre na natureza, e desenvolver

    modelos em que os mecanismos da adaptao natural pudessem ser importados para os

    sistemas computacionais. Em 1975, Holland publicou seu livro intitulado Adaptation in

    Natural and Artificial Systems e, em 1989, David Goldberg edita Genetic Algorithms in

    Search, Optimization and Machine Learning [GOL89], hoje considerados os livros mais

    importantes sobre AGs. Desde ento, estes algoritmos vm sendo aplicados com sucesso nos mais diversos problemas de otimizao e aprendizado de mquina.

  • 7

    Introduo

    Toda tarefa de busca e otimizao geralmente composta por trs componentes

    bsicos: a codificao do problema em questo (geralmente um dos passos mais complexos

    do processo), o espao de busca, onde so consideradas todas as possibilidades de soluo

    de um determinado problema e a funo de avaliao (funo fitness), que uma maneira

    de avaliar os membros do espao de busca (varia de acordo com o problema). Existem

    muitos mtodos de busca e funes de avaliao.

    As tcnicas de busca e otimizao tradicionais iniciam-se com um nico candidato

    que, iterativamente, manipulado utilizando algumas heursticas (estticas) diretamente

    associadas ao problema a ser solucionado. Geralmente, estes processos heursticos no so

    algortmicos e sua simulao em computadores pode ser muito complexa. Apesar destes

    mtodos no serem suficientemente robustos, isto no implica que eles sejam inteis. Na

    prtica, eles so amplamente utilizados, com sucesso, em inmeras aplicaes. Por outro

    lado, as tcnicas de computao evolucionria operam sobre uma populao de candidatos

    em paralelo. Assim, elas podem fazer a busca em diferentes reas do espao de soluo,

    alocando um nmero de membros apropriado para a busca em vrias regies.

    Os AGs diferem dos mtodos tradicionais de busca e otimizao, principalmente

    em quatro aspectos:

    Trabalham com uma codificao do conjunto de parmetros e no com os prprios parmetros;

    Trabalham com uma populao e no com um nico ponto; Utilizam informaes de custo ou recompensa e no derivadas ou outro conhecimento

    auxiliar;

    Utilizam regras de transio probabilsticas e no determinsticas.

    AGs so algoritmos de otimizao global baseados nos mecanismos biolgicos de

    seleo natural e da gentica. Eles empregam uma estratgia de busca paralela (onde cada

    indivduo de uma populao uma soluo potencial) e estruturada, mas aleatria, que

    voltada em direo ao reforo da busca de pontos de "alta aptido", ou seja, pontos nos

  • 8

    quais a funo a ser minimizada (ou maximizada) tem valores relativamente baixos (ou

    altos). Para realizar o processo so utilizados valores estatsticos.

    Apesar de aleatrios, eles no so caminhadas aleatrias no direcionadas, pois

    exploram informaes histricas para encontrar novos pontos de busca onde so esperados

    melhores desempenhos. Isto feito atravs de processos iterativos, onde cada interao

    chamada de gerao.

    Durante cada iterao, os princpios de seleo e reproduo so aplicados a uma

    populao de candidatos que pode variar, dependendo da complexidade do problema e dos

    recursos computacionais disponveis.

    A vantagem principal dos AGs ao trabalharem com o conceito de populao, ao

    contrrio de muitos outros mtodos que trabalham com um s ponto, que eles encontram

    segurana na quantidade. Tendo uma populao de pontos bem adaptados, a possibilidade

    de alcanar um falso timo torna-se menor. Os AGs conseguem grande parte de sua

    amplitude simplesmente ignorando informao que no constitua parte do objetivo,

    enquanto outros mtodos apiam-se fortemente nesse tipo de informao e, em problemas

    nos quais a informao necessria no est disponvel ou se apresenta de difcil acesso,

    estes outros mtodos falham.

    O conceito de mximo local (ou falso timo) acontece quando o algoritmo converge

    para uma soluo local e a explora at que encontre seu melhor valor, ignorando, porm o

    restante do espao de busca.

    A Figura 3 retrata um exemplo onde o AG encontrou um mximo local, tambm

    conhecido como falso timo. O algoritmo convergiu para a regio em vermelho, que

    representa um mximo local, visto que para aquela regio ela a melhor soluo, porm

    no melhor soluo dentro do espao de busca. A melhor soluo do espao de busca

    representada pela figura em azul. O fato do timo local ocorre pois o algoritmo tende a

    buscar aquele ponto, ignorando as demais regies pois as solues mais prximas so

    piores (so os vales laterais ao pico, que representa a melhor soluo local).

    Os AGs so ditos mtodos de busca cega, pois no tem conhecimento especfico do

    problema a ser resolvido, tendo como guia apenas a funo objetivo. So mtodos

    codificados, pois no trabalham diretamente com o domnio do problema e sim com

    representaes dos seus elementos. Apresentam ainda caractersticas estocsticas

  • 9

    (aleatrias) pois combinam em proporo varivel regras probabilsticas e determinsticas.

    Esse conceito refere-se tanto fase de seleo quanto fase de transformao.

    Figura 3: Representa o espao de busca (todas as possveis solues). O quadro em vermelho representa um mximo local (ou falso timo). O quadro em azul representa a soluo tima do espao de busca.

    Quando Utilizar um Algoritmo Gentico?

    Pesquisas realizadas sobre os AGs descrevem uma vasta gama de aplicaes nas

    quais estas tcnicas obtiveram pleno sucesso, mas existem tambm inmeros casos onde a

    performance dos AGs no conseguiu obter bons resultados. Como podemos fazer para

    verificar se um problema pode ou no ser resolvido atravs dos AGs?

    Normalmente (na maioria das vezes), os AGs tm sido mais usados para soluo de

    funes de otimizao, nas quais eles vm se mostrando bastantes eficientes e confiveis.

    Porm, como de se esperar, nem todos os problemas podem ter resultados satisfatrios ou

    mesmo ser representados adequadamente para o uso de tcnicas de AG. Geralmente

    necessrio levantar as seguintes caractersticas relativas ao problema a ser resolvido, antes

    de se tentar utilizar os AGs:

    O espao de busca (possveis solues) do problema em questo deve estar delimitado dentro de uma certa faixa de valores.

  • 10

    Deve ser possvel definir uma funo de aptido (fitness) que nos indique quo boa ou ruim uma determinada resposta. Funo esta que servir de mtrica para a soluo do

    problema.

    As solues devem poder ser codificadas de uma maneira que resulte relativamente fcil a sua implementao no computador.

    A literatura geralmente cita que os AGs podem ser utilizados para praticamente

    todo tipo de problema, porm sempre interessante considerar as caractersticas citadas

    acima para que o desenvolvimento do processo no seja invivel ou mesmo atingir solues

    consideradas ruins.

    Algoritmo Gentico Bsico

    GOLDBERG (1989) apresenta a estrutura bsica do funcionamento de um AG e de

    que maneira cada fase do mesmo realizada. Na Figura 4 apresentada uma explanao

    mais detalhada. Cada fase do algoritmo ser vistam mais detalhadamente.

    Basicamente o AG trabalha da seguinte forma:

    Inicialmente gerada uma populao formada por um conjunto aleatrio de indivduos que podem ser vistos como possveis solues do problema.

    Durante o processo evolutivo, esta populao avaliada: para cada indivduo dado um nota, ou ndice, refletindo sua habilidade de adaptao a determinado ambiente.

    Uma porcentagem dos indivduos mais adaptados so mantidas, enquanto os outros so descartados.

    Os membros mantidos pela seleo podem sofrer modificaes em suas caractersticas fundamentais atravs de mutaes e cruzamentos (crossover) ou

    recombinao gentica gerando descendentes para a prxima gerao.

    Este processo, chamado de reproduo, repetido at que uma soluo satisfatria seja encontrada. Embora possam parecer simplistas do ponto de vista biolgico, estes

    algoritmos so suficientemente complexos para fornecer mecanismos de busca adaptativos

    poderosos e robustos.

  • 11

    Figura 4: representao de um AG bsico (segundo GOLDBERG, 1989) contendo os passos presentes dentro

    do processo.

    Tipos de Codificaes para os Algoritmos Genticos

    Atualmente existem 3 abordagens distintas que so utilizadas para realizar o

    processo de codificao dos AGs. A codificao clssica (ou binria) que trabalha com

    strings de bits, a codificao Real que trabalha diretamente com valores reais e a

    codificao inteira, que trabalha apenas com valores inteiros.

    O presente trabalho abordar somente a Codificao Binria e a Codificao Real,

    uma vez que a codificao inteira apresenta uma gama de aplicao muito pequena.

    Codificao Real X Clssica (Binria)

    A codificao binria, ou clssica foi a primeira a ser construda, porm com o

    passar dos anos e com o aumento das aplicaes dos AGs surgiu tambm a codificao

    real.

  • 12

    Os processos que apresentarem diferenas entre a codificao real e a codificao

    clssica sero abordados separadamente para melhor entendimento do texto.

    A tcnica clssica de codificao dos algoritmos genticos utiliza strings de bits a

    fim de representar os cromossomos. Porm, com a necessidade de maior preciso numrica,

    as cadeias de bits se tornam excessivamente longas, o que acarreta na necessidade de um

    esforo computacional maior, causando tambm um consumo maior de tempo at a

    convergncia dos algoritmos.

    Conforme HERRERA, LOZANO e VERDEGAY (1996), o uso de parmetros reais

    torna possvel cobrir um domnio bastante abrangente, mesmo para domnios

    desconhecidos, das variveis, o que difcil de se conseguir trabalhando com as cadeias

    binrias, onde conforme o domnio do problema vai aumentando a preciso vai caindo (no

    caso de cromossomos com tamanho fixo).

    Outra vantagem em se utilizar parmetros reais a sua capacidade de explorar

    gradualmente as funes com variveis contnuas. Esta evoluo gradual se aplica ao fato

    de ligeiras (pequenas) mudanas nas variveis corresponderem a ligeiras mudanas na

    funo. Ou seja, interessante explorar gradualmente o domnio do problema, pois a

    soluo obtida pode ser melhor atravs de uma pequena mudana nos parmetros. J a

    codificao real no possui esta opo de evoluir gradualmente.

    O fato que acarreta em um consumo maior de tempo em problemas que necessitam

    de uma boa preciso a necessidade de se calcular o valor decimal da cadeia binria que

    representa o cromossomo na tcnica clssica. Alm de que nas cadeias binrias existe a

    necessidade da converso dos bits para um valor numrico.

    Segundo HERRERA, LOZANO e VERDEGAY (1996), devido a este problema

    foram surgindo novas tcnicas de codificao dos cromossomos, diferentes da tcnica

    clssica apresentada por Holland.

    Uma soluo que foi proposta com o intuito de evitar esta perda excessiva de tempo

    foi a utilizao de valores reais para se representar os cromossomos, tcnica esta que ficou

    conhecida como codificao real.

    Segundo SANTA CATARINA (2004), no caso de um cromossomo representar mais

    que um caracterstico diferente, como o caso deste trabalho, pode ser utilizado vrios

    genes dentro de um mesmo cromossomo.

  • 13

    Dentro da codificao real os operadores de mutao e cruzamento so realizados

    de forma diferente do mtodo utilizado na tcnica tradicional.

    Inicializao

    Inicialmente uma populao de n indivduos criada. Cada um destes indivduos

    representa uma possvel soluo, vivel ou no, para o problema em questo, ou seja, um

    ponto no espao de solues.

    Geralmente estes indivduos recebem valores aleatrios, mas caso o projetista tenha

    um conhecimento considervel do problema a ser abordado ele pode fazer com que estes

    indivduos iniciais (populao inicial) receba uma gama de valores direcionados, ou seja,

    recebe valores que no se apresentaram absurdos ao contexto do problema. Por exemplo,

    digamos que estamos trabalhando com um problema que visa encontrar a menor distncia

    entre duas cidades, cada indivduo representa uma distncia, seria indesejvel que os

    mesmos recebem distncias negativas j que distncias negativas no so possveis neste

    caso. A inicializao realizada da mesma forma para as duas abordagens (binria e real).

    Clculo da aptido

    Neste passo so calculados os valores de aptido para cada um dos n indivduos da

    populao. comum que esta aptido seja calculada atravs da funo objetivo, que

    depende diretamente das especificaes do projeto. Aps o clculo os indivduos so

    ordenados conforme sua aptido.

    Codificao Binria

    Caso o projetista esteja trabalhando com strings binrias necessria

    transformao do valor binrio obtido em numrico, a fim de obter o valor do fitness. A

    Equao 1 pode ser utilizada para calcular o mapeamento de um gene binrio inteiro em

    um intervalo dos reais de ponto fixo a fim de realizar o clculo do fitness.

  • 14

    I min)(max12

    min 10 += Lbx (1)

    onde:

    min: menor valor real no intervalo de mapeamento;

    max: maior valor real no intervalo de mapeamento;

    b10: valor binrio a ser mapeado convertido para base decimal;

    L: no de bits utilizados no cromossomo binrio.

    Codificao Real

    Caso o projetista esteja trabalhando com a Codificao real no h a necessidade de

    transformar os valores para que seja realizado o clculo da funo de aptido.

    Seleo dos indivduos

    Segundo SCHNEIDER (1998) a idia principal do operador de seleo, em um

    algoritmo gentico, oferecer aos melhores indivduos da populao corrente preferncia

    para o processo de reproduo, permitindo que estes indivduos possam passar as suas

    caractersticas s prximas geraes. Isto funciona como na natureza, onde os indivduos

    altamente adaptados ao seu ambiente possuem naturalmente mais oportunidades para

    reproduzir do que aqueles indivduos considerados mais fracos.

    Nesta fase, os indivduos que se mostraram mais aptos da gerao atual so

    utilizados para gerar uma nova populao atravs do cruzamento, ao menos teoricamente,

    visto que alguns mtodos no necessariamente selecionam apenas os melhores elementos

    de cada gerao.

    O processo de seleo realizado, geralmente, atravs de trs mecanismos bastante

    conhecidos:

  • 15

    1. Amostragem direta: o conjunto de indivduos representantes da gerao

    selecionado baseados em um critrio fixo. Pode ser visto como escolha a dedo ou os n

    melhores;

    2. Amostragem aleatria simples ou equiprovvel: todos os elementos possuem a

    mesma chance de serem escolhidos para compor o conjunto que gerar a prole seguinte;

    3. Amostragem estocstica: a chance de cada indivduo ser selecionado

    diretamente proporcional ao valor de seu fitness. Um mtodo de seleo, baseado no

    mecanismo de amostragem estocstico, bastante conhecido o Universal ou Por roleta

    proposto por GOLDBERG (1989).

    O mtodo considerado simples, pois consiste em criar uma roleta na qual cada

    cromossomo possui um segmento proporcional sua aptido. Para um melhor

    entendimento, ser utilizado um exemplo de uma populao com 7 cromossomos cuja

    aptido dada pela converso de binrio para decimal. Como pode ser visto na tabela 1.

    Com os valores percentuais obtidos na quarta coluna da Tabela 1, bem como a

    terceira coluna da Tabela 2, possvel construir uma roleta constante, conforme a Figura

    5. Esta roleta ser girada o nmero de vezes necessrias seleo a fim de que seja

    composta a populao auxiliar que ser utilizada na propagao da espcie; neste caso a

    roleta ser girada sete vezes. Os indivduos com fitness maior possuem uma rea maior na

    roleta, acarretando maior probabilidade de seleo aos elementos mais aptos de cada

    gerao.

    interessante observar que a tabela abaixo se utilizada da codificao clssica.

    Pode-se verificar a presena das cadeias de strings que representam os indivduos. Nota-se

    que o campo da tabela chamado aptido obtido atravs da aplicao da Equao 1 aos

    elementos do campo string (que representam cada um uma possvel soluo para o

    problema). Neste caso, o valor de aptido simplesmente a transformao das cadeias

    binrias em valores decimais.

    Caso estivssemos trabalhando com a codificao real esta representao (por

    tabela) seria um pouco diferente. O campo string seria desnecessrio e o campo aptido

    seria composto apenas do valor de cada indivduo. Como representado na Tabela 2.

  • 16

    Tabela 1: Ilustrao de 7 indivduos atravs da codificao binria e de seus valores para a seleo por roleta (Monte Carlo).

    Tabela 2: Ilustrao de 7 indivduos atravs da codificao real e de seus valores para a seleo por roleta (Mtodo de Monte Carlo).

    Cruzamento

    Codificao Binria

    O processo de cruzamento utilizado aps a realizao da seleo. Nesta fase

    ocorre a troca de segmentos entre pares de cromossomos selecionados para originar os

    novos indivduos que viro a formar a populao da gerao seguinte.

  • 17

    A idia principal do cruzamento propagar as caractersticas positivas dos

    indivduos mais aptos da populao atravs da troca de segmentos de informaes entre os

    mesmos, o que originar novos indivduos.

    As duas formas mais comuns de troca de segmentos nos Algoritmos Genticos so

    as de um e de dois pontos de cruzamento.

    1. Um ponto de cruzamento (single-point crossover): o ponto onde realizada a

    quebra escolhido de forma aleatria, ou a critrio do projetista, dentro da string que o

    representa. Baseado neste ponto realiza-se a troca de material cromossmico entre os dois

    indivduos. Um exemplo de cruzamento de um ponto representado pela Figura 6;

    2. Dois pontos de cruzamento (two-point crossover): realizado similarmente ao

    cruzamento de um ponto, porm a troca de segmentos realizada com um nmero maior de

    intercalaes, como visto na Figura 7.

    Figura 5: Mtodo de seleo pela roleta, tambm conhecido como Mtodo de Monte Carlo

  • 18

    Figura 6: Exemplo de cruzamento com 1 ponto, ou single-point crossover (aplicado codificao binria)

    Figura 6: Exemplo de cruzamento com 1 ponto, ou two-point crossover (aplicado codificao binria)

    Codificao Real

    Segundo SANTA CATARINA (2004), utilizam-se operadores de cruzamento

    aritmticos para realizar o cruzamento dos cromossomos. Alguns exemplos de operadores

    aritmticos so: mdia, mdia geomtrica, aritmtico e heurstico.

    O tipo de cruzamento mais simples dentro da codificao real o cruzamento

    simples, onde so escolhidos aleatoriamente dois indivduos de uma gerao e estes geram

    os dois novos cromossomos. Funciona como o cruzamento de um ponto, porm com

    valores reais, onde o ponto de cruzamento escolhido aleatoriamente (desde que no sejam

    os pontos extremos do cromossomo). Cada novo cromossomo possuir metade dos genes

    de cada pai. Por exemplo, temos dois cromossomos pais cada um com 10 genes diferentes.

    Ento obtido um valor aleatrio da posio de cruzamento. Digamos que esta posio seja

    5, ento, o primeiro filho ter os genes 1, 2, 3, 4 e 5 do primeiro pai e os genes 6, 7, 8, 9 e

    10 do segundo pai. J o segundo filho ter os genes de 1 a 5 provenientes do segundo pai e

    o restante dos genes do primeiro pai.

  • 19

    No cruzamento discreto os valores do novo cromossomo so randomicamente

    escolhidos de uma distribuio uniforme formada a partir de um conjunto de valores

    formado pelos pais.

    Os cruzamentos da mdia simples e mdia geomtrica so bastante simples pois

    consistem em gerar um novo cromossomo usando a mdia simples e a mdia geomtrica de

    dois cromossomos pais, respectivamente. Abaixo as frmulas do cruzamento por mdia

    simples (Equao 2) e por mdia geomtrica (Equao 3):

    Mdia Simples 2

    )( 211

    PPC += (2)

    Mdia Geomtrica 222

    11 PPC = (3)

    O cruzamento aritmtico realizado atravs da aplicao de duas frmulas:

    211 *)1(* PPC += e 212 **)1( PPC += (4) onde c1 e c2 so os cromossomos filhos, p1 e p2 so os cromossomos pais e U(0, 1).

    No cruzamento heurstico necessrio ter conhecimento do valor da funo fitness

    dos pais. Este mtodo consiste em gerar um cromossomo filho partir de uma interpolao

    linear entre os pais usando a informao da aptido. O cruzamento heurstico favorece o pai

    com maior fitness. Dados dois cromossomos pais P1 e P2, onde o cromossomo P1 possui o

    valor de fitness superior ao P2. O novo cromossomo gerado a partir da seguinte frmula

    (Equao 5):

    )( 211 PPrPC += onde (P1) > (P2) (5)

    onde o valor de r varia de 0 a 1.

    Segundo SANTA CATARINA (2004), o cruzamento BLX- consiste em gerar um novo cromossomo a partir da Equao 6:

    )( 121 PPPC += (6)

  • 20

    onde C o cromossomo gerado, P1 e P2 so os cromossomos pais e U(-, 1 + ). um pequeno valor que estende os limites para a definio de C. Caso o cromossomo

    seja formado por mltiplos genes, a Equao 4 aplicada a cada par de genes de P1 e P2.

    Alm dos modelos de cruzamento para codificao real citados acima existem

    outros apresentados na literatura como o cruzamento BGA linear, o cruzamento FCB

    (fuzzy connectives based) entre outros.

    SANTA CATARINA e BACH (2003) em seu trabalho implementaram algoritmos

    baseados na tcnica clssica, e tambm utilizando a tcnica da codificao real para

    encontrar a melhor soluo de uma determinada funo. Atravs da anlise dos resultados

    obtidos por eles possvel verificar que ambos os algoritmos, apresentaram uma mesma, ou

    muito similar, soluo tima para a funo em questo. Porm, os algoritmos que

    utilizaram a codificao real encontraram esta soluo tima com um consumo menor de

    tempo. Fato este justificado pelo consumo de tempo em se calcular o valor numrico a

    partir da cadeia de bits que representa o valor. interessante citar que no caso em que foi

    utilizada a tcnica clssica de implementao dos AGs a string era composta por 18 alelos

    (2 para a parte inteira e 16 para a parte fracionria).

    Mutao

    A mutao geralmente vista como um operador de "background", responsvel pela

    introduo e manuteno da diversidade gentica na populao (HOLLAND, 1975). Ela

    trabalha alterando arbitrariamente um ou mais componentes de uma estrutura escolhida

    entre a descendncia, logo aps o cruzamento, fornecendo dessa forma meios para a

    introduo de novos elementos na populao. Assim, a mutao assegura que a

    probabilidade de se chegar a qualquer ponto do espao de busca nunca ser zero.

    Codificao Binria

    O operador de mutao aplicado aos indivduos com uma probabilidade dada por

    uma taxa de mutao definida pelo projetista. O cromossomo tem todos seus genes

    percorridos. Caso a taxa de mutao seja maior que o valor sorteado pelo gene ento este

    sofrer mutao. Geralmente esta taxa bastante baixa, sendo os valores comumente

  • 21

    usados dentro da faixa de 0,01 a 0,001. A Figura 7 exibe um exemplo de mutao, onde o

    terceiro gene apresentou um valor inferior taxa de mutao e, portanto, sofrer a mutao.

    Neste exemplo apenas para o terceiro gene o valor sorteado foi inferior ao valor da taxa de

    mutao.

    Pode acontecer de um cromossomo possuir vrios genes alterados pela mutao ou

    mesmo no apresentar nenhuma alterao, caso o valor sorteado seja sempre maior que a

    taxa de mutao fornecida pelo projetista.

    Figura 7: Exemplo de Mutao Binria, onde apenas o 3 bit sofreu

    mutao

    Codificao Real

    Segundo SANTA CATARINA (2004), existem diversas formas de se realizar a

    mutao quando a codificao real est sendo utilizada, tais como mutao uniforme,

    mutao gaussiana, creep, mutao no uniforme e no-uniforme mltipla.

    HERRERA, LOZANO e VERDEGAY (1996) em seu trabalho propuseram a

    mutao randmica que bastante simples. Os genes do novo cromossomo so obtidos

    aleatoriamente de uma distribuio uniforme obtida de um intervalo determinado.

    Conforme o mesmo autor a mutao uniforme efetuada atravs da substituio do

    gene selecionado do cromossomo por outro gene gerado aleatoriamente, segundo uma

    distribuio uniforme, entre os limites mnimo e mximo permitidos. Nesta distribuio

    uniforme todos os nmeros possuem a mesma probabilidade de ocorrer, assim como em um

    dado, onde qualquer dos valores possui uma probabilidade de 1/6 de ser obtido.

    J a mutao gaussiana realizada substituindo-se o gene selecionado por outro

    gerado a partir de uma distribuio N(pi, 2), onde pi igual ao valor de gene a ser

    substitudo e a varincia definida pelo prprio pesquisador. Pesquisadores citam que o

  • 22

    valor da varincia pode ser iniciado prximo de 0,5 e de acordo com o aumento no nmero

    de geraes ele pode ser diminudo.

    Na mutao creep, acrescenta-se ou subtrai-se um pequeno nmero aleatrio obtido

    de uma distribuio N(0, 2) onde a varincia assume um valor pequeno. Segundo o mesmo

    autor, esta mutao utilizada para explorar o espao de busca localmente.

    A mutao no-uniforme consiste na simples substituio de um gene por um

    nmero extrado de uma distribuio no-uniforme, onde os valores possuem uma

    probabilidade diferente de ocorrerem. A mutao no-uniforme mltipla consiste em

    aplicar a mutao no-uniforme em todos os genes do cromossomo selecionado.

    A mutao Discreta modal apresentada pelas Equaes 7 e 8:

    =

    =

    0K

    KMK B

    (7)

    onde,

    =)log(

    )log( minmB

    rang (8)

    Bm > 1 um parmetro conhecido como base da mutao e rangmin o menor limite

    da faixa de mutao relativa.

    Elitismo

    O elitismo uma tcnica utilizada para melhorar a convergncia dos algoritmos. A

    tcnica consiste em se escolher o melhor (ou melhores) indivduo de cada gerao e pass-

    lo gerao seguinte sem que o mesmo (ou mesmos) sofra cruzamento e mutao, para que

    conserve suas caractersticas consideradas boas. A utilizao do elitismo faz com que o

    algoritmo convirja mais cedo principalmente, pois evita que os elementos mais aptos sejam

    perdidos ou modificados.

  • 23

    Porm caso sejam utilizados muitos elementos dentro do elitismo o algoritmo pode

    convergir precocemente e alcanar assim um mximo local.

    O elitismo utilizado da mesma forma, tanto na codificao real quanto na

    codificao clssica.

    Parmetros genticos

    O comportamento dos Algoritmos Genticos influenciado pelos parmetros

    utilizados, para tanto, tornou-se necessrio estudar de que maneira os parmetros afetam o

    comportamento dos AGs.

    Os parmetros genticos afetam da mesma forma a codificao real e a codificao

    clssica.

    1. Tamanho da Populao: O tamanho da populao estabelece o nmero de

    cromossomos na populao, o nmero de elementos de cada gerao. Afeta diretamente o

    desempenho geral e a eficincia dos AGs. Trabalhando com uma populao de poucos

    indivduos o desempenho pode ser comprometido visto que o espao de busca coberto ser

    pequeno. J uma populao grande oferece uma cobertura representativa do domnio do

    problema e ainda evita o problema de uma convergncia prematura para solues locais.

    Porm, trabalhar com uma populao de tamanho considervel acarreta em uma

    necessidade maior de recursos computacionais e tambm de um consumo de tempo maior;

    2. Taxa de Cruzamento: A rapidez com que novas estruturas so introduzidas na

    populao depende da taxa de cruzamento. Quanto maior for esta taxa, mais rapidamente

    novas estruturas sero introduzidas. Porm, se esta for muito alta, a maior parte da

    populao ser substituda, e pode ocorrer perda de estruturas de alta aptido. Com um

    valor baixo, o algoritmo pode tornar-se muito lento;

    3. Taxa de Mutao: responsvel por determinar a probabilidade em que uma

    mutao ocorrer. Uma baixa taxa de mutao evita que uma dada posio entre em

    estagnao, possuindo sempre o mesmo valor. Com uma taxa muito alta a busca tende a se

    tornar estritamente aleatria, alm de aumentar muito a chance de que uma boa soluo do

    problema seja destruda. A melhor taxa de mutao varia de acordo com o problema em

  • 24

    questo, mas acredita-se que para a maioria dos casos, o valor ideal se encontra entre 0,001

    e 0,01;

    4. Intervalo da Gerao: Determina a percentagem da populao que ser

    substituda na gerao seguinte. Caso o valor do intervalo de gerao seja muito alto,

    grande parte da populao poder ser substituda, aumentando assim as chances de se

    perder indivduos com alta aptido. Porm, caso o valor seja muito baixo, o algoritmo pode

    se tornar muito lento.

    Aplicaes

    A AIS (Barcelona, Espanha) utilizou um sistema apoiado em AGs e Sistemas Especialistas (SEs) para programar os Jogos Para-olmpicos de 1992 j que nas

    Olimpadas os atletas so organizados em duas grandes classes, masculino e feminino, e os

    competidores para-olmpicos so divididos em mais de 100 (cem) classes, segundo certas

    restries mdicas.

    Foi apresentado em 1999 na CEC99 IEEE International Conference on Evolutionary Computation um ambiente interativo, utilizando Algoritmos Genticos, para

    a avaliao de msicas (seqncias de acordes) tocadas em arquivos MIDI. O mtodo

    emprega o formalismo difuso e colocado como uma otimizao baseada em fatores

    relevantes audio de msicas. No caso, os indivduos da populao foram definidos em

    grupos de quatro vozes (soprano, contralto, tenor e baixo) ou coros. Cada um avaliado

    segundo trs critrios: melodia, harmonia e oitavas. A composio destes trs critrios

    definia a aptido (fitness) definida pela funo de seleo, que retorna o melhor indivduo,

    ou melhor, coro. Um ciclo gentico operacionalizado, criando novos indivduos dos

    anteriores e procurando sempre pelo melhor. Quando um novo grupo selecionado, ele

    tocado em MIDI. A durao do ciclo gentico determina o ritmo da evoluo. O sistema

    criado foi denominado Vox Populi. (FUKUSHIMA, 1999)

  • 25

    Um sistema em construo na New Mexico State University descreve imagens faciais de criminosos a partir de testemunhas do crime, utilizando AGs. O sistema tem se

    mostrado mais efetivo na produo de imagens aprimoradas de criminosos do que qualquer

    outra tcnica de obteno de informao de imagens.

    Segundo Blanchard (1994), o ltimo WCCI'94 World Congress on Computational Intelligence ocorrido em Orlando, na Flrida, mostrou uma srie de

    solues promissoras a situaes reais utilizando Algoritmos Genticos. Blanchard mostrou

    o caso da US West, uma companhia regional de telecomunicaes do estado do Colorado,

    que vem usando um sistema baseado em AGs que possibilita projetar, em duas horas,

    redes ticas especializadas, trabalho que levaria seis meses utilizando especialistas

    humanos. O sistema produz resultados ainda 10% (dez por cento) melhores que os

    realizados pelo homem. A companhia estima que o sistema possibilitar uma economia de

    100 milhes de dlares at o final do sculo.

    Sponsler (1989) mostrou um sistema prottipo desenvolvido para avaliar a aplicabilidade dos Algoritmos Genticos na otimizao da programao do telescpio

    espacial Hubble. Diversos operadores genticos foram avaliados e o melhor AG foi

    comparado com um otimizador baseado em Redes Neurais (RN). Neste caso especfico os

    AGs no se apresentaram to eficientes quanto as RNs.

    Syswerda e Palmucci (1991) relataram a execuo de um otimizador para uma aplicao prtica de programao de recursos no laboratrio SITS System Integration

    Test Station Laboratory da Marinha Americana, para o desenvolvimento do jato F-14.

    No presente momento, talvez uma das mais populares aplicaes seja a de combinar Algoritmos Genticos com Redes Neurais, ou para trein-las ou para encontrar sua

    topologia. Finalmente, importante salientar que ainda incipiente a pesquisa sobre a

    aplicabilidade dos Algoritmos Genticos no problema de programao de projetos em

    geral. , particularmente, muito pequena na rea de projetos de construo, por exemplo.

  • 26

    Multiprocessor Scheduling: A aplicao de AG's no problema de associao tima de processos e processadores. Objetivo e diminuir o custo que deriva da comunicao entre

    processos em um ordenador paralelo de memria distribuda. Multiprocessor Scheduling

    podem ser relacionados com problemas de robtica.

    Biologia Molecular e Fsico-qumica: Existe uma hiptese de trabalho que sustentaria a utilizao de tcnicas baseadas em populaes devido a estrutura da funo

    objetivo. Em problemas relacionados com estrutura molecular existem experimentos que

    do indcios claros sobre a validez dessa hiptese. Assim fcil observar que so cada vez

    mais numerosas as aplicaes de AG's neste campo.

    Engenharia em Construes: Os AG's tem ganho aceitao em um grande nmero de problemas de Engenharia. Uma aplicao na otimizao discreta de estruturas.

    Compresso de Dados: A compresso de dados em geral, e a compresso de imagens slidas em particular. Esta aplicao consiste em encontrar um mtodo que utiliza

    os AG's para encontrar um sistema de funes locais iteradas (LIFS) para a codificao de

    imagens. Produzindo como resultado final uma imagem com qualidade similar a utilizao

    do mtodo convencional de compresso fractal, com um tempo 30% menor.

    BRUN (2004) desenvolveu o trabalho Deteco de Faces Humanas em Imagens Digitais atravs do uso de um Algoritmo Gentico, onde utiliza os AGs para controlar os

    fatores de Deslocamento, Escala e Rotao de um modelo de face.

    Bibliografia

    BRUN, A. L. SILVA I. F. SANTA CATARINA A. Deteco de Faces Humanas em

    Imagens Digitais atravs do uso de um Algoritmo Gentico. UNIOESTE, Cascavel,

    Brasil, 2004.

  • 27

    DARWIN, C. On the origin of species by means of natural selection. London, John

    Murray, 1859.

    DARWIN, C. The descent of man, and selection in relation to sex. London, 1871.

    GOLDBERG, David E. Genetic Algorithms in Search, Optimization and Machine

    Learning. Massachusets: Addison-Wesley Co, 1989.

    HERRERA, F.; LOZANO, M.; VERDEGAY, J. L. Tackling Real-Coded Genetic

    Algorithms: Operators and Tools for Behavioural Analysis. Artificial Intelligence

    Review. v. 12, 1998.

    HOLLAND, J. H. Adaptation in Natural and Artificial Systems. Ann Arbor:University

    of Michigan Press, 1975.

    SANTA CATARINA, A. Aplicaes De Algoritmos Genticos em Sistemas de

    Informaes Geogrficas. Monografia final do Curso de Introduo ao

    Geoprocessamento. INPE, So Jos dos Campos, 2004.

    SANTA CATARINA, A., BACH, S. L. Estudo do efeito dos parmetros genticos na

    soluo otimizada e no tempo de convergncia em algoritmos genticos com

    codificaes binria e real. Acta Scientiarum: Technology. Maring, v. 25, n.2, p. 147-

    152, 2003.

    SCHNEIDER, A. M. Algoritmo Adaptativo Gentico para Acompanhamento da

    Trajetria de Alvos Mveis. - Dissertao de Mestrado - Porto Alegre: Instituto de

    Informtica - Universidade Federal do Rio Grande do Sul, 1998.

    http://laqqa.iqm.unicamp.br/algoritmosgeneticos.htm

    http://www.din.uem.br/ia/geneticos/

  • 28

    http://www.geocities.com/Athens/Sparta/1350/ia/ag_aplica.html

    http://www.geocities.com/igoryepes/visualizar2.htm

    http://www.gta.ufrj.br/~marcio/genetic.html

    http://www.icmc.usp.br/~andre/research/genetic/