Вы находитесь на странице: 1из 48

Algoritmos Genticos

Sistemas Inteligentes

Contedo
Introduo
O

Algoritmo Gentico Binrio Noes de Otimizao O Algoritmo Gentico com Parmetros Contnuos Aspectos Prticos e Avanados Aplicaes
Algoritmos Genticos

Introduo

Algoritmos Genticos

Algoritmos Genticos
So tcnicas de busca e otimizao. a metfora da teoria da evoluo das espcies iniciada pelo Fisiologista e Naturalista ingls Charles Darwin. Desenvolvido por John Holland (1975) e seus alunos. Popularizado por David Goldberg (1989).

Algoritmos Genticos

Teoria da Evoluo

1859 - Charles Darwin publica o livro A Origem das Espcies:


.

Charles Darwin

As espcies evoluem pelo principio da seleo natural e sobrevivncia do mais apto.

Algoritmos Genticos

Teoria da Evoluo

1865- Gregor Mendel apresenta experimentos do cruzamento gentico de ervilhas.


Pai da gentica.

. Gregor Mendel

A Teoria da Evoluo comeou a partir da conceituao integrada da seleo natural com a Gentica.
Algoritmos Genticos

Otimizao

a busca da melhor soluo para um dado problema.


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

Exemplo de otimizao:
Telespectador atravs de ajuste na antena da televiso otimiza a imagem buscando vrias solues at alcanar uma boa imagem.

Algoritmos Genticos

Otimizao

As tcnicas de otimizao, geralmente, apresentam:


Espao de busca: onde esto todas as possveis solues do problema; Funo objetivo: utilizada para avaliar as solues produzidas, associando a cada uma delas uma nota.

Algoritmos Genticos

Caractersticas dos Algoritmos Genticos


um algoritmo estocstico (no determinstico). Trabalha com uma populao de solues simultaneamente. Utiliza apenas informaes de custo e recompensa. No requer nenhuma outra informao auxiliar (como por exemplo o gradiente).

Algoritmos Genticos

Caractersticas dos Algoritmos Genticos (II)


So fceis de serem implementados em computadores. Adaptam-se bem a computadores paralelos. So facilmente hibridizados com outras tcnicas. Funcionam com parmetros contnuos ou discretos.

Algoritmos Genticos

Algoritmos Genticos (Conceitos Bsicos)


AG manipula uma populao de indivduos. Individuos so 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.

Algoritmos Genticos

Aplicaes

Em problemas dficeis de otimizao, quando no existe nenhuma outra tcnica especifica para resolver o problema. Otimizao de funes numricas em geral Otimizao combinatria

Problema do caixeiro viajante Problema de empacotamento Alocao de recursos (job shop schedulling)

Aprendizado de Mquina Projetos


Algoritmos Genticos

O Algoritmo Gentico Binrio

Algoritmos Genticos

Algoritmo Gentico Tradicional


1. Gerar a populao inicial. 2. Avaliar cada indivduo da populao. 3. Enquanto critrio de parada no for satisfeito faa 3.1 Selecionar os indivduos mais aptos. 3.2 Criar novos indivduos aplicando os operadores crossover e mutao. 3.3 Armazenar os novos indivduos em uma nova populao. 3.4 Avaliar cada cromossomo da nova populao.
Algoritmos Genticos

Problema 1
1000
800 600
f ( x) x 2
com x sujeito as seguintes restries:

Problema: Use um AG
para encontrar o ponto mximo da funo:

400 200 0 0 5 10 15 20 25 30

0 x 31 x inteiro

Algoritmos Genticos

Indivduo

Cromossomo
Estrutura de dados que representa uma possvel soluo para o problema. 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.
Algoritmos Genticos

Individuo (II)

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

Aptido pode ser:


Igual a funo objetivo (raramente usado na prtica). Resultado do escalonamento da funo objetivo. Baseado no ranking do indviduo da populao.
Algoritmos Genticos

Cromossomo do Problema 1

Cromossomos binrios com 5 bits:


0 = 00000 31 = 11111

Aptido
Neste problema, a aptido pode ser a prpria funo objetivo. Exemplo: aptido(00011) = f(3) = 9

Algoritmos Genticos

Seleo

Seleo
Imitao da seleo natural. Os melhores indivduos (maior aptido) so selecionados para gerar filhos atravs de crossover e mutao. Dirige o AG para as melhores regies do espao de busca.

Tipos mais comuns de seleo


Proporcional a aptido. Torneio.
Algoritmos Genticos

Populao Inicial do Problema 1


