42
1 Algoritmos Genéticos em Problemas com Restrições

1 Algoritmos Genéticos em Problemas com Restrições

Embed Size (px)

Citation preview

Page 1: 1 Algoritmos Genéticos em Problemas com Restrições

1

Algoritmos Genéticos em Problemas com Restrições

Page 2: 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.

Page 3: 1 Algoritmos Genéticos em Problemas com Restrições

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 ?

Page 4: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 5: 1 Algoritmos Genéticos em Problemas com Restrições

5

Técnicas para lidar com Restrições

• Função Penalty

• Eliminação de Soluções

• Reparo das Soluções

• Decodificadores de Cromossoma

• GENOCOP

Page 6: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 7: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 8: 1 Algoritmos Genéticos em Problemas com Restrições

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.

Page 9: 1 Algoritmos Genéticos em Problemas com Restrições

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.

Page 10: 1 Algoritmos Genéticos em Problemas com 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.

Page 11: 1 Algoritmos Genéticos em Problemas com Restrições

GE

GEGEnetic algorithm for

NNumerical

NO

OOptimization for

CO

COCOnstrained

P

PProblems Proposto por:Zbigniew Michalewiczgratuito para uso científico

Page 12: 1 Algoritmos Genéticos em Problemas com Restrições

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.

Page 13: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 14: 1 Algoritmos Genéticos em Problemas com Restrições

GENOCOP é aplicado em problemas com espaços de buscas

CONVEXOS

Page 15: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 16: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 17: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 18: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 19: 1 Algoritmos Genéticos em Problemas com Restrições

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.

Page 20: 1 Algoritmos Genéticos em Problemas com Restrições

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.

Page 21: 1 Algoritmos Genéticos em Problemas com Restrições

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)

Page 22: 1 Algoritmos Genéticos em Problemas com Restriçõ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

Page 23: 1 Algoritmos Genéticos em Problemas com Restrições

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.

Page 24: 1 Algoritmos Genéticos em Problemas com Restrições

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)

Page 25: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 26: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 27: 1 Algoritmos Genéticos em Problemas com Restrições

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.

Page 28: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 29: 1 Algoritmos Genéticos em Problemas com Restrições

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.

Page 30: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 31: 1 Algoritmos Genéticos em Problemas com Restrições

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.

Page 32: 1 Algoritmos Genéticos em Problemas com Restrições

Operadores do GENOCOP

MUTAÇÃO CROSSOVER

•Uniform

•Boundary

•Non-uniform

•Arithmetical

•Simple

•Heuristic

Page 33: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 34: 1 Algoritmos Genéticos em Problemas com Restrições

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.

Page 35: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 36: 1 Algoritmos Genéticos em Problemas com Restrições

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.

Page 37: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 38: 1 Algoritmos Genéticos em Problemas com Restrições

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)

Page 39: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 40: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 41: 1 Algoritmos Genéticos em Problemas com Restrições

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

Page 42: 1 Algoritmos Genéticos em Problemas com Restrições

Heuristic Crossover

Importância do operador:

– precisão da solução encontrada,– ajuste fino local,– pesquisa na direção mais promissora