GA_Cap10b

25
Algoritmos Genéticos - Capítulo 10 Representação Baseada em Ordem Prof. Ricardo Linden

description

Inteligencia Artificial-AULA

Transcript of GA_Cap10b

  • Algoritmos Genticos - Captulo 10Representao Baseada em OrdemProf. Ricardo Linden

    Algoritmos Genticos - Captulo 10

  • Conceitos bsicos Existe uma classe de problemas que no consiste de otimizao numrica, mas sim de otimizao combinatorial;

    Estes problemas podem ser resolvidos perfeitamente atravs de GAs;

    Estes problemas so em geral NP-completos, o que significa que seu espao de busca , para efeitos prticos, considerado como infinito;

    Duas instncias tpicas deste caso so o problema de colorir um grafo e o problema do caixeiro viajante.

    Algoritmos Genticos - Captulo 10

  • Problemas TpicosColorir um grafo:Termos um grafo com n ns, cada um com um peso distinto;So dadas k cores para colorir este grafo (k
  • RepresentaoNo dois casos que melhor representam a necessidade desta representao, estamos interessados na ordem em que o problema resolvido;

    Queremos uma representao que contenha todos os ns (ou cidades) colocados em uma ordem;

    Conseqncia: representao em lista; Cada cromossomo contm todos os elementos presentes no problema (todas as cidades ou todos os ns do grafo).

    Algoritmos Genticos - Captulo 10

  • RepresentaoExemplos:( 1 4 6 5 2 3 7), (1 2 3 4 5 6 7) e (7 5 3 1 2 4 6) so exemplos de cromossomos vlidos para um problema envolvendo sete ns. ( 1 6 2 5 7 4) no um cromossomo vlido, visto que o elemento 3 no est presente na nossa lista; (1 4 6 5 2 3 3 7) no um cromossomo vlido, pois o elemento 3 aparece duas vezes na nossa lista.

    Algoritmos Genticos - Captulo 10

  • AvaliaoA funo de avaliao, como j discutido anteriormente, deve representar a qualidade de cada um dos cromossomos;

    Caixeiro viajante: some a distncia entre a cidade contida no gene i cidade contida no gene i+1, i=0,1,...,n-1;

    Colorir um grafo: tomaremos os ns um a um, na ordem fornecida pelo cromossomo;designar-lhes-emos a primeira cor possvel;Se houver alguma cor possvel, somaremos seu peso;

    Agora s faltam os operadores...

    Algoritmos Genticos - Captulo 10

  • Crossover baseado em ordemVerso especial do operador de crossover de dois pontos e de crossover uniforme;Necessrio modificar operadores de modo que sempre geremos filhos vlidos dentro deste novo formato de representaono podemos simplesmente copiar posies do primeiro pai quando sortearmos um 1 e copiarmos posies do segundo pai quando sortearmos um 0;poderamos gerar um cromossomo com elementos repetidos.

    Algoritmos Genticos - Captulo 10

  • Crossover baseado em ordemA idia de ordenao relativa leva a um novo conceito de esquema para a representao baseada em ordem.Um esquema, agora, toda sub-lista de nosso cromossomo;Os don't cares correspondem a simplesmente ignorar a posio original de cada n do cromossomo;Exemplos de esquemas para o pai 1 da figura do slide anterior so (1 6 7), (1 4 3 2), (1 5), (6 4 7), etc. Note que no colocamos mais os coringas (*).

    Algoritmos Genticos - Captulo 10

  • Crossover baseado em ordemA partir desta nova viso dos cromossomos, genes e esquemas, podemos chegar ao seguinte algoritmo para atuao do crossover baseado em ordem que modifica o crossover de dois pontos:Selecione dois pontos de corteCopie para o filho 1 os elementos do pai 1 Faa uma lista dos elementos do pai 1 fora dos pontos de corte. Permute esta lista de forma que os elementos apaream na mesma ordem que no pai 2Coloque estes elementos nos espaos do pai 1 na ordem gerada no passo anteriorAnalogia Repita o processo para gerar o filho 2, substituindo o pai 1 pelo 2 e vice-versa

    Algoritmos Genticos - Captulo 10

  • Crossover baseado em ordemComo o crossover de dois pontos binrio, o nmero de esquemas que este operador pode manter limitado;H uma verso anloga ao funcionamento do crossover uniforme, que o seguinte: Gere uma string de bits aleatria do mesmo tamanho que os elementos (assim como no crossover uniforme)Copie para o filho 1 os elementos do pai 1 referentes quelas posies onde a string de bits possui um 1Faa uma lista dos elementos do pai 1 referentes a zeros da string de bitsPermute esta lista de forma que os elementos apaream na mesma ordem que no pai 2Coloque estes elementos nos espaos do pai 1 na ordem gerada no passo anteriorAnalogia Repita o processo para gerar o filho 2, substituindo o pai 1 pelo 2 e vice-versa

    Algoritmos Genticos - Captulo 10

  • Crossover baseado em ordemExemplo (omitindo o passo de analogia)

    Algoritmos Genticos - Captulo 10

  • Edge RecombinationExistem outras maneiras de fazer o crossover de dois cromossomos baseados em ordem;

    Possibilidade recombinao de arestas (edge recombination), ou ER;

    Conceito bsico: Informao importante em um cromossomo no a ordenao dos ns;Importantes so as arestas entre ns;Filhos gerados pelo crossover devem ser baseados na arestas entre os ns, e no na ordenao relativa entre eles.

    Algoritmos Genticos - Captulo 10

  • Edge RecombinationAlgoritmo bsico: Monte a lista de arestas existentes em cada um dos dois pais.Escolha o n inicial de um dos pais.Escolha uma dentre as arestas vlidas para o n escolhido, seguindo as seguintes recomendaes:Escolha o n ou cidade com menor nmero de arestas vlidasSe houver um empate, escolha uma dentre as vencedoras aleatoriamente.Se no houver arestas vlidas para o n escolhido, escolha qualquer uma aleatoriamente.Repita o processo at que no haja mais ns a escolher.

    Algoritmos Genticos - Captulo 10

  • Edge RecombinationExperimentos que indicam que a taxa de falha, em que no temos nenhuma aresta para escolher muito baixa (cerca de 1%);

    Operador ER preserva caractersticas estruturais do grafo subjacente nossa representao, ao preservar as arestas entre os ns que o formam.

    Algoritmos Genticos - Captulo 10

  • Crossover de mapeamento parcial Pode ser visto como um crossover de permutaes;Idia bsica: trocar uma seqncia intermediria entre os dois paisgarantindo no processo que ambos os filhos recebero o conjunto completo de ns existentes. Algoritmo:Escolhem-se dois pontos de corte aleatoriamente nos pais Faz-se o mapeamento de cada n entre os pontos de corte do primeiro pai com o do segundo pai.Em cada pai, ns fazemos a inverso das posies entre os elementos do mapeamento.

    Algoritmos Genticos - Captulo 10

  • Mutao baseada em ordem Mutao realiza mudanas locais em cromossomos;Na representao baseada em ordem:no h bits a inverter;no podemos designar valores aleatoriamente pois poderamos ter repeties de alguns ns enquanto outros ficariam de foratemos que operar com diversos genes de um mesmo cromossomo simultaneamente. Existem trs maneiras bsicas de faz-lo: permutao de elementos;mistura de sub-listas;a inverso de sub-lista.

    Algoritmos Genticos - Captulo 10

  • Mutao baseada em ordem permutao de elementos: escolhem-se dois elementos ao acaso dentro do nosso cromossomo;trocam-se as suas posies.Elementos Selecionados

    Algoritmos Genticos - Captulo 10

  • Mutao baseada em ordem Mistura de sublistas:Escolhem-se dois pontos de corte dentro do nosso cromossomo;Estes pontos delimitaro uma sub-lista. Faz-se uma permutao aleatria dos elementos desta sub-lista. Pontos de Corte

    Algoritmos Genticos - Captulo 10

  • Mutao baseada em ordem Inverso de sub-lista:Similar mistura de sub-lista;Inverte-se a lista sorteada, ao invs de se realizar uma mistura aleatria dos seus elementos. Pontos de CorteEra ltimo, virou primeiroEra segundo, virou penltimo

    Algoritmos Genticos - Captulo 10

  • Outros operadores de mutaoIdia: substituir (ou combinar) os operadores puramente aleatrios por outros mutao que tenham embutidas funes de otimizao local;

    A cada aplicao de um operador de mutao, ser encontrado um mximo local da funo de avaliao;

    Se usarmos elitismo, garantimos que o desempenho do GA ser pelo menos igual a de um mtodo de otimizao local inicializado no ponto corrente.

    Algoritmos Genticos - Captulo 10

  • Outros operadores de mutaoOperador de otimizao local o chamado 2-opt:verifica todos os pares de ns ou cidades existentes dentro do cromossomo;calcule qual seria a avaliao do cromossomo caso este par fosse invertido;faa a inverso que garante o maior ganho de avaliao para o cromossomo corrente. consiste em um algoritmo de hill climbing, otimizando a funo de avaliao dentro desta vizinhana;nmero de pares ordenados verificados:

    Algoritmos Genticos - Captulo 10

  • Outros operadores de mutaoMtodo pode ser expandido para avaliar combinaes de mais cidades dentro da populao, o que nos daria os mtodos 3-opt, 4-opt, etc;

    Propiciam uma anlise de uma vizinhana maior a cada iterao e por conseguinte, podem encontrar solues mais promissoras;

    Quando aumentamos em um o nmero de elementos nas combinaes, multiplicamos o nmero de indivduos avaliados por um fator proporcional a n;

    Tamanho da vizinhana cresce rapidamente e faz com que o GA possa se tornar excessivamente lento.

    Algoritmos Genticos - Captulo 10

  • Operador Inver-OverO operador Inver-Over um operador que trabalha de forma isolada, substituindo tanto o operador de crossover quanto o de mutao;Ele aplica uma forte seleo sobre os indivduos e usa um ou dois pais a cada iterao;Operador Inver-Over aplicado a todos os pais, ao invs de uma seleo de pais feita por algum mecanismo aleatrio; equivalente, de certa forma, a um processo de busca local, otimizando as conexes localmente para melhorar o indivduo corrente ao mximo. GAs que usam o operador Inver-Over costumam ser velozes e precisos, tendo atingido um resultado muito prximo da soluo tima em vrios casos de teste;no h um estudo terico formal que prove que esta situao se repetir em todos os problemas possveis.

    Algoritmos Genticos - Captulo 10

  • Operador Inver-OverAlgoritmo bsico:Selecione um pai Si da populaao.S SiSelecione aleatoriamente um n c de SRepitaSelecione um nmero ps aleatoriamenteSe ps
  • Operador Inver-OverAlgoritmo Bsico (cont)Se c adjacente a c entoSaia do loopFim SeInverta a seleo do n c at o n c em Sc cSe avaliao(S) melhor que avaliao(Si) ento Si SFim SeFim Repita

    Algoritmos Genticos - Captulo 10