Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Mini-Curso de Algoritmos Genéticos

Filipe Saraiva
November 26, 2011

Mini-Curso de Algoritmos Genéticos

Apresentado durante a I Semana Acadêmica de Ciência da Computação da Universidade Federal do Piauí, 2008

Filipe Saraiva

November 26, 2011
Tweet

More Decks by Filipe Saraiva

Other Decks in Education

Transcript

  1. Introdução aos Algoritmos Genéticos Filipe de Oliveira Saraiva Semana Acadêmica

    de Ciência da Computação - UFPI Teresina, Piauí Outubro de 2008
  2. Licença Você pode: • Copiar, distribuir, exibir e executar a

    obra • Criar obras derivadas Sob as seguintes condições: • Atribuição • Uso não comercial • Compartilhamento pela mesma licença Obra sob licença Creative Commons Brazil 2.5 Alguns direitos reservados
  3. Sobre o Autor • Filipe de Oliveira Saraiva • Graduando

    em Ciências da Computação pela UFPI; • Pesquisador de Computação Heurística, Inteligência Artificial e Cibercultura; • Entusiasta do Software Livre; • Membro diretor da ENEC.
  4. Sobre este Mini-Curso • Objetivos: • Apresentar a heurística Algoritmos

    Genéticos em seu estado da arte; • Traçar um paralelo entre a Biologia e a Genética com os AG's; • Apresentar um histórico sobre a pesquisa de AG's; • Discutir as diversas características de um AG; • Apresentar e justificar diferentes tipos de codificação;
  5. Sobre este Mini-Curso • Objetivos: • Apresentar e conceituar os

    Operadores Genéticos; • Comentar algumas aplicações de AG's; • Conceituar problemas de Otimização Combinatória; • Discutir alguns tópicos pesquisados atualmente envolvendo AG's.
  6. Assuntos • 1º Dia • Problemas de Otimização Combinatória •

    Heurísticas • Algoritmos Genéticos • Inspiração Biológica • Teoria Darwinista da Evolução
  7. Assuntos • 3º Dia • Problema dos Dois Prisioneiros •

    Aplicações: Árvore de Steiner • Consequências das Taxas dos Operadores
  8. Introdução aos Algoritmos Genéticos Filipe de Oliveira Saraiva Semana Acadêmica

    de Ciência da Computação - UFPI Teresina, Piauí Outubro de 2008
  9. Introdução aos Algoritmos Genéticos • 1º Dia • Problemas de

    Otimização Combinatória • Heurísticas • Algoritmos Genéticos • Inspiração Biológica • Teoria Darwinista da Evolução
  10. Problemas de Otimização Combinatória Contam-se mais de 50 anos de

    pesquisa em problemas do tipo: Min f(X) Suj.: yi(X) >= bi ; i = 1, ..., M hj(X) = Cj ; j = 1, ..., N X é um vetor de variáveis de decisão.
  11. Problemas de Otimização Combinatória Caso: • f(.), g(.) e h(.)

    forem lineares: Problema de Programação Linear; • f(.), g(.) ou h(.) for não linear: Problema de Programação Não-Linear; • f(.), g(.) e h(.) forem lineares e uma variável for restrita aos inteiros: Problema de Programação Inteira;
  12. Problemas de Otimização Combinatória Exemplo I*: Uma fábrica desvia parte

    da água de um rio para ser utilizada em seu processo produtivo. Durante a produção, componentes tóxicos A e B são adicionados a água desviada, que depois volta ao rio. Se não tratada, essa água poluirá o rio com estes componentes. A concentração de A e B permitida pela vigilância sanitária são de aº e bº gramas por ML (milhões de litros) de água por dia. *= ARENALES, ARMENTANO, MORABITO e YANASSE; Pesquisa Operacional para Cursos de Engenharia;
  13. Problemas de Otimização Combinatória Exemplo I (continuação): A vazão do

    rio é de V ML por dia, e a fábrica precisa de pelo menos U ML de água por dia. Existem 3 tipos de tratamento que a empresa pode utilizar para diminuir a concentração resultante dos poluentes. Estes tratamentos tem custos diferenciados ($/ML) e resultam em níveis diferentes de concentração (gramas por ML) de cada um dos componentes.
  14. Problemas de Otimização Combinatória Exemplo I (continuação): O problema consiste

    em determinar a quantidade de água a ser tratada em cada tipo de tratamento, de modo que as exigências ambientais sejam atendidas e o custo total do tratamento seja mínimo. Tratamento 1 2 3 A a¹ a² a³ B b¹ b² b³ Custo/ML c¹ c² c³
  15. Problemas de Otimização Combinatória Exemplo I (continuação): Min f(X) =

    c¹x¹ + c²x² + c³x³ Suj.: x¹ + x² + x³ >= U x¹ + x² + x³ <= V (a¹x¹ + a²x² + a³x³)/V <= aº (b¹x¹ + b²x² + b³x³)/V <= bº x¹, x², x³ >= 0
  16. Problemas de Otimização Combinatória Tipos de Soluções: • Soluções Viáveis;

    • Soluções Inviáveis; • Soluções Ótimas. Os tipos de Soluções ficam explícitos no gráfico do Espaço de Busca.
  17. Problemas de Otimização Combinatória Problemas de Otimização Combinatória são aqueles

    nos quais as variáveis de decisão são discretas, onde a solução é um conjunto ou uma sequência de inteiros ou outros objetos discretos. Estes problemas possuem um número enorme de soluções viáveis.
  18. Problemas de Otimização Combinatória Exemplo III – Problema da Mochila:

    Um conjunto de N itens está disponível para ser colocado em uma mochila com capacidade C unidades. Cada item i possui valor Vi e usa Ci unidades de capacidade. Determinar o subconjunto de itens a serem colocados na mochila, de modo a maximizar o somatório de Vi, porém levando em conta a capacidade máxima C da mochila.
  19. Problemas de Otimização Combinatória Exemplo IV – Problema da Árvore

    de Steiner: Seja G=(N, A) um grafo não-orientado; X e W uma partição de N, tal que: O problema consiste em determinar um subconjunto de arcos B que ligue todos os nós W, de modo a minimizar o somatório do comprimento dos arcos de B. X⊆N ,W⊆N ,onde X∪W=N e X∩W=emptyset.
  20. Problemas de Otimização Combinatória Exemplo V - Problema do Caixeiro

    Viajante: Dado um conjunto N de cidades e uma matriz D de distância NxN, onde dij denota a distância da cidade i para a cidade j, com i,j = 1, 2, ..., n. Encontrar uma rota que visite cada cidade exatamente uma vez, e que tenha a distância total mínima.
  21. Problemas de Otimização Combinatória Exemplo VI – Problema de Job

    Shop: Também conhecido como “Programação de Tarefas”, pode ser definido por um conjunto de máquinas M e N tarefas, onde cada tarefa consiste em uma sequência ordenada de M operações. Cada operação deve ser processada em uma única máquina por um determinado tempo. As operações de uma mesma tarefa devem ser executadas em máquinas diferentes, e cada tarefa possui uma ordem particular de processamento. Determinar a sequência que completa em menor tempo possível as tarefas propostas.
  22. Problemas de Otimização Combinatória Os problemas de Otimização Combinatória tem

    uma ligação histórica com a Programação Linear. No início dos estudos de Pesquisa Operacional, diversos cientistas “atacavam” problemas de Otimização Combinatória através de técnicas da PL. Porém, não tardou aparecerem as dificuldades...
  23. Problemas de Otimização Combinatória Dificuldades: • Formulação dos Problemas: –

    Necessária muita habilidade para formular um problema de Otimização Combinatória; • Resolução: – As formulações frequentemente envolvem um número muito grande de variáveis e restrições, e os softwares de PL não conseguem resolver programas de grande porte;
  24. Problemas de Otimização Combinatória Dificuldades: • Ótimos Locais – Dada

    uma vizinhança N(X, O) e uma solução particular Y; se esta solução tiver melhor desempenho que todas as outras soluções da vizinhança N(X, O), dizemos que Y é um ótimo local para o problema dado; – Problemas de Otimização Combinatória, frequentemente, tem muitos ótimos locais, dificultando a busca pelo Ótimo Globlal (Solução Ótima).
  25. Introdução aos Algoritmos Genéticos • 1º Dia • Problemas de

    Otimização Combinatória • Heurísticas • Algoritmos Genéticos • Inspiração Biológica • Teoria Darwinista da Evolução
  26. Heurísticas O crescente interesse na resolução de Problemas de Otimização

    Combinatória levou os cientistas a utilizarem técnicas da PL no intuito de resolver tais problemas – e o avanços nesses estudos mostraram a dificuldade desse tipo de abordagem.
  27. Heurísticas Apesar das dificuldades citadas no tópico anterior, era senso

    comum entre os pesquisadores que o desenvolvimento de computadores mais potentes seria suficiente para a resolução de problemas de Otimização Combinatória – porém, essa expectativa foi furstrada pelo desenvolvimento da teoria da complexidade computacional.
  28. Heurísticas Complexidade Computacional • A Complexidade Computacional mede, em termos

    de polinômio, o custo computacional necessário de tempo de processamento dado o tamanho da entrada; • Existem problemas, conhecidos como NP-Completos, nos quais a definição de sua complexidade não se dá através de um polinômio.
  29. Heurísticas Essa relação não-polinomial do tempo de execução acarreta duas

    consequências: • Que o esforço computacional para a solução exata de problemas desse tipo é demasiado grande, consumindo muitos ciclos de processamento; • O uso de memória é também grande, sendo comum o estouro de memória no uso de métodos exatos.
  30. Heurísticas Por exemplo, segundo Reeves*: Dado o Problema do Caixeiro

    Viajante e um computador capaz de listar todas as possíveis soluções desse problema, na instância de 20 cidades, em uma hora, através do método de Enumeração Completa. O Problema do Caixeiro Viajante tem (n – 1)! + 1 Possíveis soluções (n = número de cidades). *= REEVES, Modern Heuristics Techniques in Modern Heuristics Search Methods
  31. Heurísticas Por exemplo, segundo Reeves (continuação): Esse mesmo computador resolveria

    as seguintes instâncias do Caixeiro Viajante em: N (cidades) Tempo 21 20 horas 22 … 25 17,5 dias … 6 séculos
  32. Heurísticas Não existe uma teoria que garanta a não existência

    de algoritmos exatos para os problemas de Otimização Combinatória; porém, a maioria dos cientistas estão convictos disso. Existem muitos problemas de Otimização Combinatória que são NP-Completos.
  33. Heurísticas Como apresentado, vários desses problemas tem larga aplicação nas

    indústrias, organizações e demais entidades desse tipo. Como então continuar os estudos nessa área, visto sua importante aplicabilidade somado a grandes dificuldades?
  34. Heurísticas Os cientistas passam então a desenvolver o conceito de

    heurísticas. Tratam-se de métodos computacionais de busca por boas soluções (não necessariamente ótimas), a um custo computacional viável.
  35. Heurísticas O que é melhor? (a) Solução exata de um

    modelo aproximado; (b) Solução aproximada de um modelo exato. Problema Real Modelo
  36. Heurísticas Certamente, não podemos esperar um modelo verdadeiramente exato do

    problema, mas heurísticas são flexíveis e capazes o suficiente em lidar com funções objetivo e/ou restrições mais complicadas (e mais realistas) do que algoritmos exatos.
  37. Heurísticas As heurísticas dividem-se em quatro tipos: • Construtivas –

    Começam com uma solução incompleta, e vão incrementando elementos do problema até achar uma solução; • Melhoramento (Refinamento) – Começa com uma solução completa, que será gradualmente modificada buscando aperfeiçoar essa solução inicial.
  38. Heurísticas • Análise de Componentes – Baseada na abordagem “dividir

    para conquistar”, trata-se de métodos que dividem os problemas em componentes menores, tentando resolvê-los para depois uni-los e formar uma solução para o problema; • Aprendizagem – As diferentes opções são analisadas e combinadas como ramos de uma árvore; assim, com a definição de algum método, a busca pela melhor solução dar-se-á nesses ramos.
  39. Heurísticas A partir dos estudos preliminares, vários métodos heurísticos foram

    desenvolvidos ao passar dos anos. Apesar do conceito um tanto desanimador, a maioria das heurísticas modernas estão em um nível de desenvolvimento suficiente para serem consideradas boas alternativas para a resolução de problemas desse tipo.
  40. Heurísticas Os cientistas buscaram inspiração em variados temas e estudos

    para o desenvolvimento de heurísticas. Entre eles, houveram aqueles que foram buscar nos intricados processos biológicos evolutivos alguns dos conceitos-chave para a definição de um método que simulasse tal processo para a resolução de problemas NP.
  41. Introdução aos Algoritmos Genéticos • 1º Dia • Problemas de

    Otimização Combinatória • Heurísticas • Algoritmos Genéticos • Inspiração Biológica • Teoria Darwinista da Evolução
  42. Algoritmos Genéticos Algoritmos Genéticos consistem na simulação da dinâmica evolucionária

    das espécies, segundo a teoria darwinistas e genética, de forma a evoluir populações de soluções em busca de resultados cada vez melhores para um problema dado.
  43. Algoritmos Genéticos O início das pesquisas em AG deu-se com

    os trabalhos de John Holland em 75, após a publicação de sua tese Adaptation in natural and artificial systems pela University of Michigan.
  44. Algoritmos Genéticos Desde então, AG's tornaram-se uma das heurísticas mais

    pesquisadas no ramo. Inclusive, junto com Colônia de Formigas, Programação Genética e Redes Neurais, deram origem a um ramo da computação conhecido como “Computação Natural” ou “Computação Evolucionária”.
  45. Algoritmos Genéticos Porém, no início das pesquisas, Holland relata na

    segunda edição de seu livro que era normal ouvir comentários como: “Isso certamente não tem nada haver com Inteligência Artificial” “Por que alguém estudaria aprendizado pela imitação de um processo que leva bilhões de anos?”
  46. Algoritmos Genéticos Algumas características de AG's: • Agem sobre uma

    população de indivíduos (soluções para um problema); • Os indivíduos são representados (codificados) por uma sequência de bits, a qual chamamos cromossomo;
  47. Algoritmos Genéticos • O Operador de Seleção indica quais indivíduos

    poderão reproduzir a próxima geração, perpetuando assim seus genes; • Os Operadores Genéticos simulam nessa população as ações de cruzamento (crossover) e mutação existentes na dinâmica natural das espécies; • Faz-se então a próxima geração da população, que tornará a efetuar as operações do AG até o critério de parada ser atingido.
  48. Algoritmos Genéticos • Indivíduo = Possível Solução para o Problema

    • População = Conjunto de Indivíduos • Cromossomo = Representação de um Indivíduo • Gene = Representação mínima do cromossomo • Seleção = Operador que indica os indivíduos que irão cruzar • Cruzamento = Operador que “cruza” genes dos indivíduos
  49. Algoritmos Genéticos • Mutação = Operador que “permuta” um gene

    aleatoriamente • Geração = Ciclo do AG em que ocorre mudança na população com a qual se está trabalhando
  50. Introdução aos Algoritmos Genéticos • 1º Dia • Problemas de

    Otimização Combinatória • Heurísticas • Algoritmos Genéticos • Inspiração Biológica • Teoria Darwinista da Evolução
  51. Inspiração Biológica A questão da simulação da dinâmica evolucionária das

    espécies já mostra a forte influência biológica para a definição de um AG. A nomenclatura das características de um AG também são retiradas diretamente da literatura biológica-evolucionária.
  52. Inspiração Biológica Gregor Mendel, "o pai da genética", como é

    conhecido, dedicou-se ao estudo do cruzamento de muitas espécies: feijões, chicória, bocas-de- dragão, plantas frutíferas, abelhas, camundongos e, principalmente, ervilhas cultivadas na horta do mosteiro onde vivia, analisando os resultados matematicamente durante cerca de sete anos.
  53. Inspiração Biológica Seus estudos chegaram ao enunciado das chamadas “Leis

    de Mendel”, das quais as duas primeiras tiveram influência decisiva no processo de construção da teoria de AG's, em especial nas questões que tangem ao Operador de Cruzamento:
  54. Inspiração Biológica • 1ª Lei de Mendel: características herdadas são

    passadas igualmente por cada um dos pais, e, em vez de se misturarem, elas se mantêm separadas. • Também conhecida como “Lei da Segregação”
  55. Inspiração Biológica • 2ª Lei de Mendel: a contribuição de

    cada pai com um fator é algo governado pelas leis da probabilidade. • Conhecida como “Lei da Variação Independente”
  56. Inspiração Biológica As obras de Mendel tem uma importância fundamental

    para a genética, em conjunto com a Teoria Evolucionária de Darwin. Por conta disso, a associação entre estas duas teorias também formam a base para a definição de AG's.
  57. Introdução aos Algoritmos Genéticos • 1º Dia • Problemas de

    Otimização Combinatória • Heurísticas • Algoritmos Genéticos • Inspiração Biológica • Teoria Darwinista da Evolução
  58. Teoria Darwinista da Evolução O naturalista inglês Charles Darwin formulou

    a teoria da evolução através da Seleção Natural. A bordo do navio Beagle, Darwin viajou o mundo coletando e estudando animais e vegetais de várias espécies, teorizando sobre a relação entre populações de uma mesma espécie com características diferentes em habitats também diferentes.
  59. Teoria Darwinista da Evolução Com a publicação do livro “A

    Origem das Espécies”, Darwin colocou para a ciência e para a sociedade da época sua teoria evolucionária: • Os indivíduos de uma espécie que conseguissem melhor se adaptar ao meio, teria mais chance de procriar e passar seus genes para a próxima geração – Seleção Natural; • Os filhos seriam resultados do cruzamento dos genes dos pais;
  60. Teoria Darwinista da Evolução • Aleatoriamente, algum gene de um

    indivíduo poderia sofrer um processo de mutação, não descendendo então esse gene de nenhum de seus pais; • Como os mais aptos passariam seus genes adiante, espera-se que as gerações da espécie sejam cada vez melhores adaptadas ao habitát;
  61. Teoria Darwinista da Evolução O conceito de Seleção Natural, presente

    na teoria de Darwin, em conjunto com a idéia da maior adaptabilidade da população de acordo com a geração, foram de extrema importância para o desenvolvimento dos AG's, visto que estas teorias embasam um dos principais mecanismos da heurística.
  62. Introdução aos Algoritmos Genéticos • 1º Dia • Problemas de

    Otimização Combinatória • Heurísticas • Algoritmos Genéticos • Inspiração Biológica • Teoria Darwinista da Evolução
  63. Introdução aos Algoritmos Genéticos Filipe de Oliveira Saraiva Semana Acadêmica

    de Ciência da Computação - UFPI Teresina, Piauí Outubro de 2008
  64. Algoritmos Genéticos: Conceitos Todo AG, durante sua execução, passará pelas

    seguintes etapas: – Criação da População Inicial; – Seleção de indivíduos para cruzamento; – Cruzamento; – Mutação; – Criação da prole; – Criação da próxima Geração; – Avaliação do Critério de Parada.
  65. Algoritmos Genéticos: Conceitos Uma importante questão não listada nas etapas

    tem haver com a Codificação e a Decodificação. Essas características são de extrema importância para caracterizarmos o desempenho de um AG; porém, deixaremos para tratá-las pouco mais a frente.
  66. Algoritmos Genéticos: Conceitos • População Inicial • Comumente, a população

    inicial é gerada de forma aleatória. O projetista do AG deve levar em consideração algumas questões durante a modelagem: – O tamanho da População Inicial, normalmente, será também o tamanho das demais gerações do AG;
  67. Algoritmos Genéticos: Conceitos – Uma população pequena, tornará o AG

    bastante rápido e com baixo custo computacional; porém não haverá uma busca mais extensiva do espaço de busca; – Já uma população grande tornará o AG mais demorado, utilizando muitos ciclos de processamento e mais memória; porém, é garantida uma busca mais completa, verificando mais áreas do espaço de busca; – Muitos trabalhos, dependendo do problema, utilizam uma população de 50 indivíduos, em média;
  68. Algoritmos Genéticos: Conceitos – Ainda na fase de geração da

    população inicial, o projetista deve estar atento para a geração de indivíduos que representam uma solução inviável – o que fazer com eles? – Dependendo do problema, eles poderíam ser descartados, alterados para trazê-los à viabilidade ou ainda poderíam ser mantidos na população, porém sofrendo uma penalidade na sua função de adaptação;
  69. Algoritmos Genéticos: Conceitos • Seleção dos indivíduos para cruzamento •

    Pela teoria darwinista da Seleção Natural, aqueles indivíduos melhores adaptados ao meio, terão mais chance de procriar e passar seus genes para as gerações posteriores; • Em AG's, essa característica é dada pelo valor da função de adaptação (ou função objetivo) para um dado indivíduo;
  70. Algoritmos Genéticos: Conceitos • O cromossomo do indivíduo passa pelo

    processo de decodificação, onde é nos possível saber seu desempenho para a função de adaptação; • Um dos métodos mais utilizados para a Seleção é o Método da Roleta – O Método da Roleta é um método probabilístico de seleção, que tenta simular a dinâmica de seleção das espécies;
  71. Algoritmos Genéticos: Conceitos – Nele, soma-se os valores da função

    de desempenho da dos indivíduos da atual população; após, cria-se um número randômico entre [1 - ]; com esse número, somamos novamente os indivíduos até aquele em que o valor chegar a esse número – assim, teremos um indivíduo para o cruzamento; – Repetimos o processo para selecionar outro indivíduo, até o número de cruzamentos desejado. ∑desempenho dosindivíduos
  72. Algoritmos Genéticos: Conceitos – Nesse momento, também deve ser avaliada

    a forma da penalidade que será dada a indivíduos inviáveis, caso eles estejam na população; – Também é bom ressaltar que, em alguns casos, um indivíduo por ter um bom desempenho, poderá cruzar muitas vezes; com o tempo, as gerações acabarão por tornar-se homogêneas; – Pode-se aplicar uma penalidade a esse indivíduo, como um limite na quantidade de cruzamentos.
  73. Algoritmos Genéticos: Conceitos • Após a seleção, o AG passa

    ao processo de Cruzamento, onde os genes dos indivíduos-pais são trocados seguindo algum critério pré-definido pelo Operador de Cruzamento; • Em seguida, os indivíduos gerados são submetidos ao processo de Mutação;
  74. Algoritmos Genéticos: Conceitos • Após essas duas fases, deve-se fazer

    uma verificação dos indivíduos gerados, afim de submeter a estes as mesmas restrições utilizadas para indivíduos gerados aleatoriamente na População Inicial; • Quando os processos de Seleção, Cruzamento e Mutação ocorrem o número de vezes especificados, teremos um conjunto de soluções das quais iremos gerar a próxima geração;
  75. Algoritmos Genéticos: Conceitos • No projeto de um AG, devemos

    atentar para as políticas de constituição das gerações. Entre as opções que podemos elencar: – Toda geração é constituída apenas pela prole, descartando todos os indivíduos da geração anterior; – Utilizamos Elitismo na geração, de forma que uma porcentagem dos melhores indivíduos da geração passada compõem a nova geração; – Guardamos o melhor indivíduo encontrado;
  76. Algoritmos Genéticos: Conceitos • Cada vez que é criada uma

    nova Geração, deve-se avaliar o critério de parada do AG. Existem várias maneiras de definí-lo: – Número de Gerações; – Um valor pré-definido encontrado em qualquer indivíduo de uma geração; – Limite de Tempo; – Combinação de mais de um critério de parada.
  77. Codificação A questão da Codificação é uma das características de

    maior importância para o desempenho do AG, ao lado do Operador de Cruzamento. • A Codificação garantirá a representação dos indivíduos de forma a serem suscetíveis aos operadores genéticos;
  78. Codificação • A Codificação está intimamente relacionada com a magnitude

    do espaço de busca, e como se dará a geração (ou não) de indivíduos inviáveis; • Por conta disso, a Codificação terá influência decisiva no custo computacional para a resolução do problema.
  79. Codificação Os primeiros estudos sobre AG, desde Holland, utilizaram a

    codificação binária (0 – 1) para representar soluções. Talvez, essa linha nos estudos seja derivada ainda das pesquisas que tentaram resolver problemas de Otimização Combinatória através de métodos da Programação Inteira.
  80. Codificação Representação Binária – 0 onde não há rainhas; 1

    onde elas estão. • Para isso, precisaríamos de um cromossomo de tamanho 64 para cada indivíduo; • Soluções Inviáveis não seriam evitadas;
  81. Codificação Uma representação inteira poderia ser feita através de 8

    pares ordenados (x, y), onde x indica a posição no eixo abscissa e y a posição no eixo da ordenada. • Para essa representação, precisaríamos de cromossomos com 8 genes, para representar 16 bits; • Essa representação não impede a presença de soluções inviáveis.
  82. Codificação Uma representação inteira alternativa, seria feita através de 8

    bits, onde cada bit seria uma rainha em cada coluna e o número nesse bit indicaria a linha em que está a rainha. • Essa representação reduz bastante o custo computacional em comparação com as outras representações apresentadas; • Ela ainda permite a representação de soluções inviáveis, mas em menor número do que outras representações.
  83. Codificação Uma representação inteira alternativa para o Problema da Mochila

    seria através de cromossomos que contivessem a ordem preferencial de entrada de itens na mochila.
  84. Codificação • Exemplo: – Cromossomo: [1 6 4 7 3

    2 5] – Solução Decodificada: (1 6 4 5) Item 1 2 3 4 5 6 7 Peso 40 50 30 10 10 40 30 Valor 40 60 10 10 3 20 60 Cap.: 100
  85. Operadores Genéticos Existem muitas formas de se implementar tanto o

    Operador de Cruzamento quanto o Operador de Mutação; Para o desempenho do AG, o Operador de Cruzamento tem importância predominante sob o Operador de Mutação;
  86. Operadores Genéticos Operador de Cruzamento • Responsável pela troca dos

    genes entre cromossomos pais que passaram pela etapa de Seleção, de forma a criar novos indivíduos descendentes destes escolhidos.
  87. Operadores Genéticos Podemos citar quatro tipos de cruzamento: • Cruzamento

    de Um Ponto; • Cruzamento de Dois Pontos; • Cruzamento Uniforme; • Cruzamento Máscara
  88. Operadores Genéticos Operador de Mutação • Responsável pela presença de

    novos tipos de gene na população, garantindo assim uma diversidade mínima na mesma. • O Operador de Mutação, normalmente, tem um valor muito baixo, simulando a raridade com a qual o fenômeno ocorre também na natureza.
  89. Busca Genética Mapeamento 1 para 1 é o melhor Mapeamento

    1 para n é o mais indesejável Espaço Codificado Espaço de Soluções 1 para n 1 para 1 Operações Genéticas Avaliação e Seleção n para 1
  90. Introdução aos Algoritmos Genéticos Filipe de Oliveira Saraiva Semana Acadêmica

    de Ciência da Computação - UFPI Teresina, Piauí Outubro de 2008
  91. Assuntos • 3º Dia • Problema dos Dois Prisioneiros •

    Aplicações: Árvore de Steiner • Consequências das Taxas dos Operadores
  92. Problemas Dois Prisioneiros Dois suspeitos, A e B, são presos

    pela polícia. A polícia tem provas insuficientes para os condenar, mas, separando os prisioneiros, oferece a ambos o mesmo acordo: se um dos prisioneiros, confessando, testemunhar contra o outro e esse outro permanecer em silêncio, o que confessou é recompensado enquanto o cúmplice silencioso é punido. Se ambos ficarem em silêncio, a polícia punirá os dois levemente. Se ambos traírem-se mutuamente, cada um será torturado.
  93. Problemas Dois Prisioneiros Cada prisioneiro faz a sua decisão sem

    saber que decisão o outro vai tomar, em uma “história” de três decisões, e nenhum tem certeza da decisão do outro. A questão que o dilema propõe é: o que vai acontecer? Como o prisioneiro vai reagir?
  94. Problemas Dois Prisioneiros PA – Pontuação do Prisioneiro A PB

    – Pontuação do Prisioneiro B Prision. A Prision. B PA PB Delata Delata 3 3 Delata Coopera 0 5 Coopera Delata 5 0 Coopera Coopera 5 5
  95. Problemas Dois Prisioneiros Veremos agora como um AG pode ser

    utilizado para aprender uma estratégia para o Problema dos Dois Prisioneiros. • Gerar uma “população de estratégias”; • A Função Adaptação será a pontuação das estratégias; • A população será afetada pelos operadores genéticos, afim de construirmos outros indivíduos;
  96. Problemas Dois Prisioneiros • O objetivo do problema é encontrar

    um valor mínimo da função de adaptação, de forma que os prisioneiros sofram o menos possível após as três decisões. Projetando um AG: • Escolher a Codificação; • Escolher o tipo de seleção, cruzamento e mutação; • Escolher o tamanho da população e o critério de parada;
  97. Assuntos • 3º Dia • Problema dos Dois Prisioneiros •

    Aplicações: Árvore de Steiner • Consequências das Taxas dos Operadores
  98. Aplicações: Árvore de Steiner Seja G=(N, A) um grafo não-orientado;

    X e W uma partição de N, tal que: O problema consiste em determinar um subconjunto de arcos B que ligue todos os nós W, de modo a minimizar o somatório do comprimento dos arcos de B. X⊆N ,W⊆N ,onde X∪W=N e X∩W=emptyset.
  99. Aplicações: Árvore de Steiner (a) Um grafo mostrando Vértices Especiais

    (circulados). (b) A solução do PAS com os Vértices de Steiner (entre os retângulos).
  100. Aplicações: Árvore de Steiner Existem diversas aplicações para o PAS.

    Dentre elas, destacam-se: • Projeto de circuitos eletrônicos; • Planejamento de redes de comunicação; • Tubulações de gás e óleo; • Distribuição de água para irrigação e redes de drenagem; • Projetos de instalação de redes elétricas e mecânicas; • Edificações; • Tráfego em redes de comunicação.
  101. Aplicações: Árvore de Steiner Como, no caso geral, o PAS

    é NP, métodos convencionais de resolução mostram-se ineficientes devido ao alto custo computacional despendido para a resolução do problema. Em geral, seria preciso analisar todas as possibilidades, uma por vez, para se identificar o valor ótimo do problema.
  102. Aplicações: Árvore de Steiner Características do AG implementado: • Codificação

    binária, indicando quais vértices de Steiner estão na solução; • O tamanho do cromossomo será igual ao número total de vértices do problema menos o número de vértices especiais; • O operador de cruzamento será do tipo um ponto aleatório; • O operador de mutação terá valor 0,05;
  103. Aplicações: Árvore de Steiner • O Algoritmo de Prim será

    utilizado para a decodificação, passando o valor da função de adaptação, e também para analisar a viabilidade das soluções; • Caso seja encontrada uma solução inviável, o AG irá descartá-la; • O tamanho da população será de 40, e o critério de parada será na geração 50;
  104. Aplicações: Árvore de Steiner • Cada geração será constituída apenas

    por indivíduos formados pelos métodos genéticos da geração anterior; • Porém, só será membro da geração os indivíduos que tiverem sua função de adaptação igual ou menor que o indivíduo com o pior desempenho da atual geração;
  105. Aplicações: Árvore de Steiner O AG foi testado nas instâncias

    B da OR-Library, de Beasley, onde existe um conjunto de grafos que variam de exemplos com 50 vértices, 63 arestas e 9 vértices especiais até 100 vértices, 200 arestas e 50 vértices especiais.
  106. Aplicações: Árvore de Steiner 1 2 3 4 5 6

    7 8 9 10 11 12 13 14 15 16 17 18 0 50 100 150 200 250 300 350 Representação gráfica do Custo Ótimo e Melhor Valor Encontrado Custo Ótimo Melhor Valor Encon- trado
  107. Assuntos • 3º Dia • Problema dos Dois Prisioneiros •

    Aplicações: Árvore de Steiner • Consequências das Taxas dos Operadores
  108. Consequência das taxas dos Operadores Para o projeto de um

    AG, o desenvolvedor deverá se preocupar com muitas características a serem utilizadas pelo programa, com relação as taxas de cruzamento, mutação, codificação, tamanho da população, número de gerações...
  109. Consequência das taxas dos Operadores Todos esses parâmetros deverão ser

    analisados e configurados de acordo com o problema a ser resolvido e a experiência do próprio projetista. Um bom projetista sempre deve estar atento a literatura específica da área, pesquisando as últimas implementações e analisando suas características.
  110. Consequência das taxas dos Operadores Colocado isso, deve-se assumir que

    AG's são heurísticas que devem ser adaptadas a cada problema e caso, e não um método fechado e único para qualquer tipo de implementação.
  111. Consequência das taxas dos Operadores Espaço Codificado Espaço de Soluções

    Decodificação Codificação Operações Genéticas Avaliação e Seleção
  112. Consequência das taxas dos Operadores O AG costuma convergir, ao

    passar de um certo número de gerações, para uma população uniforme, representando apenas um pequeno espaço no espaço de busca total das soluções. Ter uma busca em um espaço maior, a um custo computacional razoável, é interessante para obtermos uma probabilidade maior de termos uma boa resposta.
  113. Consequência das taxas dos Operadores O valor dos operadores genéticos

    poderão impedir uma convergência abrupta das gerações. Um valor maior para mutação poderá criar uma maior diversidade na população; porém, a convergência não será impedida. É possível também gerar indivíduos aleatoriamente em uma geração que não seja a inicial - migração.
  114. Assuntos • 3º Dia • Problema dos Dois Prisioneiros •

    Aplicações: Árvore de Steiner • Consequências das Taxas dos Operadores
  115. Introdução aos Algoritmos Genéticos Filipe de Oliveira Saraiva Semana Acadêmica

    de Ciência da Computação - UFPI Teresina, Piauí Outubro de 2008
  116. Hibridização Veremos, de maneira geral, como os AG's podem ter

    seu desempenho melhorado através de outras técnicas da inteligência computacional, principalmente por heurísticas baseadas em métodos de busca local.
  117. Hibridização Uma das características mais importantes dos AG's é o

    fato do mesmo fazer uma busca intensiva em um espaço muito grande, o que alguns pesquisadores chamam de “otimização global”.
  118. Hibridização Porém, após a convergência, o AG não necessariamente encontra-se

    no ótimo local para aquele subespaço de busca. Nesse momento, fica ainda muito difícil o AG chegar em um resultado melhor através dos operadores genéticos convencionais.
  119. Hibridização Métodos como “Subida de Encosta”, quando utilizados junto ao

    Genético, possibilitam uma busca local a baixo custo, após a otimização global da população feita pelo AG.
  120. Paralelismo Cada processador tem um limite na sua capacidade de

    processamento. Uma forma de aumentar essa capacidade é comprar máquinas mais potentes. Outra maneira é você distribuir o a execução em múltiplos processadores e compartilhar a memória, através das técnicas da Computação Distribuída ou Paralela.
  121. Paralelismo Os AG's são grandes candidatos para a construção de

    um Sistema Distribuído, visto a sua estrutura de evoluir populações. A forma como o AG poderá ser distribuído deverá levar em conta a estrutura da busca pelo espaço de soluções possíveis. Veremos alguns tipos de paralelização:
  122. Paralelismo Panmitic • Esse é o tipo mais simples de

    AG Paralelo. Ele consiste em vários AG's executando um em cada processador, sob uma população única; • Os processadores sincronizam na avaliação do operador de seleção, e cada um submete os processos genéticos aos indivíduos selecionados;
  123. Paralelismo • Dessa forma, podemos ter várias operações de seleção,

    cruzamento e mutação simultaneamente, ganhando tempo com a distribuição; • O problema é que teremos um conjunto de novos indivíduos e de pais previamente existentes que são candidatos a compor a nova população; • Assim, teremos que resolver essa questão através de modelos de sistemas distribuídos para gerar a nova população.
  124. Paralelismo • Island • Os biólogos perceberam que, populações em

    ambientes isolados (tipo ilhas), geram indivíduos melhores adaptados às peculiaridades desse ambiente do que ambientes de maior extensão; • Em populações pequenas e isoladas, temos uma pressão seletiva mais forte, mas as mudanças genéticas favoráveis se espalharão mais rapidamente.
  125. Paralelismo • Essa teoria chama-se Equilíbrio Pontual, e os pesquisadores

    de AG resolveram transportar essa idéia para a heurística; • Assim, nesse modelo Island, temos uma população inicial divida em nichos pequenos, submetidas a um AG independente para cada processador; • Periodicamente, indivíduos de nichos diferentes são trocados, no processo de migração;
  126. Tópicos para Pesquisas Futuras • Incorporar interações ecológicas; • Incorporar

    interações sociais; • Incorporar novas idéias da genética; • Buscar novas técnicas de codificação; • Hibridizar com técnicas já existentes.
  127. Bibliografia • Otimização Combinatória – GOLDBARG, M. C.; LUNA, H.

    P. L. Otimização Combinatória e Programação Linear, Editora Campus, Rio de Janeiro 2005; – FURTADO, Antonio L. Teoria dos Grafos: Algoritmos, Livros Técnicos e Científicos Editora S.A., Rio de Janeiro, 1973;
  128. Bibliografia • Algoritmos Genéticos – COLEY, David A. An Introduction

    to Genetic Algorithms for Scientists and Engineers, World Scientific Publishing, 1999; – LINDEN, Ricardo. Algoritmos Genéticos – Uma importante ferramenta da Inteligência Computacional, Brasport, 2006; – REZENDE, Solange Oliveira (org.). Sistemas Inteligentes – Fundamentos e Aplicações, Editora Manole, São Paulo, 2003;
  129. Bibliografia • Leituras Recomendadas – HOLLAND, John. Adaptation in Natural

    and Artificial Systems. – MICHALEWICZ, Zbigniew. Genetic Algorithms + Data Structures = Evolution Programs. – DARWIN, Charles. A Origem das Espécies.