Escolar Documentos
Profissional Documentos
Cultura Documentos
Teoria da Evoluo
At o sculo XIX os cientistas mais proeminentes acreditavam em duas teorias principais: Criacionismo (Deus criou o universo da forma que ele hoje) Gerao espontnea (a vida surge de essncias presentes no ar). Em torno de 1850 Charles Darwin fez uma longa viagem no navio HMS Beagle. Ele visitou vrios lugares e sua grande habilidade para observao permitiu que ele percebesse o seguinte: animais da mesma espcie eram ligeiramente diferentes que seus parentes em outros ecossistemas diferentes cada grupo era mais adaptado s necessidades e oportunidades oferecidas pelo seu ecossistema especfico.
Teoria da evoluo
Indivduos com uma melhor adequao do seu fentipo ao meio ambiente (fitness melhor) reproduzem mais. Ao reproduzirem mais, tm mais chances de passar seus genes para a prxima gerao. Entretanto, graas aos operadores genticos (recombinao e mutao) os cromossomos dos filhos no so exatamente iguais aos dos pais. Assim, eles podem evoluir e se adaptar cada vez mais aos meio ambiente que os cerca.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 3
Algoritmos Evolucionrios
Algoritmos evolucionrios usam modelos computacionais dos processos naturais de evoluo como uma ferramenta para resolver problemas. H uma grande variedade de modelos computacionais. Em comum: Conceito de simulao da evoluo das espcies Uso de operadores de seleo, mutao e reproduo Todos os processos dependem do "desempenho" dos indivduos desta espcie dentro do "ambiente".
Algoritmos Evolucionrios
Mantm uma populao de estruturas, denominadas indivduos ou cromossomos Comportam-se de forma semelhante evoluo das espcies. A estas estruturas so aplicados os chamados operadores genticos, como recombinao e mutao, entre outros. Cada indivduo recebe uma avaliao que uma quantificao da sua qualidade como soluo do problema em questo. Baseado nesta avaliao sero aplicados os operadores genticos de forma a simular a sobrevivncia do mais apto.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 5
Exemplos de soluo
Temos que levar para o computador os seguintes conceitos: Temos vrios indivduos (populao); Todos so avaliados; Os melhores reproduzes mais vezes; Existe algo como os genes que codificam as caractersticas; Os filhos compartilham caractersticas de ambos os pais; Os indivduos morrem com o passar do tempo.
Algoritmos Evolucionrios
Pseudo-Cdigo T:=0 Inicializa_Populao P(0) Enquanto no terminar faa Avalie_Populao P(t) P':=Selecione_Pais P(t) P'=Recombinao_e_mutao P' Avalie_Populao P' P(t+1)=Selecione_sobreviventes P(t),P' t:=t+1 Fim enquanto
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 10
Algoritmos Evolucionrios
So extremamente dependentes de fatores estocsticos (probabilsticos), tanto na fase de inicializao da populao quanto na fase de evoluo (durante a seleo dos pais, principalmente). Seus resultados raramente sejam perfeitamente reprodutveis. Algoritmos evolucionrios so heursticas que no asseguram a obteno do melhor resultado possvel em todas as suas execues.
11
Concluso Razovel
Se voc tem um algoritmo com tempo de execuo longo o suficiente para soluo de um problema, ento no h nenhuma necessidade de se usar um algoritmo evolucionrio.
Os algoritmos evolucionrios entram em cena para resolver aqueles problemas cujos algoritmos so extraordinariamente lentos (problemas NP-completos) ou incapazes de obter soluo (como por exemplo, problemas de maximizao de funes multi-modais).
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 12
Algoritmos Genticos
Algoritmos genticos (GA) so um ramo dos algoritmos evolucionrios Como tal podem ser definidos como uma tcnica de busca baseada numa metfora do processo biolgico de evoluo natural. Os algoritmos genticos so tcnicas heursticas de otimizao global So algoritmos de busca baseados nos mecanismos de seleo natural e gentica.
13
Algoritmos Genticos
Populaes de indivduos so criados e submetidos aos operadores genticos: Seleo Recombinao (crossover) Mutao. Estes operadores utilizam uma caracterizao da qualidade de cada indivduo como soluo do problema em questo chamada de avaliao Geram um processo de evoluo natural destes indivduos Eventualmente gerar um indivduo que caracterizar uma boa soluo (talvez at a melhor possvel) para o nosso problema.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 14
Esquema de um GA
Graficamente:
Cortes a serem efetuados :
Filho 1 : Filho 2 :
Seleo
Avaliao
No
Fim
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 15
Esquema de um GA
Esta somente uma viso de alto nvel de nosso algoritmo. O que ela esconde a complexidade do processo de obteno dos seguintes elementos uma representao cromossomial que seja adequada ao problema uma funo de avaliao que: penalize solues implausveis para nosso problema avalie satisfatoriamente o grau de adequao de cada indivduo como soluo do problema em questo.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 16
Esquema de um GA
Um GA altamente genrico.
Vrios de seus componentes so invariveis de um problema para outro. Isto favorece sua implementao em uma linguagem orientada a objeto, permitindo o reaproveitamento do cdigo para soluo de vrios problemas diferentes.
17
Representao Cromossomial
Representao Cromossomial
Cada pedao indivisvel desta representao chamado de um gene. importante notar que a representao cromossomial completamente arbitrria. interessante apenas que algumas regras gerais sejam seguidas : a) A representao deve ser a mais simples possvel b) Se houver solues proibidas ao problema, ento elas no devem ter uma representao c) Se o problema impuser condies de algum tipo, estas devem estar implcitas dentro da nossa representao.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 19
Representao Cromossomial
Representao mais comum: binria. Mais simples e mais usada pelos praticantes da rea dos algoritmos genticos; Um cromossomo nada mais do que uma sequncia de bits; Cada gene somente um bit; O conceito representado por cada bit e/ou conjunto de bits inerente ao problema.
20
Representao Cromossomial
Essa representao foi a adotada inicialmente por Holland, em seu livro seminal.
Hoje em dia, por estes motivos histricos e pelo fato de ser muito simples, ela amplamente adotada por pesquisadores da rea de GA. Os operadores genticos, como discutiremos a seguir, so compreensveis e simples de implementar.
21
Representao Cromossomial
Representamos nmeros (inteiros ou reais), strings, etc. usando a representao binria. Para representar nmeros reais como nmeros binrios, temos primeiro que saber duas coisas: A faixa de operao de cada uma das variveis; A preciso desejada. Sabendo isto, convertemos bits para nmeros usando a seguinte frmula:
supi inf i real inf i * ri k 2 1
22
Funo de Avaliao
A funo de avaliao a maneira utilizada pelos GAs para determinar a qualidade de um indivduo como soluo do problema em questo.
23
Funo de Avaliao
Dada a generalidade dos GAs, a funo de avaliao, em muitos casos, a nica ligao verdadeira do programa com o problema real. Mesmo GA pode ser usado para descobrir o mximo de toda e qualquer funo de n variveis sem nenhuma alterao das estruturas de dados e procedimentos adotados, alterando-se, apenas, a funo de avaliao.
24
Funo de Avaliao
Tambm chamada de funo de custo Calcula ento um valor numrico que reflete quo bons os parmetros representados no cromossomo resolvem o problema. Usa todos os valores armazenados no cromossomo (os parmetros) e retorna um valor numrico, cujo significado uma mtrica da qualidade da soluo obtida usando-se aqueles parmetros. A funo de avaliao deve ser tal que se o cromossomo c1 representa uma soluo melhor do que o cromossomo c2, ento a avaliao de c1 deve ser maior do que a avaliao de c2.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden
25
Funo de Avaliao
A funo de avaliao deve portanto ser escolhida com grande cuidado. Deve embutir todo o conhecimento que se possui sobre o problema a ser resolvido, tanto suas restries quanto seus objetivos de qualidade. Quanto mais conhecimento embutirmos em um GA, menos sero vlidas as crticas sobre eles serem algoritmos genricos Deve diferenciar entre duas solues sub-timas, deixando claro qual delas est mais prxima da soluo procurada.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 26
Seleo de Pais
Mtodo de seleo de pais simula o mecanismo de seleo natural: Pais mais capazes geram mais filhos; Pais menos aptos tambm podem gerar descendentes. Temos que privilegiar os indivduos com funo de avaliao alta, sem desprezar completamente aqueles indivduos com funo de avaliao extremamente baixa; Indivduos com pssima avaliao podem ter caractersticas favorveis criao de indivduo timo; Estas caractersticas podem no estar presentes em nenhum outro cromossomo.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 27
Seleo de Pais
Mtodo simples e muito adotado: mtodo da roleta viciada. Criamos uma roleta (virtual) na qual cada cromossomo recebe um pedao proporcional sua avaliao (a soma dos pedaos no pode superar 100%). Rodamos a roleta Selecionado ser o indivduo sobre o qual ela parar.
28
Seleo de Pais
Exemplo:
Avaliao 1 9 16 36 62 Pedao da roleta (%) 1.61 14.51 25.81 58.07 100.00 Pedao da roleta () 5.8 52.2 92.9 209.1 360.0
29
Seleo de Pais
30
Seleo de Pais
No podemos girar uma roleta dentro do computador Trabalhamos com conceitos abstratos, e no roletas fsicas. Algoritmo: a) Some todas as avaliaes para uma varivel soma b) Selecione um nmero s entre 0 e soma (No includos) c) i=1 d) aux=avaliao do indivduo 1 e) enquanto aux<s f) i = i + 1 g) aux=aux+avaliao do indivduo i h) fim enquanto
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 31
Iremos trabalhar agora com a verso mais simples dos operadores genticos
Nesta verso, eles atuam em conjunto, como se fossem um s. Existem verses mais avanadas.
32
Reproduo Sexuada
Formao de um novo indivduo atravs da combinao de duas clulas gametas Na formao destas gametas, ocorre o processo de recombinao gentica (crossing-over).
33
Operador de Crossover
Vamos comear com o operador de crossover mais simples, chamado de operador de crossover de um ponto. Depois de selecionados dois pais pelo mdulo de seleo de pais, um ponto de corte selecionado. Um ponto de corte constitui uma posio entre dois genes de um cromossomo. Cada indivduo de n genes contem n-1 pontos de corte.
gen
Pontos de Corte:
4
34
Operador de Crossover
Depois de sorteado o ponto de corte, ns separamos os pais em duas partes: uma esquerda do ponto de corte e outra direita. importante notar que no necessariamente estas duas partes tm o mesmo tamanho. O primeiro filho composto atravs da concatenao da parte esquerda do primeiro pai com a parte direita do segundo pai. O segundo filho composto atravs da concatenao das partes que sobraram (a metade esquerda do segundo pai com a metade direita do primeiro pai).
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 35
Operador de crossover
Graficamente:
36
Mutao
Pequenos erros podem ocorrer ao longo do tempo, gerando mutaes dentro do cdigo gentico. Estas mutaes podem ser boas, ruins ou neutras
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 37
Operador de Mutao
Depois de compostos os filhos, entra em ao o operador de mutao. Este opera da seguinte forma: Ele tem associada uma probabilidade extremamente baixa (da ordem de 0,5%); Ns sorteamos um nmero entre 0 e 1. Se ele for menor que a probabilidade pr-determinada ento o operador atua sobre o gene em questo, alterando-lhe o valor aleatoriamente. Repete-se ento o processo para todos os genes componentes dos dois filhos.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 38
Juntando os operadores
(a)
Pai 1
(b)
Pai 1
Pai 2
Pai 2
Filho 1
Filho 1
Filho 2
Filho 2
(d)
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden
(c)
39
Mdulo de Populao
O mdulo de populao responsvel pelo controle da nossa populao. Por simplicidade, populao no pode crescer permite que armazenemos a populao em um vetor de tamanho constante. Pais tm que ser substitudos conforme os filhos vo nascendo Pode parecer estranho, visto que estamos acostumados a ver a populao humana sempre crescendo. Quando nasce um beb, no obrigatrio que algum de alguma gerao anterior caia fulminado! Entretanto, simula bem ambientes de recursos limitados
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 40
Mdulo de Populao
O mdulo de populao que utilizaremos por enquanto extremamente simples. Sabemos que a cada atuao do nosso operador gentico estamos criando dois filhos. So armazenados em um espao auxiliar at que o nmero de filhos criado seja igual ao tamanho da populao. Neste ponto o mdulo de populao entra em ao. Todos os pais so ento descartados e os filhos copiados para cima de suas posies de memria, indo tornar-se os pais da nova gerao.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 41
Vamos tentar resolver, usando um GA, o problema de maximizar a funo do exemplo 4.1, dada por , com x e y pertencentes ao intervalo [0,15].
f ( x, y) x * y * sen( y ) 4
Como possvel que esta funo retorne um valor igual a zero, usaremos uma funo de avaliao
g ( x, y) 1 f ( x, y)
42
Roleta completa
Intervalos para funo de seleo
30,7 9,5 13,7
Intervalo [0; 9,5[ [9,5; 23,2[ [23,2; 94,2[ [94,2; 95,2[ [95,2; 113,9[ [113,9; 144,6[
44
Sorteio de Pais
Nmero Sorteado 12,8 65,3 108,3 85,3 1,8 119,5 Cromossomo Escolhido 00101001 10011011 10011001 10011011 01000011 11100011
45
Operadores:
001 01001 100 11011 100110 01 100110 11 0100 0011 1110 0011 00111011 10001001 10011011 10011001 0 01000011 11100011
Efeito da mutao
46
Nova gerao:
Cromossomo 00111011 10001001 10011011 10011000 01000011 11100011 x 3 8 9 9 4 14 y 3 9 11 8 3 3 g(x,y) 7,4 51,9 71,0 1,0 9,5 30,7 171,5
47
Nova roleta:
Intervalos para funo de seleo
30,7 7,4 51,9
9,5 1,0
71,0
Intervalo [0; 7,4[ [7,4; 59,3[ [59,3; 130,3[ [130,3; 131,3[ [131,3; 140,8[ [140,8; 171,5[
48
Sorteio de Pais
Nmero Sorteado
10,4 132,5 61,2
Cromossomo Escolhido
10001001 01000011 10011011
Operadores:
50
Nova gerao:
Cromossomo 00001001 11000011 x 0 3 y 9 3 g(x,y) 1,0 7,4
10010011
11101011 10011011 10011011
9
14 9 9
3
11 11 11
20,1
109,9 71,0 71,0 280,4
51
Neste momento voc poderia achar que o algoritmo s funcionou porque o sorteio foi direcionado
Esta uma dvida extremamente razovel neste ponto S ser apagada se executar os cdigos do livro e ver que tudo que fizemos aqui realmente acontece.
52
Algoritmos Genticos
GAs no so mtodos de "hill climbing", logo eles no ficaro estagnados simplesmente pelo fato de terem encontrado um mximo local. Eles se parecem com a evoluo natural, que s por que encontrou um indivduo que instantaneamente o melhor de um certo grupo no pra de procurar outros indivduos ainda melhores.
Na evoluo natural isto tambm decorre de circunstncias que mudam de um momento para outro.
53
Ateno
54
Assim como na natureza, a informao deve ser codificada nos cromossomos (ou genomas); A reproduo, que no caso dos GAs, equivalente reproduo sexuada, se encarregar de fazer com que a populao evolua; A mutao cria diversidade, mudando aleatoriamente gens dentro de indivduos; A reproduo e a mutao so aplicadas em indivduos selecionados dentro da nossa populao.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 55
Processo de Seleo
A seleo deve ser feita de tal forma que os indivduos mais aptos sejam selecionados mais freqentemente do que aqueles menos aptos; Objetivo: boas caractersticas daqueles passem predominar dentro da nossa populao de solues; a
Indivduos menos aptos nunca devem ser descartados da populao reprodutora. Isto causaria uma rpida convergncia gentica de todas as solues para um mesmo conjunto de caractersticas e evitaria uma busca mais ampla pelo espao de solues
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 56
57
GAs so em geral programas extremamente simples que necessitam somente de informaes locais ao nosso ponto Informaes relativas adequabilidade do ponto como soluo do problema em questo No necessitam de derivadas ou qualquer outra informao adicional. Extremamente aplicveis a problemas do mundo real que em geral incluem descontinuidades duras e funes extremamente complexas.
58
GAs trabalham com uma grande populao de pontos, sendo uma heurstica de busca no espao de solues; Um GA diferencia-se dos esquemas enumerativos pelo fato de no procurar em todos os pontos possveis, mas sim em um (qui pequeno) subconjunto destes pontos; GAs diferenciam-se de esquemas aleatrios por serem uma busca que utiliza informao pertinente ao problema e no trabalham com caminhadas aleatrias (random walks) pelo espao de solues.
59
GA uma tcnica de busca com as seguintes caractersticas positivas, que fazem com que eles devam ser considerados: Global; No totalmente aleatrios; No afetada por descontinuidades na funo ou em suas derivadas; Capaz de lidar com funes discretas e contnuas; Capaz de lidar com mltiplos objetivos; Boas tcnicas para atacar problemas de busca com espaos de busca intratavelmente grandes, que no podem ser resolvidos por tcnicas tradicionais.
Introduo aos Algoritmos Genticos - Prof. Ricardo Linden 60
Algoritmos genticos so bons para abordar espaos de buscas grandes (potencialmente imensos) e naveg-los, procurando por combinaes timas de coisas, solues que talvez no fossem encontradas em uma busca mesmo que esta durasse o tempo de toda uma vida"
61
Concluso
Existe muito mais a falar sobre GAs... Parmetros numricos Otimizao multi-objetivo
Existem milhares de pesquisadores devotados a esta rea de pesquisa.
62
Contato
E-mail: rlinden@pobox.com
CEPEL: 2598-6145
63
Muito obrigado!
64