Capítulo 12: Tratamento de Restrições Lyno Henrique Gonçalves Ferraz Programa de Engenharia Elétrica - PEE/COPPE/UFRJ Universidade Federal do Rio de Janeiro 18/05/2012 Motivação (1) • Algoritmos evolucionários (EA) – Problemas difíceis • NP-difícil, NP-completo – Geralmente restritos • Nem todas as combinações são possíveis – Restrições • Aplicação em EA não trivial − Operadores “cegos” • Recombinação e mutação Problema com Restrições • O que é um problema com restrições? – Espaço de busca livre v1 , v2 , v3 ,...,vn S D1 D2 D3 ... Dn – Depende do algoritmo! – Caixeiro Viajante C {c1 , c2 , c3 ,...,cn } d (,) S1 perm{c1 , c2 , c3 ,...,cn } n s S1 | arg min f ( s ) d si , si 1 i 1 S2 C n n s S 2 | arg min f ( s ) d si , si 1 i 1 Problema com Restrições Função Objetivo Restrições Não Sim Não Não há problema Problema de Otimização Livre (Free Optimization Problem – FOP) Sim Problema de Atendimento de Restrições (Constrain Satisfaction Problem – CSP) Problema de Otimização com Restrições (Constrained Optimization Problem – COP) Problema com Restrições Função Objetivo Problema de Otimização Livre Restrições Não Sim Não há problema Problema de Otimização Livre (Free Optimization Problem – FOP) Par (S,f) S, f S : espaço de busca livre Não f : função objetivo Solução: Problema ssESS com valor ótimodedeAtendimento f Sim de Restrições (Constrain Satisfaction Problem – CSP) Problema de Otimização com Restrições (Constrained Optimization Problem – COP) Problema com Restrições Problema de Atendimento de Restrições Par S , Restrições Função Objetivo Não de busca livre S : espaço Sim : fórmula (booleana em S) Problema de Otimização Não Sim Não há problema Livre (Free Optimization Solução: ssESS com (s ) true Problem – FOP) Problema de Atendimento de Restrições (Constrain Satisfaction Problem – CSP) Problema de Otimização com Restrições (Constrained Optimization Problem – COP) Problema com Restrições Problema de Otimização com Restrições Trio S , f , Função Objetivo S : espaço de busca livre Restrições Não f : função objetivo Sim Problema de Otimização : fórmula (booleana em S) Não Sim Não há problema Livre (Free Optimization Solução: Problem – FOP) ssESS com valor ótimo de f e (s ) true Problema de Atendimento de Restrições (Constrain Satisfaction Problem – CSP) Problema de Otimização com Restrições (Constrained Optimization Problem – COP) Problema de Otimização com Restrições • Caixeiro Viajante C {c1 , c2 , c3 ,...,cn } d (,) S2 C n n s S 2 | arg min f ( s ) d si , si 1 i 1 c u c ( s ) true c C : !i 1,2,...,n u ( s ) true k , l 1,2,...,n: sk sl Abordagens para Tratamento de Restrições • Tratamento indireto de restrições – Transformação de restrições – CSP, COP FOP – Realizado antes do EA • Tratamento direto de restrições – Resolução de COP S ,, , S , f , S , g, S ,, S , f , S , f , S , f , S , g , • Tratamento através de mapeamento – CSP, COP FOP S ,, , S , f , S ' , g, Formas de Tratar Restrições • Geralmente variáveis discretas • Opções – – – – Funções de penalidade Indireta Funções de reparo de soluções inviáveis Direta Representação do problema Direta Funções decodificadoras Mapeamento Funções de Penalidade • Mapeamento da função objetivo f ' ( x ) f ( x ) P(d ( x , F )) m P(d ( x , F )) wi di ( x ) i 1 • Tipos – Estática – Dinâmica – Adaptativa Funções de Penalidade Estática • Extintivo – Coeficientes altos • Binário – Valor da distância unitário • Penalidade baseada na distância • Problema – Valores dos pesos Funções de Penalidade Dinâmicas • Valores dos pesos – Dependentes do tempo si (t ) (wit ) • Divisão em estágios – Pena de morte para que viola – Cumprimento parcial de restrições – Cumprimento obrigatório de restrições • Aumenta Funções de Penalidade Adaptativas • Abordagens – Diminuição do impacto de resultados ruins • Escolha dos pesos – Dimensionamento adaptativo • Estatísticas dos melhores resultados • Distância da restrição • “proximidade de limiar viável” – Adaptação do espaço de busca em nível populacional • Restrições violadas pelo melhor indivíduo • Atualização de pesos dessas restrições Funções de Reparo • Caso especial de busca local – Remoção da violação • Substituição – Aprendizado Baldwiniano – Aprendizado Lamakiano • Adição de aleatoriedade • Complexidade da função de reparo – GENOCOP III Representação do Problema • Limitação do espaço de busca – Toda região possível permutação • Operadores – Alcançabilidade de toda região – Geração de indivíduos possíveis • Desafios – Operadores Funções Decodificadores • Mapeamento genótipos para região possível • Requisitos – Genótipo z é mapeado para solução única s – Toda solução única s deve ter ao menos uma representação s’ – Toda solução única s deve ter o mesmo número de representações em S’ • Introdução de redundâncias S' F z S' s' S ' sF Exemplo: Pintar 3-cores no Grafo • Indireto – – – – Funções de penalidade CSP FOP Strings ternárias Penalidades • “Arestas incorretas” • “Nós incorretos” – Aplicação de componentes padrões cj Ci f1 ( s ) w j s , c j m j 1 n f 2 ( s ) wi s , C i i 1 1 se s viola k s , senão 0 Exemplo: Pintar 3-cores no Grafo • Direto Decodificador – Cromossomos • Permutações de nós • Procedimento S { , , }n S ' {s S | si s j – Função objetivo • Somatório de nós sem cor – Aplicação de componentes padrões (i, j 1,2,...,n)}