View
18
Download
3
Category
Preview:
Citation preview
SISEEGenetic Algorithms
MEE
Thursday, May 19, 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, May 19, 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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Algoritmos Genéticos
4
Thursday, May 19, 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, May 19, 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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Parâmetros dos AG
7
Taxa de Cruzamento
• Define a probabilidade de dois indivíduos serem cruzados para gerar descendência
• Controla a renovação da população • Valor típico: 20 - 30%
Thursday, May 19, 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, May 19, 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, May 19, 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, May 19, 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, May 19, 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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Operadores
•Operadores de Cruzamento
•Operadores de Mutação
13
Thursday, May 19, 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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE
47
Operações de Cruzamento
Dois Exemplos do operador de cruzamento
Thursday, May 19, 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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE
48
Operador de Mutação
Exemplo de Mutação
Thursday, May 19, 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 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, May 19, 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, May 19, 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, May 19, 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, May 19, 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, May 19, 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, May 19, 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, May 19, 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, 1 implica a troca do gene nessa posição e 0 o contrário.
25
P1 = 10110010 P2 = 11010110M = 01110110
D1 = 11010110D2 = 10110010
Progenitores
Máscara aleatória
Descendentes
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Local & global minima
26
Genetic Algorithms use a set of starting points (the population) and iteratively generates better points from the population. As long as the initial population covers several basins, G.A. can examine several basins.
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplos de Aplicação
27
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)):
Factor de avaliação médio da população = 488.75
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
28
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 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 serão eliminados.
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
29
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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
30
Foram seleccionados os elementos 1, 3, 6 e 7 que passam a constituir a nova geração:
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
31
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çãoRepetidos
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
32
Foram seleccionados os elementos 1, 3, 4 e 6 que passam a consituir a nova geração:
Thursday, May 19, 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ê?
33
Conclusões:
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Máximo de uma função
34
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, May 19, 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.
35
Conclusões:
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Sequenciamento de tarefas
36
• 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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Sequenciamento de tarefas
37
• 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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Sequenciamento de tarefas
38
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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Sequenciamento de tarefas
39
Após o cruzamento obteremos:
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - Sequenciamento de tarefas
40
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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE MATLAB - A função ga
41
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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE A função ga
42
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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE A função ga
43
>> [x fval] = ga(@rastriginsfcn, 2)
Exemplo:
Resultado:
x = 0.0027 -0.0052
fval = 0.0068
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE A função ga a partir duma M-file
44
É 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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE A função ga a partir duma M-file
45
plot(0:.05:1, record);xlabel('Crossover Fraction');ylabel('fval')
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Matlab - Optimization Tool
46
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Matlab - Optimization Tool
47
Thursday, May 19, 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
48
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Escrita de funções a optimizar
49
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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Escrita de funções a optimizar
50
Exemplo de invocação da função:
>> my_fun([2 3])
ans =
-5
Thursday, May 19, 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).
51
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo
52
Achar o mínimo da função de Rastringin
Mínimo local
Máximo local
Mínimoglobal [0,0]
Mínimoglobal
Thursday, May 19, 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
53
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo
54
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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo
55
Obtenção de gráficos
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exercício 1
56
1.Criar uma M-file com o seu código
2.Achar o seu mínimo usando AG
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exercício 1
57
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, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exercício 2
58
No Help do MATLABabrir as secções > Global Optimization Toolbox
> Demos> Genetic Algorithm e
> Global Optimization Toolbox> User’s Guide
> Using the Genetic Algorithm > GA examples
Estudem e experimentem com os exemplos:• Example - Global versus local minima Selection• Population diversity• Reproduction options• Mutation and Crossover• ...
Thursday, May 19, 2011
ISEP-DEI, © 2007 Carlos Ramos, © 2010 António Silva
SISEE Exemplo - mínimos globais e locais
59
Em Global Optimization toolbox User Manual, pags. 5.72-76
Objectivo: encontrar o mínimo global da função
Thursday, May 19, 2011
Recommended