Introdução aos algoritmos genéticos

Download Report

Transcript Introdução aos algoritmos genéticos

Optimização
Os problemas de optimização têm como objetivo maximizar ou minimizar
uma função definida sobre um certo domínio
Optimizar (max ou min) função – função objectivo
sujeita a um conjunto de restrições
Região admissível R é o conjunto de pontos que satisfazem as restrições
Solução admissível é qualquer ponto de R
Solução óptima é um ponto de R a que corresponde o maior (menor) valor da
função objectivo
Exemplos: alinhamento de sequências, squenciação, epesquisa de motivos,...
Algoritmos heurísticos
HEURÍSTICA DE MELHORAMENTO - parte de uma solução admissível e
procura melhorá-la através de sucessivas pequenas alterações
Ex: TSP
12
2
12
4
8
11
1
10
3
9
6
6
7
9
7
10
3
5
12
11
Heurística de melhoramento local (TSP)
12
2
12
8
11
1
10
3
11
9
12
6
4
8
11
6
7
9
1
10
Trocar 2-3
3
12
11
9
6
6
7
9
7
10
3
5
7
1-2-3-4-5-6-7
Distância =69
12
2
10
3
5
12
1-3-2-4-5-6-7
Distância =68
4
Heurística de melhoramento local (TSP)
Iteração 1
1-2-3-4-5-6-7-1 Distância =69
Troca 2-3
12
2
12
4
Troca 3-4
1-2-4-3-5-6-7-1 Distância =65
8
11
1
10
3
12
11
9
6
6
7
9
7
10
3
5
1-3-2-4-5-6-7-1 Distância =68
Troca 4-5
1-2-3-5-4-6-7-1 Distância =65
Troca 5-6
1-2-3-4-6-5-7-1 Distância =66
Heurística de melhoramento local (TSP)
Iteração 2
1-2-4-3-5-6-7-1 Distância =65
Apenas a troca 3-5-6 leva a um melhoramento no valor da solução
1-2-4-6-5-3-7-1 Distância =64
Mais nenhuma troca leva a melhoramentos
Heurística de melhoramento local (TSP)
12
4
8
11
1
10
3
11
9
12
2
10
3
5
12
Solução óptima
1-2-4-6-7-5-3-1
Distância =63
12
2
12
6
4
8
11
6
7
9
1
10
3
Solução da heurística
1-2-4-6-5-3-7-1
Distância =64
5
9
6
6
7
9
7
10
3
7
12
11
Metaheuristicas
Metaheurística – método heurístico para resolver de forma genérica
problemas de optimização.
As metaheurísticas fornecem uma estrutura e uma estratégia para
desenvolver algoritmos heurísticos para problemas específicos
Desvantagens heurística de melhoramento local – pára num óptimo local
Considerar várias soluções iniciais, escolhidas aleatoriamente
Metaheurística – combina melhoramento local com estratégias
que permitam escapar aos óptimos locais
Metaheuristicas
Pesquisa Tabu - Pesquisa “inteligente”, que pretende imitar o comportamento
humano e aplicar algumas regras de aprendizagem. Algumas alternativas de
pesquisa podem ser excluídas – lista tabu.
Uso de memória – o passado, recente ou mais afastado, vai influir
determinantemente no processo de pesquisa, guiando-a em função
das soluções já visitadas.
Simulated Annealing (arrefecimento simulado) técnica de busca local probabilística,
com analogia na termodinâmica
Algoritmo genético - faz uma analogia entre o processo de encontrar
soluções óptimas ou de boa qualidade para problemas complexos e a teoria
da evolução das espécies baseada no princípio da sobrevivência dos
indivíduos mais aptos de uma população.
Algoritmos genéticos
“As espécies evoluem pelo principio da seleção natural
e sobrevivência do mais apto.” Charles Darwin”
Holland (1975)*
Imitar algumas etapas da selecção natural incorporando-as num
algoritmo computacional.
Uma criança herda alguns dos cromossomas de cada um dos progenitores
Herança de “boas” características  maior probabilidade de sobrevivência
Maior probabilidade de sobrevivência  “boas” características transmitidas aos descendentes
Mutações (ocorrem ocasionalmente)  alteração característica de um cromossoma
Mutação traz vantagem  maior probabilidade de sobrevivência
A população tende a melhorar ao longo do tempo
Algoritmos genéticos
População de indivíduos de uma geração
Processo de selecção de indivíduos para reprodução, baseado na
sua aptidão
Cruzamento dos pares de indivíduos seleccionados,
mais algumas transformações...
População da geração seguinte.
Este processo repete-se por um número especificado de gerações.
Algoritmos genéticos
Os indivíduos são representados por cromossomas;
Seleccionam-se os mais aptos para darem origem à geração seguinte
(selecção para reprodução)
Os indivíduos seleccionados passam por uma série de transformações.
(cruzamento e mutação)
Selecção, cruzamento e mutação
operadores genéticos.
Algoritmos genéticos
Indivíduo
Aptidão
do indivíduo
População
Geração
solução do problema
função de avaliação
da solução
conjunto de soluções
iteração do algoritmo
Algoritmos genéticos
Codificação das soluções (cromossomas);
Criação de uma população inicial;
Função de avaliação das soluções em termos da sua aptidão
(função objectivo);
Utilizar operadores (genéticos) na construção de uma nova
geração
Selecção, Mutação, Cruzamento
Algoritmo
Inicialização
Gerar a população inicial (cromossomas)
Avaliar a população (cromossomas)
Enquanto critério de paragem não for satisfeito
Iteração
Seleccionar os indivíduos mais aptos (progenitores)
Criar nova população (partindo dos cromossomas
seleccionados e aplicando os operadores cruzamento e
mutação)
Avaliar a população
Output cromossoma mais apto na população actual
Desvios relativamente à teoria da evolução: um adulto (solução) pode ser usado
para reprodução em várias gerações.
Algoritmos genéticos
Algumas questões:
- Qual a melhor codificação para as soluções?
-População inicial ( conjunto soluções) pode ser gerada aleatoriamente.
- Qual a dimensão da população?
- Seleccionar alguns elementos da população para cruzamento. Quais?
-Como fazer o cruzamento?
-Reter, apenas, elementos da população que correspondem a soluções
admissíveis? reter apenas os mais aptos (?!)
- Em cada iteração, como fazer a substituição da população?
- Regra de paragem, qual? – nº de iterações, pré-fixado, sem melhoramento
do valor da “melhor” solução
Representação das soluções
Lista de elementos
Exemplos :
Listas de dígitos inteiros (6,8,2,3,...)
Listas de dígitos reais
(2.2, 4.6,...)
Listas de regras (R1, R2,...)
Para uma boa implementação de um AG é necessário uma boa
representação das soluções do problema.
Exemplo: Listas de dígitos binários (0,1,1,0,....)
População inicial pode ser gerada aleatoriamente, atirando uma moeda ao ar
tantas vezes quantas as necessárias, isto é,
dimensão do cromossoma × dimensão da população
Função aptidão
A aptidão de um cromossoma deve medir a qualidade da
solução associada
A função aptidão pode depender da função objectivo
Em muitos casos a aptidão de um cromossoma é o valor
da função objectivo da solução que ele codifica
Operadores genéticos
Selecção
A selecção dos progenitores é feita com base na aptidão,
indivíduos mais aptos têm maior probabilidade de se reproduzirem
Exemplo de selecção
Roleta enviesada
C
A
25,2%
31,9%
6,6
D
37,3%
4 cromossomas designados por A,B C e D
Para cada cromossoma existe uma secção na roleta
proporcional à taxa de aptidão desse cromossoma
face à aptidão total.
Os indivíduos seleccionados são sujeitos ao operador cruzamento
Operadores genéticos
Cruzamento
O cruzamento de dois cromossomas combina as características dos dois
transmitindo aos descendentes essa informação.
Pares de indivíduos são cruzados com uma determinada probabilidade.
Exemplo de Cruzamento Simples
 Selecciona-se aleatoriamente uma posição para o cruzamento
 Trocar os elementos em posições seguintes à do cruzamento
