A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Pesquisa Operacional Livro: Introdução à Pesquisa Operacional

Apresentações semelhantes


Apresentação em tema: "Pesquisa Operacional Livro: Introdução à Pesquisa Operacional"— Transcrição da apresentação:

1 Pesquisa Operacional Livro: Introdução à Pesquisa Operacional
Faculdade de Engenharia - Campus de Guaratinguetá Pesquisa Operacional Livro: Introdução à Pesquisa Operacional Capítulo 4 – Modelo de Transporte Simples Fernando Marins – Departamento de Produção

2 Sumário Modelo de Transporte Simples Histórico e Características
Modelo Matemático Modelo em Grafos “Stepping Stone Algorithm” Casos Especiais

3 Modelo de Transporte Simples
Histórico Kantorovich (1939) - problema da distribuição Koopman (1941) - problema de transporte Observação: dividiram o Prêmio Nobel de Economia em 1975. Dantzig (1947) - algoritmo eficiente Características Transporte de um produto a partir de várias origens para diversos destinos.   Produção ai em cada origem Oi, i = 1, m.  Demanda bj em cada destino Dj, j = 1, n.   Custos unitários de transporte cij em cada trajeto Oi - Dj.

4 Modelo de Transporte Simples
Variáveis de decisão: Xij = quantidade a ser transportada da origem Oi ao destino Dj. Função objetivo: minimização do custo total transporte   Min C = Restrições: Observação importante:

5 Modelo de Transporte Simples
Exemplo: considere situação onde há 3 fábricas produzindo o mesmo produto e 4 depósitos onde estes produtos são estocados para posterior venda. As produções nas fábricas são: a1 = 40, a2 = 80, a3 = 110. nos depósitos devem ser atendidas as seguintes demandas: b1 = 20, b2 = 30, b3 = 100, b4 = 80. Os custos unitários de transporte do produto são dados por: Achar um modelo de PL para determinar o programa de entregas do produto com mínimo custo de transporte. D1 D2 D3 D4 O1 10 5 12 4 O2 2 1 9 O3 13 11 14 6

6 Formulação do modelo Sujeito a:
Variáveis de decisão: Xij = quantidade de produto enviado de Oi para Dj

7 Representação matricial das restrições
(excluindo os zeros na matriz de coeficientes das variáveis) X = Qualquer equação do sistema de restrições é combinação linear das demais  no. de equações Linearmente Independentes = (m + n -1).

8 Modelos em Grafos Rede de transporte (a1= 40) O1 D1 (b1=20) Cij 10
5 12 4 2 1 9 13 11 14 6

9 Solução Básica Viável = Árvore
Solução Básica Viável equivale a uma Árvore na rede de transporte com (m + n - 1) = = 6 variáveis básicas. Exemplo: x11, x12, x22, x23, x33, x34 são as variáveis básicas. 80 X11= 20 X12 = 20 X22 = 10 X23 = 70 X33 = 30 X34 = 80 Observação: as demais variáveis são não-básicas e nulas.

10 Algoritmos e Equivalência de Conceitos entre PL e Grafos
- Método Simplex  - Algoritmo especializado: “Stepping Stone Algorithm” Toma vantagem da estrutura especial da matriz de restrições de modelos de transporte formada por “0” e “1”. Equivalência de Conceitos Programação Linear Teoria dos Grafos Valor da Variável de Decisão Valor do Fluxo no Arco Solução Básica Viável Árvore Viável Solução Inicial Árvore Inicial Coeficiente de Custo Relativo Coeficiente de Custo Marginal Variável (Não) Básica Arco (Não) Básico Pivoteamento Balanceamento de Fluxo no Ciclo de compensação

