O PROBLEMA DE SCHEDULING EM JOB-SHOP SOLUÇÃO POR APROXIMAÇÃO Alguns tipos de operadores de crossover Tópicos Especiais em Logística e Transportes Me. Rogério Malta Branco Estrutura do trabalho 1. Introdução 1.2. O problema de job-shop scheduling 1.2.1. Representação por grafos disjuntivos 1.2.2. Construção de escalas 1.2.3. Representação binária 3. Algortimos genéticos 3.1 Conceitos básicos 3.2 Algoritmo genético simples 3.3 O procedimento de um algoritmo genetico simples 2. Técnicas para solucionar os JSSP 2.1. Soluções ótimas 2.2. Soluções aproximadas 2.2.1. Regras de despacho 2.2.2. Metaheurísticas 2.2.2.1. Algoritmos genéticos 2.2.2.2. Simulated annealing 2.2.2.3. Outros procedimentos de busca local e modelos híbridos 2.2.3. Outras soluções não ótimas 2.4. Conclusões 4 Um algoritmo genético simples no problema de scheduling de job-shop 4.1 Codificação genética de uma solução de schedule 4.2 Harmonização local 4.3 Harmonização Global 4.4 Forcing 4.5 Algoritmo genético simples para o Jobshop 4.6 Limitações para uma aproximação simples ...... Estrutura Introdução Representação Algortimo genético básico (fluxograma) Operador genético crossover Crossover OX Crossover PMX Crossover CX Representação Genótipo = {0,1}L Fenótipo Codificação (representação) 10010001 10010010 010001001 011101001 Decodificação (representação inversa) EIBEN & SMITH (2006) Estrutura Introdução Representação Algortimo genético básico (fluxograma) Operador genético crossover Crossover OX Crossover PMX Crossover CX Estrutura de um AG básico Gere uma população inicial Avalie a população Critérios de parada satisfeitos? Sim Liste os melhores indivíduos Não Selecione os pais Crossover Mutação Avalie a população Defina a população sobrevivente Geração de uma nova população SOUZA(2006) Estrutura Introdução Representação Algortimo genético básico (fluxograma) Operador genético crossover Crossover OX GOLDBARG & LUNA(2000) Crossover PMX Crossover CX Operador OX (PCV) Características Empregado em PCV Operador crossover de dois pontos de corte Cruzamento entre os pais geram dois filhos Filhos herdam a ordem de visita dos pais SOUZA(2006) Operador OX (PCV) P1: (1, 2, 3, 4, 5, 6, 7, 8, 9) P2: (4, 3, 2, 1, 8, 5, 6, 7, 9) Os filhos herdam as sub-sequências entre os pontos de corte. F1: (X, X, X, 1, 8, 5, X, X, X) F2: (X, X, X, 4, 5, 6, X, X, X) Operador OX (PCV) A partir do segundo ponto de corte de um dado pai, descreve-se a seqüência e posteriormente remove-se, desta, os vertices existentes entre os cortes do filho. P2: (4, 3, 2, 1, 8, 5, 6, 7, 9) ou seja (6, 7, 9, 4, 3, 2, 1, 8, 5) F2: (X, X, X, 4, 5, 6, X, X, X) 7 9 1 (6, 7, 9, 4, 3, 2, 1, 8, 5) = (2, 1, 8, 4, 5, 6, 7, 9, 3) 3 F2: (X, X, X, 4, 5, 6, X, X, X) 2 e 8 F2: (2, 1, 8, 4, 5, 6, 7, 9, 3) Operador OX (PCV) De forma análoga, encontra-se também F1. P1: (1, 2, 3, 4, 5, 6, 7, 8, 9) ou seja (7, 8, 9, 1, 2, 3, 4, 5, 6) F1: (X, X, X, 1, 8, 5, X, X, X) 7 9 4 (7, 8, 9, 1, 2, 3, 4, 5, 6) = (3, 4, 6, 1, 8, 5, 7, 9, 2) 2 F1: (X, X, X, 1, 8, 5, X, X, X) 3 e 6 F1: (3, 4, 6, 1, 8, 5, 7, 9, 2) Estrutura Introdução Representação Algortimo genético básico (fluxograma) Operador genético crossover Crossover OX Crossover PMX Crossover CX GOLDBARG & LUNA(2000) Partially Mapped Crossover –PMX (PCV) Como no caso do operador OX, tembém tem-se que, dados P1 e P2: P1: (1, 2, 3, 4, 5, 6, 7, 8, 9) P2: (4, 3, 2, 1, 8, 5, 6, 7, 9) Os filhos herdam as sub-sequências entre os pontos de corte. F1: (X, X, X, 1, 8, 5, X, X, X) F2: (X, X, X, 4, 5, 6, X, X, X) Partially Mapped Crossover –PMX (PCV) P1: (1, 2, 3, 4, 5, 6, 7, 8, 9) P2: (4, 3, 2, 1, 8, 5, 6, 7, 9) F1: (X, 2, 3, 1, 8, 5, 7, X, 9) F2: (X, 3, 2, 4, 5, 6, X, 7, 9) Os valores indicados por X são nós que já foram herdados do outro pai, logo não podem ser repetidos. Como solução, verifica-se o que existe nesta mesma posição, do outro pai doador (inicial). Se for possível, o valor também será herdado. Partially Mapped Crossover –PMX (PCV) P1: (1, 2, 3, 4, 5, 6, 7, 8, 9) P2: (4, 3, 2, 1, 8, 5, 6, 7, 9) F1: (X, 2, 3, 1, 8, 5, 7, X, 9) F1: (4, 2, 3, 1, 8, 5, 7, X, 9) F1: (4, 2, 3, 1, 8, 5, 7, 6, 9) Como na posição 8 do doador P2 existe 7 e este já foi inserido do pai P1, não podendo ser re-inserido, verifica-se em P2, qual valor existe na posição referente a ele (7) do F1: o valor é 6. Sendo que este vértice não existe, é integrado ao cromossomo F1. Partially Mapped Crossover –PMX (PCV) De forma análoga, encontra-se F2: P1: (1, 2, 3, 4, 5, 6, 7, 8, 9) P2: (4, 3, 2, 1, 8, 5, 6, 7, 9) F2: (X, 3, 2, 4, 5, 6, X, 7, 9) F2: (1, 3, 2, 4, 5, 6, X, 7, 9) F2: (1, 3, 2, 4, 5, 6, 8, 7, 9) Como na posição 8 do doador P1 existe 7 e este já foi inserido do pai P2, não podendo ser re-inserido, verifica-se em P1, qual valor existe na posição referente a ele (7) do F2: o valor é 8. Sendo que este vértice não existe, é integrado ao cromossomo F2. Estrutura Introdução Representação Algortimo genético básico (fluxograma) Operador genético crossover Crossover OX Crossover PMX Crossover CX GOLDBARG & LUNA(2000) Cycle crossover – CX (PCV) Preservar a posição absoluta das cidades nos cromossomos dos pais. Sejam P1 e P2, toma-se a primeira cidade de P1 e aloca-se na primeira de F1. P1: (1, 2, 3, 4, 5, 6, 7, 8, 9) P2: (4, 3, 2, 6, 8, 9, 1, 5, 7) F1: (1, X, X, X, X, X, X, X, X) F1: (1, X, X, 4, X, X, X, X, X) F1: (1, X, X, 4, X, 6, X, X, X) F1: (1, X, X, 4, X, 6, X, X, 9) F1: (1, X, X, 4, X, 6, 7, X, 9) Ao retornar para 1 fecha-se o ciclo. As outras posiçoes advém de P2, ficando: (1, 3, 2, 4, 8, 6, 7, 5, 9) Referências GOLDBARG, M. C. e LUNA, H. P. L., Otimização Combinatória e Programação Linear: modelos e algoritmos, Rio de Janeiro: Editora Campus, 2000. GOLDBERG, D. Genetic algorithms in search, optimization and machine learning. Addison-Wesley, 1989. PITTMAN, J. , Apresentação: Genetic Algorithm for Variable Selection, Universidade Duke, http://www.niss.org/affiliates/proteomics200303/presentations20030306/04% 20Jennifer.ppt acessado em 19/10/2006. EIBEN, A.E. & SMITH, J.E., Apresentação: Introduction to Evolutionary Computing: Genetic Algorithms, http://www.cs.vu.nl/~jabekker/ec0607/slides/Lecture03Chapter3-GeneticAlgorithms.ppt ,acessado em 19/10/2006.