algoritmos genéticos em problemas com restriçõesmauro.roisenberg/ine5377/cursos-ica/ce...1...

23
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 x i . 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 n diferentes ações que maximizam o retorno da carteira. p i {0, 1} porém p i = 1 p1 p2 p3 . . . pn-1 pn Soluções do problema devem satisfazer restrições quanto à solução (x i ) e/ou à avaliação (f)

Upload: others

Post on 15-Nov-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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)

Page 2: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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

Page 3: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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.

Page 4: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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.

Page 5: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

5

GENOCOP

GEGEGEnetic algorithm forNNumerical

NO

OOptimization for

CO

COCOnstrained

P

PProblems Proposto por:Zbigniew Michalewiczgratuito para uso científico

Page 6: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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.

Page 7: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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.

Page 8: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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

Page 9: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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

Page 10: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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.

Page 11: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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)

Page 12: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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.

Page 13: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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

Page 14: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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.

Page 15: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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.

Page 16: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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.

Page 17: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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.

Page 18: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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

Page 19: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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

Page 20: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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

Page 21: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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

Page 22: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

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

Page 23: Algoritmos Genéticos em Problemas com Restriçõesmauro.roisenberg/ine5377/Cursos-ICA/CE...1 Algoritmos Genéticos em Problemas com Restrições Problemas com Restrições • Em

23

Heuristic Crossover

Importância do operador:

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