11 Etapas de aplicação do “Stepping Stone Algorithm”
Passo 1: Inicialização* Achar árvore inicial. Ir ao passo 2. Passo 2: Teste de Otimalidade Achar os coeficientes de custos (lucros) marginais dos fluxos não-básicos. Se for árvore ótima  Parar. Caso contrário escolher arco para entrar na próxima árvore básica. Ir ao passo 3. Passo 3: Melhoria da solução atual Achar ciclo de compensação formado pelo arco que entra e a árvore básica atual. Determinar no ciclo qual arco básico será substituído. Efetuar o balanceamento de fluxo no ciclo. Voltar ao passo 2. *Métodos de inicialização do “Stepping Stone Algorithm”: Regra do canto esquerdo (ou regra do canto noroeste). Regra do custo mínimo (lucro máximo para problemas de Maximização).

12 Métodos de inicialização do “Stepping Stone Algorithm”
Regra do canto esquerdo: Consiste em, iniciando pelo arco (1, 1) ou trajeto O1D1 associado ao canto superior esquerdo da tabela usada pelo algoritmo, e através de deslocamentos sucessivos para a direita e para baixo, atingir o canto inferior direito da tabela, distribuindo a produção disponível nas origens pelos arcos (chamados arcos básicos) de forma a atender as demandas nos destinos. Uma linha (ou coluna) é explorada até que a produção (ou demanda) desta linha (ou coluna) seja esgotada (ou atendida). Em cada arco deve-se alocar a maior quantidade de produto possível.

13 Modelo de Transporte Simples Regra do custo mínimo (ou lucro máximo):
Consiste em atribuir o máximo valor transportável aos trajetos associados aos menores (ou maiores) custos (ou lucros) unitários de transporte. Escolhe-se primeiro o trajeto associado com o menor (ou maior) custo (ou lucro) unitário, depois o trajeto associado ao próximo menor (ou maior) custo (ou lucro), e assim por diante até se esgotar toda a produção disponível e atender toda a demanda existente.

14 Aplicação do “Stepping Stone Algorithm”
 Tabela inicial com os dados do problema: D1 D2 D3 D4 Produção O1 10 5 12 4 40 O2 2 1 9 80 O3 13 11 14 6 110 Demanda 20 30 100 230 Árvore inicial obtida pela regra do canto esquerdo: D1 D2 D3 D4 Produção O1 10 5 12 4 40 O2 2 1 9 80 O3 13 11 14 6 110 Demanda 20 30 100 230 20 20 10 70 30 80 Número de arcos básicos:(m + n - 1) = = 6. Custo da solução: = 1270.

15 Árvore inicial obtida pela regra do custo mínimo
Produção O1 10 5 12 4 40 O2 2 1 9 80 O3 13 11 14 6 110 Demanda 20 30 100 230 40 30 50 20 50 40 Número de arcos básicos: (m + n - 1) = = 6. Custo da solução: = 1410.

16 Ciclo de Compensação 20 (C11 =10) X11= 20 -1 40 X12 = 20 +1 (C12 =5)
30 (C22 =0) 80 X22 = 10 -1 X23 = 70 100 110 X33 = 30 X34 = 80 80 C21 = 2.(+1) +10.(-1) +5.(+1) +0.(-1) = -3/unidade. X21 (É candidato a entrar)

17 Ciclo de compensação do arco não-básico (2, 1) .
Ciclo de compensação formado pela árvore básica, obtida pela Regra do Canto esquerdo, e pelo arco não-básico (2, 1). D1 D2 D3 D4 Produção O1 20 10 5 12 4 40 O2 2 70 1 9 80 O3 13 11 30 14 6 110 Demanda 100 230 (-1) (+1) (+1) (-1) Custo marginal do arco (2, 1): C21 = 2.(+1) + 10.(-1) + 5.(+1) + 0.(-1) = -3/unidade (É candidato a entrar)

18 Ciclo de Compensação 20 X11= 20 40 X12 = 20 -1 (C12 =5) X14 =0 +1
30 80 X22 = 10 +1 (C22 =0) X23 = 70 -1 (C23 =1) 100 110 X33 = 30 +1 (C33 =14) X34 = 80 -1 (C34 =6) 80 C14 = 4.(+1) +6.(-1) +14.(+1) +1.(-1) +0.(+1) +5.(-1) = 6/unidade. X14 (Não é candidato a entrar)

