Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1...
Transcript of Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1...
1
Algoritmos Genéticos em Problemas com Restrições
Problemas com Restrições
• Em GAs, técnicas de inicialização, crossover e mutação garantem genes dentro do domínio de cada variável xi.
Gene i ∈ {mín, máx}• Todavia, não garantem que o cromossoma satisfaça
determinadas restrições. Exemplo simples:Encontrar os percentuais de investimento (p i%) em ndiferentes ações que maximizam o retorno da carteira.
pi ∈ {0, 1} porém ∑ pi = 1
p1 p2 p3 . . . pn-1 pn
Soluções do problema devem satisfazer restrições quanto à solução (xi) e/ou à avaliação (f)
2
Técnicas para lidar com Restrições
• Função Penalty
• Eliminação de Soluções
• Reparo das Soluções
• Decodificadores de Cromossoma
• GENOCOP
Função Penalty
• Geram-se soluções sem se considerar as restrições;
• Soluções que violam restrições são penalizadas.
• Aptidão (x) = Aval(x) + Pen(x) se problema de mínimo
• Aptidão (x) = Aval(x) - Pen(x) se problema de máximo
• Pen(x) = 0 para todas as soluções legais
• Pen(x) > 0 para todas as soluções ilegais
3
Função Penalty (cont)
• Tipos de funções com relação ao grau de violação (desvio):– Logarítmica
Pen(x) = logn (1 + ρ . (desvio))– Linear
Pen(x) = ρ . (desvio)– Quadrática
Pen(x) = (ρ . (desvio))2
ρ = constante
Eliminação de Soluções
• Soluções que violam restrições são eliminadas:Aptidão (x) = 0
• Novas soluções têm que ser geradas para completar a população.
• Muitos dos indivíduos criados e avaliados podem ser descartados; baixo desempenho do GA.
• Utiliza-se essa técnica em problemas onde é baixa a probabilidade de gerar soluções inválidas pelos operadores genéticos.
4
Reparo da Solução
• Soluções que violam restrições são corrigidas por um algoritmo de reparo específico.
• Algoritmos de reparo podem ser complexos ou intensivos computacionalmente.
• A utilização também depende da probabilidade de geração de soluções que violam restrições.
Decodificadores
• Utiliza mapeador da representação que transforma um cromossoma em uma solução válida.
• Pode também utilizar operadores genéticos especialmente desenvolvidos para o problema.
• Decodificadores e operadores podem ser complexos, intensivos computacionalmente, ou mesmo impossíveis de serem concebidos.
• Quando corretamente concebidos, oferecem bom desempenho ao modelo genético.
5
GENOCOP
GEGEGEnetic algorithm forNNumerical
NO
OOptimization for
CO
COCOnstrained
P
PProblems Proposto por:Zbigniew Michalewiczgratuito para uso científico
6
Programação não linear GENOCOP
PROGRAMAÇÃO NÃO LINEAR
Encontrar um X ótimo para:
f(x), x = (x1,...,xq) ∈ Rq
sujeito a p ≥ 0 equações:
ci(x) = 0, i=0,..,p,
e a m-p ≥ 0 inequações:
ci(x) ≤ 0, i=p+1,..,m.
7
PROGRAMAÇÃO NÃO LINEAR
Exemplo: minimizar
f(x) = x10.6 + x2
0.6 - 6x1 - 4x3 + 3x4
sujeito a:-3x1 + x2 - 3x3 = 0 x1 + 2x3 ≤ 4
x2 + 2x4 ≤ 4 x1 ≤ 3x4 ≤ 1 0 ≤ xi , i=1,2,3,4.
Melhor solução conhecida: x* = (4/3, 4, 0, 0)
f(x*) = -4.5142
PROGRAMAÇÃO NÃO LINEAR
• Apenas se a função f e as restrições ci atenderem certas propriedades, o ótimo global pode algumas vezes ser encontrado.
• Algoritmos desenvolvidos para problemas com restrições: métodos diretos e indiretos.
• Muitos métodos dependem da existência de derivadas e não são robustos em espaços de busca descontínuos ou com ruídos.
Considerações:• Não há um método conhecido que determine o
máximo (ou mínimo) global.
8
Um método proposto é o GENOCOP para espaços de buscas com características particulares:
ESPAÇOS DE BUSCA CONVEXOS
Sistema GENOCOP
Otimizar: f(x), x = (x1,...,xq) ∈ Rq,
com (x1,...,xq) ∈ D ⊆ Rq , sendo:
1) D um conjunto convexo.
2) D é definido pelo domínio das variáveis:
lk ≤ xk ≤ rk , k = 1,..,q
e por um conjunto de restrições C
9
Espaços de busca convexos
São espaços de busca convexos aqueles que no domínio de uma variável as outras variáveis tomam valores fixos.
Espaço Convexo Espaço não Convexo
Espaços de busca convexos
Para cada ponto do espaço de busca
(x1,...,xq) ∈ D
existe uma vizinhança:
<left(k), right(k)> da variável xk (1≤ k ≤ q)
onde as outras variáveis: xi (i = 1,..., k-1, k+1,..., q) permanecem fixas.
Para um ponto (x1,...,xk,...,xq) ∈ Dy ∈ <left(k), right(k)>sss (x1,...,xk-1,...,y,...,xk+1,...,xq) ∈ D
10
Sistema GENOCOPExemplo:
D ⊆ R2 definido por:
-3 ≤ x1 ≤ 3,
-0 ≤ x2 ≤ 8,
x12 ≤ x2 ≤ x1 + 4
para o ponto (2,5) ∈ D
left(1) = 1, right(1) = , x2 = 5 (fixo) 5
left(2) = 4, right(2) = 6 , x1 = 2 (fixo)
Sistema GENOCOPImportância da Característica 1 (domínios)
base para os operadores de mutação:
se xk vai sofrer mutação,
o intervalo para mutação é <left(k), right(k)> ,
consequentemente, um descendente é sempre possível.
11
Sistema GENOCOPCaracterística 2 de espaços de busca convexos:
Dados dois pontos quaisquer:x1 e x2 ∈ D
a combinação linear:a x1 + (1-a)x2 , a ∈ [0,1]
também é um ponto em D.
Importância da característica 2:
base para o operador de crossoveraritmético.
Sistema GENOCOPClasse de problemas considerada pelo GENOCOP:
Otimizar:f(x1, x2 ...,xq)
sujeito às seguintes restrições lineares:
l ≤ x ≤ u , l= <l1,...,lq>, u= <u1,...,uq>, x= <x1,...,xq>
Ax = b , x= <x1,...,xq> , A = (aij), b= <b1,...,bp>1 ≤ i ≤ p e 1 ≤ j ≤ q (p nº de equações)
Cx ≤ d , x= <x1,...,xq> , C = (cij), d= <d1,...,dm> 1 ≤ i ≤ m e 1 ≤ j ≤ q (m nº de inequações)
12
Sistema GENOCOP
• As restrições restantes são inequações lineares e formam um conjunto convexo
• Combinações lineares de soluções produzem soluções sem necessidade de checar as restrições.
Abordagem do GENOCOP:
• Eliminar as equações do conjunto de restrições.– removendo igual número de variáveis;– diminuindo o espaço de busca
Sistema GENOCOPExemplo: Otimizar f
f(x1 ,x2 ,x3 ,x4 ,x5 ,x6 )
2x1 + x2 + x3 = 6,x3 + x5 - 3x6 = 10,x1 + 4x4 = 3,x2 + x5 ≤ 120,
-40 ≤ x1 ≤ 20, 50 ≤ x2 ≤ 750 ≤ x3 ≤ 10, 5 ≤ x4 ≤ 150 ≤ x5 ≤ 20, -5 ≤ x6 ≤ 5.
13
Sistema GENOCOPEliminar as equações e reduzir o número de variáveis
x1 = 3 - 4x4,x2 = -10 + 8x4 + x5 - 3x6,x3 = 10 - x5 + 3x6
O problema original ficou reduzido à função g
g(x4,x5,x6) = f((3-4x4),(-10+8x4+x5-3x6), (10-x5+3x6),x4,x5,x6)
Sistema GENOCOPSujeito às seguintes restrições: (apenas inequações)
-10+8x4+2x5-3x6 ≤ 120,-40 ≤ 3-4x4 ≤ 20,50 ≤ -10+8x4+x5-3x6 ≤ 75,0 ≤ 10-x5+3x6 ≤ 10,5 ≤ x4 ≤15, 0 ≤ x5 ≤ 20 e -5 ≤ x6 ≤ 5
que ainda podem ser reduzidas, por exemplo: da segunda e da quinta:
5 ≤ x4 ≤ 10.75
14
Sistema GENOCOPO espaço de busca resultante é convexo. Como foi discutido antes, para cada xk existe um intervalo possível <left(k), right(k)> onde as outras variáveis são fixas.
Assim, para o ponto possível (x4,x5,x6) = (10,8,2)
X4 e [7.25, 10.375] , x5=8 e x6=2
X5 e [6, 11] , x4=10 e x6=2
X6 e [1, 2.666] , x4=10 e x5=8
Sistema GENOCOP
• O GENOCOP tenta encontrar uma solução inicial testando regiões possíveis. Se um determinado número de tentativas fracassar, ele solicita ao usuário que informe um ponto inicial possível.
• A população inicial é formada por cópias do ponto inicial.
15
Sistema GENOCOP
• O GENOCOP II permite tratar problemas que apresenten restrições Não Lineares.Ex.
43
54
21 78.0 XXX ≤++
Referência : pp 134 Michalewicz
Sistema GENOCOP
• O GENOCOP II é inspirado no método SQPFM(sequential quadratic penalty function method).
• O método converte um problema NLP por um problema NLP’ .
( ) ( ) CCr
XfrXFOtimize T
21,: +=
r >0 e C vetor de todas as restrições ativas.
16
Sistema GENOCOP
• O conjunto de restrições C é dividido em três subconjuntos:
– Restrições Lineares– Equações não lineares– Inequações não lineares
Sistema GENOCOP
• A primeira população é chamada de pontos de busca e satisfaz as restrições lineares; a segunda população é chamada de pontos de referência e satisfaz todas as restrições.
• O GENOCOP III incorpora duas populaçõesseparadas, onde um desenvolvimento em uma população influencia avaliações dos indivíduos na outra população.
17
Sistema GENOCOP
• Ps={S1,S2,S3,S4,S5,S6} e Pr={R1,R2,R3,R4}
R1
R2
R3
S1
S2R4
S6
S4S5
S3
S7
( )[ ]1,0
1∈
−+=a
RaSaZ
Sistema GENOCOP
• Introduz poucos parâmetros adicionais (tamanho da população dos pontos de referência, probabilidade de substituir).
• Sempre retorna soluções válidas.• A vizinhança ao melhor ponto de referência é
explorada com maior freqüência.• Alguns pontos de referência são movidas para a
população de busca.
• O GENOCOP III evita muitas desvantagens de outros sistemas.
18
Sistema GENOCOPOperadores genéticos especiais foram construídos pelo GENOCOP, baseados em representação de ponto flutuante:
MUTAÇÃO CROSSOVER
uniform boundary
non-uniform
arithmetical simple heuristic
Uniform mutationGenitor: x Descendente : x’
Um componente k ∈ (1,...,q) é escolhido aleatoriamente do vetor (x1, ...,xk,...xq) e é gerado x’= (x1,...x’k,...xq), sendo x’ um valor aleatório do intervalo <left(k),right(k)>
Importância:Nas primeiras fases - permitir que as soluções se movam por todo espaço de busca
Nas fases posteriores - permitir que a solução saia de um mínimo local
19
Boundary mutationGenitor: x Descendente : x’
Um componente k ∈ (1,...,q) é escolhido aleatoriamente do vetor (x1, ...,xk,...xq) e é gerado x’= (x1,...x’k,...xq), sendo x’ igual ao valor de left(k) ou right(k), com igual probabilidade.
Non-uniform mutationGenitor: xDescendente : x’ = (x1,..x’k,..xq), onde:
xk + ∆(t, right(k) - xk) , se bit sorteado = 0xk - ∆(t, xk - left(k)) , se bit sorteado = 1
x’k =
∆(t,y) = y . r . (1 - t/T)b, retorno entre [0,y]
r = sorteado entre [0,1] t = geraçãoT = número máximo de gerações b = grau de não - uniformidade
20
Non-uniform mutation
Característica importante:
• No início a busca é feita uniformemente pelo espaço de busca (t é pequeno).
• Fases seguintes a busca é local.
Arithmetical CrossoverGenitores: x1 e x2
Descendentes:x’1 = a.x1 + (1-a).x2 x’2 = a.x2 + (1-a).x1
, a sorteado [0,1]
pela característica 2 dos espaços de busca convexos, podemos garantir que:
(x’1 e x’2) ∈ D
21
Simple Crossover
Descendentes:x’1 = (x1,...,xk,yk+1,...yk) x’2 = (y1,...yk,xk+1,...xk)
Genitores:x1 = (x1,...xq)x2 = (y1,...yq)
crossover a partir da Kth posição:
Exemplo:
x1 = (8,3,1) x2 = (5,7,4) k=2
x’1 = (8,3,4) x’2 = (5,7,1)
Simple Crossover
Este operador pode gerar descendentes fora do domínio D.
Utiliza-se um a ∈ [0,1] tal que:
x’1 = (x1,..,xk, a . yk+1 + (1-a).xk+1,...a . yq + (1-a).xq
x’2 = (y1,..,yk, a . xk+1 + (1-a).yk+1,...a . xq + (1-a).yq
22
Heuristic Crossover
• Utiliza valores da função objetivo na determinação da direção da busca
• Produz um único descendente
• Pode não produzir descendentes
Heuristic CrossoverGenitores: x1 e x2 Descendente: x3
x3 = r.(x2-x1) + x2
r, sorteado entre 0 e 1f(x2) ≥ f(x1) para máximof(x2) ≤ f(x1) para mínimo
Se x3 ∉D : novo r é sorteado
Se após w tentativas não for encontrada solução, nenhum descendente é criado
23
Heuristic Crossover
Importância do operador:
– precisão da solução encontrada,– ajuste fino local,– pesquisa na direção mais promissora