Share
Embed
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
Transcript
154 slides
-
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 -
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 -
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. -
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; -
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. -
Assuntos • 1º Dia • Problemas de Otimização Combinatória •
Heurísticas • Algoritmos Genéticos • Inspiração Biológica • Teoria Darwinista da Evolução -
Assuntos • 2º Dia • Algoritmos Genéticos: Conceitos • Codificação
• Operadores Genéticos • Busca Genética -
Assuntos • 3º Dia • Problema dos Dois Prisioneiros •
Aplicações: Árvore de Steiner • Consequências das Taxas dos Operadores -
Assuntos • 4º Dia • Hibridização • Paralelismo • Tópicos
para Pesquisas Futuras • Bibliografia -
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 -
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 -
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. -
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; -
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; -
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. -
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³ -
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 -
Problemas de Otimização Combinatória Exemplo II: Max f(X) = X¹
+ X² Suj.: X¹, X² <= 2 X¹, X² >= 0 -
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. -
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. -
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. -
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. -
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. -
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. -
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... -
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; -
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). -
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 -
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. -
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. -
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. -
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. -
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 -
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 -
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. -
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? -
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. -
Heurísticas O que é melhor? (a) Solução exata de um
modelo aproximado; (b) Solução aproximada de um modelo exato. Problema Real Modelo -
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. -
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. -
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. -
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. -
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. -
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 -
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. -
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. -
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”. -
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?” -
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; -
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. -
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 -
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 -
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 -
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. -
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. -
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: -
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” -
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” -
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. -
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 -
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. -
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; -
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; -
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. -
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 -
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 -
Assuntos • 2º Dia • Algoritmos Genéticos: Conceitos • Codificação
• Operadores Genéticos • Busca Genética -
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. -
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. -
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; -
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; -
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; -
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; -
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; -
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 -
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. -
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; -
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; -
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; -
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. -
Assuntos • 2º Dia • Algoritmos Genéticos: Conceitos • Codificação
• Operadores Genéticos • Busca Genética -
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; -
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. -
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. -
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; -
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. -
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. -
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. -
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 -
Assuntos • 2º Dia • Algoritmos Genéticos: Conceitos • Codificação
• Operadores Genéticos • Busca Genética -
Operadores Genéticos Os operadores genéticos são divididos em: • Operador
de Cruzamento • Operador de Mutação -
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; -
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. -
Operadores Genéticos Podemos citar quatro tipos de cruzamento: • Cruzamento
de Um Ponto; • Cruzamento de Dois Pontos; • Cruzamento Uniforme; • Cruzamento Máscara -
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. -
Assuntos • 2º Dia • Algoritmos Genéticos: Conceitos • Codificação
• Operadores Genéticos • Busca Genética -
Busca Genética Espaço Codificado Espaço de Soluções Decodificação Codificação Operações
Genéticas Avaliação e Seleção -
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 -
Assuntos • 2º Dia • Algoritmos Genéticos: Conceitos • Codificação
• Operadores Genéticos • Busca Genética -
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 -
Assuntos • 3º Dia • Problema dos Dois Prisioneiros •
Aplicações: Árvore de Steiner • Consequências das Taxas dos Operadores -
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. -
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? -
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 -
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; -
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; -
Assuntos • 3º Dia • Problema dos Dois Prisioneiros •
Aplicações: Árvore de Steiner • Consequências das Taxas dos Operadores -
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. -
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). -
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. -
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. -
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; -
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; -
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; -
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. -
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 -
Assuntos • 3º Dia • Problema dos Dois Prisioneiros •
Aplicações: Árvore de Steiner • Consequências das Taxas dos Operadores -
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... -
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. -
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. -
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 -
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. -
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. -
Assuntos • 3º Dia • Problema dos Dois Prisioneiros •
Aplicações: Árvore de Steiner • Consequências das Taxas dos Operadores -
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 -
Assuntos • 4º Dia • Hibridização • Paralelismo • Tópicos
para Pesquisas Futuras • Bibliografia -
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. -
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”. -
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. -
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. -
Assuntos • 4º Dia • Hibridização • Paralelismo • Tópicos
para Pesquisas Futuras • Bibliografia -
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. -
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: -
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; -
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. -
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. -
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; -
Assuntos • 4º Dia • Hibridização • Paralelismo • Tópicos
para Pesquisas Futuras • Bibliografia -
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. -
Assuntos • 4º Dia • Hibridização • Paralelismo • Tópicos
para Pesquisas Futuras • Bibliografia -
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; -
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; -
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. -
Assuntos • 4º Dia • Hibridização • Paralelismo • Tópicos
para Pesquisas Futuras • Bibliografia -
Introdução aos Algoritmos Genéticos Filipe de Oliveira Saraiva e-mail: [email protected]
blog: www.liberdadenafronteira.blogspot.com