19 Ciclo de compensação do arco não-básico (1, 4).
Produção O1 20 10 5 12 4 40 O2 2 70 1 9 80 O3 13 11 30 14 6 110 Demanda 100 230 (-1) (+1) (+1) (-1) (+1) (-1) Custo marginal do arco (1, 4): C14 = 4.(+1) + 6.(-1) + 14.(+1) + 1.(-1) + 0.(+1) + 5.(-1) = +6/unidade. (Não é candidato a entrar)

20 Ciclo de Compensação 20 (C11 =10) X11= 20 -1 40 X12 = 20 +1 (C12 =5)
30 (C22 =0) 80 X22 = 10 -1 X23 = 70 +1 (C23 =1) X31 =0 +1 (C31 =13) (C33 =14) 100 110 X33 = 30 -1 X34 = 80 80 C31 = 13.(+1) +10.(-1) +5.(+1) +0.(-1) +1.(+1) +14.(-1) = -5/unidade. X31 (É candidato a entrar)

21 Custo marginal do arco (3, 1):
Determinação dos coeficientes de custos marginais de alguns arcos não-básicos Ciclo de compensação formado pela árvore básica, obtida pela Regra do Canto esquerdo, e pelo arco não-básico (3, 1). D1 D2 D3 D4 Produção O1 20 10 5 12 4 40 O2 2 70 1 9 80 O3 13 11 30 14 6 110 Demanda 100 230 (-1) (+1) (-1) (+1) (+1) (-1) Custo marginal do arco (3, 1): C31 = 13.(+1) +10.(-1) + 5.(+1) + 0.(-1) + 1.(+1) + 14.(-1) = -5/unidade. (É candidato a entrar)

22 Balanceamento de Fluxo no Ciclo de Compensação
Possui o menor valor de fluxo dos valores com (-1) dentro do ciclo de compensação. 20 X11= 20 -1 .(10) 40 X12 = 20 +1 .(10) 30 80 X22 = 10 -1 .(10) Sairá o arco básico do ciclo que se anular primeiro ao se aumentar o valor do fluxo no arco não-básico (3, 1) escolhido para entrar: neste caso será o arco (2, 2) => Xij (satisfazer a condição de não-negatividade) X23 = 70 +1 .(10) X31 =0 +1 .(10) 100 110 X33 = 30 -1 .(10) X34 = 80 80 X31 (É que Entrar) = X22 (É que sai)=10 O arco (2,2) é substituído pelo Arco (3,1) Novo valor da função objetivo = valor anterior + c31.X31= (-5).10 = 1220.

23 Balanceamento de Fluxo no Ciclo de Compensação
20 X11= 10 Nova solução básica com arco (3, 1) no lugar do arco (2, 2) 40 X12 = 30 30 80 X31 = 10 X23 = 80 100 110 X33 = 20 X34 = 80 80 X31 (É que Entrar) = X22 (É que sai)=10 Novo valor da função objetivo = valor anterior + c31.X31= (-5).10 = 1220.

24 Melhoria da solução básica
Escolhendo o arco não-básico (3, 1) para entrar na próxima árvore básica deve-se determinar o arco básico do ciclo de compensação que será substituído. Sairá o arco básico do ciclo que se anular primeiro ao se aumentar o valor do fluxo no arco não-básico (3, 1) escolhido para entrar: neste caso será o arco (2, 2). O novo fluxo no arco (3, 1) será exatamente o valor do fluxo que passava pelo arco substituído (2, 2): assim x31 = 10 na nova árvore básica. Deve-se fazer o balanceamento dos fluxos nos arcos do ciclo a partir do novo valor de fluxo no arco (3, 1)= x31 = 10: assim X11 = = 10 X12 = = 30 X23 = = 80 X33 = = 20 X34 = 80 (não se altera pois não é do ciclo)  Novo valor da função objetivo = valor anterior + c31.X31= (-5).10 = 1220.

