370 likes | 464 Vues
Explore penalty methods in evolutionary algorithms to manage constraints, maintain feasible solutions, and repair infeasible solutions. Learn about penalization functions, repair methods, mutation techniques, and more. Enhance your problem-solving skills.
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