Upload
internet
View
130
Download
14
Embed Size (px)
Citation preview
1
Algoritmos Genéticos em Problemas com Restrições
2
Problemas Numéricoscom Restrições
• Ocorrem quando soluções devem satisfazer restrições
quanto a valores assumidos pela solução (xi):
• de domínio: mín<xi<máx
• que relacionam variáveis do problema: 2x1+4x2>3x3
• Inicialização, crossover e mutação garantem genes dentro
do domínio de cada variável xi.
Genei {mín, máx}
• Todavia, não garantem que o cromossoma satisfaça
restrições que relacionem valores das variáveis.
3
• Encontrar os percentuais de investimento (pi%) em n diferentes ações que maximizam o retorno da carteira.
pi {0, 1} porém pi = 1
p1 p2 p3 . . . pn-1 pn
Exemplo de Problema Numéricocom Restrição
• Como garantir pi = 1 ?
4
Tipos de Restrições em Geral
• Tipos de Restrições– soft: solução que não satisfaz restrição; não é
a preferida; há solução melhor– hard: solução que não satisfaz a restrição;
não é válida– domínio: solução deve sempre satisfazer
5
Técnicas para lidar com Restrições
• Função Penalty
• Eliminação de Soluções
• Reparo das Soluções
• Decodificadores de Cromossoma
• GENOCOP
6
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 soluções que atendem a restrição
• Pen(x) 0 para soluções que não atendem a restrição
7
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
8
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.
9
Reparo da Solução
• Soluções que violam restrições são corrigidas por um algoritmo de reparo específico.
• Algoritmos de reparo são determinísticos e podem ser intensivos computacionalmente.
• A utilização também depende da probabilidade de geração de soluções que violam restrições.
10
Decodificadores
• 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 excelente desempenho ao modelo genético.
GE
GEGEnetic algorithm for
NNumerical
NO
OOptimization for
CO
COCOnstrained
P
PProblems Proposto por:Zbigniew Michalewiczgratuito para uso científico
Problema Numérico com Restrição
Encontrar um vetor 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.
Exemplo: minimizar
f(x) = x10.6 + x2
0.6 - 6x1 - 4x3 + 3x4
sujeito a:
-3x1 + x2 - 3x3 = 0 x1 + 2x3 4x2 + 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
Problema Numérico com Restrição
GENOCOP é aplicado em problemas com espaços de buscas
CONVEXOS
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:
leftk xk rightk , k = 1,..,q
e por um conjunto de restrições C
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) D:y <left(k), right(k)> sss (x1,...,xk-1,y,xk+1,...,xq) D
Exemplo:
D R2 definido por:
-3 x1 3,
-0 x2 8,
x12 x2 x1 +
4ponto (2,5) D e podemos determinar
left(X1) = 1, right(X1) = , x2 = 5 (fixo) 5left(X2) = 4, right(X2) = 6 , x1 = 2 (fixo)
Espaços de Busca Convexos
18
• Isso significa que:
– x1 pode variar de 1 a enquanto que x2=5; e
– x2 pode variar de 4 a 6 enquanto que x1=2
• Se C=vazio então o EB é convexo e:
– left(k) = lk, right(k) = rk para k=1 ...q
Espaços de Busca Convexos
5
GENOCOP
se xk vai sofrer mutação,
o intervalo para mutação é <left(k), right(k)>
consequentemente, um descendente é sempre possível.
Propriedade de espaços convexos é importante para o operador de operador de mutação.
GENOCOP
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.
Propriedade de espaços convexos é importante para o operador de crossover aritmético.
GENOCOP
Classe 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)
Estratégia do 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 se verificar as restrições.
• Eliminar equações do conjunto de restrições.– removendo igual número de variáveis;– diminuindo o espaço de busca
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.
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)
GENOCOP
Sujeito à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 5que ainda podem ser reduzidas, por exemplo: da segunda e da quinta tem-se:
5 x4 10.75
GENOCOPO espaço de busca resultante é convexo:
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 [7.25, 10.375] enquanto x5=8 e x6=2
X5 [6, 11] enquanto x4=10 e x6=2
X6 [1, 2.666] enquanto x4=10 e x5=8
GENOCOP
• O GENOCOP tenta encontrar uma solução inicial buscando regiões possíveis.
• Se um determinado número de tentativas fracassar, o GENOCOP solicita ao usuário que informe um ponto inicial possível.
• A população inicial é formada por cópias do ponto inicial.
GENOCOP II
• O GENOCOP II permite tratar problemas que apresentem restrições Não Lineares.
Ex.43
54
21 78.0 XXX
Referência: pp 134 Michalewicz
GENOCOP III
• 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.
• GENOCOP III incorpora duas populações separadas, onde um desenvolvimento em uma população influencia avaliações dos indivíduos na outra população.
GENOCOP III
• Ps={S1,S2,S3,S4,S5,S6} e Pr={R1,R2,R3,R4}
R1
R2
R3
S1
S2
R4
S6
S4S5
S3
S7
1,0
1
a
RaSaZ
GENOCOP III
• 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.
Operadores do GENOCOP
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
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: x
Descendente : x’ = (x1,..x’k,..xq), onde:
xk + (t, right(k) - xk) , se bit sorteado = 0 xk - (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ção T = número máximo de gerações b = grau de não - uniformidade
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 dos espaços de busca convexos, podemos garantir que:
(x’1 e x’2) D
Simple Crossover
Descendentes:
x’1 = (x1,..., xk, yk+1,...yq)
x’2 = (y1,..., yk, xk+1,...xq)
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
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 )
- partindo de a=1 tenta-se o maior valor de a
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 Crossover
Genitores: x1 e x2 Descendente: x3
x3 = r.(x2-x1) + x2
r, sorteado entre 0 e 1
x2 não é pior que x1, isto é,
f(x2) f(x1) para problemas de máximo
f(x2) f(x1) para problemas de mínimo
Se x3 D : novo r é sorteado
Se após w tentativas não for encontrada solução, nenhum descendente é criado
Heuristic Crossover
Importância do operador:
– precisão da solução encontrada,– ajuste fino local,– pesquisa na direção mais promissora