provas datas: – p1 : 18/09/2014 – p2: 18/11/2014 – exame : 09/12/2014
TRANSCRIPT
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,78,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.
PMXRealiza 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/20103/tools.html
C++JavaPython
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