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

Post on 15-Nov-2020

18 views 0 download

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