370 likes | 457 Views
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
E N D
Provas • Datas: • P1 : 18/09/2014 • P2: 18/11/2014 • Exame : 09/12/2014
ManipulandoRestriçõ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).
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 Problematransformado
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ção4 • Escolher e misturar
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 ValoresReais • Mapear para codificação binaria • Usar cruzamento e mutação especiais
Open Source code • http://www.cs.rit.edu/~jmg/courses/ga/20103/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