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
Download

ag2