Provas • Datas: – P1 : 18/09/2014 – P2: 18/11/2014 – Exame : 09/12/2014 LIDANDO COM RESTRIÇOES Manipulando Restrições • Mantendo a população factível usando representação e operadores específicos. – Por exemplo, os operadores para o problema do caixeiro viajante. • Funções de Penalização • Métodos de Reparação. Método da Penalização • Problema geral de programação não linear. O método da penalização converte um problema com restrições em um problema sem restrições. função de penalização • Uma função de penalização define o quão a solução x viola a restrição j. (i.e., o quão distante o cromossomo infactível está da região factível). Criando as funções de penalização Método da Penalização • Agora o problema não possui restrições: Onde ri são constantes denominadas fatores da penalização. Exemplos • Problema original Problema transformado Métodos de Reparação • Usa métodos que transformam uma solução infactível em uma factível (i.e., “repara a solução”); • Em geral, a solução “reparada” é próxima da solução factível. Exemplo: • No problema da mochila, algumas soluções podem ultrapassar a capacidade da mochila. • Reparação: retire objetos da mochila até a solução tornar-se factível. Representação do PCV • As cidades são representadas diretamente no cromossomo. Mutação 1 Mutação 2 Mutação 3 Mutação 4 • Escolher e misturar Crossover Order 1 Colocar 1,4,9,3,7 8,9,1,2,3 Order-Based Crossover (OBX) • Elementos são selecionadas aleatoriamente. É imposta uma ordem nos elementos selecionadas do pai1 igual a ordem dos respectivos elementos em pai2. Position-Based Crossover (PBX) • Elementos são selecionadas aleatoriamente e a posição dos elementos selecionadas no pai2 é imposto ao pai1. PMX Realiza trocas no sentido de pai1 para pai2 e depois no sentido inverso, isto é, de pai2 para pai1, para evitar cromossomos inválidos. Vetores de Valores Reais • Mapear para codificação binaria • Usar cruzamento e mutação especiais Open Source code • http://www.cs.rit.edu/~jmg/courses/ga/2010 3/tools.html C++ Java Python Relatório • Problema da mochila, 10, 50, 100 (arquivo b, w, c=sum(w)/2) • Tamanho da população ? • Taxa de Mutação Ótima? • Taxa de Cruzamento ? • Como escala o tempo • Tomar decisões em base a 10 rodadas