aleatria (mas quando possvel, o conhecimento da aplicao pode ser utilizado para definir populao inicial)
cromossomos Pop. inicial A1 = 1 1 0 0 1 A2 = 0 1 1 1 1 A3 = 0 1 1 1 0 A4 = 0 1 0 1 0

x
25 15 14 10

f (x )
625 225 196 100

Prob. de seleo

54,5% 19,6% 17,1% 8,7%

Probabilidade de seleo proporcional a aptido

pi

f ( xi )
N k 1

f ( xk )

Algoritmos Genticos

Seleo proporcional a aptido (Roleta)


Pais selecionados

8,7% A4 54,5% A1 17,1% A3 19,6% A2

A1 = 1 1 0 0 1 A2 = 0 1 1 1 1 A2 = 0 1 1 1 1 A1 = 1 1 0 0 1

Algoritmos Genticos

Seleo por Torneio

Escolhe-se n (tipicamente 2) indivduos aleatoriamente da populao e o melhor selecionado.

Algoritmos Genticos

Crossover e Mutao
Combinam pais selecionados para produo de filhos. Principais mecanismos de busca do AG. Permite explorar reas desconhecidas do espao de busca.

Algoritmos Genticos

Crossover de 1 ponto
O Ponto de corte escolhido 1 1 0 0 1 aleatriamente 01111 11011 Filhos 01101

O crossover aplicado com uma dada probabilidade denominada taxa de crossover (60% a 90%)

Pais

Se o crossover aplicado os pais trocam suas caldas gerando dois filhos, caso contrrio os dois filhos sero cpias exatas dos pais.
Algoritmos Genticos

Mutao
Mutao inverte os valores dos bits.
A mutao aplicada com dada probabilidade, denominada taxa de mutao (~1%), em cada um dos bits do cromossomo. Antes da 0 1 1 0 1 mutao Depois 0 0 1 0 1

Aqui, apenas o 2o.bit passou no teste de probabilidade

A taxa de mutao no deve ser nem alta nem baixa, mas o suficiente para assegurar a diversidade de cromossomos na populao.
Algoritmos Genticos

A primeira gerao do Problema 1


Pais crossover A1 = 1 1 0 0 1 A2 = 0 1 1 1 1 crossover A2 = 0 1 1 1 1 A1 = 1 1 0 0 1 11011 01101 mutao Filhos

mutao
11011 00101 Nova pop.

01111
11001

10111
11001

Algoritmos Genticos

A primeira gerao do Problema 1 (II)

cromossomos

x
27 25 25 23

f (x )
729 625 625 529

1 2 3 4

11 11 11 10

011 001 001 111

prob. de seleo 29,1% 24,9% 24,9% 21,1%

Algoritmos Genticos

As demais geraes do Problema 1


x f (x )
729 576 529 441

Segunda Gerao

1 2 3 4

11011 11000 10111 10101

27 24 23 21

f (x )
729 529 225 49

Terceira Gerao

1 2 3 4

1 1 0 1 1 27 1 0 1 1 1 23 0 1 1 1 1 15 00111 7
Algoritmos Genticos

As demais geraes do Problema 1 (II)


x f (x )
961 729 529 529

Quarta Gerao

1 2 3 4

11111 11011 10111 10111

31 27 23 23

Quinta Gerao

x
1 2 3 4 111 111 111 101 11 11 11 11 31 31 31 23

f (x )
961 961 961 529

Algoritmos Genticos

Outros Crossovers

Crossover de 2-pontos
pai1 010 011000101011 pai2 001 001110 001101 filho1 010001110101011 filho2 001011000001101
Considerado melhor que o crossover de 1 ponto.
Algoritmos Genticos

Crossover de n-Pontos
pai1 101 001 01001001010 01 pai2 00100111000110 11100 filho1 1010011100101011001 fillho2 0010100100011001100
Crossover de 4-pontos
Algoritmos Genticos

Crossover Uniforme
Mscara de bits aleatria 1 1 0 1 0 1 1 0 1 0 pai1 1 1 1 0 1 1 0 1 1 0
filho1 1 1 1 0 0 1 0 1 1 0 pai2 0 1 1 0 0 0 1 1 0 0

O filho1 tem 50% de chance de levar um bit do pai1 e 50% de chance de levar um bit de pai2
O filho2 leva o que sobra de pai1 e pai2
Algoritmos Genticos

Problema 2
Achar o mximo da funo utilizando Algoritmos Genticos,

f ( x ) x seno( 10 x ) 1,0
Restrita ao intervalo:

1,0 x 2,0
Algoritmos Genticos

Problema 2 (II)
3,0 f(x) = x sen(10 x) + 1 Mximo local 2,0 1,0 0,0 -1,0 -1,0 -0,5 0,0 Mximo global