25 Nova solução básica com arco (3, 1) no lugar do arco (2, 2)
Aplicando-se o Passo 2 tem-se: D1 D2 D3 D4 Produção O1 10 30 5 C13 = +1 12 C14 = +1 4 40 O2 C21 = +2 2 C22 = +5 80 1 C24= +16 9 O3 13 C32 = +3 11 20 14 6 110 Demanda 100 230 Não há cij < 0: Árvore atual é ótima. X11 = 10  Remeter 10 unidades do produto da fábrica 1 ao depósito 1 X12 = 30  Remeter 30 unidades do produto da fábrica 1 ao depósito 2 X23 = 80  Remeter 80 unidades do produto da fábrica 2 ao depósito 3 X31 = 10  Remeter 10 unidades do produto da fábrica 3 ao depósito 1 X33 = 20  Remeter 20 unidades do produto da fábrica 3 ao depósito 3 X34 = 80  Remeter 80 unidades do produto da fábrica 3 ao depósito 4 Custo Ótimo mínimo de transporte = 1220.

26 Modelo de Transporte Simples
Método alternativo para cálculo dos coeficientes de custos marginais dos arcos não-básicos Método Modificado (Modi): Inspirado nas condições de folgas complementares da teoria da dualidade da Programação Linear. Maneira mais simples de se calcular os coeficientes de custo marginais.

27 Método Modificado (Modi):
Procedimento: Considere uma dada solução básica para o modelo Definir: custo marginal Li com i = 1, m para cada linha i da tabela, custo marginal Kj, com j = 1, n para cada coluna j da tabela, de forma que, para cada trajeto (ou arco) básico (i, j) da solução dada tem-se: Li + Kj = cij

28 Modi O sistema de equações resultante tem solução indeterminada:
(m + n) variáveis Li, Kj (m + n - 1) equações, uma para cada um dos arcos básicos da árvore associada a solução em estudo. Para levantar a indeterminação do sistema basta fazer, por exemplo, L1 = 0 e calcular por inspeção os demais valores de Li e Kj. Para o cálculo do valor do coeficiente de custo marginal de cada arco não-básico (i, j) usar a expressão: Cij = cij - (Li + Kj)

29 Exemplo do MODI Considere no exemplo anterior a tabela associada à solução inicial, obtida pela regra do custo mínimo, onde deseja-se calcular todos os coeficientes de custo marginal dos arcos não-básicos. Número de arcos básicos: (m + n - 1) = = 6. D1 D2 D3 D4 Produção O1 10 5 12 40 4 O2 2 30 50 1 9 80 O3 20 13 11 14 6 110 Demanda 100 230

30 Modelo de Transporte Simples
Aplicando-se o método Modi tem-se as variáveis L1, L2, L3, K1, K2, K3, K4, e o sistema de equações: L1+ K4 = 4  L2 + K2= 0 L2 + K3 = 1 L3 + K1 = 13 L3 + K3 = 14 L3 + K4 = 6 Fazendo-se L1= 0 tem-se: K4 = 4 L3 = 2, K3 = 12, K1 = 11, L2 = -11, K2 = 11. Cálculo dos Coeficientes de Custo Marginal: C11 = C11 - (L1 + K1 ) = (0 + 11) = -1 C12 = C12 - (L1 + K2 ) = 5 - (0 + 11) = -6  C13 = C13 - (L1 + K3 ) = 12 - (0 + 12) = 0  C21 = C21 - (L2 + K1 ) = 2 - ( ) = 2 C24 = C24 - (L2 + K4 ) = 9 - ( ) = 16 C32 = C32 - (L3 + K2 ) = 11 - (2 + 11) = -2 Candidatos Mantém o valor da FO Candidato

31 “Stepping Stone Algorithm” Para um Modelo de Minimização
Passo 1: Inicialização Determinar uma árvore básica inicial com (m + n - 1) arcos básicos. Ir ao Passo 2. Passo 2: Teste de Otimalidade Calcular os coeficientes de custos marginais dos arcos não-básicos. Se coeficiente de custo marginal > 0  solução atual é ótima. Parar. Se há coeficiente de custo marginal cij < 0  solução atual não é ótima. O arco (i, j) deve se tornar arco básico na próxima árvore básica. assim o arco (i, j) é escolhido para entrar. Ir ao Passo 3.

