Sunteți pe pagina 1din 20

Inteligncia Artificial

Algoritmos Genticos
Algoritmos Evolutivos
Computao Evolutiva

Inteligncia Artificial

Histria da Teoria da Evoluo


1809: Jean-Baptiste Lamarck
Lei do uso e do desuso
pelo uso e desuso de suas aptides, a
natureza fora os seres a se adaptarem
para sobreviverem.
Lei dos caracteres adquiridos.
Os serem mais fortes so mais capazes de
transmitir suas aptides s novas
geraes

1
Inteligncia Artificial

Histria da Teoria da Evoluo


1859: Charles Darwin
Existe uma diversidade de seres devido aos
contingentes da natureza (comida, clima, ...) e pela
lei da Seleo Natural que os seres mais adaptados
ao seus ambientes sobrevivem
contra lei do uso e desuso

Os caracteres adquiridos so herdados pelas geraes


seguintes

Quanto melhor um indivduo se adaptar ao seu meio


ambiente, maior ser sua chance de sobreviver e
gerar descendentes.

(DARWIN, 1859)

Inteligncia Artificial

Histria da Teoria da Evoluo

1865: Gregor Mendel


Formalizou a herana de caractersticas, com a teoria do DNA
(ervilhas)

1901: Hugo De Vries


S a seleo natural no responsvel pela produo de novas
(mais adaptadas) espcies. Tem de haver uma mudana gentica!

Formalizou o processo de gerao de diversidade: Teoria da


Mutao

2
Inteligncia Artificial

Algoritmos Evolutivos
1975: Jonh Holland: Idealizou os algoritmos genticos

Por que a evoluo ?


Muitos problemas computacionais
envolvem busca atravs de um grande nmero de possveis solues
requerem que o programa seja adaptativo, apto a agir em um
ambiente dinmico

A evoluo biolgica
uma busca paralela em um enorme espao de problema
solues desejadas = organismos mais adaptados

Inteligncia Artificial

Algoritmos Evolutivos: introduo


Algoritmos Evolutivos
Mtodo para resoluo de problemas (otimizao)
inspirado na teoria da evoluo

a busca da melhor soluo para um dado problema.


Consiste em tentar vrios solues e usar a informao
obtida para conseguir solues cada vez melhores.

Idia:
indivduo = soluo
provoca mudana nos indivduos por intermdio de mutao
e reproduo
seleciona indivduos mais adaptados atravs de sucessivas
geraes
A aptido de cada indivduo medida pela funo de
aptido (fitness function)

3
Inteligncia Artificial

Caractersticas dos Algoritmos Evolutivos


Trabalha com uma populao de solues
simultaneamente.

So fceis de serem implementados em computadores.

Adaptam-se bem a computadores paralelos.

So facilmente adaptados com outras tcnicas.

Funcionam com parmetros contnuos ou discretos.

Inteligncia Artificial

Esquema Geral

Crie, aleatoriamente, a populao


inicial (possveis solues)

Calcule a aptido de
cada organismo

Encontrou a
Soluo tima ou uma
soluo boa ?

Reproduza e mate
organismos

Aplique mutao

4
Inteligncia Artificial

Conceitos Bsicos
manipulam uma populao de indivduos.

Individuos so e devem ser possveis solues do problema.

Os indivduos so combinados (crossover) uns com os


outros, produzindo filhos que podem sofrer ou no
mutao.

As populaes evoluem atravs de sucessivas geraes at


encontrar a soluo tima.

Inteligncia Artificial

Gerando Populao Inicial


Dado um problema, precisamos definir como ser a
representao dos individuos (solues)

Um individuo um Cromossomo

Os parmetros do problema de otimizao so representados por


cadeias de valores.
Exemplos:
Vetores de reais, (2.345, 4.3454, 5.1, 3.4)
Cadeias de bits, (111011011)
Vetores de inteiros, (1,4,2,5,2,8)
ou outra estrutura de dados (arvores, heaps, etc)

5
Inteligncia Artificial

Gerando Populao Inicial


Qual deve ser a populao Inicial ?
Deve ser aleatoriamente escolhida
Existe relaes entre:
velocidade de convergncia x variedade
Variedade x soluo tima
Quanto maior a variedade, menor a velocidade de
convergncia e vice-versa
Quanto maior a variedade, maior a chance de encontrar a
soluo tima, porm, menor a velocidade de convergncia

Definir funo de aptido !!!


Aptido uma nota associada ao indviduo que avalia
quo boa a soluo por ele representada.

Inteligncia Artificial

Funo de Aptido- Fitness


Funo de aptido (avaliao / fitness):
feita atravs de uma funo que melhor representa o problema e
tem por objetivo fornecer uma medida de aptido de cada indivduo
na populao corrente que ir dirigir o processo de busca.
Funes de avaliao so especficas de cada problema.
Exemplos:
Cromossomo Significado valor
0011011 Binrio p/ Inteiro x = 27
A
ADBCE D 3 3 ADBC E
E
dist 13
2 3
B 2
C

6
Inteligncia Artificial

Criando e Evoluindo Geraes


