Trabalho para a disciplina de Otimização
Natural
Autor: Adriano Gomes
Roteiro
1.
2.
3.
4.
Introdução
Exemplos de mudança de parâmetros
Classificação das técnicas de controle
Outros exemplos de variação de parâmetros de EAs
Introdução
Objetivo: escolher os parâmetros ótimos para
algoritmos evolucionários (EA)
Parâmetros de algoritmo ou parâmetros de estratégia
Tamanho da população
Probabilidade de mutação
Probabilidade de cross over
etc
Introdução
Duas formas de definir os valores dos parâmetros do
algoritmo
Afinação de parâmetros (parameter tuning)
Abordagem comumente praticada
Consiste em definir bons valores de parâmetros antes de
executar o algoritmo
Rodar o algoritmo com os parâmetros fixos
Introdução
Controle de parâmetros (parameter control)
Rodar o algoritmo com parâmetros iniciais
Parâmetros são modificados no decorrer da execução do
algoritmo
Introdução
Sabe-se que:
Os parâmetros não são independentes e testar todas as
combinações é impraticável
Para 4 parâmetros que podem assumir 5 valores cada um,
existem 54 = 625 combinações
Se para cada combinação rodarmos o algoritmo 100 vezes,
executaríamos ele 62500 vezes
O processo de afinação de parâmetros consome muito
tempo (mesmo se desconsiderarmos a relação entre os
parâmetros)
Os valores selecionados após o processo de afinação não são
necessariamente ótimos
Introdução
Devido os EA’s serem processos dinâmicos e
adaptativos:
Conjuntos de valores de parâmetros distintos podem ser
ótimos em diferentes estágios do processo evolucionário
Conclusão: Usos de parâmetros estáticos podem levar
a uma performance inferior do algoritmo
Em outras palavras: parâmetros que variam com o
decorrer do algoritmo sempre podem ser melhores
que parâmetros estáticos
Introdução
Solução: Definir os parâmetros como funções do tempo (p
=> p(t))
Problema: como o processo para definir parâmetros
estáticos já é complexo, definir parâmetros dinâmicos é
ainda mais
Outra abordagem: Utilizar um EA para afinar os
parâmetros do EA que tenta resolver um problema
particular
Duas maneiras
Utilizar dois EAs, onde um deles (META-EA) é utilizado
para afinar os parâmetros do outro
Utilizar apenas um EA, o qual afina os próprios parâmetros
e resolve o problema
Exemplos de mudança de
parâmetros
Problema: otimização numérica para minimizar:
f(X) = f(x1, ..., xn)
Sujeita a alguma desigualdade e restrições de igualdade:
gi(X) ≤ 0 , i=1, ..., q
hj(X) = 0, j = q+1, ..., m
Domínio das variáveis dados pelos limites superior e
inferior li ≤ xi ≤ ui , 1 ≤ i ≤ n
Algoritmo evolucionário baseado na representação de
ponto flutuante (X representado como um vetor de ponto
flutuante)
Exemplos de mudança de
parâmetros
Mudança do tamanho do passo da mutação
Assumindo que a prole é produzida por crossover aritmético e por
mutação gaussiana, substituindo componentes do vetor X por:
xi’ = xi + N(0, σ)
Método mais simples: utilizar σ fixo
Mas, pode ser vantajoso variar o tamanho do passo da mutação (variar
σ)
Primeiro modo de variar o parâmetro σ
Mantendo o mesmo σ para todos os vetores X e para todas as
variáveis/componentes de X
Usando um σ dinâmico de acordo com o número da geração
Exemplo:
σ(t) = 1 – 0.9 * (t/T)
t é o número da geração atual (variando de 0 a T)
o passo decresce conforme t aumenta(σ(0)=1 até σ(T)=0.1 )
Exemplos de mudança de
parâmetros
A mudança do valor de σ é completamente determinístico
Métodos de mudança deste tipo são chamados de controle de
parâmetros determinísticos
Implica em total controle por parte do usuário
Segundo modo de variar o parâmetro σ
Mantendo o mesmo σ para todos os vetores X e para todas as
variáveis/componentes de X
Incorporando feedback do processo de busca
Este tipo de variação (que incorpora feedback) é chamado de Controle
de parâmetro adaptativo
Exemplo bem conhecido (Rechenberg’s 1/5 rule):
Taxa de sucesso de todas as mutações deve ser 1/5
Se a taxa é maior que 1/5, o tamanho do passo deve ser incrementado
Se a taxa é menor que 1/5, o tamanho do passo deve ser decrementado
Exemplos de mudança de
parâmetros
A regra é executada em intervalos periódicos (depois de k iterações) e
pode ser expressa matematicamente por:
σ’ = σ/c
, se ps>1/5
σ’ = σ * c , se ps<1/5
σ’ = σ
, se ps=1/5
0.817 ≤ c ≤ 1
Valores de σ(t) são não determinísticos
Terceiro modo de variar o parâmetro σ
Atribuir um tamanho individual de passo da mutação para cada
solução
Para isso, estender a notação de indivíduos para o tamanho n+1
X = (x1, ..., xn, σ)
Então, o σ de cada indivíduo também sofrerá evolução
Possível solução:
σ‘ = σ * e^(τ * N(0,1))
xi‘ = xi + σ‘ * Ni(0,1)
Exemplos de mudança de
parâmetros
Se desejarmos um tamanho de parâmetro do passo da
mutação para cada xi, estendemos X da seguinte forma:
X = (x1, ..., xn, σ1, ..., σn)
E a solução passa a ser:
σ‘ = σ * e^(τ * Ni (0,1))
xi‘ = xi + σi‘ * Ni(0,1)
Esse modo de variar o passo através da evolução é
chamado de controle de parâmetro Self-adaptive (Selfadaptive parameter control)
Exemplos de mudança de
parâmetros
Mudança nos coeficientes de penalidade
Quando lida-se com funções que possuem restrições
Frequentemente usa-se funções de penalidade para penalizar a função
objetivo
Se queremos minimizar a função, a penalidade é positiva
Se queremos maximizar a função, a penalidade é negativa
No exemplo inicial, podemos reescrever a função de avaliação como:
eval(X) = f(X) + W * penalty(X)
Como queremos minimizar a função, penalty(X) será positiva se alguma
restrição for violada e zero caso contrário
Em muitos métodos, um conjunto de funções fj (1 ≤ j ≤ m) é utilizado
para construir a penalidade. No exemplo:
fj(X) = max{0, gj(X)}
fj(X) = |hj(X)|
, se 1 ≤ j ≤ q
, se q+1 ≤ j ≤ m
W é o peso e é definido pelo usuário
Exemplos de mudança de
parâmetros
Podemos usar W fixo ou variar utilizando os três métodos
descritos na mudança do passo da mutação:
Controle de parâmetro determinístico
Exemplo:
W(t) = (C * t)α , C,α ≥ 1
Controle de parâmetro adaptativo
Exemplo:
W(t+1) = (1/β1) * W(t)
W(t+1) = (β2) * W(t)
W(t)
, se bi ϵ ϝ para todo t-k+1 ≤ i ≤ t
, se bi ϵ S-ϝ para todo t-k+1 ≤ i ≤ (t)
, caso contrário
S é o conjunto de todos os pontos de busca (soluções)
ϝ é o conjunto de todas as soluções possíveis (ϝ S)
bi é o melhor indivíduo com base na função eval
β1 ,β2>1 e β1β2
Exemplos de mudança de
parâmetros
Em palavras
Se nas últimas k gerações todos os melhores indivíduos são indivíduos possíveis
(que não violam restrições), então W(t+1) é diminuído
Se nas últimas k gerações todos os melhores indivíduos são indivíduos não possíveis
(que violam restrições), então W(t+1) é aumentado
Se existem indivíduos possíveis e não possíveis nas últimas k gerações, então
W(t+1)=W(t)
Controle de parâmetro self-adaptive
Exemplo
Representação do indivíduo
X = (x1, ..., xn, w1, ..., wn)
Função de avalição
eval(X) = f(X) +
Problema:
𝑚
𝑗=1 𝑤𝑗 𝑓𝑗 (𝑋)
eval(X,W) = fw(X)
A função de avaliação fica dependente dos pesos e a evolução pode focar na
minimização dos pesos ao invés de otimizar f e satisfazer as restrições
Classificação das técnicas
de controle
Alguns aspectos que devem ser levados em conta em
técnicas de controle de parâmetros
O que varia?
Componentes de um EA
Representação de indivíduos
Função de avaliação
Operadores de variação e as suas probabilidades
Operadores de seleção (seleção de pais)
Operadores de substituição (seleção de sobrevivente)
População (tamanho, topologia, etc)
Não sabemos ao certo o número de parâmetros, pois cada
componente pode ser parametrizado e gerar um ou mais
parâmetros
Classificação das técnicas
de controle
Como são feitas as mudanças?
Já visto:
Tipos de configuração de parâmetros
Afinação de parâmetros
Controle de parâmetros
Categorias do controle de parâmetros
Controle de parâmetro determinístico
Controle de parâmetro adaptativo
Controle de parâmetro self-adaptive
Classificação das técnicas
de controle
Quais evidências informam as mudanças?
Evidência absoluta
O valor do parâmetro de estratégia é alterado por alguma
regra que é aplicada quando um evento predefinido ocorre
Usa o feedback da busca
Exemplos
Aumento da taxa de mutação quando a diversidade da
população cai abaixo de um dado valor
Mudança da probabilidade de realização da mutação ou
crossover de acordo com um conjunto de regras fuzzy usando
uma variedade de estatísticas da população
Métodos para regular o tamanho da população baseado nas
estimativas de aptidão e variância
Classificação das técnicas
de controle
Evidência relativa
Os valores dos parâmetros são comparados de acordo com
a aptidão da prole que eles produzem e os melhores
valores são recompensados
A direção ou magnitude da mudança do parâmetro não é
especificado deterministicamente, mas relativo a
performance de outros parâmetros
Relação entre evidência absoluta, relativa e controle de
parâmetro determinístico, adaptativo e self-adaptative
Determinístico
Adaptativo Self-adaptative
Absoluto
Possível
Possível
Não possível
Relativo
Não possível
Possível
Possível
Classificação das técnicas
de controle
Qual é o escopo da mudança?
Afeta o gene (parâmetro)
Afeta o cromossomo inteiro (indivíduo)
Afeta a população inteira
Afeta outro componente (ex: seleção)
Afeta a função de avaliação
Outros exemplos de
variação de parâmetros de
EAs
Variação da função de avaliação
Problema de satisfação de restrições (o objetivo é
encontrar um vetor S que satisfaça todas as restrições)
𝑚
𝑓 𝑆 =
𝑤𝑖 ∗ 𝑥(𝑆, 𝑐𝑖 )
𝑖=1
𝑥 𝑆, 𝑐𝑖 = 1,
𝑆𝑒 𝑆 𝑣𝑖𝑜𝑙𝑎 𝑐𝑖
𝑥 𝑆, 𝑐𝑖 = 0,
𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜
wi é peso atribuído a cada restrição (expressa a
dificuldade de satisfazê-la)
ci’s são as restrições
Outros exemplos de
variação de parâmetros de
EAs
Variação da probabilidade de mutação
Controle de parâmetro determinístico
−𝑡
exp(
)
α
2
𝑝𝑚 =
𝑥
β
λ 𝐿
α, β, são constantes
L é o comprimento do cromossomo
λ é o tamanho da população
t é o tempo (número da geração)
Outros exemplos de
variação de parâmetros de
EAs
Controle de parâmetro self-adaptative
Como fazer a mutação?
Estender o cromossomo de 20 bits
Seguir os passos:
1.
2.
3.
4.
Problema
Decodificar os 20 bits para pm
Fazer a mutação nesses 20 bits com probabilidade pm
Decodificar os bits resultantes da mutação para pm’
Fazer a mutação nos bits que codificam a solução com
probabilidade pm’
Fica preso em regiões sub-ótimas com baixa taxa de mutação
para cada indivíduo da população
Solução
Eliminar o primeiro passo e realizar a mutação do segundo
passo com probabilidade fixa
Outros exemplos de
variação de parâmetros de
EAs
Variação da taxa de Crossover
Exemplo
É usado mais de um operador de Crossover
Cada operador possui uma probabilidade pc(opi)
Cada operador têm um valor di que representa a força
do operador (recompensa obtida de acordo com a
qualidade da cria gerada)
di‘s atualizados a cada uso do operador i
pc(opi)’s são recalculados a cada k gerações
Ideia: redistribuir 15% das probabilidades baseado na
força do operados
Outros exemplos de
variação de parâmetros de
EAs
Para isso, os di’s são normalizados para ter soma 15
(dinorm)
As probabilidades são recalculadas de acordo com:
pc(opi) = 0.85 * pc(opi) + 0.01 * dinorm
Outros exemplos de
variação de parâmetros de
EAs
Variação de parâmetros da seleção
Existem mecanismos que variam a pressão de seleção baseado
no fator de Boltzmann
Exemplo
Uso do critério de aceitação de Boltzmann em uma parte da busca
local de um algoritmo memético
A temperatura é inversamente relacionada com a diversidade de
aptidão da população
Quanto mais espalhados forem os valores de aptidão, menor é a
temperatura
Muito espalhado implica em temperatura baixa (menos provável
aceitar soluções piores)
Pouco espalhado implica em temperatura alta (mais provável
aceitar soluções piores
Consequência: contribui para elevar a diversidade da população
Outros exemplos de
variação de parâmetros de
EAs
Variação do tamanho da população
Exemplo
Atribuir um tempo de vida aos indivíduos da população
Em cada geração, reduzir o tempo de vida dos
indivíduos de um
Se o tempo de vida chega a zero, o indivíduo é removido
Aos indivíduos recém-nascidos são atribuídos tempos de
vida baseados nas suas aptidões
O número de crias de um indivíduo é proporcional ao
número de gerações que ele sobrevive (propaga genes
bons)