SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... ·...
Transcript of SISEE - Departamento de Engenharia Informáticaasilva/resources/Outras-Cadeiras/SISEE/SISEE... ·...
SISEEGenetic Algorithms
MEE
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Algoritmos Genéticos
2
Os Algoritmos Genéticos trabalham com populações de soluções que são combinadas para obter novas soluções, e assim sucessivamente até obter uma solução satisfatória.
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE
45
Analogia entre a evolução natural e os algoritmos genéticos
Analogia com a NaturezaAnalogia com a NaturezaAnalogia com a Natureza
Evolução Natural ⇔ Algoritmos Genéticos
Indivíduo — Solução
Genótipo (cromossomas) — Representação da Solução
Reprodução Sexual — Operador de Recombinação (p.ex. cruzamento)
Mutação — Operador Mutação
População — Conjunto de Soluções
Gerações — Ciclos
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Algoritmos Genéticos
4
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Parâmetros dos AG
5
•Tamanho da população•Taxa de cruzamento•Taxa de mutação•Taxa de substituição•Critérios de paragem
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Parâmetros dos AG
6
Tamanho da População
• Determina • a qualidade da solução• o tempo de processamento
• Considera-se geralmente o tamanho da população estável
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Parâmetros dos AG
7
Taxa de Cruzamento
• Define a probabilidade de 2 indivíduos serem cruzados para gerar descendência
• Valor típico: 20 - 30%
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Parâmetros dos AG
8
Taxa de Mutação
• Mutação permite gerar indivíduos com melhores características
• Permite fugir de máximos/mínimos locais do problema
• Valor típico: 1%
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Parâmetros dos AG
9
Taxa de Substituição
• Define percentagem da população a substituir entre gerações
• Valores elevados -> excessiva renovação
• Valores baixos -> estagnação
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Parâmetros dos AG
10
Critérios de Paragem
• Encontrar uma solução com um valor de aptidão (“fitness”) pré-definido
• Atingir um determinado limite temporal
• Atingir um determinado número de gerações
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Avaliação e Aptidão
11
• A aptidão (“fitness”) dum indivíduo é calculada usando uma função de avaliação.
• Esta função é específica de cada problema.• Retorna um valor numérico que traduz o
mérito da solução.• O seu cálculo deve ser simples já que se
aplica a todos os elementos da população para cada geração.
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Selecção
12
• Escolha de N indivíduos para posterior reprodução
• Métodos determinísticos seleccionam com base na aptidão dos indivíduos• Arriscam-se a convergir em mínimos locais• Processo custoso em populações grandes
• Métodos estocásticos introduzem grau de aleatoriedade.• Garantem que um certo número de soluções
menos aptas são escolhidas
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Operadores
•Operadores de Cruzamento
•Operadores de Mutação
13
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Operadores de Cruzamento
14
• Principal operador dos AG• Combina material genético de dois
progenitores previamente seleccionados• Cromossomas representados por sequências
• operador • escolhe aleatoriamente 1 ou 2 pontos de corte• aplica uma máscara das posições a trocar• mistura partes resultantes dos 2 progenitores
• Nem sempre os descendentes são viáveis
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE
47
Operações de Cruzamento
Dois Exemplos do operador de cruzamento
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Operadores de Mutação
16
• Trazem de volta à população genes perdidos na selecção
• Fornecem novos genes que não pertenciam à população original
• A mutação pode ocorrer em 1 ou mais genes, trocando o gene existente por outro gene viável.
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE
48
Operador de Mutação
Exemplo de Mutação
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE
46
Esqueleto típico de um algoritmo genético
Gerar P0
t ← 0Avalia Pt
enquanto ! Condição de final Pt faz P’t ← Selecciona Pt
P’’t ← Aplica operadores de re-combinação P’t P’’’t ← Aplica operadores de mutação P’’t Avalia P’’’t Pt+1 ← Selecciona Sobreviventes de Pt e de P’’’t t ← t + 1Fimretorna Melhor Solução Global
iteraçãoPopulação de soluções potenciais
População inicial
Avaliar e seleccionar os mais aptos
Gera
r nov
os in
divídu
os
Avaliar a sua aptidão
nova iteração
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE
49
Problema - Exemplo
• Considere o problema de sequenciamento de 5 tarefas numa única máquina.
• Para cada tarefa j (j=1, …, 5), seja pj o tempo de processamento, dj a data de entrega e wj a penalização (por unidade de tempo) no caso da tarefa j se atrasar.
• O objectivo é minimizar a soma pesada dos atrasos ΣwjTj. (T - atrasos)
Tempos de processamento:p1=2p2=4p3=1p4=3p5=3
Datas de entrega d1=5d2=7d3=11d4=9d5=8
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE
50
Problema Exemplo (cont)
Para visualizar uma sequência é muitas vezes utilizado um diagrama de Gantt, onde as linhas estão associadas às tarefas e as colunas aos períodos de tempo. Para a sequência de tarefas [3,1,2,5,4] obtém-se o calendário representado a seguir.
Duraçãop1=2p2=4p3=1p4=3p5=3
Datas d1=5d2=7d3=11d4=9d5=8
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE
51
Problema - Exemplo (cont)
1. Supondo o seguinte par de indivíduos, são seleccionados 2 pontos de cruzamento (4º e 7º). 2. Os genes situados entre os dois pontos de cruzamento, inclusive, são copiados para os seus descendentes, sendo as restantes posições preenchidas por um caracter H.
Método de Recombinação usado
A=123456789 A’=HHH4567HHB=452187693 B’=HHH1876HH
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Problema - Exemplo (cont)
22
3. De seguida, e começando no segundo ponto de cruzamento do progenitor B define-se uma nova ordem para os genes:
[9 3 4 5 2 1 8 7 6]
4. Depois de remover os genes 4, 5, 6 e 7 já definidos no filho A’, ficamos com os genes [9 3 2 1 8]. As posições em A’ com H serão preenchidas pela sequência anterior começando pelo segundo ponto de cruzamento:
Método de Recombinação usado (cont.)
A’=218456793
B era 452187693
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Problema - Exemplo (cont)
23
5. Da mesma forma para gerar o segundo descendente B’, define-se uma nova sequência a partir de A:
[8 9 1 2 3 4 5 6 7].
6. Eliminando os genes já definidos em B’, obtém-se a sequência: [9 2 3 4 5]. A seguir substitui-se nas lacunas (H) de B’ a sequência obtida, começando no 2º ponto de cruzamento obtendo-se o descendente B’.
Método de Recombinação usado (cont.)
B’=345187692
A era 123456789
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Problema - Exemplo (cont)
24
A=123456789 A’=218456793->
B=452187693 B’=345187692
• No operador de cruzamento com manutenção de ordem (Order Crossover) os genes a substituir de um dos progenitores aparecerão na ordem em que estão no outro progenitor.
• Os outros operadores com pontos de corte poderão produzir sequências não viáveis quando aplicados a este tipo de problemas (tarefas repetidas por exemplo)
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Operador de Cruzamento Uniforme
• Permite usar mais pontos de corte• Gera aleatoriamente as posições dos genes a
trocar, usando uma máscara binária com a dimensão dos cromossomas
• Na máscara o 1 implica a troca do gene nessa posição e o 0 o contrário.
25
P1 = 10110010 P2 = 11010110M = 01110110
D1 = 11010110D2 = 10110010
Progenitores
Máscara aleatória
Descendentes
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplos de Aplicação
26
Máximo de uma função• Considerar a função f(x)= x2 (x inteiro e no intervalo [0,63]. • O objectivo será maximizar o valor da função.• Codificação das soluções por uma string com 6 dígitos
binários.• quadro que nos dá os elementos da população e o valor
da função de avaliação (igual a f(x)).
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
27
Admita-se que:• o cruzamento se dá sempre entre os elementos 1
e 2, originando os elementos 5 e 6, e entre os elementos 3 e 4, originado os elementos 7 e 8.
• É usado um cruzamento uniforme, com máscara 101010.
• A selecção é feita com elitismo puro - os 4 elementos da solução com maiores valores de f(x) são seleccionados e serão os novos elementos 1, 2, 3 e 4 da geração seguinte.
• Se aparecerem elementos repetidos são eliminados.
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
28
Elemento nº População pós Cruzamento
Solução x f(x)
1 100101 37 13692 001001 9 813 010011 19 3614 001100 12 144
5 (cr. 1-2) 001101 13 1696 (cr. 1-2) 100001 33 10897 (cr. 3-4) 011001 25 6258 (cr. 3-4) 000110 6 36
Resultado após o 1º cruzamento:
101010Máscara Selecção
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
29
Foram seleccionados os elementos 1, 3, 6 e 7 que passam a constituir a nova geração:
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
30
Repetindo o ciclo de cruzamento, obtem-se:Elemento nº População pós
CruzamentoSolução x f(x)
1 100101 37 13692 010011 19 3613 100001 33 10894 011001 25 625
5 (cr. 1-2) 000111 7 496 (cr. 1-2) 110001 49 24017 (cr. 3-4) 011001 9 818 (cr. 3-4) 110001 49 2401
101010Máscara Selecção
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
31
Foram seleccionados os elementos 1, 3, 4 e 6 que passam a consituir a nova geração:
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
• Após 2 ciclos de cruzamento • o factor de avaliação médio da população subiu
de 488,75 para 1371.• o melhor elemento passou de um factor de
aptidão de 1369 para 2401• Será que convergiremos rapidamente para a
solução óptima?• Podemos já garantir que esta não será
encontrada por cruzamento de genes. Porquê?
32
Conclusões:
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
33
Conclusões:
Bit 5
Por muitas recombinações que se façam, nunca o bit 5 poderá ter o valor 1. A solução óptima (111111) é inatingível apenas por cruzamento. Mutações!
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
• Pouca diversidade pode levar à estagnação• Os elementos 1 e 2 têm 5 genes idênticos• Os elementos 3 e 4 têm 4 genes idênticos
• Os seus descendentes acabarão por ter cromossomas iguais aos seus progenitores
• Sem uma mutação favorável não será possível melhorar a solução.
34
Conclusões:
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Sequenciamento de tarefas
35
• Considere-se o sequenciamento de 9 tarefas {1,2,3,4,5,6,7,8,9} numa máquina.
• As tarefas impares são executadas por uma ferramenta fi e as tarefas pares são executadas com uma ferramenta fp.
• O objectivo é minimizar o número de trocas de ferramentas.
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Sequenciamento de tarefas
36
• A codificação será feita por uma sequência de 9 dígitos
• A função de avaliação procurará minimizar o número de trocas de ferramentas (o nº de passagens de par para ímpar e vice-versa),
• Escolher-se-ão os elementos da população com menor valor dessa função.
• Aconselha-se a utilização de um operador de cruzamento com manutenção de ordem, pois os outros operadores originariam soluções não viáveis (com tarefas repetidas e com tarefas ausentes).
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Sequenciamento de tarefas
37
Suponhamos a seguinte população inicial:
Aplique-se o operador de cruzamento com manutenção de ordem e 2 pontos de corte (entre o 2º e 3º genes e entre o 6º e 7º genes).
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Sequenciamento de tarefas
38
Após o cruzamento obteremos:
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Sequenciamento de tarefas
39
Por selecção elitista, obteremos:
• Obtivemos um elemento melhor que o melhor da geração anterior (nº3)
• A média das funções de avaliação diminuiu• Nunca chegaremos à solução óptima só por
cruzamento. Porquê?
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE MATLAB - A função ga
40
Chamar a função ga a partir da linha de comando:
Sintaxe:[x fval] = ga(@fitnessfun, nvars, options)
em quefitnessfun - função objectivo ou de fitnessnvars - nº das suas variáveis independentes options - estrutura especificando as opções (opcional)
Resultados:x - ponto em que o resultado é atingidofval - valor final da função de fitness
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE A função ga
41
Em que situações usar a função ga a partir da linha de comando?
•Quando se pretende retornar os resultados directamente na zona de trabalho (workspace) do MATLAB;
•Quando se quer correr o algoritmo genético repetidas vezes com diferentes opções, chamando-o a partir de uma M-file.
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE A função ga
42
>> [x fval] = ga(@rastriginsfcn, 2)
Exemplo:
Resultado:
x = 0.0027 -0.0052
fval = 0.0068
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE A função ga a partir duma M-file
43
É possível usar a linha de comando para correr várias vezes um AG com diferentes opções, usando uma M-file.
options = gaoptimset('Generations',300);strm = RandStream('mt19937ar','Seed',6525);RandStream.setDefaultStream(strm);record=[];for n=0:.05:1 options = gaoptimset(options,'CrossoverFraction', n); [x fval]=ga(@rastriginsfcn, 10,[],[],[],[],[],[],[],options); record = [record; fval];end
A taxa de Crossover (Crossover fraction / Reproduction options) especifica a % da população, exceptuando os descendentes de elite, que é composta por descendentes de crossover.
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE A função ga a partir duma M-file
44
plot(0:.05:1, record);xlabel('Crossover Fraction');ylabel('fval')
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Matlab - Optimization Tool
45
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Matlab - Optimization Tool
46
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Escrita de funções a optimizar
• Criar uma M-file que calcule a função a optimizar
• A M-file deve aceitar um vector, cujo comprimento é o nº de variáveis independentes
47
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Escrita de funções a optimizar
48
Exemplo
function z = my_fun(x)z = x(1)^2 - 2*x(1)*x(2) + 6*x(1) + x(2)^2 - 6*x(2);
Função a minimizar:
A M-file deverá aceitar um vector x de comprimento 2, correspondendo às variáveis x1 e x2.
Passos:1. Seleccionar File/New2. Seleccionar M-File3. Introduzir na M-file o seguinte código:
4. Salvar a M-file no directório do MATLAB
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Escrita de funções a optimizar
49
Exemplo de invocação da função:
>> my_fun([2 3])
ans =
-5
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Maximização e minimização
• As funções de optimização do toolbox de AG minimizam as funções objectivo ou de fitness.
• Ou seja, resolvem problemas do tipo
• Se quisermos operar uma maximização basta minimizarmos -f(x).
50
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo
51
Achar o mínimo da função de Rastringin
Mínimo local
Máximo local
Mínimoglobal [0,0]
Mínimoglobal
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo
1. >> optimtool(‘ga’)
2. Na Optimization Tool• No campo Fitness Function introduzir:
@rastriginsfcn• No campo Number of variables introduzir: 2
3. Clicar em Start na área Run solver and view results
52
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo
53
Resultados:
Motivo da paragem do algoritmo
Valor final da função de
fitness
Valores das variáveis independentes que corrspondem ao valor final da função de fitness
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo
54
Obtenção de gráficos
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exercício 1
55
1.Criar uma M-file com o seu código
2.Achar o seu mínimo usando AG
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exercício 1
56
function y = simple_objective(x) y = (4 - 2.1*x(1)^2 + x(1)^4/3)*x(1)^2 + x(1)*x(2) + ... (-4 + 4*x(2)^2)*x(2)^2
M-file:
Resultado:
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exercício 2
57
No Help do MATLABabrir a secção > Genetic Algorithm & Direct Search Toolbox
> User Guide> Genetic Algorithm Examples
> Improving Your results
Estudem e experimentem com os exemplos:• Example - Global versus local minima Selection• Population diversity• Reproduction options• Mutation and Crossover• ...
Thursday, April 7, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - mínimos globais e locais
58
Em Global Optimization toolbox User Manual, pags. 5.72-76
Objectivo: encontrar o mínimo global da função
Thursday, April 7, 2011