1
1 0 0 1 0 1
1
0 0 1 1 1 0
1 1 0 1 1 1 0
posição 2
1 0 0 0 1 0 1
Nota: Com listas binárias é “fácil” fazer o cruzamento
Operadores genéticos
Mutação
Cada descendente é sujeito a mutação com uma detreminada probabilidade
Exemplo de Mutação Simples
 Selecciona-se aleatoriamente uma posição do cromossoma e
substitui-se o elemento nessa posição pelo seu complementar
posição 2
1 0 0 1 1 1 0
1 1 0 1 1 1 0
O algoritmo vai explorar uma “nova” zona da região admissível
Exemplo
max f(x) = x2 , x  [0,31], x inteiro
(Goldberg,89)
Codificação das soluções - listas binárias
31 na base 10  31,
3101+1100
Listas binárias
31 na base 2  11111
124 + 123+122+ 121+120 = 31
12 na base 2  01100
024 + 123+122+ 021+020 = 8+4= 12
x  [0,31], na base 2
(a4,a3,a2,a1,a0) com ai=0 ou 1
x = a424 + a323+a222+ a121+a02
Nota: cada ai é um gene
Exemplo
Dimensão da população = 4
em cada iteração (geração) temos 4 indivíduos
Função Aptidão dada por f(x) = x2
por exemplo x = 8 tem aptidão f(8)=64 e
x = 0 tem aptidão f(0)=0.
População inicial gerada aleatoriamente
Lançando uma moeda ao ar 20 vezes (porquê?),
cara
1
coroa
0
Lista nº
1
2
3
4
População inicial
(gerada aleatoriamente)
Valorx de x
f(x)
f(x)
01101
11000
01000
10011
13
24
8
19
169
576
64
361
Exemplo
Selecção e reprodução
A probabilidade de selecção do indivíduo i pode ser dada por f(x i )
Exemplo: lista nº1 (indivíduo 1)
 f(x i )
 f(x i ) =1170;
