Introdução à Otimização: Programação Linear Marcone Jamilson Freitas Souza Departamento de Computação Programa de Pós-Graduação em Ciência da Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/prof/marcone E-mail: marcone.freitas@yahoo.com.br
Roteiro Otimização Introdução Motivação Modelagem em Programação Matemática Programação Linear: princípios básicos Programação Linear por Metas (Goal programming) Programação Inteira: princípios básicos Softwares de Otimização: LINGO / COIN-CLP / GLPK / CPLEX Heurísticas computacionais para otimização Conceitos básicos Heurísticas construtivas Heurísticas clássicas de refinamento Metaheurísticas Simulated Annealing Variable Neighborhood Search (VNS) Iterated Local Search (ILS) Algoritmos Genéticos Aplicações de técnicas de otimização a processos produtivos: Alocação dinâmica de caminhões Planejamento da produção, Controle de Pátio de Minérios Corte de Estoque (Cutting Stock) Seleção de projetos
Otimização Área da Pesquisa Operacional que utiliza o método científico para apoiar a tomada de decisões, procurando determinar como melhor projetar e operar um sistema, usualmente sob condições que requerem a alocação de recursos escassos. Trabalha com modelos determinísticos As informações relevantes são assumidas como conhecidas (sem incertezas) Aplicações típicas: Mistura de minérios Planejamento da produção Roteirização Escala de pessoal
Problema de Roteamento de Veículos (Vehicle Routing Problem) () () () 6 () [5] (9) () 5 () 7 6 () () 9 (7) 8 () () () 5 () (5)
Problema de Roteamento de Veículos (Vehicle Routing Problem) () () () 6 () [5] (9) () 5 () 7 () 8 () 9 6 () (7) () () 5 () (5) Dentre todas as possíveis roteirizações, determine aquela que minimiza a distância total 5 percorrida
Escala de Motoristas (Crew Scheduling) 6
Escala de Motoristas (Crew Scheduling) 7
Escala de Motoristas (Crew Scheduling) 8
Escala de Motoristas (Crew Scheduling) 9
Escala de Motoristas (Crew Scheduling)
Escala de Motoristas (Crew Scheduling) Redução de um tripulante!
Programação de jogos de competições esportivas (Sports timetabling) INTRODUÇÃO Montar uma tabela de jogos entre os times participantes de uma competição esportiva Satisfazer as restrições da competição Minimizar os custos relativos ao deslocamento dos times
Programação de jogos de competições esportivas (Sports timetabling) INTRODUÇÃO () Atlético () 7Km Grêmio Santos 7Km 586Km 9Km Vitória 7Km Grêmio Atlético 586Km Santos 7Km 7Km Vitória Vitória Atlético Grêmio Atlético Atlético Santos Distância total percorrida: 676 Km Atlético Vitória Grêmio Atlético Atlético Santos Distância total percorrida: 58 Km Economia = 78 Km
Programação de jogos de competições esportivas (Sports timetabling) JUSTIFICATIVA DO TRABALHO Gastos com deslocamento Influência no desempenho dos times Enquadra-se na classe de problemas NP-difíceis Número de tabelas possíveis para uma competição envolvendo n times confrontando-se entre si em turnos completos (Concílio & Zuben ()): ( n )!( n )!( n 5)!...( n ( n ))! n ( n ) Competição com participantes:,96 tabelas possíveis (apro. anos para analisar todas as tabelas em um computador que analisa uma tabela em -8 segundos)
Programação de jogos de competições esportivas (Sports timetabling) PROBLEMA ABORDADO ª Divisão do Campeonato Brasileiro de Futebol, 5 e 6 ª Divisão do Campeonato Brasileiro de Futebol 6 Competições realizadas em dois turnos completos e espelhados Restrições do problema. Dois times jogam entre si duas vezes, uma no turno e a outra no returno, alternando-se o mando de campo entre os mesmos. Nas duas primeiras rodadas de cada turno, cada time alternará seus jogos, sendo um em casa e o outro na casa do adversário. Por e.: ª fora, ª em casa. As duas últimas rodadas de cada turno devem ter a configuração inversa das duas primeiras rodadas de cada turno com relação ao mando de campo. E.: Penúltima em casa, Última fora. Não pode haver jogos entre times do mesmo estado na última rodada 5. A diferença entre os jogos feitos em cada turno em casa e fora de casa de um time não pode ser maior que uma unidade 6. Um time não pode jogar mais que duas vezes consecutivas dentro ou fora de casa 5
Programação de jogos de competições esportivas (Sports timetabling) RESULTADOS COMPUTACIONAIS Melhores soluções obtidas pelos métodos Instâncias CBF Biajoli et al. () ILS-MRD DIST DIF DIST DIF DIST DIF %MDIST %MDIF bssp 956 866 7898 59 7595 599 6,6,89 bssp5 886 7655 - - 6968 68 6,9,7 bssp6-a 65895 5769 - - 56886 768,8 5,88 bssp6-b 998675 65 - - 9677 88, 6,9 Economia possível: Considerando o custo do quilômetro aéreo a R$,7 Delegação de pessoas Campeonatos e 5, Série A: Apro. R$ milhões Campeonato 6, Série A: Apro. R$ milhão Campeonato 6, Série B: Apro. R$ 5 mil 6
Controle de Pátio de Minérios Aplicação na mina Cauê, Itabira (MG), da CVRD pátios de estocagem de minérios Minérios empilhados em balizas Pilhas formadas por subprodutos com composição química e granulométrica diferentes Objetivo é compor um lote de vagões (± 8), atendendo às metas de qualidade e produção de um dado produto Eemplos de algumas restrições operacionais: Retomar uma pilha toda sempre que possível Concentrar retomada Retomar minério da esquerda para a direita e de cima para baio 7
Controle de Pátio de Minérios Pátio de Estocagem Cauê 8
Controle de Pátio de Minérios Equipamentos de empilhamento e recuperação Recuperadora (Bucket Wheel) Recuperadora Tambor (Drum) Empilhadeira (Stacker) 9
Controle de Pátio de Minérios Silos de embarque
Controle de Pátio de Minérios Programação/Simulação
Controle de Pátio de Minérios SECA Fe SiO P Al O Mn MgO HO +6, +, -,5 LSG -,5,,,6 - -, - 7, LSE -,85,8,8, - 6,5 8, - 7, META -,6,,7,5 - - 6,5 6,, LIE - - - - - - - - 58, - LIG - - - - - - - - 5, - CRIT. - CR CR CR - - - - - CR SFCA Fe SiO P Al O Mn MgO HO +6, +, -,5 LSG - 5,,59,8 - - 7,5 - -, LSE -,5,, - - 6,5 - - 6, META -,,5,,7-6, - 5,, LIE 65,,7 - - - - - - - - LIG -,7 - - - - - - - - CRIT. - CR MI CR - - MI - - CR
Controle de Pátio de Minérios PCCA Teor de SiO (%) 5,6 5, 5, 5,,8,6,,, 5 Lotes LSE Meta Manual Sistema
Controle de Pátio de Minérios PCCA,5 Teor de P (%),,5,,5 LSE Meta Manual Sistema, 5 Lotes
Controle de Pátio de Minérios PCCA Teor de Al O (%),8,7,6,5,,,,, 5 Lotes LSE Meta Manual Sistema 5
Controle de Pátio de Minérios PCCA,,5 Teor de Mn (%),,5,,5 LSE Meta Manual Sistema, 5 Lotes 6
Controle de Pátio de Minérios PCCA,, Teor de H O (%) 8, 6,,, LSE Meta Manual Sistema, 5 Lotes 7
Carregamento de produtos em Navios Navio Porão Porão... Porão N Produto Produto... Produto m 8
Carregamento de produtos em Navios: Características do problema Turnos de 6 horas de trabalho: 7h-h h-9h 9h-h h-7h 8 tipos de turnos: Dia útil (horários normal e noturno) Sábado (horários normal e noturno) Domingo (horários normal e noturno) Feriado (horários normal e noturno) Terno: equipe de trabalho atuando em um porão durante um turno 9
Carregamento de produtos em Navios: Características do problema Eiste um certo número de máquinas disponíveis para fazer o carregamento do navio: CN, CG e GB. Cada máquina possui uma produtividade diferente para cada tipo de produto.
Carregamento de produtos em Navios: Características do problema Produtos carregados em uma ordem preestabelecida. As equipes são remuneradas de acordo com a produção (ton.). Os custos variam de acordo com o produto carregado e o tipo do turno em que ocorre o terno. O custo total é dado pelo somatório dos custos com docas, encarregados, guincheiros, conferentes, estivadores e equipamento utilizado.
Carregamento de produtos em Navios: Características do problema Custo do carregamento dado pelo somatório dos custos dos ternos Carregamento concluído depois da data prevista em contrato: Demurrage (multa por dia de atraso) Carregamento concluído antes da data prevista em contrato: Prêmio (metade da multa) Objetivo é reduzir os custos com a mãode-obra
Modelos de Otimização Programação matemática: Fundamentados na matemática Métodos eatos: garantem a geração da solução ótima Método mais difundido: Programação Linear (PL) Desvantagens: Modelagem mais complea Em problemas combinatórios, podem eigir um tempo proibitivo para encontrar a solução ótima Heurísticos: Fundamentados na Inteligência Artificial Métodos aproimados: Não garantem a otimalidade da solução final Vantagens: De fácil modelagem Boas soluções podem ser obtidas rapidamente
Modelos de Programação Formulação algébrica: Linear otimizar f ( ) = n j= c j j função objetivo sujeito a n j= a ij j = b i i =,..., m j j =,..., n condições de não-negatividade restrições
Modelos de Programação Linear. As restrições representam limitações de recursos disponíveis (mão-de-obra, capital, recursos minerais ou fatores de produção) ou então, eigências e condições que devem ser cumpridas. j é uma variável de decisão, que quantifica o nível de operação da atividade j. b i representa a quantidade do i-ésimo recurso disponível ou a eigência que deve ser cumprida 5
Modelos de Programação Linear. c j representa o custo associado à j-ésima atividade 5. a ij é a quantidade do recurso i (eigido ou disponível) em uma unidade da atividade j 6. otimizar = maimizar ou minimizar 6
Solução Terminologia Qualquer especificação de valores para as variáveis de decisão Solução viável Solução que satisfaz a todas as restrições Solução ótima Solução viável que tem o valor mais favorável da função objetivo 7
Hipóteses assumidas em um modelo de programação linear Proporcionalidade O custo de cada atividade é proporcional ao nível de operação da atividade A quantidade de recursos consumidos por uma atividade é proporcional ao nível dessa atividade Divisibilidade As atividades podem ser divididas em qualquer nível fracionário Aditividade O custo total é a soma das parcelas associadas a cada atividade Certeza Assume-se que todos os parâmetros do modelo são constantes conhecidas 8
Problema da Mistura de Minérios Há um conjunto de pilhas de minério Em cada pilha há uma composição química e granulométrica diferente (% de Fe, SiO, AlO etc.) A cada pilha está associado um custo É necessário formar uma mistura com uma certa especificação Dentre as possíveis misturas que atendem a especificação requerida, o objetivo é encontrar aquela que seja de custo mínimo 9
Problema da Mistura de Minérios 6% Fe $/t Pilha 5% Fe 6 $/t Pilha Pilha 55% Fe 9 $/t t t t Solução : t. Pilha + t. Pilha = t. Ferro na mistura = 55% Mistura requerida: t., 55% Fe Solução : t. Pilha = t. minério Ferro na mistura = 55% Custo da mistura = $ 6 Custo da mistura = $ 8
Modelo de PL para o Problema da Mistura de Minérios Dados de entrada: Pilhas = Conjunto de pilhas Parametros = Conjunto dos parâmetros de controle (Teores, Granulometria) t ij = % do parâmetro de controle j em uma tonelada da pilha i tl j = % mínimo admissível para o parâmetro j tu j = % máimo admissível para o parâmetro j Qu i = Quantidade máima de minério, em toneladas, eistente na pilha i c i = Custo, em $, de uma tonelada de minério da pilha i p = quantidade, em toneladas, da mistura a ser formada Variáveis de decisão: i = Quantidade de minério a ser retirado da pilha i
Modelo de PL para o Problema da Mistura de Minérios min c i i i Pilhas t ij i Pilhas m i i Pilhas i tu j j Parametros % do parâmetro j na mistura não pode superar o valor máimo permitido t ij i Pilhas i i Pilhas i tl j j Parametros % do parâmetro j na mistura não pode ser inferior ao valor mínimo permitido i Qu i = i Pilhas i i i Pilhas p i Pilhas A quantidade a ser retomada em cada pilha i está limitada à Qu i A mistura deve ter peso total p Não-negatividade
Modelo de PL para o Problema da Mistura de Minérios Linearização das restrições min c i i i Pilhas ( t ) ij tu j i j Parametros i Pilhas Valor do parâmetro j na mistura não pode superar o valor máimo permitido ( t ) ij tl j i j Parametros i Pilhas Valor do parâmetro j na mistura não pode ser inferior ao valor mínimo permitido i Qu i i = i Pilhas i i Pilhas p i Pilhas A quantidade a ser retomada em cada pilha i está limitada à Qu i A mistura deve ter peso total p Não-negatividade
Modelo de PL para o Problema da Mistura de Minérios Problemas dessa modelagem de programação linear: Restrições são rígidas Na prática, pode não haver solução Nesse caso, otimizador aplicado ao modelo retorna que não há solução viável Qual a melhor solução inviável?
Programação linear por metas (goal programming) Permite trabalhar com restrições relaadas É mais fleível Cria variável de desvio para cada restrição que pode ser relaada Variável de desvio mensura a distância de viabilidade e é colocada na função objetivo, para ser minimizada O valor mínimo da variável de desvio representa a meta a ser atingida 5
Programação linear por metas (goal programming) Restrições do tipo min dp + + dp Desvio positivo = desvio para cima Desvio positivo (dp): Mede o quanto se ultrapassou de 6
Programação linear por metas (goal programming) Restrições do tipo + min dn + + dn Desvio negativo = desvio para baio Desvio negativo (dn): Mede o quanto faltou para chegar a 7
Programação linear por metas (goal programming) Restrições do tipo = min dp + dn + = + dp + dn = Mede o que supera Mede o que falta para chegar a 8
Programação linear por metas (goal programming) Dois métodos de solução são normalmente utilizados: Método dos pesos Método hierárquico Método dos pesos: Forma-se uma única função objetivo com o somatório ponderado das variáveis de desvio A cada variável de desvio é associado um peso, que reflete a importância relativa da restrição relaada Método hierárquico: É estabelecida, inicialmente, a hierarquia (prioridade) das metas Resolve-se o problema com a meta de maior prioridade (isto é, apenas a variável de desvio mais prioritária) Resolve-se, a seguir, o problema tendo como função objetivo uma meta de prioridade mais baia que a anterior, mas atribuindo o valor ótimo da meta anterior à variável de desvio correspondente, isto é, tratando a meta anterior como restrição do modelo O procedimento é eecutado de modo que a solução obtida de uma meta de prioridade mais baia nunca degrade qualquer solução de prioridade mais alta 9
Modelo de PL para a Mistura de Minérios com relaação dos limites de especificação Dados de entrada: Pilhas = Conjunto de pilhas Parametros = Conjunto dos parâmetros de controle t ij = % do parâmetro de controle j em uma tonelada da pilha i tl j = % mínimo admissível para o parâmetro j tu j = % máimo admissível para o parâmetro j Qu i = Quantidade máima de minério, em toneladas, eistente na pilha i p = quantidade, em toneladas, da mistura a ser formada wne j = Peso para o desvio negativo de especificação do parâmetro j na mistura wpe j = Peso para o desvio positivo de especificação do parâmetro j na mistura Variáveis de decisão: i = Quantidade de minério a ser retirado da pilha i dne j = Desvio negativo de especificação, em toneladas, do parâmetro j na mistura dpe j = Desvio positivo de especificação, em toneladas, do parâmetro j na mistura 5
min Modelo de PL para a Mistura de Minérios com relaação dos limites de especificação wpe j Parametros j dpe j + wne j Parametros j dne j Peso associado ao desvio negativo ( tij tu j ) i dpe j j Parametros i Pilhas ( tij tl j ) i + dne j j Parametros i Pilhas dne j i Qu i = i Pilhas p i i Pilhas, dpe j Parametros j Desvio positivo, em toneladas Desvio negativo, em toneladas i i Pilhas Admite-se que a quantidade do parâmetro j na mistura supere em dpe j toneladas a quantidade máima admitida Admite-se que a quantidade do parâmetro j na mistura esteja dne j toneladas abaio da quantidade mínima permitida A quantidade a ser retomada em cada pilha i está limitada à Qu i A mistura deve ter peso total p Não-negatividade 5
Problema da Mistura de Minérios com metas de qualidade e relaação dos limites de especificação Há um conjunto de 5 pilhas de minério Em cada pilha há uma composição química diferente (% de Fe, AlO etc.) É necessário formar 6 toneladas de um produto com uma certa especificação Para cada parâmetro de controle são dados os limites inferior e superior de especificação, bem como as metas de qualidade para o produto formado Cada parâmetro de controle é classificado em 5 critérios: irrelevante, importante, muito importante, crítico e muito crítico O peso de desvio de meta é igual ao produto do peso critério pelo peso de comparação O peso de comparação serve para colocar cada parâmetro de controle em uma mesma ordem de grandeza Dentre as possíveis misturas que atendem a especificação requerida, o objetivo é encontrar aquela que esteja o mais próimo possível das metas de qualidade 5
Mistura de Minérios com metas de qualidade e relaação dos limites de especificação: dados de entrada 5
Mistura de Minérios com metas de qualidade e relaação dos limites de especificação: modelo de PL Dados de entrada: Pilhas = Conjunto de pilhas Parametros = Conjunto dos parâmetros de controle t ij = % do parâmetro de controle j em uma tonelada da pilha i tl j = % mínimo admissível para o parâmetro j tu j = % máimo admissível para o parâmetro j tr j = % recomendada para o parâmetro j Qu i = Quantidade máima de minério, em toneladas, eistente na pilha i p = quantidade, em toneladas, da mistura a ser formada wnm j = Peso para o desvio negativo (de meta) do parâmetro j na mistura wpm j = Peso para o desvio positivo (de meta) do parâmetro j na mistura wne j = Peso para o desvio negativo (de especificação) do parâmetro j na mistura wpe j = Peso para o desvio positivo (de especificação) do parâmetro j na mistura Variáveis de decisão: i = Quantidade de minério a ser retirado da pilha i dnm j = Desvio negativo (de meta), em toneladas, do parâmetro j na mistura dpm j = Desvio positivo (de meta), em toneladas, do parâmetro j na mistura dne j = Desvio negativo (de especificação), em toneladas, do parâmetro j na mistura dpe j = Desvio positivo (de especificação), em toneladas, do parâmetro j na mistura 5
Mistura de Minérios com metas de qualidade e relaação dos limites de especificação: modelo de PL min ( tij tu j ) i dpe j j Parametros i Pilhas ( wpe j Parametros j dpe j + wne j dne ( tij tl j ) i + dne j j Parametros i Pilhas j + wpm dpm j j + wnm j dnm Admite-se que a quantidade do parâmetro j na mistura supere a quantidade máima permitida em dp j ton. Admite-se que a quantidade do parâmetro j na mistura seja inferior à quantidade mínima permitida em dn j ton. j ) ( tij trj ) i + dnm j dpm j = j Parametros i Pilhas Admite-se que haja ecesso (dpm j ) ou falta (dnm j ) no parâmetro j na mistura em relação à quantidade recomendada dne j, dpe j i Qu i = i Pilhas i i Pilhas p i i Pilhas, dnm, dpm j j j Parametros A quantidade a ser retomada em cada pilha i está limitada à Qu i A mistura total deve ter peso total p Não-negatividade 55
Resolução gráfica de PPL s Passos para resolver graficamente um PPL: a) Determinar o gradiente da função objetivo (Gradiente é perpendicular à reta definida pela função objetivo) b) Caminhar no sentido e direção do gradiente da função objetivo até tangenciar a região viável c) O ponto de tangência representa a solução ótima * 56
Fundamentação do Método SIMPLEX Seja resolver o seguinte PPL: ma + +, 57
Fundamentação do Método F * = (,), z* = 5 SIMPLEX A = (,) B = (,) C = (,) D = (,) E = (,) F = (,) G = (,) H = (,) ma + +, E D G z = C + A ma z= + B H 58
Teorema Fundamental da Programação Linear O ótimo de um PPL, se eistir, ocorre em pelo menos um vértice do conjunto de soluções viáveis. Situações que podem ocorrer com relação ao conjunto M de soluções viáveis: ) M = {} Neste caso não há solução viável => Não há solução ótima 59
Teorema Fundamental da Programação Linear ) M é não vazio a) M é limitado * * y* Única solução ótima, a qual é vértice Infinidade de soluções ótimas, sendo duas vértices 6
Teorema Fundamental da Programação Linear ) M é não vazio b) M é ilimitado * * Única solução ótima, a qual é vértice Infinidade de soluções ótimas, sendo uma vértice 6
Teorema Fundamental da Programação Linear ) M é não vazio b) M é ilimitado * y* Infinidade de soluções ótimas, sendo duas vértices Não há soluções ótimas 6
Forma-padrão de um PPL PPL está na forma-padrão quando é posto na forma: n (min)ou (ma) z = c j j j= n j= aij j = bi i =,..., j j =,..., n m sendo b i i =,..., m 6
Redução de um PPL qualquer à forma-padrão Restrições do tipo + 5 + + = 5 Restrições do tipo + 6 7 + 6 = 7 6
Redução de um PPL qualquer à forma-padrão Eiste b i < Solução: Basta multiplicar restrição i por - Eistem variáveis não-positivas: Seja k : Solução: Criar variável k tal que k = - k Assim, modelo terá variável k 65
Redução de um PPL qualquer à forma-padrão Eistem variáveis livres, isto é, variáveis k que podem assumir qualquer valor real (negativo, nulo ou positivo): Solução: Substituir k por k k, com k e k k > k k > k = k k = k < k k < PPL é de maimização: ma f() = - min {-f()} 66
67 Caracterização de vértice, ma + +,,,, ma 5 5 5 = + + = + = + + + + + = 5 A b
68 Caracterização de vértice + A B C D E F G A = (,) B = (,) C = (,) D = (,) E = (,) F = (,) G = (,) H = (,) H,,,, ma 5 5 5 = + + = + = + + + + +
Caracterização de vértice Em um ponto no interior do conjunto (não pertencente a nenhuma aresta) não há variáveis nulas Em uma aresta há, pelo menos, uma variável nula Em um vértice há, pelo menos, n-m variáveis nulas n - m m R B m n 69
Caracterização de vértice Para gerar um vértice: Escolher uma matriz não-singular B tal que: Fazer R = B B + R R = b Se ao resolver o sistema B B = b, for obtido B, então = ( B R ) t = ( B ) t é vértice Deste procedimento resulta uma Solução Básica Viável (SBV), com o significado geométrico de vértice. 7
Definições B = base = ( B R ) t B = vetor das variáveis básicas R = vetor das variáveis não-básicas Solução Básica (SB): vetor tal que B B =b e R = Solução Básica Viável (SBV): vetor tal que B B =b; B e R = Solução Básica Viável Degenerada (SBVD): É uma SBV em que eiste variável básica nula 7
Princípio de funcionamento do Algoritmo SIMPLEX SBV inicial Esta SBV pode ser melhorada? Não Pare: Esta SBV é ótima Sim Determine VNB que deve entrar na base Determine VB que deve deiar a base Encontre nova SBV 7
7 Princípio de funcionamento do Algoritmo SIMPLEX, ma + = + z,,,, ma 5 5 5 = + + = + = + = + + + + z = 5 A b
Princípio de funcionamento do Algoritmo SIMPLEX VB 5 5 z PPL na forma canônica: Base é a identidade e coeficientes das VB s na função objetivo são todos nulos. 7
Princípio de funcionamento do Algoritmo SIMPLEX VB 5 5 z VB = { =, =, 5 = } VNB = { =, = } Solução inicial: () = ( ) t ; z = 75
Princípio de funcionamento do Algoritmo SIMPLEX VB 5 (L ) (L ) (L ) 5 (L ) z Transformações elementares: L -L + L L -L + L 76
Princípio de funcionamento do Algoritmo SIMPLEX VB 5 (L ) (L ) (L ) 5 - (L ) - z- VB = { =, =, 5 = } VNB = { =, = } Final da Iteração : () = ( ) t ; z = 77
Princípio de funcionamento do Algoritmo SIMPLEX VB 5 (L ) (L ) (L ) 5 - (L ) - z- L -L + L L -L + L 78
Princípio de funcionamento do Algoritmo SIMPLEX VB 5 (L ) - (L ) (L ) - (L ) - - z-5 VB = { =, =, = } VNB = { =, 5 = } Final da Iteração : () = ( ) t ; z = 5 79
8 Interpretação geométrica + A B C D E F G A = (,) B = (,) C = (,) D = (,) E = (,) F = (,) G = (,) H = (,) H,,,, ma 5 5 5 = + + = + = + + + + +
8 Situação em que a origem não pode ser solução inicial: Eemplo, ma + = + z,,,, ma 5 5 5 = + = + = + = + + + + z = 5 A b
8 Método das Duas Fases + A B C D E F G A = (,) B = (,) C = (,) D = (,) E = (,) F = (,) G = (,) H = (,) H,,,, ma 5 5 5 = + = + = + + + + +
Método das Duas Fases Primeira fase (Criar problema auiliar P ): Introduzir variáveis de folga e variáveis artificiais Variáveis de folga: introduzidas quando há variáveis do tipo ou Variáveis artificiais: introduzidas quando há restrições do tipo ou = Criar função objetivo artificial: z a = i a i i Variáveis básicas iniciais: variáveis de folga associadas às restrições e variáveis artificiais Objetivo da primeira fase: minimizar a função objetivo artificial Caminhar de SBV em SBV de P até alcançar SBV do problema original P (situação que ocorre quando todas as variáveis artificiais são nulas). 8
8 Método das Duas Fases Segunda fase: A partir de uma SBV do problema original P, gerar SBV cada vez melhores até se atingir a solução ótima. Aplicando o método das duas fases ao PPL dado, tem-se:,,,,, ma 5 5 5 = + + = + = + = + + + + + a a a z a a z = + + + + + 5 min
Método das Duas Fases VB 5 a (L ) (L ) (L ) a - (L ) z a (L 5 ) z Redução à forma canônica: L -L + L 85
Método das Duas Fases VB 5 a (L ) (L ) (L ) a - (L ) - - z a - (L 5 ) z L -L + L L L + L L 5 -L + L 5 86
Método das Duas Fases VB 5 a (L ) (L ) (L ) a - - (L ) - z a - (L 5 ) - z- L -L + L L L + L L 5 -L + L 5 87
Método das Duas Fases VB 5 a (L ) (L ) - (L ) - - (L ) z a (L 5 ) - z- Fim da primeira fase: z a = = (, ); z = 88
Método das Duas Fases VB 5 (L ) (L ) (L ) - - (L ) z- L L + L L -L + L 89
Método das Duas Fases VB 5 (L ) (L ) 5 (L ) (L ) - - z-6 Solução ótima: * = (,); z* = 6 9
Método das Duas Fases: Interpretação Geométrica F A = (,) B = (,) C = (,) D = (,) E = (,) F = (,) G = (,) H = (,) E D G C ma + + +, +, + +, +, 5 5 5 = = = A B H 9
9 Outro eemplo de aplicação do Método das Duas Fases: Eemplo, ma + = + z,,,, ma 5 5 5 = + = + = = + + + + z = 5 A b
9 Método das Duas Fases: Eemplo Introduzindo variáveis artificiais no PPL dado, tem-se:,,,,,, ma 5 5 5 = + + = + = + = + + + + + + a a a a a a z a a a z = + + + + + + 5 min
Método das Duas Fases VB 5 a a (L ) a - (L ) (L ) a - (L ) z a (L 5 ) z Transf. para forma canônica: L -L L + L 9
Método das Duas Fases VB 5 a a (L ) a - (L ) (L ) a - (L ) - - z a -5 (L 5 ) z L -L + L L L + L L 5 -L + L 5 95
Método das Duas Fases VB 5 a a (L ) - (L ) (L ) a - - (L ) - - z a - (L 5 ) - z- L -L + L L L + L L 5 -L + L 5 96
Método das Duas Fases VB 5 a a (L ) - (L ) - - (L ) - - (L ) z a (L 5 ) - - z- Fim da primeira fase: z a = = (, ); z = 97
Método das Duas Fases VB 5 (L ) - (L ) - (L ) - (L ) - z- L L + L L -L + L 98
Método das Duas Fases VB 5 (L ) - (L ) 5 - (L ) (L ) - z-6 pode entrar na base melhorando o valor de z indefinidamente. Assim, não há solução ótima. 99
Método das Duas Fases: Interpretação Geométrica F A = (,) B = (,) C = (,) D = (,) E = (,) F = (,) G = (,) H = (,) E D G C ma + + +, +, + +, +, 5 5 5 = = = A B H
Dualidade Seja o PPL, doravante chamado de PPL primal: ou, na forma epandida:.:. ) ( min = b A a s f c t n j m i b a a s c j n j i j ij n j j j,...,,..., :. min = = = =
Dualidade Associado a este PPL, eiste um PPL, chamado PPL dual: ma ub = f ( ) t s. a.: A u c u ou, na forma epandida: ma t D s. a : m i= m i= b u a i ij i u i u i c j j =,..., n i =,..., m
Dualidade: Regras de transformação Primal Dual Restrição = qq. Variável MIN MAX Variável qq. = Restrição Dual Primal
Dualidade: Vantagens Em situações na qual a matriz de coeficientes do primal tem maior número de linhas do que de colunas: Dual A base no DUAL é menor!!!
Dualidade: Vantagens É possível cercar a solução ótima. (Considere um PPL primal de minimização) f() (valor do primal) * = u* f D () (valor do dual) 5
6 Dualidade: Interpretação Econômica Seja o par de PPL s: n j m i b a a s f c j n j i j ij n j j j,...,,..., :. ) ( ma = = = = = m i u n j c u a a s u f b u i m i j i ij m i D i i,...,,..., :. ) ( min = = = = = PRIMAL DUAL
Dualidade: Interpretação Econômica Sejam * e u* soluções ótimas desses PPL s e seja B* a base relativa a essas soluções. Então: f ( * ) = f D ( u * ) = u * b = m i= Supondo b variável e derivando em relação a b, temos: f ( b * ) = Então u* é a taa de variação do valor ótimo da função objetivo f(*) com b. Como u*, então f(*) cresce à medida que b i cresce 7 u * b i u * i
Dualidade: Interpretação Econômica Considere o primal um problema de alocação de recursos, com m recursos disponíveis nas quantidades b, b,..., b m com os quais desejamos fabricar n produtos nas quantidades,,..., n a serem determinadas. Cada unidade do produto j consome a ij unidades do recurso i trazendo um retorno de c j unidades monetárias. Queremos determinar a quantidade a ser fabricada de cada produto de modo a maimizar o retorno. 8
Dualidade: Interpretação Econômica Suponha, agora, aumentada em uma unidade a quantidade disponível do recurso k, isto é, temos (b k + ) unidades. Suponha que a base associada permaneça a mesma. Neste caso, a nova solução ótima u** do dual permanece a mesma, uma vez que: u** = u* = (c B* ) t B* -. A nova solução ótima ** será: 9
Dualidade: Interpretação Econômica m ** * * ( ) = biui + ( bk ) uk i= i k m = * * * * b iui + uk = f ( ) + uk i= f + Isto é, f(**) f(*) = u k *, ou seja, u k * é o incremento no lucro trazido pelo aumento de uma unidade da matéria disponível k. u k * é chamado shadow price, dual, valor incremental, efficiency price, valor implícito, etc.
Análise de Sensibilidade (Pós-otimização) Seja o sistema A=b,com uma base B, e uma função objetivo f() Seja o quadro genérico do Simple em uma dada iteração colocado na forma matricial não canônica ( R ) t ( B ) t (L ) B R B b (L ) (c R ) t (c B ) t f()
Análise de Sensibilidade (Pós-otimização) Para colocar esse quadro na forma canônica devemos efetuar as seguintes transformações elementares: L B - L ( R ) t ( B ) t (L ) B B - R I B - b (L ) (c R ) t (c B ) t f() L -(c B ) t L + L
Análise de Sensibilidade (Pós-otimização) ( R ) t ( B ) t (L ) B B - R I B - b (L ) (c R ) t - (c B ) t B - R () t f()-(c B ) t B - b Seja: Y = B - R y j = B - a j B = B - b z = (c B ) t B - R z j = (c B ) t B - a j
Análise de Sensibilidade (Pós-otimização) ( R ) t ( B ) t (L ) B Y I B (L ) (c R ) t - z () t f()-f() Sendo: f() = c t = (c B ) t B + (c R ) t R = = (c B ) t B = (c B ) t B - b
Análise de Sensibilidade: E. Carteira de Investimentos Uma empresa gerencia recursos de terceiros através da escolha de carteiras de investimentos para diversos clientes, baseados em bonds de diversas empresas. Um de seus clientes eige que: Não mais de 5% do total aplicado deve ser investido em um único investimento; Um valor superior ou igual a 5% do total aplicado deve ser investido em títulos de maturidade maiores que anos; O total aplicado em títulos de alto risco deve ser, no máimo, de 5% do total investido. Considerando a tabela abaio de retorno, risco e maturidade dos diversos títulos, determine a estratégia ótima para o investidor de forma que a rentabilidade de sua aplicação seja máima. Título Retorno anual (%) Maturidade (anos) Risco 8,7 5 Muito baio 9,5 Regular, 8 Alto 9, 7 Baio 5 6,, 5 Alto 5 Muito alto 5
Carteira de Investimentos: Modelo de Programação Matemática ma rendimento j j j Titulos j, 5 j Titulos j Titulos j maturidade j,5 j j Titulos = j Titulos j risco j,5 6
Análise de sensibilidade: Carteira de Investimentos - Questões. Qual o melhor retorno que se pode obter? Quanto se deve aplicar em cada título para que se tenha o retorno ótimo?. Em qual percentual aumentaria o retorno se fosse permitido aplicar % a mais no Título? De quanto seria o retorno? Essa regra vale até quanto?. A partir de qual percentual a aplicação no título é vantajosa?. Se fosse imposto limitar a aplicação em cada título em % para um dentre os títulos, e 6, em qual título deveria ser feita a diminuição de aplicação? Justifique. 5. Quanto está influenciando a restrição de limitação de aplicação em título de alto risco? Qual seria o retorno se esta limitação fosse de 9%? 7
Análise de Sensibilidade: E. Produção de automóveis Uma empresa deve produzir automóveis. Ela tem quatro fábricas, as quais, devido a diferenças na mão-de-obra e avanços tecnológicos, as plantas diferem no custo de produção de cada carro. Elas também utilizam diferentes quantidades de matériaprima e mão-de-obra. A tabela abaio resume essas informações: Fábrica Custo (R$ mil) Mão-de-Obra Mat. Prima 5 9 5 7 5 6 8
Análise de Sensibilidade E. Produção de automóveis Um acordo trabalhista requer que pelo menos carros sejam produzidos na fábrica. Eistem horas de mão-de-obra e unidades de material que podem ser alocadas às fábricas. O modelo de programação matemática que otimiza a produção é: min j Fabricas j Fabricas j Fabricas j j Fabricas j c j j MObra j MatPrima = j j j TotMObra Producao Acordo j TotMatPrima j Fabricas Acordo j 9
Análise de sensibilidade: E. Produção de automóveis. Quais são as quantias ótimas de produção? Qual o custo da produção?. Quanto custa produzir mais um veículo? Quanto economizamos produzindo um veículo a menos?. Como mudaria a solução se custasse somente R$8., para produzir na fábrica? Como ficaria o custo?. Quanto estamos dispostos a pagar por uma hora de trabalho? 5. Quanto o acordo está custando? Qual seria a variação no custo se o acordo fosse de 5 carros? 6. Quanto vale a matéria-prima (conseguir mais uma unidade)? Quantas unidades estamos dispostos a pagar por esse preço? 7. Até que custo ainda é vantajoso produzir na fábrica?
Resolução de PPL s Inteiros Seja resolver: ma + + +, 9 5 Z + cuja solução ótima (contínua) é: = 8,89 =,58 z = 8,
Resolução de PPL s Inteiros Aplicando a estratégia de arredondamento, uma vez que os valores ótimos são fracionários, e providenciando uma busca racional no entorno do ponto ótimo, teríamos: Z= +9* 9 Inviável 9 8 Melhor valor 8 Inviável 8 7 No entanto, a solução ótima inteira é: = = z = 8 isto é, o erro é de % no arredondamento. Conclusão: Não é uma boa estratégia resolver o PPL (contínuo) e arredondar a solução resultante
Programação inteira: Branch-and and-bound Maimizar z = 5 + 8 sujeito a : + 6 5 + 9 5 Eemplo etraído de: GOLDBARG & LUNA (5), Otimização Combinatória, Editora Campus., Z +
Programação inteira: Branch-and and-bound Solução Contínua = 9 = 5 Z= Disjuntiva 5 + ou 5
Programação inteira: Branch-and and-bound Soluções Inteiras A B z=5 +8 5 + 9 =5 + =6 O C 5
Programação inteira: Branch-and and-bound 6
Programação inteira: Árvore de Branching P =,5 =,75 z=,5,, P =,8 =, z= P =, =, z=9,, P Inviável P =, =, z=,56 5,, P 5 = =5 z= P 6 =, =, z=7 7
Programação inteira: Branch-and-Bound Resolva pelo método Branch-and-Bound o PLI abaio Use a variante de Dank para decidir a variável a ramificar (Nessa variante, a variável a ramificar é aquela cujo valor está mais próimo de um valor inteiro) Em caso de empate, escolha a de menor índice Use busca em profundidade e analise primeiro o valor maior da variável ramificada, isto é, o valor min z = + 8 + 5 + 6 +, + Ζ 9 j j + 8
Programação inteira: Árvore de Branching 9
Programação inteira: Árvore de Branch-and and-bound
Eercícios de modelagem em programação matemática Problema proposto pelo Tales Problema de transporte Problema de alocação de pessoal (Staff Scheduling) Sem hora-etra Com hora-etra Problema de Corte de Estoque (Cutting Stock Problem) Problema das bobinas Problema da serralheria Problema da Mochila (Knapsack Problema) Mochila - Mochila - Múltipla Mochila Inteira Mochila Inteira Múltipla Alocação Dinâmica de Caminhões Determinação do Ritmo de Lavra Controle de Pátio de Minérios Programação da produção: dimensionamento de lotes Seqüenciamento em uma máquina com penalidades por antecipação e atraso da produção e janelas de atendimento
Problema proposto pelo Tales () Dados de entrada: Pilhas = Conjunto de pilhas Parametros = Conjunto dos parâmetros de controle t ij = % do parâmetro de controle j em uma tonelada da pilha i tl j = % mínimo admissível para o parâmetro j tu j = % máimo admissível para o parâmetro j tr j = % recomendada para o parâmetro j Qu i = Quantidade máima de minério, em toneladas, eistente na pilha i p = quantidade, em toneladas, da mistura a ser formada wnm j = Peso para o desvio negativo (relativo à meta) do parâmetro j na mistura wpm j = Peso para o desvio positivo (relativo à meta) do parâmetro j na mistura wpe j = Peso para o desvio positivo relativo à especificação do parâmetro j na mistura wnpilha i = Peso para a quantidade de minério que resta na pilha i (peso relativo ao desvio negativo de pilha) wpp = Peso para o desvio positivo de produção wnp = Peso para o desvio negativo de produção
Problema proposto pelo Tales Dados de entrada: () Para determinados parâmetros de controle, o limite superior de especificação pode ser etrapolado, isto é, etrapolar j = significa que o parâmetro de controle j pode ter seu limite superior relaado) wpe j = Peso para o desvio positivo (de limite superior) do parâmetro j na mistura Algumas pilhas não podem ser utilizadas (desconsiderar i = significa que a pilha i não pode ser usada) Se uma pilha for retomada, deve-se retomar no mínimo retmin toneladas Deve-se tirar o máimo possível de cada pilha i, isto é, a quantidade que restar na pilha (dnpilha i ) deve ser minimizada Algumas pilhas devem ser necessariamente retomadas, isto é, retomar i = significa que a pilha i deve ser totalmente usada Variáveis de decisão: i = Quantidade de minério a ser retirado da pilha i dnm j = Desvio negativo (relativo à meta), em toneladas, do parâmetro j na mistura dpm j = Desvio positivo (relativo à meta), em toneladas, do parâmetro j na mistura dpe j = Desvio positivo (relativo ao lim. superior de especificação), em ton, do parâmetro j na mistura dnpilha i = Quantidade de minério que sobra, em toneladas, na pilha i (Desvio negativo relativo à quantidade Qu i disponível na pilha i) dpp = Desvio positivo de produção, em toneladas dnp = Desvio negativo de produção, em toneladas y i = se a pilha i for retirada e zero, caso contrário.
Problema da Mistura proposto pelo Tales () ( tij tu j ) i dpe j j Parametros etrapolarj = i Pilhas min j Parametros wpm dpm j j + j Parametros wnm dnm j j + wpe j Parametros j dpe + wnpilhai dnpilhai + ( wnp dnp + wpp dpp) i Pilhas A quantidade do parâmetro j na mistura só pode superar a máima permitida quando etrapolar j = j ( tij tu j ) i j Parametros etrapolarj = i Pilhas A quantidade do parâmetro j na mistura não pode superar a máima permitida ( tij tl j ) i j Parametros i Pilhas ( tij trj ) i + dnm j dpm j = j Parametros i Pilhas i Pilhas i + dpp dnp = dnpilha, i i Qu i i i Pilhas p i Pilhas dpe j A quantidade do parâmetro j na mistura não pode ser inferior à mínima permitida Admite-se que haja ecesso (dpm j ) ou falta (dnm j ) do parâmetro j na mistura em relação à quantidade recomendada A quantidade a ser retomada em cada pilha i está limitada à Qu i A mistura deve ter como meta um peso total p, dpm j, dnm j j Parametros
Problema da Mistura proposto pelo Tales () Uma pilha i será retomada (total ou parcialmente) se y i = i yi i Pilhas Qui Qu i Deve-se tentar retomar totalmente a pilha i (dnpilha i representa a sobra) i + dnpilha i Qu i y i i Pilhas Deve-se retomar no mínimo retmin toneladas de uma pilha, caso ela seja usada i retmin y i i Pilhas i = Qui i Pilhas retomari = Quando se deseja retomar totalmente uma pilha i tem-se i = Qu i i = i i Pilhas desconsiderar = Para as pilhas i que não se deseja retomar, i = y i {, } i Pilhas 5
Problema de Transporte Há um conjunto de minas produtoras de minério Há um conjunto de usinas que processam os minérios provenientes das minas Há um custo de transporte de minério de uma mina para uma usina Cada mina tem uma capacidade de produção mensal Cada usina tem uma demanda mensal Cada mina tem um custo fio se for usada Determinar a estratégia ótima de transporte Mina 7 6,5 8,5 Usinas 8 9,8,7, 9,8 Cap (t/mês) 5 5 Custo ($/t) 5 55 Demanda (t/mês) 5-6 -
Problema de Transporte cap f c dem cap f c cap f c dem cap f dem Minas Usinas 7
Problema de Transporte Dados de entrada: Minas = Conjunto de minas Usinas = Conjunto de usinas cap i = capacidade de produção, em toneladas/mês, da mina i dem j = quantidade de minério demandado pela usina j, em ton/mês f i = custo fio de uso da mina i, em $ c ij = custo de transporte de minério proveniente da mina i para abastecer a usina j, em $/tonelada/mês Variáveis de decisão: ij = Quantidade de minério, em toneladas/mês, a ser transportado da mina i para abastecer a usina j y i = se a mina i será usada e, caso contrário 8
Problema de Transporte (Caso em que: Oferta > Demanda) Como oferta (minas) > demanda (usinas): Toda a demanda será atendida. Função objetivo Minimizar o custo de transporte mais o custo fio pelo uso das minas usadas min c + ij ij i Minas j Usinas i Minas f i y i 9
Problema de Transporte: modelo de PL. Restrições: a) A capacidade de produção das minas deve ser respeitada ij j Usinas cap i i Minas b) Toda a demanda é atendida ij i Minas = dem j j Usinas
Problema de Transporte: modelo de PL c) Uma mina só pode ser usada se houver produção y i cap ij j Usinas i i Minas d) Não negatividade e integralidade y i {, } i Minas ij i Minas, j Usinas
Problema de Transporte: modelo (Caso em que Oferta < Demanda) min c + ij ij i i Minas j Usinas i Minas f ij j Usinas = cap i i Minas Toda a produção é ofertada ij i Minas dem j j Usinas Nem toda a demanda é atendida ij i Minas, j Usinas
Alocação de Pessoal Um hospital trabalha com atendimento variável em demanda Turno Horário durante as horas do dia. As necessidades distribuem-se segundo a tabela ao lado. 8-5 O horário de trabalho de um enfermeiro é de 8 horas seguidas -6 58 e só pode ser iniciado no começo de cada turno, isto é, às 8 ou ou 6 ou ou ou horas. 6-6 Considere que cada enfermeiro recebe $ por hora de trabalho no período diurno (8 às h) e - $5 no período noturno ( às 8 h). 5 - Elabore um modelo de PLI que minimize o gasto com a mão-deobra. 6-8 9 # enf.
Problema de Alocação de Pessoal Dados de entrada: Turnos = Conjunto de turnos de trabalho req i = número de enfermeiros requeridos no turno i c i = custo do enfermeiro que começa sua jornada no início do turno i, em $ Variáveis de decisão: i = Número de enfermeiros que começam sua jornada de trabalho no início do turno i
Problema de Alocação de Pessoal. Função objetivo Minimizar o custo com as despesas com pessoal. Restrições min c i i i Turnos a) A demanda por enfermeiros em cada turno i deve ser atendida i req b) Não-negatividade e integralidade + i i i Turnos i Z + i Turnos 5
Listas Circulares no LINGO Listas circulares são usadas para ligar o último elemento de um conjunto ao primeiro, bem como o primeiro ao último. No LINGO, pode-se usar listas circulares por meio do comando @wrap @wrap(inde,limit) = retorna o índice J, dado por: J = inde + k Limit onde k é um número inteiro tal que J pertença ao intervalo [, Limit] Eemplos: @wrap(, 7) = + k 7 = + 7 = @wrap(8, 7) = 8 + k 7 = 8 + (-) 7 = @wrap(9, 7) = 9 + k 7 = 9 + (-) 7 = @wrap(, 7) = + k 7 = + () 7 = 7 @wrap(-, 7) = - + k 7 = - + () 7 = 6 @wrap(-, 7) = - + k 7 = - + () 7 = 5 Assim, se i pertence ao conjunto Turnos, isto é, i Turnos, então i- seria representado no LINGO por: (@wrap(i-, @size(turnos))) 6
Problema de Alocação de Pessoal com hora-etra Um hospital trabalha com atendimento variável em demanda durante as horas do dia. As necessidades distribuem-se segundo a tabela ao lado. O horário de trabalho de um enfermeiro é de 8 horas seguidas e só pode ser iniciado no começo de cada turno, isto é, às 8 ou ou 6 ou ou ou horas. Considere que cada enfermeiro recebe $ por hora de trabalho no período diurno (8 às h) e $5 no período noturno ( às 8 h) Suponha que cada enfermeiro possa trabalhar mais quatro horas consecutivas além de sua jornada normal de trabalho e que a hora-etra seja remunerada em 5% a mais que a hora normal. Considere, também, que em cada turno, não mais de % dos enfermeiros possa fazer hora-etra. Elabore um modelo de PLI que minimize o gasto com a mão-de-obra. Turno 5 6 Horário 8- -6 6- - - -8 # enf. 5 58 6 9 7
Problema de Alocação de Pessoal com hora-etra Dados de entrada: Turnos = Conjunto de turnos de trabalho req i = número de enfermeiros requeridos no turno i csemhetra i = custo do enfermeiro que começa sua jornada no início do turno i, em $, e não faz hora-etra ccomhetra i = custo do enfermeiro que começa sua jornada no início do turno i, em $, e FAZ hora-etra phe = percentual máimo de enfermeiros fazendo hora-etra em um turno de trabalho Variáveis de decisão: i = Número de enfermeiros que começam sua jornada de trabalho no início do turno i e NÃO FAZEM hora-etra y i = Número de enfermeiros que começam sua jornada de trabalho no início do turno i e FAZEM hora-etra 8
Problema de Alocação de Pessoal. Função objetivo Minimizar o custo com as despesas com pessoal min. Restrições i Turnos csemhetra a) A demanda por enfermeiros em cada turno i deve ser atendida i b) Em cada turno, não mais de phe (= %) dos enfermeiros podem fazer hora-etra y c) Não-negatividade e integralidade i i + + i + yi + yi + yi phe i Turnos req ccomhetra i i y i Turnos ( + + y + y + y ) i Turnos i i i i i i, y i i Z + i Turnos i 9
Problema de Corte de Estoque () (Cutting Stock Problem) Certa empresa trabalha com a produção de etiquetas autocolantes. O papel usado para sua confecção encontra-se em bobinas de mesmo comprimento, todas com largura de 5 cm. Há uma programação para a próima semana de bobinas de 5 cm, 7 bobinas de 7,5 cm e bobinas de cm. 5
Problema de Corte de Estoque () (Cutting Stock Problem) É política da empresa estocar um máimo de bobinas de cada tipo (Esta ação evita a imobilização de capital, uma vez que são incertos os próimos pedidos). Os possíveis padrões de corte estabelecidos pelo setor técnico são especificados na tabela ao lado. Qual a programação de corte a ser adotada que minimiza o desperdício face à necessidade de produção? Padrão de corte 5 6 Largura da faia 5 cm 7,5 cm cm Perda (cm) 5,5,5 5
Problema de Corte de Estoque () (Cutting Stock Problem) Dados de entrada: Padroes = Conjunto dos padrões de corte Bobinas = Conjunto dos tipos de bobinas perda i = perda, em cm, com o uso do padrão de corte i demanda j = quantidade de bobinas do tipo j requeridas estma = estoque máimo permitido de bobinas de cada tipo a ij = número de bobinas de largura j eistentes no padrão i Variáveis de decisão: i = Número de vezes em que se usa o padrão de corte i 5
Problema de Corte de Estoque () (Cutting Stock Problem) min perda i i i Padroes Minimizar a perda com os cortes a ij i Padroes i demanda j j Bobinas A demanda por bobinas do tipo j deve ser atendida a ij i Padroes i demanda j + estma j Bobinas O ecesso de bobinas do tipo j não pode eceder a estma i Z + i Padroes 5
Problema de Corte de Estoque () (Cutting Stock Problem) Relativamente ao problema anterior, suponha que se deseje minimizar, além da perda inerente ao processo de corte, também a perda com o ecesso de bobinas cortadas Neste caso, o modelo anterior sofre a seguinte alteração: A função objetivo tem agora uma segunda parcela, que mede a perda com o ecesso de bobinas cortadas. Nessa parcela, para cada largura de bobina requerida, o número de bobinas em ecesso é multiplicado pela largura da bobina, resultando na perda em cm devido ao ecesso de bobinas cortadas. min i Padroes perda i i + j Bobinas largura j a ij i Padroes i demanda j 5
Problema de Corte de Estoque () (Cutting Stock Problem) Uma serralheria dispõe de barras de 7 metros de comprimento É necessário cortar essas barras de forma a atender a uma encomenda por barras menores nos seguintes comprimentos: 9 barras de metros 59 barras de metros 89 barras de metros Elaborar um modelo para atender ao pedido minimizando a perda com o corte das barras e também com o ecesso de barras cortadas 55
Problema de Corte de Estoque () (Cutting Stock Problem) Dados de entrada: Padroes = Conjunto dos padrões de corte Barras = Conjunto dos tipos de barras a serem produzidas perda i = perda, em cm, com o uso do padrão de corte i demanda j = quantidade de barras do tipo j requeridas a ij = número de barras do tipo j eistentes no padrão i compr j = comprimento, em cm, da barra do tipo j Variáveis de decisão: i = Número de vezes em que se usa o padrão de corte i 56
Problema de Corte de Estoque () (Cutting Stock Problem) Primeiro passo: Estabelecimento dos padrões de corte Barras Padrão m m m Perda 5 57
Problema de Corte de Estoque () (Cutting Stock Problem) Segundo passo: Modelagem do problema min i Padroes perda i i + j Barras compr j a ij i Padroes i demanda j Perda referente aos padrões de corte Perda referente ao ecesso de barras produzidas a ij i Padroes i demanda j j Barras i Z + i Padroes 58
Problema da Mochila - É dado um conjunto de objetos, uma unidade de cada Há uma mochila de capacidade cap para colocar os objetos Cada objeto tem associado um peso w j e um valor de retorno p j se for alocado à mochila Determinar quais objetos devem ser alocados à mochila de forma que o valor de retorno seja o maior possível Dados de entrada: Objetos = Conjunto dos diferentes tipos de objeto cap = Capacidade da mochila w j = peso (weight) do objeto j p j = benefício (profit) proporcionado pelo uso do objeto j Variáveis de decisão: j = se o objeto j for alocado à mochila e zero, caso contrário 59
Problema da Mochila -: modelo de programação linear ma p j j j Objetos Maimizar o benefício pelo uso dos objetos (Levar os objetos mais valiosos) w j j Objetos j cap A capacidade da mochila não pode ser superada j {, } j Objetos Apenas uma unidade de cada objeto pode ser alocada à mochila 6
Problema da Mochila - Múltipla Dados de entrada: Objetos = Conjunto dos diferentes tipos de objeto Mochilas = Conjunto dos diferentes tipos de mochila cap i = Capacidade da mochila i w j = peso (weight) do objeto j p j = benefício (profit) proporcionado pelo uso do objeto j Variáveis de decisão: ij = se o objeto j for alocado à mochila i e zero, caso contrário 6
Problema da Mochila - Múltipla: modelo de programação linear ma i Mochilas j Objetos p j ij Maimizar o benefício pelo uso dos objetos (Levar os objetos mais valiosos) w j j Objetos ij cap i i Mochilas A capacidade de cada mochila i não pode ser superada ij i Mochilas j Objetos Cada objeto j, se for usado, deve ser alocado à uma única mochila i ij {,} i Mochilas, j Objetos Apenas uma unidade do objeto j pode ser alocada à mochila i 6
Problema da Mochila Inteira Múltipla Dados de entrada: Objetos = Conjunto dos diferentes tipos de objeto Mochilas = Conjunto dos diferentes tipos de mochila u j = quantidade de objetos j disponíveis cap i = Capacidade da mochila i w j = peso (weight) do objeto j p j = benefício (profit) proporcionado pelo uso do objeto j Variáveis de decisão: ij = quantidade de objetos do tipo j alocados à mochila i 6
Problema da Mochila Inteira Múltipla: modelo de programação linear ma i Mochilas j Objetos p j ij Maimizar o benefício pelo uso dos objetos (Levar os objetos mais valiosos) w j j Objetos ij cap i i Mochilas A capacidade de cada mochila i não pode ser superada ij i Mochilas u j j Objetos Para cada objeto j só podem ser usados, no máimo, u j unidades ij Z + i Mochilas, j Objetos A quantidade de objetos do tipo j a serem alocados à mochila do tipo i é inteira 6
Alocação Dinâmica de Caminhões DESCRIÇÃO carregadeiras Caminhão Frente Frente Frente Carregadeira Caminhão Carregadeira Caminhão Mistura Desejada frentes = minerio esteril Caminhão caminhoes 65
Alocação Dinâmica de Caminhões Função Objetivo Peso por desvio negativo de meta para o parâmetro j Peso por desvio positivo de meta para o parâmetro j Peso por desvio negativo da produção Peso por desvio positivo da produção min α j d j + α + j d + j j parametros j parametros + + + β P + β P Desvio negativo de meta do parâmetro j na mistura (t/h) Desvio positivo de meta do parâmetro j na mistura (t/h) Desvio negativo da meta de produção (t/h) Desvio positivo da meta de produção (t/h) 66
Alocação Dinâmica de Caminhões Restrições da Mistura de Minérios Teor máimo admissível (tij -tu j )i i minerio j parametros Teor mínimo admissível (tij -tl j )i i minerio j parametros Teor recomendado (meta de qualidade) (tij -tr j )i i minerio + j j + d d = j parametros 67
Alocação Dinâmica de Caminhões Restrições relativas ao Ritmo de Lavra Ritmo de lavra máimo: i i minerio Pl Ritmo de lavra mínimo: i i minerio Pu Ritmo de lavra recomendado (meta de produção): i i minerio + P P + = Pr 68
Alocação Dinâmica de Caminhões Restrição relativa à Relação Estéril/Minério i i esteril rem i i minerio i i esteril i i minerio rem i i esteril rem i minerio i 9 (t/h) (t/h), 9 >= (t/h) (t/h), >= 69
Alocação Dinâmica de Caminhões Restrições ligadas à Alocação das Carregadeiras () Em uma frente só pode estar operando uma carregadeira, no máimo ik k carregadeiras y i frentes y = Cg y = = y k F y = Cg y = y k = F y = Cg y = 7
Alocação Dinâmica de Caminhões Restrições ligadas à Alocação das Carregadeiras () Uma carregadeira pode ser alocada a uma frente, no máimo: ik i frentes y k carregadeiras y i = y = F y = y i = Cg Cg y = F y = 7
Alocação Dinâmica de Caminhões Restrições relativas à Produção das Carregadeiras: Respeito à Capacidade máima da carregadeira alocada à cada frente i Cu k k carregadeiras y ik i frentes Respeito à Capacidade mínima da carregadeira alocada à cada frente i Cl k k carregadeiras yik i frentes 7
Alocação Dinâmica de Caminhões O número de viagens que cada caminhão l faz à cada frente i em uma hora depende de seu tempo de ciclo: i n T 6 l ca minhoes il il frentes n = e T = min F n = e T = min n T i i = 5 min Ca n = e T = 5 min F n = e T = 5 min n T Ca i i = 55 min n = e T = 5 min F n = e T = min 7
Alocação Dinâmica de Caminhões Restrições relativas à Compatibilidade dos Caminhões n il T il 6 y ik k Carregadeiras compatibilidade lk = i frentes, l caminhoes Ca Cgk n = nv e T = 5 min F y k = Se comp = então nv = até (6/5) k Se comp k = então nv = 7
Alocação Dinâmica de Caminhões Restrições relativas à Produção dos Caminhões i = n il l caminhoes cap l i frentes n = e cap = 5 t = n lcapl = t/h n = e cap = 5 t F Ca Ca n = e cap = 5 t = n lcapl = 6 t/h F n = e t = 8 t Ca n = e cap = 8 t 75
Alocação Dinâmica de Caminhões Restrições de Integralidade e Não-negatividade i y ik i frentes {,} i frentes, k carregadeiras n Ζ il + i frentes,l ca minhoes d,d j + j j parametros P,P + 76
Determinação do Ritmo de Lavra Frente CO Frente CO Carregador Frente CA Carregadeira Hopper Frente 5 CA Frente CO Carregador Correia Principal Frente 6 CO USINA - Produção - Qualidade 77
Determinação do Ritmo de Lavra: Dados de Entrada Limites inferior, superior e meta dos parâmetros de controle (Fe, SiO, Al O, P, etc); Produção mínima, máima e a meta de produção, em ton/h, para atender a usina; Frentes de lavra que podem ou não estar disponíveis (ativadas), com suas respectivas características químicas, ritmos de lavra desejados e método de lavra (caminhão ou correia); Quantidade e modelos de carregadeiras disponíveis; Produtividade mínima e máima das carregadeiras. Cu (prod. ma.) Cl (prod. min.) CA fio fio CO varia com a DM da CAR a correia fio 78
Determinação do Ritmo de Lavra: Objetivos Determinar o ritmo de lavra próimo da meta de produção Gerar um produto dentro de certas especificações e próimo às metas de qualidade Fazer a alocação dos equipamentos de carga 79
Determinação do Ritmo de Lavra: Função MultiObjetivo = j j + j j + j parametros min fo ( wdq dnq wde dne ) j parametros ( wdq dpq + wde dpe ) + j j j j wp ( pn + pp ) + wdp ( dnp + dpp ) wdq j : peso para o desvio da meta no parâmetro j; wde j : peso para o desvio fora dos limites de especificação no parâmetro j; dnq j : desvio negativo da meta no parâmetro j; dpq j : desvio positivo da meta no parâmetro j; dne j : desvio negativo abaio do limite mínimo de especificação no parâmetro j; dpe j : desvio positivo acima do limite máimo de especificação no parâmetro j; wp : peso para o desvio da meta de produção; pn : desvio negativo da meta de produção; pp : desvio positivo da meta de produção; wdp : peso para o desvio fora dos limites de produção; dnp : desvio negativo abaio do limite mínimo de produção; dpp : desvio positivo acima do limite máimo de produção; 8
Determinação do Ritmo de Lavra: Restrições Restrições relativas aos limites e metas dos parâmetros de controle: Teor do parâmetro de controle j não pode superar o limite máimo de especificação (tu j ) i frentes i frentes i frentes (( teores tu ) ) dpe j parametros ij j i j Teor do parâmetro de controle j não pode ser menor que o limite mínimo de especificação (tl j ) (( teores tl ) ) + dne j parametros ij j i j Teor do parâmetro de controle j deve buscar a meta de qualidade (tr j ) (( teores tr ) ) + dnq dpq = j parametros ij j i j j 8
Determinação do Ritmo de Lavra: Restrições Restrições de Produção: Ritmo total de lavra não pode superar o limite máimo de produção (pu) i i Frentes dpp pu Ritmo total de lavra não pode ser menor que o limite mínimo de produção (pl) i i Frentes + dnp pl Ritmo total de lavra deve buscar a meta de produção (pr) i i Frentes + pn pp = pr 8
Determinação do Ritmo de i Lavra: Restrições Restrições de Produção Por Frente: Ritmo de lavra na frente i não pode superar o limite máimo de produção da carregadeira k na frente i (Cu ik ), o qual é fio se o método de lavra for caminhão, mas é variável de acordo com a distância da carregadeira à correia, se o método de lavra for correia transportadora. i Cu ik k Carregadeiras Cl k k Carregadeiras y y ik ik i i frentes Ritmo de lavra na frente i não pode ser inferior ao limite mínimo de produção da carregadeira k (Cl k ) frentes 8
Determinação do Ritmo de Lavra: Restrições Restrições relativas às Carregadeiras: Em cada frente só pode haver uma carregadeira operando y ik k Carregadeiras i Frentes O número de carregadeiras do modelo k utilizadas não pode ultrapassar o número de carregadeiras disponíveis desse modelo (carregdisp k ) y ik i Frentes carregdisp k k Carregadeiras CAR modelo Frentes unid y +y +y +y <= 8
Determinação do Ritmo de Lavra: Restrições Restrições relativas ao Ritmo de Lavra: Quando for definido um ritmo de lavra mínimo (ritmin i ) para uma frente i e ela estiver disponível (dispfrente i ), então esse ritmo mínimo tem que ser respeitado: i ritmin i dispfrente i i Frentes ritmin i Quando for definido um ritmo de lavra máimo (ritma i ) para uma frente i e ela estiver disponível (dispfrente i ), então esse ritmo máimo tem que ser respeitado: i ritma i dispfrente i i Frentes ritmin i 85
Determinação do Ritmo de Lavra: Restrições Restrições de Capacidade: O ritmo de lavra total das frentes que operam com o carregador l não pode ultrapassar a capacidade do carregador ( carregador = l) capcarregador l carregadores i Frentes F CO F CO i O ritmo de lavra total das frentes que operam com caminhão não pode ultrapassar a capacidade do Hopper i ( i Métododelavrada frentei é caminhão) i Frentes Carregador t/h + <= caphopper F CA Hopper t/h F CA + <= 86
COMPOSIÇÃO DE LOTES DE MINÉRIO DE FERRO DA MINA CAUÊ Otimizar a coleta de minério dos pátios de estocagem: Produzir soluções que melhor se aproimem das metas de qualidade estabelecidas Ao utilizar minério de uma pilha, tentar eliminá-la, sempre que possível Respeitar as restrições operacionais dos pátios 87
COMPOSIÇÃO DE LOTES DE MINÉRIO DE FERRO DA MINA CAUÊ O MODELO BASEADO EM PROGRAMAÇÃO POR METAS Parâmetros do modelo Pátio: Conjunto de pátios, no caso, Pátio = {A, B, C}; Baliza(k): Conjunto de balizas do pátio k. Para cada pátio k o número de balizas nb varia no intervalo [, nb(k)]. Para o pátio A, tem-se: Baliza (A) = {-5, -, -5,...,}, isto é, nb(a) = 7; Cada pilha situada em uma dada baliza i de um dado pátio k, é dividido em duas partes: uma superior, denotada por sup, outra inferior, denotada por inf. Eliminar ijk : Parâmetro que assume o valor se a pilha situada na baliza i, parte j do pátio k deve ser completamente eliminada, como desejo do operador ; ElParc ijk : Quantidade de minério, em toneladas, a ser eliminado da parte j da baliza i do pátio k; Qu ijk : Quantidade de minério, em toneladas, eistente na baliza i do pátio k, na parte j; tem ijl : Parâmetro que assume valor se há um conjunto de pilhas contíguas iniciando na baliza i, parte j, do pátio k. Para as demais balizas, o parâmetro assume o valor zero; ncp k : Número máimo de conjuntos de pilhas contíguas a serem retiradas do pátio k nas posições inf e sup; S: Conjunto dos parâmetros de qualidade analisados no minério; t ijkl : Teor do parâmetro l na parte j da pilha situada na baliza i do pátio k (%); tr l : Teor recomendado para o parâmetro l no produto final (%); lig l : Limite inferior de garantia, isto é, teor mínimo admissível para o parâmetro l no produto final (%); lsg l : Limite superior de garantia, isto é, teor máimo admissível para o parâmetro l no produto final (%); 88
COMPOSIÇÃO DE LOTES DE MINÉRIO DE FERRO DA MINA CAUÊ O MODELO BASEADO EM PROGRAMAÇÃO POR METAS Parâmetros do modelo Sejam os seguintes parâmetros de entrada: lie l : Limite inferior de especificação, isto é, teor mínimo recomendável para o parâmetro l no produto final (%); lse l : Limite superior de especificação, isto é, teor máimo recomendável para o parâmetro l no produto final (%); α l+ : Penalidade por desvio positivo em relação ao limite superior de garantia do parâmetro l no produto final; α l- : Penalidade por desvio negativo em relação ao limite inferior de garantia do parâmetro l no produto final; γ l+ : Penalidade por desvio positivo em relação ao limite superior de especificação do parâmetro l no produto final; γ l- : Penalidade por desvio negativo em relação ao limite inferior de especificação do parâmetro l no produto final; δ l+ : Penalidade por desvio negativo em relação à meta de qualidade para o parâmetro l no produto final; δ l- : Penalidade por desvio positivo em relação à meta de qualidade para o parâmetro l no produto final; β + : Penalidade por desvio negativo na meta de produção; β - : Penalidade por desvio positivo na meta de produção; P m : meta de produção (t); 89
COMPOSIÇÃO DE LOTES DE MINÉRIO DE FERRO DA MINA CAUÊ O MODELO BASEADO EM PROGRAMAÇÃO POR METAS Variáveis de decisão ijk :quantidade de minério, em toneladas, a ser retirado da parte j da baliza i do pátio k; se a pilha que está na baliza i do pátio k, parte j, pode ser usada y ijk : caso contrário se a pilha que está na baliza i do pátio k, parte j, será usada z ijk : caso contrário dg l+ : Desvio positivo do parâmetro l no produto final (t), em relação ao limite superior de garantia; dg l- : Desvio negativo do parâmetro l no produto final (t), em relação ao limite inferior de garantia; de l+ : Desvio positivo do parâmetro l no produto final (t), em relação ao seu limite superior de especificação; de l- : Desvio negativo do parâmetro l no produto final (t), em relação ao seu limite inferior de especificação; dr l+ : Desvio positivo do parâmetro l no produto final (t), em relação à meta; dr l- : Desvio negativo do parâmetro l no produto final (t), em relação à meta; P - : Desvio negativo em relação à meta de produção (t); P + : Desvio positivo em relação à meta de produção (t); dbaliza ijk : Quantidade de minério que resta na pilha localizada na baliza i, parte j do pátio k. 9
COMPOSIÇÃO DE LOTES DE MINÉRIO DE FERRO DA MINA CAUÊ O MODELO BASEADO EM PROGRAMAÇÃO POR METAS Função objetivo min l s α dg + l + l + l s i Baliza j Parte k Patio α dg l l dbaliza + ijk l S γ + l de + l + l S γ l de l + l S δ + l dr + l + l S δ l dr l + β P + + β P + + Restrições de Qualidade e Produção ( tijkl lsgl ) k Patio i Baliza( k ) j Parte ( tijkl ligl ) k Patio i Baliza( k ) j Parte ( tijkl lsel ) k Patio i Baliza( k ) j Parte ( tijkl liel ) k Patio i Baliza( k ) j Parte ( tijkl trl ) k Patio i Baliza( k ) j Parte + P ijk ijk P + dg + de + dr l + ijk P m k Patio i Baliza( k ) j Parte ijk ijk ijk dg de = + l l + l l dr + l = l S l S l S l S l S l S 9
COMPOSIÇÃO DE LOTES DE MINÉRIO DE FERRO DA MINA CAUÊ O MODELO BASEADO EM PROGRAMAÇÃO POR METAS Restrições de Seqüenciamento Horizontal y y y y ijk ijk Qu Qu i,j,k i,j,k ijk ijk i, inf, k i+, sup, k i,inf, k i Baliza(k), j Parte, k Patio i e i Baliza(k), j Parte, k Patio Restrições de Seqüenciamento Vertical Qu Qu i-,j,k y i Baliza( k), k Pátio i nb( k) - i+,sup, k ijk i+,sup, k i Baliza( k), k Pátio Qui+, sup, k e i nb( k) Qu Restrições Para Forçar Retomada Concentrada z i Baliza(k), j Parte, k Pátio ijk ijk ijk zijk i Baliza(k), j Parte, k Pátio Quijk Quijk tem i Baliza ( k ) i,sup, k z i,sup, k + tem i Baliza ( k ) i,inf, k z i,inf, k ncp k k Pátio 9
COMPOSIÇÃO DE LOTES DE MINÉRIO DE FERRO DA MINA CAUÊ O MODELO BASEADO EM PROGRAMAÇÃO POR METAS Restrições Para Eliminar Parcial e Totalmente ijk = ElParc ijk ijk Qu ijk i Baliza( k), k Pátio, j Parte Qu ijk e Eliminar ijk ElParc ijk, = i Baliza( k), k Pátio, j Parte Eliminar = ijk Restrição Para Tentar Limpar Pilha dbaliza = z Qu ijk + i Baliza( k), j Parte, k Pátio ijk ijk ijk 9
Programação da produção: Dimensionamento de lotes Empresas de manufatura fabricam diversos tipos de produtos solicitados por diferentes clientes Produtos devem estar prontos em datas previamente agendadas Fábricas têm capacidade de produção limitada (máquinas, mão-deobra etc) Necessário se faz planejar a produção Decidir o quê produzir, quanto produzir, isto é, dimensionar os lotes de produção, e quando produzir (em cada período do horizonte de planejamento) A necessidade de antecipação da fabricação de produtos (estocados de um período para outro) acarreta custos de estocagem e algumas dificuldades operacionais No planejamento da produção deseja-se determinar o tamanho dos lotes de produção para atender a demanda na data solicitada, de modo que a soma dos custos de produção e estocagem seja mínima 9
Programação da produção: Dimensionamento de lotes (um único item) Uma empresa recebe uma encomenda para entregar um produto ao longo de um período de tempo. São dadas para cada mês: a demanda desse produto, o custo de produção e o custo de estocagem. Mês Cap. Produção (unid) 7 7 7 Demanda (unid.) 9 Custo estocagem (R$) 6 5 Custo de prod. (R$) 5 7 Considere que o estoque no início é de unidades. 7 6 8 Elabore um modelo de PLI que minimize o custo total de produção e estocagem. 5 6 7 7 8 7 6 5 9 95
Programação da produção: Dimensionamento de lotes (um único item) Dados de entrada: Mes = conjunto dos meses de produção cprod t = custo de produção no mês t cest t = custo de estoque no mês t demanda t = demanda no mês t cap t = capacidade de produção no mês t estinicial = estoque inicial Variáveis de decisão: t = quantidade do produto a ser produzida no mês t e t = quantidade do produto a ser estocada no mês t 96
Programação da produção: Dimensionamento de lotes (um único item) Função objetivo: minimizar os custos de produção e de estocagem ( cprod + cest e ) t t t t t Mes Restrições: Conservação de fluo no final do mês : e = estinicial + demanda 97
Programação da produção: Dimensionamento de lotes (um único item) Restrições: Conservação de fluo em cada mês t>: e t = et + t demandat t Mes t > Restrições: Respeito à capacidade de produção em cada mês t: t cap t t Mes 98
Programação da produção: Dimensionamento de lotes Considere uma empresa que fabrica n produtos e deseja programar sua produção nos próimos T períodos de tempo (= horizonte de planejamento) É conhecida a demanda de cada produto em cada período do horizonte de planejamento Em cada período, os recursos necessários para a produção são limitados e renováveis, isto é, uma quantidade de recursos está disponível e não depende de como foram utilizados nos períodos anteriores. Eemplos de recursos renováveis: mão-de-obra, energia elétrica, horas de máquina Eemplo de recurso não renovável: matéria-prima que sobra em um período e pode ser usada nos períodos seguintes Há a possibilidade de estocagem de produtos de um período para outro Dados de entrada do problema: d it : demanda do item i no período t (i =,..., n; t =,..., T) disp t : disponibilidade de recursos (renováveis) no período t r i : quantidade de recursos necessários para a produção de uma unidade do item i c it : custo de produzir uma unidade do item i no período t h it : custo de estocar uma unidade do item i no período t Variáveis de decisão: it : número de itens do tipo i produzidos no período t e it : número de itens do tipo i em estoque no final do período t Estoques iniciais do horizonte de planejamento e i são dados 99
Programação da produção: Dimensionamento de lotes Função objetivo: (minimizar os custos de produção e estocagem) min n T i= t= c it it + n T i= t= h it e it Equações de conservação de estoque: Restrições de capacidade de produção: Garantia de atendimento à demanda: eit = ei, t + it dit i =,..., n t =,..., T n i= ri it dispt t =,..., T e it Z + i =,..., n t =,..., T Não-negatividade integralidade: e it Z + i =,..., n t =,..., T
Programação da produção: Dimensionamento de lotes Considere uma fábrica de pré-moldados que produz dois tipos de vigas, cujas demandas para as próimas semanas são conhecidas Os produtos utilizam os mesmos tipos de recursos, porém em quantidades diferentes Suponha que apenas um centro de trabalho esteja disponível para a produção dos dois itens, cuja disponibilidade é de horas por período e que a produção de uma unidade do item consuma 5 minutos (= / da hora) e uma unidade do item consuma minutos (= / da hora) Os custos de produção por período, bem como os custos de estocagem são conhecidos Os estoques iniciais dos dois produtos são nulos Definir um plano de produção de modo que os pedidos sejam atendidos ao menor custo de produção e estocagem Demanda de vigas Item Item Custos de produção Item Item Custos de estocagem Período 5 5 Período Período Período 9 5 Período Período Período 8 Período Item Item,5,5
Programação da produção: Seqüenciamento em uma máquina Problema de seqüenciamento em uma máquina com penalidades por antecipação e atraso da produção (PSUMAA). Tempo de preparação de máquina dependente da seqüência de produção; Janelas de atendimento; Os objetivos: redução dos custos de manutenção do estoque (quando a produção é antecipada) e dos custos por atraso na produção.
Programação da produção: Seqüenciamento em uma máquina Características do PSUMAA: Uma máquina deve processar um conjunto de n jobs; Cada job possui um tempo de processamento P i, uma data inicial E i e uma data final T i desejadas para o término do processamento; A máquina eecuta no máimo um job por vez e uma vez iniciado o processamento de um job, o mesmo deve ser finalizado, ou seja, não é permitido a interrupção do processamento;
Programação da produção: Seqüenciamento em uma máquina Todos os jobs estão disponíveis para processamento na data ; Quando um job j é seqüenciado imediatamente após um job i, sendo estes pertencentes a diferentes famílias de produtos, é necessário um tempo S ij para a preparação da máquina; Assume-se, ainda, que a máquina não necessita de tempo de preparação inicial;
Programação da produção: Seqüenciamento em uma máquina É permitido tempo ocioso entre a eecução de dois jobs consecutivos. Os jobs devem ser finalizados dentro da janela de tempo [E i, T i ], denominada janela de entrega. Se o job i for finalizado antes de E i então há um custo de manutenção de estoque. Caso o job seja finalizado após T i então há associado um custo por atraso (que pode ser uma multa imposta por contratos de prestação de serviço), além de insatisfação do cliente. Os jobs que forem finalizados dentro da janela de entrega não proporcionarão nenhum custo para a empresa; Os custos unitários por antecipação e atraso da produção são dependentes dos jobs. Objetivo: minimização do somatório dos custos de antecipação e atraso da produção. 5
Programação da produção: Seqüenciamento em uma máquina Dados de Entrada: n: número de jobs a serem processados; P i : tempo de processamento do job i; E i : data de início do período de entrega do job i; T i : data de término do período de entrega do job i; S ij : tempo de preparação da máquina necessário para processar job j depois do job i; α i : custos de antecipação da produção do job i por unidade de tempo; β i : custos de atraso da produção do job i por unidade de tempo. 6
Programação da produção: Seqüenciamento em uma máquina Variáveis de Decisão: s i : a data de início do processamento do job i; e i : o tempo de antecipação do job i; t i : o tempo de atraso do job i; Jobs Fictícios: : antecede imediatamente o primeiro job na seqüência de produção; n + : sucede imediatamente o último job na seqüência de produção; Observação: P e P n+ são iguais a zero, S i = e S i, n+ = i =,,...,n. 7
Programação da produção: Seqüenciamento em uma máquina Função Objetivo Minimizar o somatório dos custos totais de antecipação e atraso da produção () 8
Programação da produção: Seqüenciamento em uma máquina Restrições Um job j só pode ser iniciado imediatamente após um job i, sem nenhum job intermediário, depois de preparar a máquina de i para j e completado o processamento do job i: () onde: M é uma constante de valor suficientemente grande 9
Programação da produção: Seqüenciamento em uma máquina Restrições () Quando j sucede i (y ij =), têm-se: Quando j não sucede i (y ij =), têm-se:
Programação da produção: Seqüenciamento em uma máquina Restrições: Cada job j tem somente um job i imediatamente antecessor: () Cada job i tem somente um job j imediatamente sucessor: (5)
Programação da produção: Seqüenciamento em uma máquina Restrições: O tempo de antecipação e i [, (E i P i s i )] é determinado pelas restrições: (6) (7) O tempo de atraso t i [, (s i + P i T i )] é determinado pelas restrições: (8) (9)
Problema de Seleção de Projetos Mineiros Concorrentes Produção Mina Projeto Projeto Projeto... Projeto n VPL Mina Projeto Projeto Projeto... Projeto n Mina... Mina m Projeto Projeto Projeto... Projeto n Em cada mina apenas uma opção de projeto pode ser escolhida; O objetivo é maimizar o VPL respeitando a meta de produção. Projeto Projeto Projeto... Projeto n Meta de Produção
Problema de Seleção de Projetos Mineiros Concorrentes E. de opções de projeto por mina
Eemplo de Problema de Seleção de Projetos Mineiros Concorrentes Eemplo de VPL ($ 6 ):... 6 88. 99.56 9.... 897. 77.8 9.9 99.85... 7................... 7.6 6.8.... 6.67 Eemplo de Produção (Mt):... 6... 5....5.................. 7... 5
Modelo de Programação Matemática para o Problema de Seleção de Projetos Considere: Minas: conjunto de minas; Opcoes: conjunto de opções de projeto em cada mina; VPL ij : Valor Presente Liquido do projeto j na mina i; prod ij : produção do projeto j na mina i; M: meta de produção; Pfalta: penalidade por produção inferior à meta estabelecida; Pec: penalidade por produção superior à meta estabelecida. caso a mina i opere com o projeto j ij = caso contrário 6
Modelo de Programação Matemática para o Problema de Seleção de Projetos ma i Minas j Projetos VPLij ij Pfalta dnp Pec dpp ij j Projetos = i Minas i Minas j Projetos prod ij ij dpp + dnp = M ij {,} i Minas, j Projetos 7
Heurísticas construtivas e de refinamento: Fundamentação e aplicações Marcone Jamilson Freitas Souza Aleandre Xavier Martins Tatiana Alves Costa José Maria do Carmo Bento Alves Frederico Augusto Coimbra Guimarães Túlio Ângelo Machado Toffolo Departamento de Computação Homepage: http://www.decom.ufop.br/prof/marcone E-mail: marcone.freitas@yahoo.com.br 8
Problema do Caieiro Viajante Dado um conjunto de cidades e uma matriz de distâncias entre elas PCV consiste em encontrar uma rota para um Caieiro Viajante tal que este: parta de uma cidade origem passe por todas as demais cidades uma única vez retorne à cidade origem ao final do percurso percorra a menor distância possível Rota conhecida como ciclo hamiltoniano 9
Problema do Caieiro Viajante
Problema do Caieiro Viajante
Formulação Matemática para o Problema do Caieiro Viajante Dados de entrada: Cidades: Conjunto de cidades d ij = distância entre as cidades i e j Variáveis de decisão: ij = se a aresta (i,j) será usada;, caso contrário f ij = quantidade de fluo de i para j Função objetivo: min i Cidades j Cidades d ij ij
Formulação Matemática para o Problema do Caieiro Viajante Restrições:. De cada cidade i só sai uma aresta: ij j Cidades = i Cidades i. A cada cidade j só chega uma aresta: ij i Cidades = j Cidades i
Formulação Matemática para o Problema do Caieiro Viajante. O fluo que chega a uma cidade i menos o que sai é igual a uma unidade: j Cidades f ji f ij j Cidades = i Cidades i f f - i. O fluo máimo em cada aresta é igual a n-, onde n é o número de cidades: f ij ( n ) i Cidades, ij 5. Integralidade e não negatividade: j Cidades f ij i Cidades, j Cidades ij {,} i Cidades, j Cidades
Problema do Caieiro Viajante Compleidade Considerando PCV simétrico (d ij = d ji ), para n cidades há (n-)!/ rotas possíveis Para n = cidades, há 6 rotas possíveis. Um computador que avalia uma rota em -8 segundos gastaria cerca de 9 anos para encontrar a melhor solução por enumeração completa Métodos de enumeração implícita, tais como branch-and-bound, embutidos em solvers, podem reduzir significativamente este tempo Não há garantia de que isso sempre ocorra 5
Problema do Caieiro Viajante Compleidade Para dimensões mais elevadas (> 5 cidades), a resolução por modelos de programação matemática é proibitiva em termos de tempos computacionais PCV é da classe NP-difícil: ainda não eistem algoritmos eatos que o resolvam em tempo polinomial À medida que n cresce, o tempo de eecução cresce eponencialmente PCV é resolvido por meio de heurísticas: Procedimentos que seguem uma intuição para resolver o problema (forma humana de resolver o problema, fenômenos naturais, processos biológicos, etc.) Não garantem a otimalidade da solução final Em geral, produzem soluções finais de boa qualidade rapidamente 6
Heurísticas Construtivas Consistem em construir uma solução passo a passo, elemento por elemento De refinamento Consistem em efetuar modificações na solução construída, de forma a tentar melhorá-la 7
Heurística de construção gulosa Funcionamento: Constrói uma solução, elemento por elemento A cada passo é adicionado um único elemento candidato O candidato escolhido é o melhor segundo um certo critério O método se encerra quando todos os elementos candidatos foram analisados 8
Heurísticas construtivas para o Problema do Caieiro Viajante Vizinho mais próimo Idéia central: Construir uma rota passo a passo, adicionando à solução corrente a cidade mais próima (ainda não visitada) da última cidade inserida Inserção mais barata Idéia central: Construir uma rota passo a passo, partindo de rota inicial envolvendo cidades e adicionar a cada passo, a cidade k (ainda não visitada) entre a ligação (i, j ) de cidades já visitadas, cujo custo de inserção seja o mais barato 9
PCV Vizinho mais Próimo Eemplo - Passo 5 6 6 6 6 6 6 6 d ij j i 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total =
PCV Vizinho mais Próimo Eemplo - Passo 9 5 d ij j i 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total = + =
PCV Vizinho mais Próimo Eemplo - Passo 8 5 5 d ij j i 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total = + = 5
PCV Vizinho mais Próimo Eemplo - Passo 5 9 d ij j i 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total = 5 + = 7
PCV Vizinho mais Próimo Eemplo - Passo 5 7 5 d ij j i 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total = 7 + 7 = 7
5 PCV Vizinho mais Próimo Eemplo Passo final: Inserção forçada 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total = + = 6 7
Heurística da Inserção Mais Barata para o Problema do Caieiro Viajante Inserção mais barata Idéia central: Construir uma rota passo a passo, partindo de rota inicial envolvendo cidades (obtidas por um método qualquer) e adicionar a cada passo, a cidade k (ainda não visitada) entre a ligação (i, j ) de cidades já visitadas, cujo custo de inserção seja o mais barato 6
7 Heurística da Inserção Mais Barata para o Problema do Caieiro Viajante k t u j r i 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. d ij d ir d ri
8 k t u j r i 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. d ij d ir d ri Custo da inserção = d ik + d kj - d ij d ik d kj Heurística da Inserção Mais Barata para o Problema do Caieiro Viajante
9 PCV Inserção mais Barata Eemplo - Passo 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total = 7
PCV Inserção mais Barata Eemplo - Passo 8 + 6 = 6 5 5 + 8 7 = 6 5 + 9 7 = 5 6 + 9 = 6 5 5 6 6 i + 6 = 6 6 9 + = 8 6 9 + 7 = 5 6 + 5 = 9 + = d ik + d kj d ij j k 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total = + = 7
PCV Inserção mais Barata Eemplo - Passo + 6 = 6 6 5 5 + 8 7 = 6 5 + 9 = + 5 = 5 6 6 i 8 + 6 = 6 9 + 7 = 5 6 + = 9 6 + = 6 d ik + d kj d ij j k 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total = + = 6 7 5
PCV Inserção mais Barata Eemplo Passo final + 6 = 6 6 5 9 + 7 = 5 + 9 5 = 7 6 i + = 6 6 + = 9 d ik + d kj d ij j k 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total = 6 + = 7 5 9
PCV Inserção mais Barata Eemplo Solução final 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total = 6 + = 5 9 s = (6 5)
Heurísticas de refinamento Baseadas na noção de vizinhança A cada solução s está associado um conjunto de vizinhos s definidos por um determinado tipo de movimento m s = s m O tipo de movimento é dependente do problema
Heurísticas de refinamento No PCV, um movimento m pode ser a troca da ordem de visita entre duas cidades Eemplo: Dada a solução s = (6 5), são eemplos de vizinhos de s: s = (6 5) s = (6 5) 5
6 PCV - E: Vizinhos de uma solução s 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total s = 5 9 s = (6 5)
7 PCV - E: Vizinhos de uma solução s 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total s = 7 5 s = (6 5) 6 9
8 PCV - E: Vizinhos de uma solução s 5 6 6 6 6 8 7 9 5 6 9 6 8 5 7 9 5 9 6 5 Cid. Distância Total s = 9 5 s = (6 5) 9 8
Eemplos de vizinhos no Problema de Roteamento de Veículos (Vehicle Routing Problem) () () () 6 () [5] (9) () 5 () 7 () 9 6 (7) () () (5) 8 () () 5 () Solução s 9
Eemplos de vizinhos no Problema de Roteamento de Veículos (Vehicle Routing Problem) () () () 6 () [5] (9) () 5 () 7 () 8 () 9 6 () (7) () () (5) 5 () Solução s s obtida pela realocação de um cliente de uma rota para outra rota (realocação 5 inter-rota)
Eemplos de vizinhos no Problema de Roteamento de Veículos (Vehicle Routing Problem) () () () 6 () [5] (9) () 5 () 7 () 8 () 9 6 () (7) () () (5) 5 () Solução s s obtida pela troca de clientes entre rotas (movimento inter-rotas) (Clientes e mudam 5de rota)
Problema de Alocação de Salas (Classroom Assignment Problem) Diz respeito à designação de salas para as aulas de uma instituição de ensino O horário das aulas é previamente conhecido O PAS é um subproblema do Problema de Programação de Horários (timetabling) Pode ser tratado de forma isolada ou de forma integrada à programação de horários 5
Problema de Alocação de Salas (Classroom Assignment Problem) Restrições: Não pode haver sobreposição de turmas; As salas têm que comportar as turmas etc. Objetivos: Manter as aulas de uma mesma turma em uma mesma sala ao longo da semana; Minimizar o fluo de alunos mudando de sala após uma aula; Sempre que possível, alocar a uma mesma sala alunos de um mesmo curso e período etc. 5
Problema de Alocação de Salas (Classroom Assignment Problem) Movimento de Realocação 5
Problema de Alocação de Salas (Classroom Assignment Problem) Movimento de Troca 55
Problema de Alocação de Salas (Classroom Assignment Problem) Algumas possíveis estruturas de vizinhança: N (s) = {s s s movimento de realocação} N (s) = {s s s movimento de troca} N(s) = {s s s mov. de realocação ou troca} 56
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Representação de uma Solução CARGA Cam Cam... Cam V F (Car, ) 5 X... F (D, )... F (Car, )..................... F F (Car 5, ) 9... 57
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Seis tipos de movimentos para eplorar o espaço de soluções: Movimento Carga Movimento Número de Viagens Movimento Realocar Viagem de um Caminhão Movimento Realocar Viagem a uma Frente Movimento Operação Caminhão Movimento Operação Frente Cada movimento define um tipo de vizinhança 58
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Vizinhança N CG Movimento Carga - N CG (s) F (Car,) F (D,) F Carga (Car,) Carga F (Car,) F (Car,) F (Car,) F (Car,) F (D,) 59
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Vizinhança N OF Movimento Operação Frente - N OF (s) Desativar operação de uma carregadeira alocada a uma frente F (Car,) F (D,) F F Carga (Car,) (Car,) F (Car,) F (D,) F F Carga (Car,) (Car,) Ativar operação de uma carregadeira alocada a uma frente F (Car,) F (D,) F F Carga (Car,) (Car,) F (Car,) F (D,) F F Carga (Car,) (Car,) 6
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Vizinhança N NV Movimento Número de Viagens - N NV (s) Decréscimo no número de viagens de um caminhão a uma frente F Carga (Car,) F (D,) F (Car,) F (Car,) Cam 6 Cam X - F Carga (Car,) F (D,) F (Car,) F (Car,) Cam 5 Cam X Acréscimo no número de viagens de um caminhão a uma frente F Carga (Car,) F (D,) F (Car,) F (Car,) Cam 6 Cam X + F Carga (Car,) F (D,) F (Car,) F (Car,) Cam 6 Cam X 6
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Vizinhança N VC Movimento Realocar Viagem de um Caminhão - N VC (s) F Carga (Car,) F (D,) F (Car,) F (Car,) Cam 6 Cam X F Carga (Car,) F (D,) F (Car,) F (Car,) Cam 5 Cam X 6
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Vizinhança N VF Movimento Realocar Viagem a uma Frente - N VF (s) F Carga (Car,) F (D,) F (Car,) F (Car,) Cam 6 Cam X F Carga (Car,) F (D,) F (Car,) F (Car,) Cam 6 Cam X 6
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Vizinhança N OC Movimento Operação Caminhão - N OC (s) F Carga (Car,) F (D,) F (Car,) F (Car,) Cam 6 Cam X F Carga (Car,) F (D,) F (Car,) F (Car,) Cam 6 Cam X 6
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Função de avaliação de uma solução s: Feita por uma função que penaliza o não atendimento às restrições e objetivos Restrições (Requisitos essenciais): Produção da mina dentro dos limites de especificação; Parâmetros de controle respeitam os limites de qualidade especificados; Relação estéril/minério dentro dos limites de especificação; Taa de utilização dos caminhões inferior ao máimo possível; Produção dos equipamentos de carga respeita as capacidades de produção especificadas. Objetivos (Requisitos não-essenciais): Atendimento às metas de produção da mina Atendimento às metas de qualidade dos parâmetros de controle Atendimento à relação estéril/minério desejada Taa de utilização de caminhões igual à meta de utilização Utilização do menor número possível de caminhões. f ( s) = p q r u c n f ( s) + f j ( s) + f ( s) + f l ( s) + f i ( s) + f ( s) j S l V i F 65
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Avaliação da solução s quanto à produção: p p f ( s) = θ Pr P P : Produção de minério (t/h); Pr : Meta de produção de minério (t/h); θ p : Peso associado à avaliação da produção. 66
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Avaliação da solução s quanto à qualidade: q q q j j j j j f ( s) = θ Qr Q j S Q j : Quantidade encontrada na mistura para o parâmetro j (t/h); Qr j : Quantidade recomendada para o parâmetro j na mistura (t/h); θ q j : Peso associado à avaliação da qualidade do parâmetro j; q j : Multiplicador associado ao parâmetro j. 67
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Avaliação da solução s quanto à relação estéril / minério: r r f ( s) = θ Rr R R : Produção de estéril na mistura (t/h); R r : Meta de Produção de estéril na mistura (t/h); θ r : Peso associado à avaliação da relação estéril/minério 68
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Avaliação da solução s quanto à taa de utilização dos caminhões: f u l ( s) = θ u l Ur l U l l V U l : Carga transportada pelo caminhão l (t/h); Ur l : Meta de carga transportada pelo caminhão l (t/h); θ lu : Peso associado à avaliação da utilização do caminhão l 69
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Avaliação da solução s quanto à produção dos equipamentos de carga: c c i k k i f ( s) = θ Cu i F i : Ritmo de lavra da frente i (t/h); k : Equipamento de carga que está operando na frente i; Cu k : Produção máima do equipamento de carga k alocado à frente i (t/h); θ c k : Peso associado à avaliação da produção do equipamento de carga k alocada à frente i 7
Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Avaliação da solução s quanto ao número de caminhões utilizados: n n f ( s) = β TUl i F TU l : Taa de utilização do caminhão l, em %; β n : Peso associado à avaliação do número total de caminhões utilizados 7
Problema de Seleção de Projetos Mineiros Concorrentes Produção Mina Projeto Projeto Projeto... Projeto n VPL Mina Projeto Projeto Projeto... Projeto n Mina... Mina m Projeto Projeto Projeto... Projeto n Em cada mina apenas uma opção de projeto pode ser escolhida; O objetivo é maimizar o VPL respeitando a meta de produção. Projeto Projeto Projeto... Projeto n Meta de Produção 7
Modelagem Heurística para o Problema de Seleção de Projetos Representação de uma solução: 7 5 7 5 8 5 6 7 *Obs.: Com esta representação, a restrição de que em cada mina um projeto tem que ser implementado é automaticamente satisfeita 7
Estrutura de Vizinhança para o Problema de Seleção de Projetos Eploração do espaço de soluções por meio do Movimento Substituição da Opção Solução s: 7 5 7 8 5 6 7 5 Eemplo de vizinho s : gerado a partir de s, substituindo-se a opção implementada em uma mina pela opção posterior 7 5 7 9 5 6 7 5 7
Avaliação da Solução heurística do Problema da Seleção de Projetos Feita por função que procura maimizar o VPL e penalizar a produção inferior ou superior à meta f ( s) = VPLi S Pfalta ma{, M prodi, S } Pec ma{, prod i i i, i Minas j Opcoes, S M i i Minas i Minas } em que: Minas = conjunto de minas; Opcoes = conjunto das opções de projeto em cada mina; VPL i,si = Valor Presente Líquido referente à opção j da mina i; prod i,si = Produção referente à opção j da mina i; Pfalta = Penalidade por produção inferior à meta; Pec = Penalidade por produção superior à meta; M = Meta de produção especificada. 75
Heurísticas de refinamento (Princípio de funcionamento) Partir de uma solução inicial qualquer Caminhar, a cada iteração, de vizinho para vizinho de acordo com a definição de vizinhança adotada, tentando melhorar a solução construída 76
Método da descida/subida (Descent/Uphill Method) Parte de uma solução inicial qualquer A cada passo analisa todos os possíveis vizinhos Move somente para o vizinho que representa uma melhora no valor atual da função de avaliação. Em problemas de minimização, um vizinho s é melhor que s quando f(s ) < f(s)). Neste caso, s passa a ser a nova solução corrente O método pára quando um ótimo local (com respeito à definição de vizinhança) é encontrado 77
Funcionamento da Heurística de Descida 78
Funcionamento da Heurística de Descida 79
Funcionamento da Heurística de Descida 8
Funcionamento da Heurística de Descida Problema: Fica-se preso no primeiro ótimo local 8
METAHEURÍSTICAS Marcone Jamilson Freitas Souza Aleandre Xavier Martins Tatiana Alves Costa José Maria do Carmo Bento Alves Frederico Augusto Coimbra Guimarães Túlio Ângelo Machado Toffolo Departamento de Computação Homepage: http://www.decom.ufop.br/prof/marcone E-mail: marcone.freitas@yahoo.com.br 8
Metaheurísticas Métodos heurísticos, de caráter geral, dotados de mecanismos para escapar das armadilhas dos ótimos locais Princípio básico: aceitar soluções de piora Podem ser baseados em Busca Local ou Busca Populacional. Os métodos baseados em Busca Local são fundamentados na noção de vizinhança: Dada uma solução s, diz-se que s é um vizinho de s, se s é obtido de s a partir de um movimento m, isto é: s s m A estrutura de vizinhança varia de acordo com o problema tratado Os métodos baseados em Busca Populacional partem de um conjunto de soluções, aplicando sobre estes operadores que visam à melhoria desse conjunto. 8
Metaheurísticas Eemplos de metaheurísticas: de busca local: Busca Tabu Simulated Annealing Iterated Local Search (ILS) Variable Neighborhood Search (VNS) de busca populacional: Algoritmos Genéticos Colônia de Formigas 8
Simulated Annealing: Fundamentação do método Proposto por Kirkpatrick et al. (98) Simula o processo de recozimento de metais; Resfriamento rápido conduz a produtos meta-estáveis, de maior energia interna; Resfriamento lento conduz a produtos mais estáveis, estruturalmente fortes, de menor energia; Durante o recozimento o material passa por vários estados possíveis 85
Simulated Annealing: Fundamentação do método Analogia com um problema combinatorial: Os estados possíveis de um metal correspondem a soluções do espaço de busca; A energia em cada estado corresponde ao valor da função objetivo; A energia mínima corresponde ao valor de uma solução ótima local, possivelmente global. 86
Simulated Annealing: Fundamentação do método A cada iteração do método, um novo estado é gerado a partir do estado corrente por uma modificação aleatória neste; Se o novo estado é de energia menor que o estado corrente, esse novo estado passa a ser o estado corrente; Se o novo estado tem uma energia maior que o estado corrente em unidades, a probabilidade de se mudar do estado corrente para o novo estado é: e - /(kt), onde k = constante de Boltzmann e T = temperatura corrente; Este procedimento é repetido até se atingir o equilíbrio térmico (passo de Metrópolis) 87
Simulated Annealing: Probabilidade de aceitação de um movimento de piora Baseada na fórmula: P(aceitação) = e - /T = variação de custo; T = temperatura Temperatura Probabilidade de aceitação Temperatura Probabilidade de aceitação 88
Simulated Annealing: Fundamentação do método No início do processo, a temperatura é elevada e a probabilidade de se aceitar soluções de piora é maior; As soluções de piora são aceitas para escapar de ótimos locais; A probabilidade de se aceitar uma solução de piora depende de um parâmetro, chamado temperatura; Quanto menor a temperatura, menor a probabilidade de se aceitar soluções de piora; 89
Simulated Annealing: Fundamentação do método Atingido o equilíbrio térmico, a temperatura é diminuída; A taa de aceitação de movimentos de piora é, portanto, diminuída com o decorrer das iterações; No final do processo, praticamente não se aceita movimentos de piora e o método se comporta como o método da descida/subida; O final do processo se dá quando a temperatura se aproima de zero e nenhuma solução de piora é mais aceita, evidenciando o encontro de um ótimo local. 9
Algoritmo Simulated Annealing 9
Simulated Annealing: Prescrições para o resfriamento 9
Simulated Annealing: Prescrições para determinar a temperatura inicial 9
Determinação da temperatura inicial por simulação 9
Simulated Annealing: Considerações Gerais Número máimo de iterações em uma dada temperatura calculado com base na dimensão do problema; Temperatura de congelamento do sistema: quando se atingir, p.e., T =, ou quando a taa de aceitação de movimentos cair abaio de um valor predeterminado; Os parâmetros mais adequados para uma dada aplicação só podem ser obtidos por eperimentação. 95
Resultados Computacionais do Problema de Seleção de Projetos Parâmetros do AG Parâmetro Geração de populações Número de indivíduos em cada nova geração Probabilidade de Mutação Probabilidade de Crossover Valor % 5% Parâmetros do SA Parâmetro SA ma Temperatura inicial α (taa de resfriamento) Valor 5 Obtida por simulação.99 96
Resultados Computacionais do Problema de Seleção de Projetos Meta de produção e penalidades por desvios de meta Parâmetro meta de produção (M) Pec Pfalta Valor 9 Mt $5,/t $,/t 97
Resultados Computacionais do Problema de Seleção de Projetos Microcomputador PC AMD Durom, 9 MHz, 8 MB RAM LINGO versão 7. SA e SA+Subida desenvolvidos em Borland C++ 5. Algoritmos Genéticos: linguagem e equipamento não especificados Método Melhor VPL ($X 6 ) VPL Médio ($X 6 ) Tempo Médio de eecução (segundos) AG 5 -, SA 67 65,99 SA+Subida 8 8,99 Lingo 8 -, Solução ótima: 8 (obtida por enumeração completa, em 8 segundos) 98
Variable Neighborhood Descent (VND) Proposto por Nenad Mladenovic & Pierre Hansen em 997 Método de Descida em Vizinhança Variável Eplora o espaço de soluções através de trocas sistemáticas de estruturas de vizinhança Eplora vizinhanças gradativamente mais distantes Sempre que há melhora em uma certa vizinhança, retorna-se à vizinhança menos distante 99
Variable Neighborhood Descent (VND) Princípios básicos: Um ótimo local com relação a uma vizinhança não necessariamente corresponde a um ótimo com relação a outra vizinhança Um ótimo global corresponde a um ótimo local para todas as estruturas de vizinhança Para muitos problemas, ótimos locais com relação a uma vizinhança são relativamente próimos
Variable Neighborhood Descent (VND) Seja s uma solução inicial e r o número de estruturas de vizinhança; s s ; {Solução corrente} k ; {Tipo de estrutura de vizinhança} enquanto (k r) faça 5 Encontre o melhor vizinho s N (k) (s); 6 se ( f(s ) < f(s) ) 7 então s s ; k ; 8 senão k k + ; 9 fim-se; fim-enquanto; Retorne s; fim VND;
Iterated Local Search (ILS) Pressuposto: Os ótimos locais de um problema de otimização podem ser gerados a partir de perturbações na solução ótima local corrente A perturbação precisa ser suficientemente forte para permitir que a busca local eplore diferentes soluções e fraca o suficiente para evitar um reinício aleatório
Iterated Local Search (ILS) Componentes do ILS: GeraSolucaoInicial: BuscaLocal: Retorna uma solução melhorada Perturbacao: Modifica a solução corrente guiando a uma solução intermediária CriterioAceitacao: Decide de qual solução a próima perturbação será aplicada
Iterated Local Search (ILS) procedimento ILS s SolucaoInicial s BuscaLocal(s ) iter enquanto (iter < iter ma ) iter iter + s perturbação(s, histórico) s BuscaLocal(s ) s CriterioAceitacao(s, s, s ) fim-enquanto retorne s se ( f(s ) < f(s) ) faça s s fim-se
Iterated Local Search (ILS) Combina intensificação com diversificação Intensificação: É obtida fazendo-se pequenas perturbações na solução ótima corrente Diversificação: É obtida aplicando-se grandes perturbações na solução ótima corrente 5
ILS aplicado ao Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Utiliza níveis de pertubação; Cada nível n consiste em realizar n diferentes movimentos de forma aleatória Busca Local: Método VND (Variable Neighborhood Search) Critério de Parada: Tempo de processamento pré-determinado 6
ILS aplicado ao Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Problemas-teste: Situações reais em mineradoras; Instâncias N o De Frentes N o de Parâmetros de Controles N o de Carregadeiras N o de Caminhões POLAD 7 8 POLAD 7 8 POLAD 7 POLAD 7 7
ILS aplicado ao Planejamento Operacional de Lavra com Alocação Dinâmica de Caminhões Desempenho do Algoritmo ILS: Instância f PM ( s*) Procedimento I ILS f ( s *) Dp (%) Procedimento II ILS f ( s *) Dp (%) Tempo POLAD 6,8 () 6,8 (),99, 68,8, 789, POLAD 75,79 () 75,79 () 7,7, 58,99, 8, POLAD 96,9 () 58,5 () 585, 8,6 76,9 7, 8, POLAD,8 () 76,5 () 76,5,6 59795,8, 89, () Melhor solução em 5 minutos de processamento; () Melhor solução em minutos; () Solução ótima, obtida em 8 minutos de processamento. 8
Algoritmos Genéticos Os AGs fundamentam-se em uma analogia com processos naturais de evolução, nos quais, dada uma população, os indivíduos com características genéticas melhores têm maiores chances de sobrevivência e de produzirem filhos cada vez mais aptos, enquanto indivíduos menos aptos tendem a desaparecer As características dos indivíduos, registradas em seus genes, são transmitidas para seus descendentes e tendem a propagar-se por novas gerações Características dos descendentes são parcialmente herdadas de seus pais (Crossover) e parcialmente de novos genes criados durante o processo de reprodução (Mutação) 9
Operadores genéticos CROSSOVER MUTAÇÃO
Algoritmos Genéticos O objetivo de um AG é o de tentar melhorar as qualidades genéticas de uma população através de um processo de renovação iterativa das populações
Relação entre AG e Problema de Otimização AG Indivíduo População Cromossomo Problema de Otimização Solução de um problema Conjunto de soluções Representação de uma solução Gene Alelos Crossover / Mutação Parte da representação de uma solução Valores que uma variável pode assumir Operadores de busca
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
Avaliação de cromossomos Feita pela função de aptidão (fitness) Em um problema de maimização pode ser a própria função objetivo Em um problema de minimização pode ser o inverso da função objetivo
Fase de seleção Binary tournament selection: Selecionar dois indivíduos aleatoriamente O primeiro pai é o indivíduo com maior aptidão Selecionar, aleatoriamente, outros dois pais O segundo pai é o indivíduo com maior aptidão nessa nova seleção Aleatório Roleta russa 5
Fase de reprodução Dois ou mais cromossomos passam por um processo de mutação e/ou recombinação para gerar novos cromossomos filhos (offsprings) Operador mutação clássico p = ( ) p = ( ) 6
Fase de reprodução Operador crossover clássico (one point crossover): Descendentes são formados a partir da reunião de segmentos de cada pai p = ( ) p = ( ) O = ( ) O = ( ) 7
Operador crossover para o PCV Operador OX Operador crossover de dois pontos de corte Cruzamento entre os pais geram dois filhos Filhos herdam a ordem de visita dos pais 8
Operador OX para o PCV p = (6 8 5 7 9) p = ( 7 6 5 8 9 ) f = ( ) Ordem de visita de p = {8,9,,,,7,,6,5} 9
Operador OX para o PCV p = (6 8 5 7 9) p = ( 7 6 5 8 9 ) f = ( ) Ordem de visita de p = {8,9,,,,7,,6,5}
Operador OX para o PCV p = (6 8 5 7 9) p = ( 7 6 5 8 9 ) f = ( ) Ordem de visita de p = {8,9,,,,7,,6,5} f = ( 8 )
Operador OX para o PCV p = (6 8 5 7 9) p = ( 7 6 5 8 9 ) f = ( ) Ordem de visita de p = {8,9,,,,7,,6,5} f = ( 8 9 )
Operador OX para o PCV p = (6 8 5 7 9) p = ( 7 6 5 8 9 ) f = ( ) Ordem de visita de p = {8,9,,,,7,,6,5} f = ( 8 9 )
Operador OX para o PCV p = (6 8 5 7 9) p = ( 7 6 5 8 9 ) f = ( ) Ordem de visita de p = {8,9,,,,7,,6,5} f = (7 8 9 )
Operador OX para o PCV p = (6 8 5 7 9) p = ( 7 6 5 8 9 ) f = ( ) Ordem de visita de p = {8,9,,,,7,,6,5} f = (7 6 8 9 ) 5
Operador OX para o PCV p = (6 8 5 7 9) p = ( 7 6 5 8 9 ) f = ( ) Ordem de visita de p = {8,9,,,,7,,6,5} f = (7 6 5 8 9 ) 6
Sobrevivência / morte de cromossomos Como selecionamos os cromossomos que devem sobreviver? Sobrevivem os que possuem os melhores níveis de aptidão? É importante permitir também a sobrevida de cromossomos menos aptos, do contrário o método ficaria preso em ótimos locais Elitismo 7
Seleção de cromossomos sobreviventes Níveis de aptidão 6 5 Cromossomos 8
Roleta russa: mecanismo para selecionar os cromossomos sobreviventes 9