32 “Stepping Stone Algorithm”
Passo 3. Melhoria da Solução Achar ciclo de compensação formado pelo arco não-básico (i, j) escolhido para entrar e a árvore básica atual. No ciclo achar o arco básico (k, l) que se anula primeiro ao se aumentar o valor do fluxo no arco (i, j) que entra. O arco básico (k, l) sai e será substituído pelo arco (i, j). Efetuar o balanceamento de fluxo no ciclo, com todo o fluxo do arco (k, l) indo para o arco (i, j). Voltar ao Passo 2.

33 “Stepping Stone Algorithm”
Passo 2: Teste de Otimalidade - Modelos de Maximização Calcular os coeficientes de lucro marginal. Se coeficiente de lucro marginal < 0  Solução Atual é Ótima. Parar.  Se há coeficiente de lucro marginal lij > 0  solução atual não é ótima. O arco (i, j) deve se tornar arco básico na próxima árvore básica. Assim o arco (i, j) é escolhido para entrar Todo o restante do algoritmo é igual ao caso de mimimização

34 (1) ofertas e demandas desbalanceadas
Casos especiais (1) ofertas e demandas desbalanceadas  Podem ocorrer duas situações  excesso de oferta  criar destino fictício.  excesso de demanda  criar origem fictícia. Custos de transporte nos trajetos fictícios são nulos. Aplica-se o “Stepping Stone Algorithm” para o modelo ampliado e balanceado.

35 Casos especiais - (2) Condições proibidas de embarque e recepção – Trajetos proibidos
Quando há restrições adicionais, como a existência de trajetos proibidos entre determinadas origens e destinos do modelo: Basta bloqueá-los na tabela de aplicação do algoritmo, de forma a desconsiderá-los da solução. Ou seja, associar a cada um destes trajetos proibidos um custo de transporte muito alto na função objetivo

36 Casos Especiais - (3) Soluções degeneradas
Podem ocorrer a partir de duas situações:  (I) Na inicialização do algoritmo se o nº. de arcos básicos for menor que (m + n - 1), ou seja, a regra de inicialização não fornece uma árvore: Acrescentar convenientemente arcos com fluxo nulo até que se obtenha uma árvore (= grafo com m + n - 1 arcos e sem ciclos). (II) No Passo 3 do algoritmo durante a determinação do arco básico a ser substituído pelo arco não-básico escolhido para entrar pode se verificar um “empate na saída”, ou seja, mais de um arco básico do ciclo de compensação encontrado se anula para um dado valor de fluxo no arco que entra: Escolher qualquer um destes arcos básicos para sair e manter os demais, com fluxo nulo na próxima árvore básica (degenerada). Efetuar o balanceamento de fluxo para os demais arcos.

37 Exemplo com degeneração e desbalanceamento
Produção O1 10 5 12 4 40 O2 2 1 9 80 O3 13 11 14 6 100 Demanda 20 30 70 200\220 Há um excesso de produção no valor de = 20 unidades  criar um destino fictício DF com demanda associada de 20 unidades. Solução inicial para o novo modelo (balanceado) D1 D2 D3 D4 DF Produção O1 20 10 5 C13= +6 12 C14= +6 4 C1F= +8 40 O2 C21= -3 2 70 1 C24= +16 9 C2F= +13 80 O3 C31= -5 13 C32= -2 11 14 6 100 Demanda 30 220 Custo da solução inicial: 930

38 Exemplo com degeneração e desbalanceamento
Escolhendo para entrar o arco (3, 1) obtém-se o ciclo de compensação : D1 D2 D3 D4 DF Produção O1 20 (-1) 10 20 (+1) 5 12 4 40 O2 2 10 (-1) 70 (+1) 1 9 80 O3 (+1) 13 11 14 70 6 20 100 Demanda 30 220 Percebe-se que quando o fluxo no arco que entra (3, 1) é aumentado até o valor 10  os fluxos nos arcos básicos (2, 2) e (3, 3) se anulam configurando-se um “empate na saída”.