Quais so os mtodos para criar novos individuos ?
Reproduo sexuada (crossover)
Reproduo assexuada
Mutao
Como garantir q. Vai encontrar a soluo ?
Os indivduos devem ser selecionados (os mais aptos
sobrevivem) para garantir a convergncia
Deve-se evitar a convergncia prematura
Deve-se estabelecer um critrio de parada
Convergncia
nas ltimas k geraes no houve melhora da aptido

Inteligncia Artificial

Reproduo/recombinao
Funo: combinar e/ou perpetuar material gentico dos indivduos mais
adaptados
Tipos:
assexuada (=duplicao) ou sexuada (crossover)
Observao: Existe uma taxa de crossover que controla a quantidade
de reproduo que ser feita

ponto nico ponto duplo

7
Inteligncia Artificial

Reproduo (2)
Quanto mais estruturada a representao mais
difcil de definir o cruzamento

Inteligncia Artificial

Mutao
Objetivo: gerar diversidade (p/ escapar de timos locais)
Tipos:
generativa
destrutiva
swap
swap de seqncia
Observao: Existe uma taxa de mutao que diminui com o tempo
(ex. % da populao selecionada) para garantir convergncia

Generativa
Destrutiva
Swap

Swap de Seq.

8
Inteligncia Artificial

Reproduo e Mutao

Populao 1 Reproduo e Mutao Populao 2


N indivduos M indivduos

Composies possveis para a Populao 2:


Troca de toda populao
Isso significa que a populao 2 substitui a populao 1
A cada ciclo, N/2 pares so escolhidos gerando M=N descendentes
Elitismo
A populao 2 substitui a populao 1 (M= N-1)
Acrescenta-se o mais apto da populao 1 na populao 2
Steady State
Gera-se M<N indivduos e esses M substituem os M piores do conjunto da
populao 1 Existe tambm o Steady state sem duplicados

Inteligncia Artificial

Seleo de indivduos para Reproduo


Como selecionar indivduos para Reproduo ?
Mtodo da Roleta
Selecionar indivduos aleatoriamente, proporcionando chances
de reproduo aos mais aptos.
f (cromossomo) = medida numrica de aptido

Chances de seleo so
proporcionais
aptido f (i )
N

f (i)
i 1

9
Inteligncia Artificial

Mtodo da Roleta
Encontre a soma da aptido AT de todos os indivduos
N
da populao: AT
f (i)
i 1

Gere um nmero aleatrio r : 0 r AT


Selecione o primeiro indivduo da populao cuja aptido somada s
aptides dos indivduos precedentes >= r: kN

f (i) r
i 1
Exemplo: r = 30
Cromossoma 1 2 3 4 5 6 7 8 9 10
Aptido 8 2 17 7 2 12 11 7 3 7
f (i)
i 1
8 10 27 34 36 48 59 66 69 76

Inteligncia Artificial

Critrios de parada
Definir um Nmero Mximo de geraes

Parar quando o sistema encontrar a soluo


(quando esta conhecida).

Parar quando ocorrer a perda de diversidade


(repetio individuos) Convergir !!!

10
Inteligncia Artificial

Convergncia Prematura
O que a Convergncia Prematura ?
O sistema no apresenta mais nenhuma melhora e ainda est longe da
situao ideal. No apresenta mais diversidade da populao
O que pode causar a Convergncia Prematura ?
Vrios indivduos iguais (pouca diversidade)
Um super-individuo que monopoliza o mtodo da roleta
Uma baixa taxa de mutao e/ou reproduo
O que podemos fazer para evitar ?
Mexer na funo de aptido (fitness) !!!!!
Existem tcnicas que minimizam a criao de super-indivduos e que
aumentam a presso seletiva sobre os melhores. So elas:
Windowing (janelamento)
Normalizao Linear (NL)
Sharing

Inteligncia Artificial

Janelamento e Sharing
Windowing (Janelamento):
Obtenha a avaliao mnima da populao
Desconte-a da aptido de cada indivduo
A idia subtrair uma constante das f(i)

Ai f (i) Amin

Sharing:
Diminiu o escore (aptido) dos indivduos mais semelhantes.
A idia diminuir a influncia de muitos indivduos iguais

11
Inteligncia Artificial

Normalizao Linear
Normalizao Linear
Ordene todos os N indivduos em ordem descrescente de avaliao (i =1
menos apto)
Crie aptides partindo de um valor mnimo e crescendo linearmente at
o valor mximo para cada um dos N individuos.

(max min)
Ai min (i 1)
N 1

Idia: Quanto menor a constante de incremento maior a presso


seletiva sobre os melhores...
O valor normalmente usado (max-min/N-1).

Inteligncia Artificial

Comparativo
Exemplo Comparativo:
Rank 6 5 4 3 2 1
Aptido 200 9 8 7 4 1
Windowing 199 8 7 6 3 0
NL (incremento 10) 51 41 31 21 11 1
NL (incremento 20) 101 81 61 41 21 1

12
Inteligncia Artificial

Algoritmos de AG mais usuais


