1 introdução à otimização: programação linear marcone jamilson freitas souza departamento de...

329
1 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: [email protected]

Upload: internet

Post on 17-Apr-2015

106 views

Category:

Documents


0 download

TRANSCRIPT

  • Slide 1
  • 1 Introduo Otimizao: Programao Linear Marcone Jamilson Freitas Souza Departamento de Computao Programa de Ps-Graduao em Cincia da Computao Universidade Federal de Ouro Preto http://www.decom.ufop.br/prof/marcone E-mail: [email protected]
  • Slide 2
  • 2 Roteiro Otimizao Introduo Motivao Modelagem em Programao Matemtica Programao Linear: princpios bsicos Programao Linear por Metas (Goal programming) Programao Inteira: princpios bsicos Softwares de Otimizao: LINGO / COIN-CLP / GLPK / CPLEX Heursticas computacionais para otimizao Conceitos bsicos Heursticas construtivas Heursticas clssicas de refinamento Metaheursticas Simulated Annealing Variable Neighborhood Search (VNS) Iterated Local Search (ILS) Algoritmos Genticos Aplicaes de tcnicas de otimizao a processos produtivos: Alocao dinmica de caminhes Planejamento da produo, Controle de Ptio de Minrios Corte de Estoque (Cutting Stock) Seleo de projetos
  • Slide 3
  • 3 Otimizao rea da Pesquisa Operacional que utiliza o mtodo cientfico para apoiar a tomada de decises, procurando determinar como melhor projetar e operar um sistema, usualmente sob condies que requerem a alocao de recursos escassos. Trabalha com modelos determinsticos As informaes relevantes so assumidas como conhecidas (sem incertezas) Aplicaes tpicas: Mistura de minrios Planejamento da produo Roteirizao Escala de pessoal
  • Slide 4
  • 4 Problema de Roteamento de Veculos (Vehicle Routing Problem) 3 4 5 2 6 7 9 11 (9) (12) (13) (4) (10) [50] (10) (7) (10) (5) (10) (3) (10) 13 15 14 8 10 12 16
  • Slide 5
  • 5 Problema de Roteamento de Veculos (Vehicle Routing Problem) 3 4 5 2 6 7 9 11 (9) (12) (13) (4) (10) [50] (10) (7) (10) (5) (10) (3) (10) 13 15 14 8 10 12 16 Dentre todas as possveis roteirizaes, determine aquela que minimiza a distncia total percorrida
  • Slide 6
  • 6 Escala de Motoristas (Crew Scheduling) 1 2 3
  • Slide 7
  • 7 1 2 3
  • Slide 8
  • 8 1 2 3
  • Slide 9
  • 9 1 2 3
  • Slide 10
  • 10 Escala de Motoristas (Crew Scheduling) 1 2 3
  • Slide 11
  • 11 Escala de Motoristas (Crew Scheduling) 1 2 3 Reduo de um tripulante!
  • Slide 12
  • 12 INTRODUO Montar uma tabela de jogos entre os times participantes de uma competio esportiva Satisfazer as restries da competio Minimizar os custos relativos ao deslocamento dos times Programao de jogos de competies esportivas (Sports timetabling)
  • Slide 13
  • 13 Vitria x Atltico | Grmio x Atltico | Atltico x Santos Distncia total percorrida: 6760 Km Atltico x Vitria | Grmio x Atltico | Atltico x Santos Distncia total percorrida: 5382 Km Economia = 1378 Km (1) (2) INTRODUO Programao de jogos de competies esportivas (Sports timetabling) Santos Grmio Atltico Vitria 1372Km 3090Km 1712Km 586Km 1 2 3 3 Grmio Santos Atltico Vitria 1 2 3 3 1712Km 1712Km 1372Km 586Km
  • Slide 14
  • 14 JUSTIFICATIVA DO TRABALHO Gastos com deslocamento Influncia no desempenho dos times Enquadra-se na classe de problemas NP-difceis Nmero de tabelas possveis para uma competio envolvendo n times confrontando-se entre si em turnos completos (Conclio & Zuben (2002)): Competio com 20 participantes: 2,9062x10 130 tabelas possveis (aprox. 10 114 anos para analisar todas as tabelas em um computador que analisa uma tabela em 10 -8 segundos) Programao de jogos de competies esportivas (Sports timetabling)
  • Slide 15
  • 15 PROBLEMA ABORDADO 1 Diviso do Campeonato Brasileiro de Futebol 2004, 2005 e 2006 2 Diviso do Campeonato Brasileiro de Futebol 2006 Competies realizadas em dois turnos completos e espelhados Restries do problema 1. Dois times jogam entre si duas vezes, uma no turno e a outra no returno, alternando-se o mando de campo entre os mesmos 2. Nas duas primeiras rodadas de cada turno, cada time alternar seus jogos, sendo um em casa e o outro na casa do adversrio. Por ex.: 1 fora, 2 em casa 3. As duas ltimas rodadas de cada turno devem ter a configurao inversa das duas primeiras rodadas de cada turno com relao ao mando de campo. Ex.: Penltima em casa, ltima fora 4. No pode haver jogos entre times do mesmo estado na ltima rodada 5. A diferena entre os jogos feitos em cada turno em casa e fora de casa de um time no pode ser maior que uma unidade 6. Um time no pode jogar mais que duas vezes consecutivas dentro ou fora de casa Programao de jogos de competies esportivas (Sports timetabling)
  • Slide 16
  • 16 RESULTADOS COMPUTACIONAIS Melhores solues obtidas pelos mtodos Economia possvel: Considerando o custo do quilmetro areo a R$0,70 Delegao de 20 pessoas Campeonatos 2004 e 2005, Srie A: Aprox. R$ 2 milhes Campeonato 2006, Srie A: Aprox. R$ 1 milho Campeonato 2006, Srie B: Aprox. R$ 500 mil Programao de jogos de competies esportivas (Sports timetabling)
  • Slide 17
  • 17 Controle de Ptio de Minrios Aplicao na mina Cau, Itabira (MG), da CVRD 3 ptios de estocagem de minrios Minrios empilhados em balizas Pilhas formadas por subprodutos com composio qumica e granulomtrica diferentes Objetivo compor um lote de vages ( 80), atendendo s metas de qualidade e produo de um dado produto Exemplos de algumas restries operacionais: Retomar uma pilha toda sempre que possvel Concentrar retomada Retomar minrio da esquerda para a direita e de cima para baixo
  • Slide 18
  • 18 Ptio de Estocagem Cau Controle de Ptio de Minrios
  • Slide 19
  • 19 Equipamentos de empilhamento e recuperao Recuperadora (Bucket Wheel) Recuperadora Tambor (Drum) Empilhadeira (Stacker) Controle de Ptio de Minrios
  • Slide 20
  • 20 Silos de embarque Controle de Ptio de Minrios
  • Slide 21
  • 21 Programao/Simulao Controle de Ptio de Minrios
  • Slide 22
  • 22 Controle de Ptio de Minrios
  • Slide 23
  • 23 Teor de SiO 2 (%) PCCA Lotes Controle de Ptio de Minrios
  • Slide 24
  • 24 Teor de P (%) PCCA Lotes Controle de Ptio de Minrios
  • Slide 25
  • 25 Teor de Al 2 O 3 (%) PCCA Lotes Controle de Ptio de Minrios
  • Slide 26
  • 26 Teor de Mn (%) PCCA Lotes Controle de Ptio de Minrios
  • Slide 27
  • 27 Teor de H 2 O (%) PCCA Lotes Controle de Ptio de Minrios
  • Slide 28
  • 28 Carregamento de produtos em Navios Navio Poro 1 Poro 2Poro N... Produto 2 Produto 1 Produto m...
  • Slide 29
  • 29 Carregamento de produtos em Navios: Caractersticas do problema Turnos de 6 horas de trabalho: 7h-13h 13h-19h 19h-1h 1h-7h 8 tipos de turnos: Dia til (horrios normal e noturno) Sbado (horrios normal e noturno) Domingo (horrios normal e noturno) Feriado (horrios normal e noturno) Terno: equipe de trabalho atuando em um poro durante um turno
  • Slide 30
  • 30 Carregamento de produtos em Navios: Caractersticas do problema Existe um certo nmero de mquinas disponveis para fazer o carregamento do navio: CN, CG e GB. Cada mquina possui uma produtividade diferente para cada tipo de produto.
  • Slide 31
  • 31 Carregamento de produtos em Navios: Caractersticas do problema Produtos carregados em uma ordem preestabelecida. As equipes so remuneradas de acordo com a produo (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 somatrio dos custos com docas, encarregados, guincheiros, conferentes, estivadores e equipamento utilizado.
  • Slide 32
  • 32 Carregamento de produtos em Navios: Caractersticas do problema Custo do carregamento dado pelo somatrio dos custos dos ternos Carregamento concludo depois da data prevista em contrato: Demurrage (multa por dia de atraso) Carregamento concludo antes da data prevista em contrato: Prmio (metade da multa) Objetivo reduzir os custos com a mo- de-obra
  • Slide 33
  • 33 Modelos de Otimizao Programao matemtica: Fundamentados na matemtica Mtodos exatos: garantem a gerao da soluo tima Mtodo mais difundido: Programao Linear (PL) Desvantagens: Modelagem mais complexa Em problemas combinatrios, podem exigir um tempo proibitivo para encontrar a soluo tima Heursticos: Fundamentados na Inteligncia Artificial Mtodos aproximados: No garantem a otimalidade da soluo final Vantagens: De fcil modelagem Boas solues podem ser obtidas rapidamente
  • Slide 34
  • 34 Modelos de Programao Linear Formulao algbrica: otimizar sujeito a funo objetivo restries condies de no-negatividade
  • Slide 35
  • 35 Modelos de Programao Linear 1. As restries representam limitaes de recursos disponveis (mo-de-obra, capital, recursos minerais ou fatores de produo) ou ento, exigncias e condies que devem ser cumpridas 2. x j uma varivel de deciso, que quantifica o nvel de operao da atividade j 3. b i representa a quantidade do i-simo recurso disponvel ou a exigncia que deve ser cumprida
  • Slide 36
  • 36 Modelos de Programao Linear 4. c j representa o custo associado j-sima atividade 5. a ij a quantidade do recurso i (exigido ou disponvel) em uma unidade da atividade j 6. otimizar = maximizar ou minimizar
  • Slide 37
  • 37 Terminologia Soluo Qualquer especificao de valores para as variveis de deciso Soluo vivel Soluo que satisfaz a todas as restries Soluo tima Soluo vivel que tem o valor mais favorvel da funo objetivo
  • Slide 38
  • 38 Hipteses assumidas em um modelo de programao linear Proporcionalidade O custo de cada atividade proporcional ao nvel de operao da atividade A quantidade de recursos consumidos por uma atividade proporcional ao nvel dessa atividade Divisibilidade As atividades podem ser divididas em qualquer nvel fracionrio Aditividade O custo total a soma das parcelas associadas a cada atividade Certeza Assume-se que todos os parmetros do modelo so constantes conhecidas
  • Slide 39
  • 39 Problema da Mistura de Minrios H um conjunto de pilhas de minrio Em cada pilha h uma composio qumica e granulomtrica diferente (% de Fe, SiO2, Al2O3 etc.) A cada pilha est associado um custo necessrio formar uma mistura com uma certa especificao Dentre as possveis misturas que atendem a especificao requerida, o objetivo encontrar aquela que seja de custo mnimo
  • Slide 40
  • 40 Problema da Mistura de Minrios 60% Fe 10 $/t 50% Fe 6 $/t 55% Fe 9 $/t 1 t 2 t Mistura requerida: 2 t., 55% Fe Pilha 1 Pilha 2 Pilha 3 Soluo 2: 1t. Pilha 1 + 1t. Pilha 2 = 2t. Ferro na mistura = 55% Custo da mistura = $ 16 Soluo 1: 2t. Pilha 3 = 2t. minrio Ferro na mistura = 55% Custo da mistura = $ 18
  • Slide 41
  • 41 Modelo de PL para o Problema da Mistura de Minrios Dados de entrada: Pilhas = Conjunto de pilhas Parametros = Conjunto dos parmetros de controle (Teores, Granulometria) t ij = % do parmetro de controle j em uma tonelada da pilha i tl j = % mnimo admissvel para o parmetro j tu j = % mximo admissvel para o parmetro j Qu i = Quantidade mxima de minrio, em toneladas, existente na pilha i c i = Custo, em $, de uma tonelada de minrio da pilha i p = quantidade, em toneladas, da mistura a ser formada Variveis de deciso: x i = Quantidade de minrio a ser retirado da pilha i
  • Slide 42
  • 42 Modelo de PL para o Problema da Mistura de Minrios % do parmetro j na mistura no pode superar o valor mximo permitido % do parmetro j na mistura no pode ser inferior ao valor mnimo permitido A mistura deve ter peso total p No-negatividade A quantidade a ser retomada em cada pilha i est limitada Qu i
  • Slide 43
  • 43 Modelo de PL para o Problema da Mistura de Minrios Linearizao das restries Valor do parmetro j na mistura no pode superar o valor mximo permitido Valor do parmetro j na mistura no pode ser inferior ao valor mnimo permitido A mistura deve ter peso total p No-negatividade A quantidade a ser retomada em cada pilha i est limitada Qu i
  • Slide 44
  • 44 Modelo de PL para o Problema da Mistura de Minrios Problemas dessa modelagem de programao linear: Restries so rgidas Na prtica, pode no haver soluo Nesse caso, otimizador aplicado ao modelo retorna que no h soluo vivel Qual a melhor soluo invivel?
  • Slide 45
  • 45 Programao linear por metas (goal programming) Permite trabalhar com restries relaxadas mais flexvel Cria varivel de desvio para cada restrio que pode ser relaxada Varivel de desvio mensura a distncia de viabilidade e colocada na funo objetivo, para ser minimizada O valor mnimo da varivel de desvio representa a meta a ser atingida
  • Slide 46
  • 46 Programao linear por metas (goal programming) Restries do tipo Desvio positivo (dp): Mede o quanto se ultrapassou de 10 Desvio positivo = desvio para cima
  • Slide 47
  • 47 Programao linear por metas (goal programming) Restries do tipo Desvio negativo (dn): Mede o quanto faltou para chegar a 10 Desvio negativo = desvio para baixo
  • Slide 48
  • 48 Programao linear por metas (goal programming) Restries do tipo = Mede o que supera 10 Mede o que falta para chegar a 10
  • Slide 49
  • 49 Programao linear por metas (goal programming) Dois mtodos de soluo so normalmente utilizados: Mtodo dos pesos Mtodo hierrquico Mtodo dos pesos: Forma-se uma nica funo objetivo com o somatrio ponderado das variveis de desvio A cada varivel de desvio associado um peso, que reflete a importncia relativa da restrio relaxada Mtodo hierrquico: estabelecida, inicialmente, a hierarquia (prioridade) das metas Resolve-se o problema com a meta de maior prioridade (isto , apenas a varivel de desvio mais prioritria) Resolve-se, a seguir, o problema tendo como funo objetivo uma meta de prioridade mais baixa que a anterior, mas atribuindo o valor timo da meta anterior varivel de desvio correspondente, isto , tratando a meta anterior como restrio do modelo O procedimento executado de modo que a soluo obtida de uma meta de prioridade mais baixa nunca degrade qualquer soluo de prioridade mais alta
  • Slide 50
  • 50 Modelo de PL para a Mistura de Minrios com relaxao dos limites de especificao Dados de entrada: Pilhas = Conjunto de pilhas Parametros = Conjunto dos parmetros de controle t ij = % do parmetro de controle j em uma tonelada da pilha i tl j = % mnimo admissvel para o parmetro j tu j = % mximo admissvel para o parmetro j Qu i = Quantidade mxima de minrio, em toneladas, existente na pilha i p = quantidade, em toneladas, da mistura a ser formada wne j = Peso para o desvio negativo de especificao do parmetro j na mistura wpe j = Peso para o desvio positivo de especificao do parmetro j na mistura Variveis de deciso: x i = Quantidade de minrio a ser retirado da pilha i dne j = Desvio negativo de especificao, em toneladas, do parmetro j na mistura dpe j = Desvio positivo de especificao, em toneladas, do parmetro j na mistura
  • Slide 51
  • 51 Modelo de PL para a Mistura de Minrios com relaxao dos limites de especificao Admite-se que a quantidade do parmetro j na mistura supere em dpe j toneladas a quantidade mxima admitida A mistura deve ter peso total p No-negatividade A quantidade a ser retomada em cada pilha i est limitada Qu i Admite-se que a quantidade do parmetro j na mistura esteja dne j toneladas abaixo da quantidade mnima permitida Desvio positivo, em toneladas Desvio negativo, em toneladas Peso associado ao desvio negativo
  • Slide 52
  • 52 Problema da Mistura de Minrios com metas de qualidade e relaxao dos limites de especificao H um conjunto de 15 pilhas de minrio Em cada pilha h uma composio qumica diferente (% de Fe, Al2O3 etc.) necessrio formar 6000 toneladas de um produto com uma certa especificao Para cada parmetro de controle so dados os limites inferior e superior de especificao, bem como as metas de qualidade para o produto formado Cada parmetro de controle classificado em 5 critrios: irrelevante, importante, muito importante, crtico e muito crtico O peso de desvio de meta igual ao produto do peso critrio pelo peso de comparao O peso de comparao serve para colocar cada parmetro de controle em uma mesma ordem de grandeza Dentre as possveis misturas que atendem a especificao requerida, o objetivo encontrar aquela que esteja o mais prximo possvel das metas de qualidade
  • Slide 53
  • 53 Mistura de Minrios com metas de qualidade e relaxao dos limites de especificao: dados de entrada
  • Slide 54
  • 54 Mistura de Minrios com metas de qualidade e relaxao dos limites de especificao: modelo de PL Dados de entrada: Pilhas = Conjunto de pilhas Parametros = Conjunto dos parmetros de controle t ij = % do parmetro de controle j em uma tonelada da pilha i tl j = % mnimo admissvel para o parmetro j tu j = % mximo admissvel para o parmetro j tr j = % recomendada para o parmetro j Qu i = Quantidade mxima de minrio, em toneladas, existente na pilha i p = quantidade, em toneladas, da mistura a ser formada wnm j = Peso para o desvio negativo (de meta) do parmetro j na mistura wpm j = Peso para o desvio positivo (de meta) do parmetro j na mistura wne j = Peso para o desvio negativo (de especificao) do parmetro j na mistura wpe j = Peso para o desvio positivo (de especificao) do parmetro j na mistura Variveis de deciso: x i = Quantidade de minrio a ser retirado da pilha i dnm j = Desvio negativo (de meta), em toneladas, do parmetro j na mistura dpm j = Desvio positivo (de meta), em toneladas, do parmetro j na mistura dne j = Desvio negativo (de especificao), em toneladas, do parmetro j na mistura dpe j = Desvio positivo (de especificao), em toneladas, do parmetro j na mistura
  • Slide 55
  • 55 Mistura de Minrios com metas de qualidade e relaxao dos limites de especificao: modelo de PL Admite-se que a quantidade do parmetro j na mistura supere a quantidade mxima permitida em dp j ton. A mistura total deve ter peso total p No-negatividade A quantidade a ser retomada em cada pilha i est limitada Qu i Admite-se que a quantidade do parmetro j na mistura seja inferior quantidade mnima permitida em dn j ton. Admite-se que haja excesso (dpm j ) ou falta (dnm j ) no parmetro j na mistura em relao quantidade recomendada
  • Slide 56
  • 56 Resoluo grfica de PPLs Passos para resolver graficamente um PPL: a) Determinar o gradiente da funo objetivo (Gradiente perpendicular reta definida pela funo objetivo) b) Caminhar no sentido e direo do gradiente da funo objetivo at tangenciar a regio vivel c) O ponto de tangncia representa a soluo tima x*
  • Slide 57
  • 57 Fundamentao do Mtodo SIMPLEX Seja resolver o seguinte PPL:
  • Slide 58
  • 58 Fundamentao do Mtodo SIMPLEX x1x1 x2x2 x 2 2 x 1 2 x 1 + x 2 3 A B C D E F G A = (0,0) B = (2,0) C = (2,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0) H max z=x 1 + 2x 2 z = 4 x* = (1,2), z* = 5
  • Slide 59
  • 59 Teorema Fundamental da Programao Linear O timo de um PPL, se existir, ocorre em pelo menos um vrtice do conjunto de solues viveis. Situaes que podem ocorrer com relao ao conjunto M de solues viveis: 1) M = {} Neste caso no h soluo vivel => No h soluo tima
  • Slide 60
  • 60 Teorema Fundamental da Programao Linear 2) M no vazio a) M limitado nica soluo tima, a qual vrtice Infinidade de solues timas, sendo duas vrtices x* y*
  • Slide 61
  • 61 Teorema Fundamental da Programao Linear 2) M no vazio b) M ilimitado nica soluo tima, a qual vrtice Infinidade de solues timas, sendo uma vrtice x*
  • Slide 62
  • 62 Teorema Fundamental da Programao Linear 2) M no vazio b) M ilimitado Infinidade de solues timas, sendo duas vrtices No h solues timas x* y*
  • Slide 63
  • 63 Forma-padro de um PPL PPL est na forma-padro quando posto na forma: sendo
  • Slide 64
  • 64 Reduo de um PPL qualquer forma-padro Restries do tipo x 4 0 x 3 0
  • Slide 65
  • 65 Reduo de um PPL qualquer forma-padro Existe b i < 0 Existem variveis no-positivas: Seja x k 0: Soluo: Criar varivel x k tal que x k = - x k Assim, modelo ter varivel x k 0 Soluo: Basta multiplicar restrio i por -1
  • Slide 66
  • 66 Reduo de um PPL qualquer forma-padro Existem variveis livres, isto , variveis x k que podem assumir qualquer valor real (negativo, nulo ou positivo): PPL de maximizao: Soluo: Substituir x k por x k x k, com x k 0 e x k 0 x k > x k x k > 0 x k = x k x k = 0 x k < x k x k < 0 max f(x) = - min {-f(x)}
  • Slide 67
  • 67 Caracterizao de vrtice A x b
  • Slide 68
  • 68 Caracterizao de vrtice x1x1 x2x2 x 2 2 x 1 2 x 1 + x 2 3 A B C D E F G A = (0,0) B = (2,0) C = (2,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0) H
  • Slide 69
  • 69 Caracterizao de vrtice Em um ponto no interior do conjunto (no pertencente a nenhuma aresta) no h variveis nulas Em uma aresta h, pelo menos, uma varivel nula Em um vrtice h, pelo menos, n-m variveis nulas n - mm m n RB
  • Slide 70
  • 70 Caracterizao de vrtice Para gerar um vrtice: Escolher uma matriz no-singular B tal que: Bx B + Rx R = b Fazer x R = 0 Se ao resolver o sistema Bx B = b, for obtido x B 0, ento x = (x B x R ) t = (x B 0) t vrtice Deste procedimento resulta uma Soluo Bsica Vivel (SBV), com o significado geomtrico de vrtice.
  • Slide 71
  • 71 Definies B = base x = (x B x R ) t x B = vetor das variveis bsicas x R = vetor das variveis no-bsicas Soluo Bsica (SB): vetor x tal que Bx B =b e x R = 0 Soluo Bsica Vivel (SBV): vetor x tal que Bx B =b; x B 0 e x R = 0 Soluo Bsica Vivel Degenerada (SBVD): uma SBV em que existe varivel bsica nula
  • Slide 72
  • 72 Princpio de funcionamento do Algoritmo SIMPLEX SBV inicial Determine VB que deve deixar a base Determine VNB que deve entrar na base Pare: Esta SBV tima Encontre nova SBV Esta SBV pode ser melhorada? No Sim
  • Slide 73
  • 73 Princpio de funcionamento do Algoritmo SIMPLEX A x b
  • Slide 74
  • 74 Princpio de funcionamento do Algoritmo SIMPLEX VBx1x1 x2x2 x3x3 x4x4 x5x5 x3x3 101002 x4x4 010102 x5x5 110013 12000z PPL na forma cannica: Base a identidade e coeficientes das VBs na funo objetivo so todos nulos.
  • Slide 75
  • 75 Princpio de funcionamento do Algoritmo SIMPLEX VBx1x1 x2x2 x3x3 x4x4 x5x5 x3x3 101002 x4x4 010102 x5x5 110013 12000z Soluo inicial: x (0) = (0 0 2 2 3) t ; z = 0 VB = {x 3 = 2, x 4 = 2, x 5 = 3} VNB = {x 1 = 0, x 2 = 0}
  • Slide 76
  • 76 Princpio de funcionamento do Algoritmo SIMPLEX VBx1x1 x2x2 x3x3 x4x4 x5x5 (L 1 )x3x3 101002 (L 2 )x4x4 010102 (L 3 )x5x5 110013 (L 4 )12000z L 3 -L 2 + L 3 L 4 -2L 2 + L 4 Transformaes elementares:
  • Slide 77
  • 77 Princpio de funcionamento do Algoritmo SIMPLEX VBx1x1 x2x2 x3x3 x4x4 x5x5 (L 1 )x3x3 101002 (L 2 )x2x2 010102 (L 3 )x5x5 10011 (L 4 )100-20z-4 VB = {x 3 = 2, x 2 = 2, x 5 = 1} VNB = {x 1 = 0, x 4 = 0} Final da Iterao 1: x (1) = (0 2 2 0 1) t ; z = 4
  • Slide 78
  • 78 Princpio de funcionamento do Algoritmo SIMPLEX VBx1x1 x2x2 x3x3 x4x4 x5x5 (L 1 )x3x3 101002 (L 2 )x2x2 010102 (L 3 )x5x5 10011 (L 4 )100-20z-4 L 4 -L 3 + L 4 L 1 -L 3 + L 1
  • Slide 79
  • 79 Princpio de funcionamento do Algoritmo SIMPLEX VBx1x1 x2x2 x3x3 x4x4 x5x5 (L 1 )x3x3 00111 (L 2 )x2x2 010102 (L 3 )x1x1 10011 (L 4 )000 z-5 VB = {x 1 = 1, x 2 = 2, x 3 = 1} VNB = {x 4 = 0, x 5 = 0} Final da Iterao 2: x (2) = (1 2 1 0 0) t ; z = 5
  • Slide 80
  • 80 Interpretao geomtrica x1x1 x2x2 x 2 2 x 1 2 x 1 + x 2 3 A B C D E F G A = (0,0) B = (2,0) C = (1,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0) H
  • Slide 81
  • 81 Situao em que a origem no pode ser soluo inicial: Exemplo 2 A x b
  • Slide 82
  • 82 Mtodo das Duas Fases x1x1 x2x2 x 2 2 x 1 2 x 1 + x 2 3 A B C D E F G A = (0,0) B = (2,0) C = (1,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0) H
  • Slide 83
  • 83 Mtodo das Duas Fases Primeira fase (Criar problema auxiliar P): Introduzir variveis de folga e variveis artificiais Variveis de folga: introduzidas quando h variveis do tipo ou Variveis artificiais: introduzidas quando h restries do tipo ou = Criar funo objetivo artificial: Variveis bsicas iniciais: variveis de folga associadas s restries e variveis artificiais Objetivo da primeira fase: minimizar a funo objetivo artificial Caminhar de SBV em SBV de P at alcanar SBV do problema original P (situao que ocorre quando todas as variveis artificiais so nulas).
  • Slide 84
  • 84 Mtodo das Duas Fases Segunda fase: A partir de uma SBV do problema original P, gerar SBV cada vez melhores at se atingir a soluo tima. Aplicando o mtodo das duas fases ao PPL dado, tem-se:
  • Slide 85
  • 85 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 x1ax1a (L 1 )x3x3 1010002 (L 2 )x4x4 0101002 (L 3 )x1ax1a 110013 (L 4 )000001zaza (L 5 )120000z L 4 -L 3 + L 4 Reduo forma cannica:
  • Slide 86
  • 86 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 x1ax1a (L 1 )x3x3 1010002 (L 2 )x4x4 0101002 (L 3 )x1ax1a 110013 (L 4 ) 0010 z a -3 (L 5 )120000z L 3 -L 1 + L 3 L 4 L 1 + L 4 L 5 -L 1 + L 5
  • Slide 87
  • 87 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 x1ax1a (L 1 )x1x1 1010002 (L 2 )x4x4 0101002 (L 3 )x1ax1a 010 11 (L 4 )02010 z a -1 (L 5 )02000z-2 L 2 -L 3 + L 2 L 4 L 3 + L 4 L 5 -2L 3 + L 5
  • Slide 88
  • 88 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 x1ax1a (L 1 )x1x1 1010002 (L 2 )x4x4 001111 (L 3 )x2x2 010 11 (L 4 )001001 zaza (L 5 )00102-2z-4 Fim da primeira fase: z a = 0x = (2, 1); z = 4
  • Slide 89
  • 89 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 (L 1 )x1x1 101002 (L 2 )x4x4 001111 (L 3 )x2x2 010 1 (L 4 )00102z-4 L 3 L 2 + L 3 L 4 -2L 2 + L 4
  • Slide 90
  • 90 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 (L 1 )x1x1 101002 (L 2 )x5x5 001111 (L 3 )x2x2 010102 (L 4 )00-20z-6 Soluo tima: x* = (2,2); z* = 6
  • Slide 91
  • 91 Mtodo das Duas Fases: Interpretao Geomtrica x1x1 x2x2 x 2 2 x 1 2 x 1 + x 2 3 A B C D E F G A = (0,0) B = (2,0) C = (1,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0) H
  • Slide 92
  • 92 Outro exemplo de aplicao do Mtodo das Duas Fases: Exemplo 3 A x b
  • Slide 93
  • 93 Mtodo das Duas Fases: Exemplo 3 Introduzindo variveis artificiais no PPL dado, tem-se:
  • Slide 94
  • 94 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 x1ax1a x2ax2a (L 1 )x1ax1a 1000102 (L 2 )x4x4 01010002 (L 3 )x2ax2a 1100013 (L 4 )0000011zaza (L 5 )1200000z L 4 -L 1 L 3 + L 4 Transf. para forma cannica:
  • Slide 95
  • 95 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 x1ax1a x2ax2a (L 1 )x1ax1a 1000102 (L 2 )x4x4 01010002 (L 3 )x2ax2a 1100013 (L 4 )-210100 z a -5 (L 5 )1200000z L 3 -L 1 + L 3 L 4 2L 1 + L 4 L 5 -L 1 + L 5
  • Slide 96
  • 96 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 x1ax1a x2ax2a (L 1 )x1x1 1000102 (L 2 )x4x4 01010002 (L 3 )x2ax2a 0110 11 (L 4 )0 0120 z a -1 (L 5 )021000z-2 L 2 -L 3 + L 2 L 4 L 3 + L 4 L 5 -2L 3 + L 5
  • Slide 97
  • 97 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 x1ax1a x2ax2a (L 1 )x1x1 1000102 (L 2 )x4x4 00111 1 (L 3 )x2x2 0110 11 (L 4 )0000011 zaza (L 5 )00021-2z-4 Fim da primeira fase: z a = 0x = (2, 1); z = 4
  • Slide 98
  • 98 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 (L 1 )x1x1 10002 (L 2 )x4x4 00111 (L 3 )x2x2 01101 (L 4 )0002z-4 L 4 -2L 2 + L 4 L 3 L 2 + L 3
  • Slide 99
  • 99 Mtodo das Duas Fases VBx1x1 x2x2 x3x3 x4x4 x5x5 (L 1 )x1x1 10002 (L 2 )x5x5 00111 (L 3 )x2x2 010102 (L 4 )001-20z-6 x 3 pode entrar na base melhorando o valor de z indefinidamente. Assim, no h soluo tima.
  • Slide 100
  • 100 Mtodo das Duas Fases: Interpretao Geomtrica x1x1 x2x2 x 2 2 x 1 2 x 1 + x 2 3 A B C D E F G A = (0,0) B = (2,0) C = (1,1) D = (1,2) E = (0,2) F = (0,3) G = (2,2) H = (3,0) H
  • Slide 101
  • 101 Dualidade Seja o PPL, doravante chamado de PPL primal: ou, na forma expandida:
  • Slide 102
  • 102 Dualidade Associado a este PPL, existe um PPL, chamado PPL dual: ou, na forma expandida:
  • Slide 103
  • 103 Dualidade: Regras de transformao PrimalDual MIN Restrio Varivel MAX =qq. Varivel Restrio qq.= DualPrimal
  • Slide 104
  • 104 Dualidade: Vantagens Em situaes na qual a matriz de coeficientes do primal tem maior nmero de linhas do que de colunas: Dual A base no DUAL menor!!!
  • Slide 105
  • 105 Dualidade: Vantagens possvel cercar a soluo tima. (Considere um PPL primal de minimizao) x* = u* f(x) f D (x) (valor do primal) (valor do dual)
  • Slide 106
  • 106 Dualidade: Interpretao Econmica Seja o par de PPLs: PRIMALDUAL
  • Slide 107
  • 107 Dualidade: Interpretao Econmica Sejam x* e u* solues timas desses PPLs e seja B* a base relativa a essas solues. Ento: Supondo b varivel e derivando em relao a b, temos: Ento u* a taxa de variao do valor timo da funo objetivo f(x*) com b. Como u* 0, ento f(x*) cresce medida que b i cresce
  • Slide 108
  • 108 Dualidade: Interpretao Econmica Considere o primal um problema de alocao de recursos, com m recursos disponveis nas quantidades b 1, b 2,..., b m com os quais desejamos fabricar n produtos nas quantidades x 1, x 2,..., x n a serem determinadas. Cada unidade do produto j consome a ij unidades do recurso i trazendo um retorno de c j unidades monetrias. Queremos determinar a quantidade a ser fabricada de cada produto de modo a maximizar o retorno.
  • Slide 109
  • 109 Dualidade: Interpretao Econmica Suponha, agora, aumentada em uma unidade a quantidade disponvel do recurso k, isto , temos (b k + 1) unidades. Suponha que a base associada permanea a mesma. Neste caso, a nova soluo tima u** do dual permanece a mesma, uma vez que: u** = u* = (c B* ) t B* -1. A nova soluo tima x** ser:
  • Slide 110
  • 110 Dualidade: Interpretao Econmica Isto , f(x**) f(x*) = u k *, ou seja, u k * o incremento no lucro trazido pelo aumento de uma unidade da matria disponvel k. u k * chamado shadow price, dual, valor incremental, efficiency price, valor implcito, etc.
  • Slide 111
  • 111 Anlise de Sensibilidade (Ps-otimizao) Seja o sistema Ax=b,com uma base B, e uma funo objetivo f(x) Seja o quadro genrico do Simplex em uma dada iterao colocado na forma matricial no cannica (x R ) t (x B ) t (L 1 ) xBxB RBb (L 2 ) (c R ) t (c B ) t f(x)
  • Slide 112
  • 112 Anlise de Sensibilidade (Ps-otimizao) Para colocar esse quadro na forma cannica devemos efetuar as seguintes transformaes elementares: L 1 B -1 L 1 (x R ) t (x B ) t (L 1 )xBxB B -1 RIB -1 b (L 2 )(c R ) t (c B ) t f(x) L 2 -(c B ) t L 1 + L 2
  • Slide 113
  • 113 Anlise de Sensibilidade (Ps-otimizao) (x R ) t (x B ) t (L 1 )xBxB B -1 RIB -1 b (L 2 )(c R ) t - (c B ) t B -1 R(0) t f(x)-(c B ) t B -1 b Seja: Y = B -1 R y j = B -1 a j x B = B -1 b z = (c B ) t B -1 R z j = (c B ) t B -1 a j
  • Slide 114
  • 114 Anlise de Sensibilidade (Ps-otimizao) (x R ) t (x B ) t (L 1 )xBxB YIxBxB (L 2 )(c R ) t - z(0) t f(x)-f(x) Sendo: f(x) = c t x = (c B ) t x B + (c R ) t x R = = (c B ) t x B = (c B ) t B -1 b
  • Slide 115
  • 115 Anlise de Sensibilidade: Ex. 1 Carteira de Investimentos Uma empresa gerencia recursos de terceiros atravs da escolha de carteiras de investimentos para diversos clientes, baseados em bonds de diversas empresas. Um de seus clientes exige que: No mais de 25% do total aplicado deve ser investido em um nico investimento; Um valor superior ou igual a 50% do total aplicado deve ser investido em ttulos de maturidade maiores que 10 anos; O total aplicado em ttulos de alto risco deve ser, no mximo, de 45% do total investido. Considerando a tabela abaixo de retorno, risco e maturidade dos diversos ttulos, determine a estratgia tima para o investidor de forma que a rentabilidade de sua aplicao seja mxima. TtuloRetorno anual (%) Maturidade (anos) Risco 18,7151 Muito baixo 29,5123 Regular 312,084 Alto 49,072 Baixo 513,0114 Alto 620,055 Muito alto
  • Slide 116
  • 116 Carteira de Investimentos: Modelo de Programao Matemtica
  • Slide 117
  • 117 Anlise de sensibilidade: Carteira de Investimentos - Questes 1. Qual o melhor retorno que se pode obter? Quanto se deve aplicar em cada ttulo para que se tenha o retorno timo? 2. Em qual percentual aumentaria o retorno se fosse permitido aplicar 1% a mais no Ttulo 2? De quanto seria o retorno? Essa regra vale at quanto? 3. A partir de qual percentual a aplicao no ttulo 3 vantajosa? 4. Se fosse imposto limitar a aplicao em cada ttulo em 24% para um dentre os ttulos 2, 4 e 6, em qual ttulo deveria ser feita a diminuio de aplicao? Justifique. 5. Quanto est influenciando a restrio de limitao de aplicao em ttulo de alto risco? Qual seria o retorno se esta limitao fosse de 49%?
  • Slide 118
  • 118 Anlise de Sensibilidade: Ex. 2 Produo de automveis Uma empresa deve produzir 1000 automveis. Ela tem quatro fbricas, as quais, devido a diferenas na mo-de-obra e avanos tecnolgicos, as plantas diferem no custo de produo de cada carro. Elas tambm utilizam diferentes quantidades de matria- prima e mo-de-obra. A tabela abaixo resume essas informaes: FbricaCusto (R$ mil)Mo-de-ObraMat. Prima 11523 21034 3945 4756
  • Slide 119
  • 119 Anlise de Sensibilidade Ex. 2 Produo de automveis Um acordo trabalhista requer que pelo menos 400 carros sejam produzidos na fbrica 3. Existem 3300 horas de mo-de-obra e 4000 unidades de material que podem ser alocadas s 4 fbricas. O modelo de programao matemtica que otimiza a produo :
  • Slide 120
  • 120 Anlise de sensibilidade: Ex. 2 Produo de automveis 1. Quais so as quantias timas de produo? Qual o custo da produo? 2. Quanto custa produzir mais um veculo? Quanto economizamos produzindo um veculo a menos? 3. Como mudaria a soluo se custasse somente R$8.000,00 para produzir na fbrica 2? Como ficaria o custo? 4. Quanto estamos dispostos a pagar por uma hora de trabalho? 5. Quanto o acordo est custando? Qual seria a variao no custo se o acordo fosse de 250 carros? 6. Quanto vale a matria-prima (conseguir mais uma unidade)? Quantas unidades estamos dispostos a pagar por esse preo? 7. At que custo ainda vantajoso produzir na fbrica 2?
  • Slide 121
  • 121 Resoluo de PPLs Inteiros Seja resolver: cuja soluo tima (contnua) : x 1 = 18,89 x 2 = 1,58 z = 48,42
  • Slide 122
  • 122 Resoluo de PPLs Inteiros No entanto, a soluo tima inteira : x 1 = 10 x 2 = 2 z = 48 isto , o erro de 21% no arredondamento. Concluso: No uma boa estratgia resolver o PPL (contnuo) e arredondar a soluo resultante Aplicando a estratgia de arredondamento, uma vez que os valores timos so fracionrios, e providenciando uma busca racional no entorno do ponto timo, teramos: x1x1 x2x2 Z=x 1 +19*x 2 192Invivel 19138 182Invivel 18137 Melhor valor
  • Slide 123
  • 123 Programao inteira: Branch-and-Bound Exemplo extrado de: GOLDBARG & LUNA (2005), Otimizao Combinatria, Editora Campus.
  • Slide 124
  • 124 3 4 15 2 x ou 41 4 15 2 x x1x1 = 9 4 x2x2 = 15 4 Z= 1 4 41 Disjuntiva Soluo Contnua Programao inteira: Branch-and-Bound
  • Slide 125
  • 125 Programao inteira: Branch-and-Bound
  • Slide 126
  • 126 Programao inteira: Branch-and-Bound
  • Slide 127
  • 127 Programao inteira: rvore de Branching
  • Slide 128
  • 128 Programao inteira: Branch-and-Bound Resolva pelo mtodo Branch-and-Bound o PLI abaixo Use a variante de Dank para decidir a varivel a ramificar (Nessa variante, a varivel a ramificar aquela cujo valor est mais prximo de um valor inteiro) Em caso de empate, escolha a de menor ndice Use busca em profundidade e analise primeiro o valor maior da varivel ramificada, isto , o valor
  • Slide 129
  • 129 Programao inteira: rvore de Branching
  • Slide 130
  • 130 Programao inteira: rvore de Branch-and-Bound
  • Slide 131
  • 131 Exerccios de modelagem em programao matemtica Problema proposto pelo Tales Problema de transporte Problema de alocao de pessoal (Staff Scheduling) Sem hora-extra Com hora-extra Problema de Corte de Estoque (Cutting Stock Problem) Problema das bobinas Problema da serralheria Problema da Mochila (Knapsack Problema) Mochila 0-1 Mochila 0-1 Mltipla Mochila Inteira Mochila Inteira Mltipla Alocao Dinmica de Caminhes Determinao do Ritmo de Lavra Controle de Ptio de Minrios Programao da produo: dimensionamento de lotes Seqenciamento em uma mquina com penalidades por antecipao e atraso da produo e janelas de atendimento
  • Slide 132
  • 132 Problema proposto pelo Tales (1) Dados de entrada: Pilhas = Conjunto de pilhas Parametros = Conjunto dos parmetros de controle t ij = % do parmetro de controle j em uma tonelada da pilha i tl j = % mnimo admissvel para o parmetro j tu j = % mximo admissvel para o parmetro j tr j = % recomendada para o parmetro j Qu i = Quantidade mxima de minrio, em toneladas, existente na pilha i p = quantidade, em toneladas, da mistura a ser formada wnm j = Peso para o desvio negativo (relativo meta) do parmetro j na mistura wpm j = Peso para o desvio positivo (relativo meta) do parmetro j na mistura wpe j = Peso para o desvio positivo relativo especificao do parmetro j na mistura wnpilha i = Peso para a quantidade de minrio que resta na pilha i (peso relativo ao desvio negativo de pilha) wpp = Peso para o desvio positivo de produo wnp = Peso para o desvio negativo de produo
  • Slide 133
  • 133 Problema proposto pelo Tales (2) Dados de entrada: Para determinados parmetros de controle, o limite superior de especificao pode ser extrapolado, isto , extrapolar j = 1 significa que o parmetro de controle j pode ter seu limite superior relaxado) wpe j = Peso para o desvio positivo (de limite superior) do parmetro j na mistura Algumas pilhas no podem ser utilizadas (desconsiderar i = 1 significa que a pilha i no pode ser usada) Se uma pilha for retomada, deve-se retomar no mnimo retmin toneladas Deve-se tirar o mximo possvel 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 = 1 significa que a pilha i deve ser totalmente usada Variveis de deciso: x i = Quantidade de minrio a ser retirado da pilha i dnm j = Desvio negativo (relativo meta), em toneladas, do parmetro j na mistura dpm j = Desvio positivo (relativo meta), em toneladas, do parmetro j na mistura dpe j = Desvio positivo (relativo ao lim. superior de especificao), em ton, do parmetro j na mistura dnpilha i = Quantidade de minrio que sobra, em toneladas, na pilha i (Desvio negativo relativo quantidade Qu i disponvel na pilha i) dpp = Desvio positivo de produo, em toneladas dnp = Desvio negativo de produo, em toneladas y i = 1 se a pilha i for retirada e zero, caso contrrio.
  • Slide 134
  • 134 Problema da Mistura proposto pelo Tales (3) A mistura deve ter como meta um peso total p A quantidade a ser retomada em cada pilha i est limitada Qu i A quantidade do parmetro j na mistura no pode ser inferior mnima permitida Admite-se que haja excesso (dpm j ) ou falta (dnm j ) do parmetro j na mistura em relao quantidade recomendada A quantidade do parmetro j na mistura no pode superar a mxima permitida A quantidade do parmetro j na mistura s pode superar a mxima permitida quando extrapolar j = 1
  • Slide 135
  • 135 Problema da Mistura proposto pelo Tales (4) Quando se deseja retomar totalmente uma pilha i tem-se x i = Qu i Para as pilhas i que no se deseja retomar, x i = 0 Deve-se tentar retomar totalmente a pilha i (dnpilha i representa a sobra) Uma pilha i ser retomada (total ou parcialmente) se y i = 1 Deve-se retomar no mnimo retmin toneladas de uma pilha, caso ela seja usada
  • Slide 136
  • 136 Problema de Transporte H um conjunto de minas produtoras de minrio H um conjunto de usinas que processam os minrios provenientes das minas H um custo de transporte de minrio de uma mina para uma usina Cada mina tem uma capacidade de produo mensal Cada usina tem uma demanda mensal Cada mina tem um custo fixo se for usada Determinar a estratgia tima de transporte Mina Usinas Cap (t/ms) Custo ($/t) 123 1108131150050000 279141450040000 36,510,812,41300030000 48,512,79,81230025500 Demanda (t/ms) 100001540013300--
  • Slide 137
  • 137 Problema de Transporte Minas Usinas dem 1 dem 2 dem 3 cap 1 cap 2 cap 3 cap 4 c 11 c 12 c 13 f1f1 f2f2 f3f3 f4f4
  • Slide 138
  • 138 Problema de Transporte Dados de entrada: Minas = Conjunto de minas Usinas = Conjunto de usinas cap i = capacidade de produo, em toneladas/ms, da mina i dem j = quantidade de minrio demandado pela usina j, em ton/ms f i = custo fixo de uso da mina i, em $ c ij = custo de transporte de minrio proveniente da mina i para abastecer a usina j, em $/tonelada/ms Variveis de deciso: x ij = Quantidade de minrio, em toneladas/ms, a ser transportado da mina i para abastecer a usina j y i = 1 se a mina i ser usada e 0, caso contrrio
  • Slide 139
  • 139 Problema de Transporte (Caso em que: Oferta > Demanda) Como oferta (minas) > demanda (usinas): Toda a demanda ser atendida 1. Funo objetivo Minimizar o custo de transporte mais o custo fixo pelo uso das minas usadas
  • Slide 140
  • 140 Problema de Transporte: modelo de PL 2. Restries: a) A capacidade de produo das minas deve ser respeitada b) Toda a demanda atendida
  • Slide 141
  • 141 Problema de Transporte: modelo de PL c) Uma mina s pode ser usada se houver produo d) No negatividade e integralidade
  • Slide 142
  • 142 Problema de Transporte: modelo (Caso em que Oferta < Demanda) Nem toda a demanda atendida Toda a produo ofertada
  • Slide 143
  • 143 Alocao de Pessoal Um hospital trabalha com atendimento varivel em demanda durante as 24 horas do dia. As necessidades distribuem-se segundo a tabela ao lado. O horrio de trabalho de um enfermeiro de 8 horas seguidas e s pode ser iniciado no comeo de cada turno, isto , s 8 ou 12 ou 16 ou 20 ou 24 ou 04 horas. Considere que cada enfermeiro recebe $100 por hora de trabalho no perodo diurno (08 s 20 h) e $125 no perodo noturno (20 s 08 h). Elabore um modelo de PLI que minimize o gasto com a mo-de- obra. TurnoHorrio# enf. 108-1251 212-1658 316-2062 420-2441 524-0432 604-0819
  • Slide 144
  • 144 Problema de Alocao de Pessoal Dados de entrada: Turnos = Conjunto de turnos de trabalho req i = nmero de enfermeiros requeridos no turno i c i = custo do enfermeiro que comea sua jornada no incio do turno i, em $ Variveis de deciso: x i = Nmero de enfermeiros que comeam sua jornada de trabalho no incio do turno i
  • Slide 145
  • 145 Problema de Alocao de Pessoal 1. Funo objetivo Minimizar o custo com as despesas com pessoal 2. Restries a) A demanda por enfermeiros em cada turno i deve ser atendida b) No-negatividade e integralidade
  • Slide 146
  • 146 Listas Circulares no LINGO Listas circulares so 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(index,Limit) = retorna o ndice J, dado por: J = index + k Limit onde k um nmero inteiro tal que J pertena ao intervalo [1, Limit] Exemplos: @wrap(4, 7) = 4 + k 7 = 4 + 0 7 = 4 @wrap(8, 7) = 8 + k 7 = 8 + (-1) 7 = 1 @wrap(9, 7) = 9 + k 7 = 9 + (-1) 7 = 2 @wrap(0, 7) = 0 + k 7 = 0 + (1) 7 = 7 @wrap(-1, 7) = -1 + k 7 = -1 + (1) 7 = 6 @wrap(-2, 7) = -2 + k 7 = -2 + (1) 7 = 5 Assim, se i pertence ao conjunto Turnos, isto , i Turnos, ento x i-2 seria representado no LINGO por: x(@wrap(i-2, @size(Turnos)))
  • Slide 147
  • 147 Problema de Alocao de Pessoal com hora-extra Um hospital trabalha com atendimento varivel em demanda durante as 24 horas do dia. As necessidades distribuem-se segundo a tabela ao lado. O horrio de trabalho de um enfermeiro de 8 horas seguidas e s pode ser iniciado no comeo de cada turno, isto , s 8 ou 12 ou 16 ou 20 ou 24 ou 04 horas. Considere que cada enfermeiro recebe $100 por hora de trabalho no perodo diurno (08 s 20 h) e $125 no perodo noturno (20 s 08 h) Suponha que cada enfermeiro possa trabalhar mais quatro horas consecutivas alm de sua jornada normal de trabalho e que a hora-extra seja remunerada em 50% a mais que a hora normal. Considere, tambm, que em cada turno, no mais de 20% dos enfermeiros possa fazer hora-extra. Elabore um modelo de PLI que minimize o gasto com a mo-de-obra. TurnoHorrio# enf. 108-1251 212-1658 316-2062 420-2441 524-0432 604-0819
  • Slide 148
  • 148 Problema de Alocao de Pessoal com hora-extra Dados de entrada: Turnos = Conjunto de turnos de trabalho req i = nmero de enfermeiros requeridos no turno i csemhextra i = custo do enfermeiro que comea sua jornada no incio do turno i, em $, e no faz hora-extra ccomhextra i = custo do enfermeiro que comea sua jornada no incio do turno i, em $, e FAZ hora-extra phe = percentual mximo de enfermeiros fazendo hora-extra em um turno de trabalho Variveis de deciso: x i = Nmero de enfermeiros que comeam sua jornada de trabalho no incio do turno i e NO FAZEM hora-extra y i = Nmero de enfermeiros que comeam sua jornada de trabalho no incio do turno i e FAZEM hora-extra
  • Slide 149
  • 149 Problema de Alocao de Pessoal 1. Funo objetivo Minimizar o custo com as despesas com pessoal 2. Restries a) A demanda por enfermeiros em cada turno i deve ser atendida b) Em cada turno, no mais de phe (= 20%) dos enfermeiros podem fazer hora-extra c) No-negatividade e integralidade
  • Slide 150
  • 150 Problema de Corte de Estoque (1) (Cutting Stock Problem) Certa empresa trabalha com a produo de etiquetas autocolantes. O papel usado para sua confeco encontra-se em bobinas de mesmo comprimento, todas com largura de 50 cm. H uma programao para a prxima semana de 32 bobinas de 15 cm, 17 bobinas de 17,5 cm e 21 bobinas de 20 cm.
  • Slide 151
  • 151 Problema de Corte de Estoque (1) (Cutting Stock Problem) poltica da empresa estocar um mximo de 10 bobinas de cada tipo (Esta ao evita a imobilizao de capital, uma vez que so incertos os prximos pedidos). Os possveis padres de corte estabelecidos pelo setor tcnico so especificados na tabela ao lado. Qual a programao de corte a ser adotada que minimiza o desperdcio face necessidade de produo? Padro de corte Largura da faixaPerda (cm) 15 cm 17,5 cm 20 cm 13005 22102,5 31200 42010 501112,5 600210
  • Slide 152
  • 152 Problema de Corte de Estoque (1) (Cutting Stock Problem) Dados de entrada: Padroes = Conjunto dos padres de corte Bobinas = Conjunto dos tipos de bobinas perda i = perda, em cm, com o uso do padro de corte i demanda j = quantidade de bobinas do tipo j requeridas estmax = estoque mximo permitido de bobinas de cada tipo a ij = nmero de bobinas de largura j existentes no padro i Variveis de deciso: x i = Nmero de vezes em que se usa o padro de corte i
  • Slide 153
  • 153 Problema de Corte de Estoque (1) (Cutting Stock Problem) O excesso de bobinas do tipo j no pode exceder a estmax A demanda por bobinas do tipo j deve ser atendida Minimizar a perda com os cortes
  • Slide 154
  • 154 Problema de Corte de Estoque (2) (Cutting Stock Problem) Relativamente ao problema anterior, suponha que se deseje minimizar, alm da perda inerente ao processo de corte, tambm a perda com o excesso de bobinas cortadas Neste caso, o modelo anterior sofre a seguinte alterao: A funo objetivo tem agora uma segunda parcela, que mede a perda com o excesso de bobinas cortadas. Nessa parcela, para cada largura de bobina requerida, o nmero de bobinas em excesso multiplicado pela largura da bobina, resultando na perda em cm devido ao excesso de bobinas cortadas.
  • Slide 155
  • 155 Problema de Corte de Estoque (3) (Cutting Stock Problem) Uma serralheria dispe de barras de 7 metros de comprimento necessrio cortar essas barras de forma a atender a uma encomenda por barras menores nos seguintes comprimentos: 92 barras de 2 metros 59 barras de 3 metros 89 barras de 4 metros Elaborar um modelo para atender ao pedido minimizando a perda com o corte das barras e tambm com o excesso de barras cortadas
  • Slide 156
  • 156 Problema de Corte de Estoque (3) (Cutting Stock Problem) Dados de entrada: Padroes = Conjunto dos padres de corte Barras = Conjunto dos tipos de barras a serem produzidas perda i = perda, em cm, com o uso do padro de corte i demanda j = quantidade de barras do tipo j requeridas a ij = nmero de barras do tipo j existentes no padro i compr j = comprimento, em cm, da barra do tipo j Variveis de deciso: x i = Nmero de vezes em que se usa o padro de corte i
  • Slide 157
  • 157 Problema de Corte de Estoque (3) (Cutting Stock Problem) Primeiro passo: Estabelecimento dos padres de corte Barras Padro2m3m4mPerda 10110 20201 31011 42100 53001
  • Slide 158
  • 158 Problema de Corte de Estoque (3) (Cutting Stock Problem) Perda referente aos padres de corte Perda referente ao excesso de barras produzidas Segundo passo: Modelagem do problema
  • Slide 159
  • 159 Problema da Mochila 0-1 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 possvel Dados de entrada: Objetos = Conjunto dos diferentes tipos de objeto cap = Capacidade da mochila w j = peso (weight) do objeto j p j = benefcio (profit) proporcionado pelo uso do objeto j Variveis de deciso: x j = 1 se o objeto j for alocado mochila e zero, caso contrrio
  • Slide 160
  • 160 Problema da Mochila 0-1: modelo de programao linear Maximizar o benefcio pelo uso dos objetos (Levar os objetos mais valiosos) A capacidade da mochila no pode ser superada Apenas uma unidade de cada objeto pode ser alocada mochila
  • Slide 161
  • 161 Problema da Mochila 0-1 Mltipla 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 = benefcio (profit) proporcionado pelo uso do objeto j Variveis de deciso: x ij = 1 se o objeto j for alocado mochila i e zero, caso contrrio
  • Slide 162
  • 162 Problema da Mochila 0-1 Mltipla: modelo de programao linear Maximizar o benefcio pelo uso dos objetos (Levar os objetos mais valiosos) A capacidade de cada mochila i no pode ser superada Cada objeto j, se for usado, deve ser alocado uma nica mochila i Apenas uma unidade do objeto j pode ser alocada mochila i
  • Slide 163
  • 163 Problema da Mochila Inteira Mltipla Dados de entrada: Objetos = Conjunto dos diferentes tipos de objeto Mochilas = Conjunto dos diferentes tipos de mochila u j = quantidade de objetos j disponveis cap i = Capacidade da mochila i w j = peso (weight) do objeto j p j = benefcio (profit) proporcionado pelo uso do objeto j Variveis de deciso: x ij = quantidade de objetos do tipo j alocados mochila i
  • Slide 164
  • 164 Problema da Mochila Inteira Mltipla: modelo de programao linear Maximizar o benefcio pelo uso dos objetos (Levar os objetos mais valiosos) A capacidade de cada mochila i no pode ser superada Para cada objeto j s podem ser usados, no mximo, u j unidades A quantidade de objetos do tipo j a serem alocados mochila do tipo i inteira
  • Slide 165
  • 165 Alocao Dinmica de Caminhes DESCRIO Frente 2 Frente 3 Mistura Desejada Frente 1 Carregadeira 1 Carregadeira 2 Caminho 3 Caminho 2 Caminho 4 Caminho 1
  • Slide 166
  • 166 Funo Objetivo Desvio negativo de meta do parmetro j na mistura (t/h) Desvio positivo de meta do parmetro j na mistura (t/h) Peso por desvio negativo de meta para o parmetro j Peso por desvio positivo de meta para o parmetro j Peso por desvio negativo da produo Desvio negativo da meta de produo (t/h) Peso por desvio positivo da produo Desvio positivo da meta de produo (t/h) Alocao Dinmica de Caminhes
  • Slide 167
  • 167 Restries da Mistura de Minrios Teor mximo admissvel Teor mnimo admissvel Teor recomendado (meta de qualidade) Alocao Dinmica de Caminhes
  • Slide 168
  • 168 Restries relativas ao Ritmo de Lavra Ritmo de lavra mximo: Ritmo de lavra mnimo: Ritmo de lavra recomendado (meta de produo): Alocao Dinmica de Caminhes
  • Slide 169
  • 169 90 (t/h)1000 (t/h)0,1090 >= 100 100 (t/h)1000 (t/h)0,10100 >= 100 Restrio relativa Relao Estril/Minrio Alocao Dinmica de Caminhes
  • Slide 170
  • 170 Restries ligadas Alocao das Carregadeiras (1) F1 Cg1 Cg2 Cg3 F2 Alocao Dinmica de Caminhes Em uma frente s pode estar operando uma carregadeira, no mximo
  • Slide 171
  • 171 Restries ligadas Alocao das Carregadeiras (2) Cg1 F1 F2 Cg2 Alocao Dinmica de Caminhes Uma carregadeira pode ser alocada a uma frente, no mximo:
  • Slide 172
  • 172 Restries relativas Produo das Carregadeiras: Respeito Capacidade mxima da carregadeira alocada cada frente Respeito Capacidade mnima da carregadeira alocada cada frente Alocao Dinmica de Caminhes
  • Slide 173
  • 173 O nmero de viagens que cada caminho l faz cada frente i em uma hora depende de seu tempo de ciclo: Ca2 F1 F2 F3 Ca1 Alocao Dinmica de Caminhes
  • Slide 174
  • 174 Restries relativas Compatibilidade dos Caminhes F2 Ca1Cgk Seento 0 at 4 (60/15) Seento 0 Alocao Dinmica de Caminhes
  • Slide 175
  • 175 Restries relativas Produo dos Caminhes Ca1 Ca2 Ca3 F1F2 Alocao Dinmica de Caminhes
  • Slide 176
  • 176 Restries de Integralidade e No-negatividade Alocao Dinmica de Caminhes
  • Slide 177
  • 177 Determinao do Ritmo de Lavra Frente 2 Frente 3 Correia Principal Hopper CA CO Carregadeira Frente 1 Carregador 1 Frente 4 CO Carregador 2 Frente 5 Frente 6 CA CO USINA - Produo - Qualidade
  • Slide 178
  • 178 Determinao do Ritmo de Lavra: Dados de Entrada Limites inferior, superior e meta dos parmetros de controle (Fe, SiO 2, Al 2 O 3, P, etc); Produo mnima, mxima e a meta de produo, em ton/h, para atender a usina; Frentes de lavra que podem ou no estar disponveis (ativadas), com suas respectivas caractersticas qumicas, ritmos de lavra desejados e mtodo de lavra (caminho ou correia); Quantidade e modelos de carregadeiras disponveis; Produtividade mnima e mxima das carregadeiras. CACO Cu (prod. max.)fixovaria com a DM da CAR a correia Cl (prod. min.)fixo
  • Slide 179
  • 179 Determinao do Ritmo de Lavra: Objetivos Determinar o ritmo de lavra prximo da meta de produo Gerar um produto dentro de certas especificaes e prximo s metas de qualidade Fazer a alocao dos equipamentos de carga
  • Slide 180
  • 180 Determinao do Ritmo de Lavra: Funo MultiObjetivo wdq j : peso para o desvio da meta no parmetro j; wde j : peso para o desvio fora dos limites de especificao no parmetro j; dnq j : desvio negativo da meta no parmetro j; dpq j : desvio positivo da meta no parmetro j; dne j : desvio negativo abaixo do limite mnimo de especificao no parmetro j; dpe j : desvio positivo acima do limite mximo de especificao no parmetro j; wp : peso para o desvio da meta de produo; pn : desvio negativo da meta de produo; pp : desvio positivo da meta de produo; wdp : peso para o desvio fora dos limites de produo; dnp : desvio negativo abaixo do limite mnimo de produo; dpp : desvio positivo acima do limite mximo de produo;
  • Slide 181
  • 181 Determinao do Ritmo de Lavra: Restries Restries relativas aos limites e metas dos parmetros de controle: Teor do parmetro de controle j no pode superar o limite mximo de especificao (tu j ) Teor do parmetro de controle j no pode ser menor que o limite mnimo de especificao (tl j ) Teor do parmetro de controle j deve buscar a meta de qualidade (tr j )
  • Slide 182
  • 182 Ritmo total de lavra no pode ser menor que o limite mnimo de produo (pl) Determinao do Ritmo de Lavra: Restries Restries de Produo: Ritmo total de lavra no pode superar o limite mximo de produo (pu) Ritmo total de lavra deve buscar a meta de produo (pr)
  • Slide 183
  • 183 Determinao do Ritmo de Lavra: Restries Restries de Produo Por Frente: Ritmo de lavra na frente i no pode superar o limite mximo de produo da carregadeira k na frente i (Cu ik ), o qual fixo se o mtodo de lavra for caminho, mas varivel de acordo com a distncia da carregadeira correia, se o mtodo de lavra for correia transportadora. Ritmo de lavra na frente i no pode ser inferior ao limite mnimo de produo da carregadeira k (Cl k )
  • Slide 184
  • 184 Determinao do Ritmo de Lavra: Restries Restries relativas s Carregadeiras: Em cada frente s pode haver uma carregadeira operando O nmero de carregadeiras do modelo k utilizadas no pode ultrapassar o nmero de carregadeiras disponveis desse modelo (carregdisp k ) CAR modelo 13 unid 4 Frentes y 11 +y 21 +y 31 +y 41
  • 198 Programao da produo: Dimensionamento de lotes (um nico item) Restries: Conservao de fluxo em cada ms t>1: Restries: Respeito capacidade de produo em cada ms t:
  • Slide 199
  • 199 Programao da produo: Dimensionamento de lotes Considere uma empresa que fabrica n produtos e deseja programar sua produo nos prximos T perodos de tempo (= horizonte de planejamento) conhecida a demanda de cada produto em cada perodo do horizonte de planejamento Em cada perodo, os recursos necessrios para a produo so limitados e renovveis, isto , uma quantidade de recursos est disponvel e no depende de como foram utilizados nos perodos anteriores. Exemplos de recursos renovveis: mo-de-obra, energia eltrica, horas de mquina Exemplo de recurso no renovvel: matria-prima que sobra em um perodo e pode ser usada nos perodos seguintes H a possibilidade de estocagem de produtos de um perodo para outro Dados de entrada do problema: d it : demanda do item i no perodo t (i = 1,..., n; t = 1,..., T) disp t : disponibilidade de recursos (renovveis) no perodo t r i : quantidade de recursos necessrios para a produo de uma unidade do item i c it : custo de produzir uma unidade do item i no perodo t h it : custo de estocar uma unidade do item i no perodo t Variveis de deciso: x it : nmero de itens do tipo i produzidos no perodo t e it : nmero de itens do tipo i em estoque no final do perodo t Estoques iniciais do horizonte de planejamento e i0 so dados
  • Slide 200
  • 200 Programao da produo: Dimensionamento de lotes Funo objetivo: (minimizar os custos de produo e estocagem) Equaes de conservao de estoque: Restries de capacidade de produo: Garantia de atendimento demanda: No-negatividade e integralidade:
  • Slide 201
  • 201 Programao da produo: Dimensionamento de lotes Considere uma fbrica de pr-moldados que produz dois tipos de vigas, cujas demandas para as prximas 3 semanas so conhecidas Os produtos utilizam os mesmos tipos de recursos, porm em quantidades diferentes Suponha que apenas um centro de trabalho esteja disponvel para a produo dos dois itens, cuja disponibilidade de 40 horas por perodo e que a produo de uma unidade do item 1 consuma 15 minutos (= 1/4 da hora) e uma unidade do item 2 consuma 20 minutos (= 1/3 da hora) Os custos de produo por perodo, bem como os custos de estocagem so conhecidos Os estoques iniciais dos dois produtos so nulos Definir um plano de produo de modo que os pedidos sejam atendidos ao menor custo de produo e estocagem Demanda de vigas Perodo 1Perodo 2Perodo 3 Item 11590120 Item 2355080 Custos de produo Perodo 1Perodo 2Perodo 3 Item 120 30 Item 220 30 Custos de estocagem Perodo 1Perodo 2 Item 123 Item 22,53,5
  • Slide 202
  • 202 Programao da produo: Seqenciamento em uma mquina Problema de seqenciamento em uma mquina com penalidades por antecipao e atraso da produo (PSUMAA). Tempo de preparao de mquina dependente da seqncia de produo; Janelas de atendimento; Os objetivos: reduo dos custos de manuteno do estoque (quando a produo antecipada) e dos custos por atraso na produo.
  • Slide 203
  • 203 Programao da produo: Seqenciamento em uma mquina Caractersticas do PSUMAA: Uma mquina 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 trmino do processamento; A mquina executa no mximo um job por vez e uma vez iniciado o processamento de um job, o mesmo deve ser finalizado, ou seja, no permitido a interrupo do processamento;
  • Slide 204
  • 204 Programao da produo: Seqenciamento em uma mquina Todos os jobs esto disponveis para processamento na data 0; Quando um job j seqenciado imediatamente aps um job i, sendo estes pertencentes a diferentes famlias de produtos, necessrio um tempo S ij para a preparao da mquina; Assume-se, ainda, que a mquina no necessita de tempo de preparao inicial;
  • Slide 205
  • 205 Programao da produo: Seqenciamento em uma mquina permitido tempo ocioso entre a execuo 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 ento h um custo de manuteno de estoque. Caso o job seja finalizado aps T i ento h associado um custo por atraso (que pode ser uma multa imposta por contratos de prestao de servio), alm de insatisfao do cliente. Os jobs que forem finalizados dentro da janela de entrega no proporcionaro nenhum custo para a empresa; Os custos unitrios por antecipao e atraso da produo so dependentes dos jobs. Objetivo: minimizao do somatrio dos custos de antecipao e atraso da produo.
  • Slide 206
  • 206 Programao da produo: Seqenciamento em uma mquina Dados de Entrada: n : nmero de jobs a serem processados; P i : tempo de processamento do job i ; E i : data de incio do perodo de entrega do job i ; T i : data de trmino do perodo de entrega do job i ; S ij : tempo de preparao da mquina necessrio para processar job j depois do job i ; i : custos de antecipao da produo do job i por unidade de tempo; i : custos de atraso da produo do job i por unidade de tempo.
  • Slide 207
  • 207 Programao da produo: Seqenciamento em uma mquina Variveis de Deciso: s i : a data de incio do processamento do job i ; e i : o tempo de antecipao do job i ; t i : o tempo de atraso do job i ; Jobs Fictcios: 0 : antecede imediatamente o primeiro job na seqncia de produo; n + 1 : sucede imediatamente o ltimo job na seqncia de produo; Observao: P 0 e P n+1 so iguais a zero, S 0i =0 e S i, n+1 =0 i = 1,2,..., n.
  • Slide 208
  • 208 Programao da produo: Seqenciamento em uma mquina Funo Objetivo Minimizar o somatrio dos custos totais de antecipao e atraso da produo (0)
  • Slide 209
  • 209 Programao da produo: Seqenciamento em uma mquina Restries Um job j s pode ser iniciado imediatamente aps um job i, sem nenhum job intermedirio, depois de preparar a mquina de i para j e completado o processamento do job i : onde: M uma constante de valor suficientemente grande (3)
  • Slide 210
  • 210 Programao da produo: Seqenciamento em uma mquina Restries Quando j sucede i ( y ij =1), tm-se: Quando j no sucede i ( y ij =0), tm-se: (3)
  • Slide 211
  • 211 Programao da produo: Seqenciamento em uma mquina Restries: Cada job j tem somente um job i imediatamente antecessor: Cada job i tem somente um job j imediatamente sucessor: (4) (5)
  • Slide 212
  • 212 Programao da produo: Seqenciamento em uma mquina Restries: O tempo de antecipao e i [ 0, ( E i P i s i ) ] determinado pelas restries: O tempo de atraso t i [ 0, ( s i + P i T i ) ] determinado pelas restries: (6) (7) (8) (9)
  • Slide 213
  • 213 Mina 2 Mina 3 Mina 1 Problema de Seleo de Projetos Mineiros Concorrentes Mina m...... Projeto 1Projeto 2Projeto 3Projeto n... Projeto 1Projeto 2Projeto 3Projeto n... Projeto 1Projeto 2Projeto 3Projeto n... Projeto 1Projeto 2Projeto 3Projeto n... Produo VPL Meta de Produo Em cada mina apenas uma opo de projeto pode ser escolhida; O objetivo maximizar o VPL respeitando a meta de produo.
  • Slide 214
  • 214 Problema de Seleo de Projetos Mineiros Concorrentes Ex. de opes de projeto por mina
  • Slide 215
  • 215 Exemplo de Problema de Seleo de Projetos Mineiros Concorrentes 123...16 1884.42929.56922.04...897.42 2177.28149.92199.85...247.04... 7111.63106.84103.42...126.67 Exemplo de VPL ($x10 6 ): 123...16 14043...45 210...12.5... 7222 4 Exemplo de Produo (Mt):
  • Slide 216
  • 216 Modelo de Programao Matemtica para o Problema de Seleo de Projetos Considere: Minas: conjunto de minas; Opcoes: conjunto de opes de projeto em cada mina; VPL ij : Valor Presente Liquido do projeto j na mina i; prod ij : produo do projeto j na mina i; M: meta de produo; Pfalta: penalidade por produo inferior meta estabelecida; Pexc: penalidade por produo superior meta estabelecida.
  • Slide 217
  • 217 Modelo de Programao Matemtica para o Problema de Seleo de Projetos
  • Slide 218
  • 218 Heursticas construtivas e de refinamento: Fundamentao e aplicaes Marcone Jamilson Freitas Souza Alexandre Xavier Martins Tatiana Alves Costa Jos Maria do Carmo Bento Alves Frederico Augusto Coimbra Guimares Tlio ngelo Machado Toffolo Departamento de Computao Homepage: http://www.decom.ufop.br/prof/marcone E-mail: [email protected]
  • Slide 219
  • 219 Problema do Caixeiro Viajante Dado um conjunto de cidades e uma matriz de distncias entre elas PCV consiste em encontrar uma rota para um Caixeiro 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 distncia possvel Rota conhecida como ciclo hamiltoniano
  • Slide 220
  • 220 Problema do Caixeiro Viajante
  • Slide 221
  • 221 Problema do Caixeiro Viajante
  • Slide 222
  • 222 Formulao Matemtica para o Problema do Caixeiro Viajante Dados de entrada: Cidades: Conjunto de cidades d ij = distncia entre as cidades i e j Variveis de deciso: x ij = 1 se a aresta (i,j) ser usada; 0, caso contrrio f ij = quantidade de fluxo de i para j Funo objetivo:
  • Slide 223
  • 223 Formulao Matemtica para o Problema do Caixeiro Viajante 1. De cada cidade i s sai uma aresta: 2. A cada cidade j s chega uma aresta: i i Restries:
  • Slide 224
  • 224 Formulao Matemtica para o Problema do Caixeiro Viajante 3. O fluxo que chega a uma cidade i menos o que sai igual a uma unidade: 4. O fluxo mximo em cada aresta igual a n-1, onde n o nmero de cidades: ff - 1 i 5. Integralidade e no negatividade:
  • Slide 225
  • 225 Problema do Caixeiro Viajante Complexidade Considerando PCV simtrico (d ij = d ji ), para n cidades h (n-1)!/2 rotas possveis Para n = 20 cidades, h 10 16 rotas possveis. Um computador que avalia uma rota em 10 -8 segundos gastaria cerca de 19 anos para encontrar a melhor soluo por enumerao completa Mtodos de enumerao implcita, tais como branch-and-bound, embutidos em solvers, podem reduzir significativamente este tempo No h garantia de que isso sempre ocorra
  • Slide 226
  • 226 Problema do Caixeiro Viajante Complexidade Para dimenses mais elevadas (> 50 cidades), a resoluo por modelos de programao matemtica proibitiva em termos de tempos computacionais PCV da classe NP-difcil: ainda no existem algoritmos exatos que o resolvam em tempo polinomial medida que n cresce, o tempo de execuo cresce exponencialmente PCV resolvido por meio de heursticas: Procedimentos que seguem uma intuio para resolver o problema (forma humana de resolver o problema, fenmenos naturais, processos biolgicos, etc.) No garantem a otimalidade da soluo final Em geral, produzem solues finais de boa qualidade rapidamente
  • Slide 227
  • 227 Heursticas Construtivas Consistem em construir uma soluo passo a passo, elemento por elemento De refinamento Consistem em efetuar modificaes na soluo construda, de forma a tentar melhor-la
  • Slide 228
  • 228 Heurstica de construo gulosa Funcionamento: Constri uma soluo, elemento por elemento A cada passo adicionado um nico elemento candidato O candidato escolhido o melhor segundo um certo critrio O mtodo se encerra quando todos os elementos candidatos foram analisados
  • Slide 229
  • 229 Heursticas construtivas para o Problema do Caixeiro Viajante Vizinho mais prximo Idia central: Construir uma rota passo a passo, adicionando soluo corrente a cidade mais prxima (ainda no visitada) da ltima cidade inserida Insero mais barata Idia central: Construir uma rota passo a passo, partindo de rota inicial envolvendo 3 cidades e adicionar a cada passo, a cidade k (ainda no visitada) entre a ligao (i, j ) de cidades j visitadas, cujo custo de insero seja o mais barato
  • Slide 230
  • 230 PCV Vizinho mais Prximo Exemplo - Passo 1 1 4 ijd ij 611 622 636 646 652 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total = 1 1
  • Slide 231
  • 231 PCV Vizinho mais Prximo Exemplo - Passo 2 1 4 ijd ij 122 131 144 159 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total = 1 + 1 = 2 1 1
  • Slide 232
  • 232 PCV Vizinho mais Prximo Exemplo - Passo 3 1 4 ijd ij 325 343 358 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total = 2 + 3 = 5 1 1 3
  • Slide 233
  • 233 PCV Vizinho mais Prximo Exemplo - Passo 4 1 4 ijd ij 429 452 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total = 5 + 2 = 7 1 1 3 2
  • Slide 234
  • 234 PCV Vizinho mais Prximo Exemplo - Passo 5 1 4 ijd ij 527 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total = 7 + 7 = 14 1 1 3 2 7
  • Slide 235
  • 235 PCV Vizinho mais Prximo Exemplo Passo final: Insero forada 1 4 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total = 14 + 2 = 16 1 1 3 2 7 2
  • Slide 236
  • 236 Heurstica da Insero Mais Barata para o Problema do Caixeiro Viajante Insero mais barata Idia central: Construir uma rota passo a passo, partindo de rota inicial envolvendo 3 cidades (obtidas por um mtodo qualquer) e adicionar a cada passo, a cidade k (ainda no visitada) entre a ligao (i, j ) de cidades j visitadas, cujo custo de insero seja o mais barato
  • Slide 237
  • 237 Heurstica da Insero Mais Barata para o Problema do Caixeiro Viajante k t u j r i Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 d ij d ir d ri
  • Slide 238
  • 238 k t u j r i Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 d ij d ir d ri Custo da insero = d ik + d kj - d ij d ik d kj Heurstica da Insero Mais Barata para o Problema do Caixeiro Viajante
  • Slide 239
  • 239 PCV Insero mais Barata Exemplo - Passo 1 1 4 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total = 11 2 7 2
  • Slide 240
  • 240 PCV Insero mais Barata Exemplo - Passo 2 1 4 ikjd ik + d kj d ij 6121 + 2 2 = 1 6326 + 5 2 = 9 6426 + 9 2 = 3 2152 + 9 7 = 4 2355 + 8 7 = 6 2459 + 2 7 = 4 5169 + 1 2 = 8 5368 + 6 2 = 12 5462 + 6 2 = 6 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total = 11 + 1 = 12 2 7 2 1 2
  • Slide 241
  • 241 PCV Insero mais Barata Exemplo - Passo 3 1 4 ikjd ik + d kj d ij 6316 + 1 1 = 6 6416 + 4 1 = 9 1321 + 5 2 = 4 1424 + 9 2 = 11 2355 + 8 7 = 6 2459 + 2 7 = 4 5368 + 6 2 = 12 5462 + 6 2 = 6 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total = 12 + 4 = 16 7 2 1 2 5 1
  • Slide 242
  • 242 PCV Insero mais Barata Exemplo Passo final 1 4 ikjd ik + d kj d ij 6416 + 4 1 = 9 1434 + 3 1 = 6 3423 + 9 5 = 7 2459 + 2 7 = 4 5462 + 6 2 = 6 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total = 16 + 4 = 20 7 2 1 5 1 9 2
  • Slide 243
  • 243 PCV Insero mais Barata Exemplo Soluo final 1 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total = 16 + 4 = 20 2 1 5 1 9 2 s = (6 1 3 2 4 5) 4
  • Slide 244
  • 244 Heursticas de refinamento Baseadas na noo de vizinhana A cada soluo 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
  • Slide 245
  • 245 Heursticas de refinamento No PCV, um movimento m pode ser a troca da ordem de visita entre duas cidades Exemplo: Dada a soluo s = (6 1 3 2 4 5), so exemplos de vizinhos de s: s = (6 4 3 2 1 5) s = (6 1 4 2 3 5)
  • Slide 246
  • 246 PCV - Ex: Vizinhos de uma soluo s 1 4 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total s = 20 2 1 5 1 9 2 s = (6 1 3 2 4 5)
  • Slide 247
  • 247 PCV - Ex: Vizinhos de uma soluo s 1 4 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total s = 27 2 5 2 s = (6 4 3 2 1 5) 6 3 9
  • Slide 248
  • 248 PCV - Ex: Vizinhos de uma soluo s 1 4 3 2 5 6 Cid.123456 1021491 2205972 3150386 4493026 5978202 6126620 Distncia Total s = 29 4 1 5 s = (6 1 4 2 3 5) 2 9 8
  • Slide 249
  • 249 Exemplos de vizinhos no Problema de Roteamento de Veculos (Vehicle Routing Problem) 3 4 5 2 6 7 9 11 (9) (12) (13) (4) (10) [50] (10) (7) (10) (5) (10) (3) (10) 13 15 14 8 10 12 16 Soluo s
  • Slide 250
  • 250 Exemplos de vizinhos no Problema de Roteamento de Veculos (Vehicle Routing Problem) 3 4 5 2 6 7 9 11 (9) (12) (13) (4) (10) [50] (10) (7) (10) (5) (10) (3) (10) 13 15 14 8 10 12 16 Soluo s s obtida pela realocao de um cliente de uma rota para outra rota (realocao inter-rota)
  • Slide 251
  • 251 Exemplos de vizinhos no Problema de Roteamento de Veculos (Vehicle Routing Problem) 3 4 5 2 6 7 9 11 (9) (12) (13) (4) (10) [50] (10) (7) (10) (5) (10) (3) (10) 13 15 14 8 10 12 16 Soluo s s obtida pela troca de clientes entre rotas (movimento inter-rotas) (Clientes 11 e 14 mudam de rota)
  • Slide 252
  • 252 Problema de Alocao de Salas (Classroom Assignment Problem) Diz respeito designao de salas para as aulas de uma instituio de ensino O horrio das aulas previamente conhecido O PAS um subproblema do Problema de Programao de Horrios (timetabling) Pode ser tratado de forma isolada ou de forma integrada programao de horrios
  • Slide 253
  • 253 Problema de Alocao de Salas (Classroom Assignment Problem) Restries: No pode haver sobreposio de turmas; As salas tm que comportar as turmas etc. Objetivos: Manter as aulas de uma mesma turma em uma mesma sala ao longo da semana; Minimizar o fluxo de alunos mudando de sala aps uma aula; Sempre que possvel, alocar a uma mesma sala alunos de um mesmo curso e perodo etc.
  • Slide 254
  • 254 Problema de Alocao de Salas (Classroom Assignment Problem) Movimento de Realocao
  • Slide 255
  • 255 Problema de Alocao de Salas (Classroom Assignment Problem) Movimento de Troca
  • Slide 256
  • 256 Problema de Alocao de Salas (Classroom Assignment Problem) Algumas possveis estruturas de vizinhana: N 1 (s) = {s | s s movimento de realocao } N 2 (s) = {s | s s movimento de troca } N(s) = {s | s s mov. de realocao ou troca }
  • Slide 320
  • 320 Operador OX para o PCV p 1 = (6 3 8 | 2 4 1 | 5 7 9) p 2 = (1 2 7 | 4 6 5 | 8 9 3) f 1 = (x x x | 2 4 1 | x x x) Ordem de visita de p 2 = {8,9,3,1,2,7,4,6,5}
  • Slide 322
  • 322 Operador OX para o PCV p 1 = (6 3 8 | 2 4 1 | 5 7 9) p 2 = (1 2 7 | 4 6 5 | 8 9 3) f 1 = (x x x | 2 4 1 | x x x) Ordem de visita de p 2 = {8,9,3,1,2,7,4,6,5} f 1 = (x x x | 2 4 1 | 8 9 x)
  • Slide 324
  • 324 Operador OX para o PCV p 1 = (6 3 8 | 2 4 1 | 5 7 9) p 2 = (1 2 7 | 4 6 5 | 8 9 3) f 1 = (x x x | 2 4 1 | x x x) Ordem de visita de p 2 = {8,9,3,1,2,7,4,6,5} f 1 = (7 x x | 2 4 1 | 8 9 3)
  • Slide 326
  • 326 Operador OX para o PCV p 1 = (6 3 8 | 2 4 1 | 5 7 9) p 2 = (1 2 7 | 4 6 5 | 8 9 3) f 1 = (x x x | 2 4 1 | x x x) Ordem de visita de p 2 = {8,9,3,1,2,7,4,6,5} f 1 = (7 6 5 | 2 4 1 | 8 9 3)