39 Exemplo com degeneração e desbalanceamento
Escolhendo, por exemplo, o arco (2, 2) para sair e ser substituído pelo arco (3, 1): Arco (3, 3) fica na árvore básica (degenerada) com fluxo nulo D1 D2 D3 D4 DF Produção O1 10 30 5 C13= +1 12 C14= +1 4  C1F= +3 40 O2 C21= +2 2  C22= +5 80 1  C24= +16 9  C2F= +13 O3 13  C32= 3 11 14 70 6 20 100 Demanda 220

40 Exemplo com degeneração e desbalanceamento
DF Produção O1 10 30 5 C13= +1 12 C14= +1 4 C1F= +3 40 O2  C21= +2 2  C22= +5 80 1  C24= +16 9  C2F= +13 O3 13  C32= +3 11 14 70 6 20 100 Demanda 220 Esta tabela corresponde a solução ótima (degenerada) com custo ótimo = custo anterior + C31.X31 = (-5).10 = 880. Valores ótimos de fluxo para os arcos básicos:  X11 = 10, X12 = 30, X23 = 80, X31 = 10, X33 = 0, X34 = 70, X3F = 20. Observe que o valor de fluxo igual a 20 no arco fictício (O3, DF) significa que 20 unidades do produto ficarão estocadas na origem 3.  Os arcos não-básicos tem fluxo nulo.

41 Exercícios Uma empresa tem 3 fábricas e 4 clientes, com as seguintes capacidades de produção e demandas relativas a um produto de interesse: Fábrica Capacidade Cliente Demanda F1 200 C1 140 F2 100 C2 120 F3 80 C3 90               C4 30 Total 380

42 Exercícios Os custos de transporte ($/por unidade) são os seguintes:
Clientes Fábricas C1 C2 C3 C4 F1 5 4 6 14 F2 2 9 8 10 F3 11 7 12 Com o objetivo de minimizar os custos de transportes, determinar o programa de embarque do produto de cada fábrica a cada cliente. Formule os modelos em Redes e de PL e aplique o Stepping Stone Algorithm. Inicialize o algoritmo com a Regra do Canto Esquerdo.

43 Exercícios 2. Uma companhia tem 3 depósitos e 4 clientes, com as seguintes capacidades mensais de estocagem e demanda para um dado produto: Depósito Capacidade Cliente Demanda D1 30 C1 10 D2 90 C2 100 D3 70 C3 C4 Total 190 210

44 Exercícios No contrato com os Clientes foram incluídas multas ($/unidade de produto faltante) associadas a eventuais faltas dadas por: $1 se faltar para o Cliente 1, $3 se faltar para o Cliente 3 e $2 se faltar para o Cliente 4. Os custos de embarque ($/por unidade) são os seguintes: Sabendo-se que obrigatoriamente o cliente C2 deve ser atendido completamente, encontrar o programa de embarque de mínimo custo. Formule um modelo de PL e aplique o Stepping Stone Algorithm. Inicialize o algoritmo com a Regra do Custo Mínimo.

45 Exercícios 3. Uma empresa tem 3 fábricas e 4 clientes, referentes a um determinado produto, e conhece-se os dados abaixo: Fábrica Capacidade mensal da produção Custo de produção ($/unidade) Cliente Demanda mensal Preço de venda ($/unidade) F1 85 50 C1 100 F2 90 30 C2 80 110 F3 75 40 C3 20 105 C4 125 Total 250 240

46 Exercícios Conhecem-se os custos de se manter o produto em estoque ($/unidade estocada) em cada Fábrica: $1 para estocagem na Fábrica 1, $2 para estocagem na Fábrica 2 e $3 para estocagem na Fábrica 3. Os custos de transporte ($/unidade) são: Local de Locais de Venda Fabricação C1 C2 C3 C4 F1 43 57 33 60 F2 30 49 25 47 F3 44 58 64 Encontrar o programa de distribuição que proporcione lucro máximo. Formule o modelo de PL e aplique o Stepping Stone Algorithm. Inicialize o algoritmo pela Regra do canto Esquerdo.


Carregar ppt "Pesquisa Operacional Livro: Introdução à Pesquisa Operacional"

Apresentações semelhantes


Anúncios Google