Mximo global: x = 1,85055 f(x) = 2,85027

0,5 x

1,0

1,5

2,0

Algoritmos Genticos

Problema 2 (III)

Funo multimodal com vrios pontos de mximo.

um problema de otimizao global (encontrar o mximo global) No pode ser resolvido pela grande maioria dos mtodos de otimizao convencional. H muitos mtodos de otimizao local, mas para otimizao global so poucos.
Algoritmos Genticos

O Cromossomo Problema 2

Representar o nico parmetro deste problema (a varivel x) na forma de um cromossomo:


Quantos bits dever ter o cromossomo? Quanto Mais bits melhor preciso nmerica. Longos cromossomos so difceis de manipular. Para cada decimal necessrio 3,3 bits Cromossomo com 22 bits
1000101110110101000111
Algoritmos Genticos

O Cromossomo Problema 2 (II)

Decodificao
cromossomo = 1000101110110101000111 b10 = (1000101110110101000111)2 = 2288967 Valor de x precisa estar no intervalo [-1,0; 2,0]
b10 x min (max min) l 2 1 2.288.967 x 1 (2 1) 0,637197 22 2 1
Algoritmos Genticos

As Geraes do Problema 2
3,0

f(x) = x seno(10x) + 1.0

2,5 2,0 1,5 1,0 0,5 0,0 -0,5 -1,0 -1,0 -0,5

Populao Inicial

0,0

0,5

1,0
Algoritmos Genticos

1,5

2,0

x Populao gerada aleatriamente

As Geraes do Problema 2 (II)


3,0

f(x) = x sen(10x) + 1.0

2,5 2,0 1,5 1,0 0,5 0,0 -0,5 -1,0 -1,0

Primeira Gerao

-0,5

0,0

0,5

1,0

1,5

2,0

Pouca melhoria

x
Algoritmos Genticos

As Geraes do Problema 2 (III)


3,0 2,5

f(x) = x sen(10x) + 1.0

Gerao 25

2,0 1,5 1,0 0,5

0,0
-0,5 -1,0

-1,0

-0,5

0,0

0,5

1,0

1,5

2,0

x A maioria dos indivduos encontraram o mximo global


Algoritmos Genticos

As Geraes do Problema 2 (IV)


3,0
Funo objetivo

2,5 2,0 1,5 1,0 0,5 0 5 10


Gerao

Mdia Melhor

15

20

25

Na gerao 15 o AG j encontrou o ponto mximo


Algoritmos Genticos

Elitismo
O crossover ou mutao podem destruir a melhor indivduo. Por que perder a melhor soluo encontrada? Elitismo transfere a cpia do melhor indviduo para a gerao seguinte.

Algoritmos Genticos

Elitismo no Problema 2
3,0

AG com elitismo
AG sem elitismo

2,8
Funo objetivo 2,6 2,4 2,2 2,0 0 5 15 10 Gerao 20 25

AG com elitismo melhor ?


Algoritmos Genticos

Critrios de Parada
Nmero de geraes. Encontrou a soluo (quando esta conhecida). Perda de diversidade.

Convergncia
nas ltimas k geraes no houve melhora da na aptido

Algoritmos Genticos

Terminologia

Indivduo
Simples membro da populao.

Cromossomo e Genoma e :
Coleo de genes Estrutura de dados que codifica a soluo de uma problema.

Gentipo
Na biologia, representa a composio gentica contida no Genoma. Nos AGs, representa a informao contida no cromossomo ou Algoritmos Genticos genoma.

Terminologia

Fentipo:
Objeto ou estrutura construda a partir das informaes do gentipo. o cromossomo decodificado.
Exemplo: Se o cromossomo codifica as dimenses de um edifcio, ento o fentipo o edifcio construdo.

Gene:
Codifica um simples parmetro do problema

Algoritmos Genticos

Terminologia

Alelos:
Valores que o gene pode assumir.
Ex.: Um gene representando a cor de um objeto pode ter alelos como azul, preto, verde etc...

Epistasia:
Interao entre genes do cromossomo cujo efeito desativar o outro gene. Um gene episttico quando sua presena desativa um gene em outra posio no cromossomo. No linearidade.
Algoritmos Genticos

Exerccio

Encontrar de x para o qual a funo f(x) = x2 - 3x + 4 assume o valor mnimo.

Assumir que x [-10, +10] Codificar X como vetor binrio Criar uma populao inicial com 4 indivduos Aplicar Mutao com taxa de 1% Aplicar Crossover com taxa de 60% Usar seleo por torneio. Usar 5 geraes. Algoritmos Genticos