f(1)=169;
p1=169/1170=0.14
De acordo com estas probabilidades, constrói-se a roleta enviesada.
Gira-se a roleta 4 vezes para seleccionar 4 progenitores.
pseleccionar
Lista nº
1
2
3
4
População inicial
(gerada aleatoriamente)
x
01101
11000
01000
10011
13
24
8
19
169
576
64
361
Soma
Média
Máximo
1170
293
576
f(x)
fi
 fi
0.14
0.49
0.06
0.31
frequência
esperada
fi
f
0.58
1.97
0.22
1.23
frequência
observada
roleta
1
2
0
1
Exemplo
Cruzamento
1º) emparelham-se aleatoriamente os progenitores seleccionados;
2º) para cada par, o ponto de cruzamento é seleccionado aleatoriamente
Progenitores
selecionados
(ponto de cruzamento)
par
Ponto de
cruzamento
Nova população
x
f(x)
01101
11000
11000
10011
2
1
4
3
4
4
2
2
01100
11001
11011
10000
12
25
27
16
144
625
729
256
Soma
Média
Máximo
1754
439
729
Nota: Pode considerar-se que cada nova geração substituiu a antiga em bloco.
Nesta geração, a aptidão média aumentou de 293 para 439,
a aptidão máxima aumentou de 576 para 729.
Exemplo
Mutação
Considere-se a probabilidade de mutação pm= 0.001 e o cruzamento
dos indivíduos 1 e 2;
Gerem-se aleatoriamente dez números, xi, entre 0 e 1;
Se xi<0.001 vai ocorrer uma mutação no gene i;
Caso contrário não ocorre mutação no gene i
Exemplo. Supondo que a8<0.001 e ai>=0.001, i8
Nenhuma mutação em C1, uma mutação no gene 3 de C2
Após cruzamento
C1: 01100
C2: 11001
C1: 01100
C2: 11101
Mutação
X1=12
X2=25
X1=12
X2=29
Nova população
01100
11101
11011
10000
Convergência
Rudolph (1994) prova, usando Cadeias de Markov finitas, que um algoritmo
genético converge assimptoticamente para o óptimo global desde que se
use elitismo.
Rudolph, G. (1994) “Convergence Analysis of Canonical Genetic
Algorithms”, IEEE Transactions on Neural Networks 5 (1) pp 96-101.
Num AG não existe garantia de que o elemento mais apto (“melhor” solução)
passe para a geração seguinte.
O elitismo consiste na selecção obrigatória para a geração seguinte do indivíduo
que representa a melhor solução até ao momento.
Questões
Nas iterações iniciais podem ocorrer situações em que existem alguns indivíduos muito
aptos numa população de aptidão média reduzida. Estes indivíduos podem levar o AG a
convergir prematuramente (para uma solução de má qualidade). Para evitar a
convergência prematura e estimular a competição selectiva mais tarde, existem técnicas
de calibração da função de aptidão que modificam a escala de aptidão.
Caso a população inicial não inclua indivíduos correspondentes a soluções admissíveis
pode-se recorrer, por exemplo, a uma heurística construtiva para obter indivíduos
correspondentes a soluções admissíveis .
Empiricamente, vários autores sugerem dimensão da população da ordem dim_pop=30.
Alander (1992)* sugere n  dim_pop  2n) sendo n a dimensão do cromossoma binário.
A eficiência de um AG pode ser melhorada incorporando no AG outra técnica heurística –
hibridização.
Questões
Pode-se definir vários tipos de cruzamento múltiplo (multi-point crossover).
Exemplo:
1
1 0 0 1 0 1
1 1 0 1 1 0 1
1
0 0 1 1 1 0
1 0 0 0 1 1 0
posições 2 e 5
Em geral, a população de uma geração é totalmente substituída pelos descendentes da
geração anterior. Podem perder-se indivíduos de boa qualidade de uma geração para
outra. Mecanismos para contrariar estas desvantagens são, por exemplo o
elitismo e a substituição incremental.
substituição incremental – a população da geração seguinte é constituída criando
apenas r (valores pequenos para r) filhos por cruzamento que vão substituir r
membros da população corrente.