Possui as seguintes caractersticas:
Cromossomo: Representao binria em um vetor
Reproduo: Crossover de 1 ponto
Nova gerao: Reproduo (seleo) com substituio
da populao por Elitismo
Convergncia Prematura: Normalizao Linear
Outros detalhes: usa-se Mutao

Apresenta bom desempenho em diversas


aplicaes ( um bom algoritmo de partida).

Inteligncia Artificial

Um exemplo simples
O problema do Caixeiro Viajante:

Encontre um caminho entre as


cidades de modo que:
Cada cidade seja visitada apenas
uma vez
A distncia total de viagem seja
minimizada

Para um problema com 30


cidades, teremos algo como 30!
(fatorial) possibilidades de
caminhos
30! 1032

13
Inteligncia Artificial

Representao
Iremos considerar um modo simples de
representao:
- Lista ordenada de cidades visitadas
- Cada cidade ser representada por um nmero
1) So Paulo 3) SBCampo 5) Diadema 7) Guarulhos
2) Campinas 4) Sto Andr 6) Osasco 8) SCSul

CityList1 (3 5 7 2 1 6 4 8)
CityList2 (2 5 7 6 8 1 3 4)

Inteligncia Artificial

Definindo o Crossover
Iremos usar um Crossover de reproduo de ponto duplo

Pai1 (3 5 7 2 1 6 4 8)
Pai2 (2 5 7 6 8 1 3 4)

Filho (2 5 7 2 1 6 3 4)

14
Inteligncia Artificial

Definindo a Mutao
Mutao envolve reordenao de lista:

* *
Antes: (5 8 7 2 1 6 3 4)

Depois: (5 8 6 2 1 7 3 4)

Inteligncia Artificial

Exemplo: 30 Cidades

120

100

80

60
y

40

20

0
0 10 20 30 40 50 60 70 80 90 100
x

15
Inteligncia Artificial

Soluo parcial (Distncia = 941)

TSP30 (Performance = 941)

120

100

80
y

60

40

20

0
0 10 20 30 40 50 60 70 80 90 100
x

Inteligncia Artificial
Soluo parcial (Distncia = 800)

TSP30 (Performance = 800)

120

100

80

60
y

40

20

0
0 10 20 30 40 50 60 70 80 90 100
x

16
Inteligncia Artificial

Soluo Parcial (Distncia = 652)

TSP30 (Performance = 652)

120

100

80
y

60

40

20

0
0 10 20 30 40 50 60 70 80 90 100
x

Inteligncia Artificial
Soluo tima (Distncia = 420)

TSP30 Solution (Performance = 420)

120

100

80
y

60

40

20

0
0 10 20 30 40 50 60 70 80 90 100
x

94

17
Inteligncia Artificial

Viso Geral do sistema

TSP30 - Overview of Performance

1800

1600

1400

1200
Distance

1000
800

600

400

200

0 Best
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31
Worst
Generations (1000) Average

Inteligncia Artificial

Balano
Vantagens
Simples (vrias representaes, 1 algoritmo) e pouco
sensvel a pequenas variaes
Vasto campo de aplicaes (inclusive em Redes
Neurais)
Ainda custa caro mas pode ser paralelizado facilmente

Desvantagens
Como o mtodo basicamente numrico nem sempre
fcil introduzir conhecimento do domnio
Se no for paralelizado, pode demorar muito tempo
para achar uma soluo

18
Inteligncia Artificial

Exemplos de aplicaes
Roteamento de Telecomunicaes
Planejamento dos Jogos Olmpicos
Avaliao de Crdito e Anlise de Risco
Particionamento de circuitos
Jogos
Problemas de Otimizao em geral
Entre outros

Inteligncia Artificial

Aplicao prtica (CMU robots)


Fazer o AIBO andar mais
rpido
Aprendeu com
Algoritmos Genticos
Deixaram alguns AIBOs
andando de um lado
para outro por dias.
Eles andavam por x
segundos e avaliavam o
quanto haviam andado
por posicionamento em
campo
Ele se localizava por
LANDMARKS nos
extremos do campo
http://www-math.uni-paderborn.de/~junge/images/aibos.jpg

19
Inteligncia Artificial

Ensinar um quadrpede andar

Milton Heinen Mestrado 2007 - UNISINOS

Fitness: Ir mais longe, estvel e mais rpido


Ambiente e sensores Simulados.

Inteligncia Artificial

Bibliografia de Algorit. Genticos


Para aprofundamento nos assuntos desta aula, segue a
seguinte referncia bibliogrfica

Solange Rezende (Sistemas Inteligentes)


Captulo 9

Alguns slides desta aula foram baseados no slides:


Geber Ramalho: Algoritmos Evolutivos, UFPE.
Wendy Willians. Genetic Algorithms: A tutorial.
A.E. Eiben e J.E. Smith, Introduction to Evolutionary Computing Genetic
Algorithms.
Luis R. M. Lopes. Fundamentos dos Algoritmos Genticos.
Jennifer Pittman. Genetic Algorithm for Variable Selection. Duke University
Carlos Eduardo Thomaz: Aulas do mestrado em GA. FEI 2010
Grupo ICA PUC-Rio

20

S-ar putea să vă placă și