Escolar Documentos
Profissional Documentos
Cultura Documentos
Vamos considerar a situação descrita a seguir: temos que transportar produtos das várias origens onde são
estocados para vários destinos onde são necessários. Conhecemos os custos unitários de transporte de cada origem
para cada destino (Cij – custo unitário de transporte de cada origem i para cada destino j). Devemos decidir quanto
transportar de cada origem para cada destino (Xij – quantidade a ser transportada da origem i para o destino j).
O objetivo é completar a transferência dos produtos com menor custo possível. Em princípio, vamos supor
que a quantidade disponível nas origens seja exatamente igual ao total das necessidades nos destinos.
Origens Destinos
Disponibilidades Necessidades
50 1
1 100
100 2
2 170
120 3
Destinos j
D1 D2 Disponibilidades
Origens i
O1
O2
O3
270
Necessidades
270
Onde se lê:
• as disponibilidades nas origens;
• as necessidades nos destinos;
• os custos unitários de transporte de cada origem para cada destino.
Modelo linear do transporte
Restrições:
As quantidades retiradas das origens devem ser a disponibilidade em cada uma:
As quantidades transportadas para cada destino devem ser a necessidade em cada um deles:
O modelo descrito anteriormente pode apresentar também sistemas de transporte que não obedecem à
condição de equilíbrio entre oferta (disponibilidade nas origens) e demanda (necessidade de destinos).
O enquadramento no modelo se faz com a criação de origens ou destinos auxiliares para receber a diferença
entre oferta e demanda. Os custos unitários para origens e destinos auxiliares é zero. Na solução do modelo, as
quantidades que eventualmente sejam transportadas de origens auxiliares ficam faltando nos destinos. As
quantidades que são transportadas para destinos auxiliares, na verdade ficam depositadas nas origens.
Exemplos
D1 D2 D3
O1 R$ 10 R$ 12 R$ 9 20
O2 R$ 4 R$ 9 R$ 8 30
O3 R$ 6 R$ 12 R$ 10 10
60
25 36 5
66
Criando-se uma origem auxiliar para receber a diferença 66 − 60 = 6, teremos o sistema equilibrado:
D1 D2 D3
O1 R$ 10 R$ 12 R$ 9 20
O2 R$ 4 R$ 9 R$ 8 30
O3 R$ 6 R$ 12 R$ 10 10
A R$ 0 R$ 0 R$ 0 6
66
25 36 5
66
Uma solução possível para o problema é mostrada no quadro, onde o valor das células representa as
quantidades transportadas de cada origem para cada destino.
D1 D2 D3
O1 20 20
O2 5 25 30
O3 10 10
A 1 5 6
25 36 5
As quantidades 𝑥𝐴2 = 1 e 𝑥𝐴3 = 5 transportadas a partir da origem auxiliar A (variável dummy), na verdade,
ficam faltando nos destinos, isto é, o destino D2, recebe apenas 35 unidades. O destino D3 não recebe
nenhuma mercadoria.
2- RENT A CAR | Os automóveis podem ser devolvidos em localidades outras que aquelas onde foram
originalmente alugados.
Existem duas agências de locação (origens) com, respectivamente, 15 e 13 carros e três outras agências
(destino) necessitando de 12. 14 e 7 carros, respectivamente.
D1 D2 D3
O1 R$ 140 R$ 60 R$ 110 15
O2 R$ 70 R$ 90 R$ 120 13
28
12 14 7
33
D1 D2 D3
O1 R$ 140 R$ 60 R$ 110 15
O2 R$ 70 R$ 90 R$ 120 13
A R$ 0 R$ 0 R$ 0 5
33
12 14 7
33
Modelo fica:
D1 D2 D3
O1 0 R$ 60 × 14 R$ 110 × 1 15
O2 13
A 5
33
12 14 7
33
3- CONTRATO | Uma companhia tem 3 depósitos e 4 clientes com as seguintes capacidades mensais de
estocagem e demanda para um dado produto:
Porém a capacidade de produção é inferior à demanda. Logo, isso poderá gerar multas, determinadas em
contratos, conforme tabela a seguir (R$/unidade por produto faltante):
Cliente C1 C2 C3 C4
Multa (R$) 1 ∅ 3 4
C1 C2 C3 C4
D1 50 32 61 14
D2 80 52 35 33
D3 20 9 58 34
Destino
Disponibilidade
Origem C1 C2 C3 C4
D1
D2
D3
DUMMY
Demanda
Resolvendo este PL pelo Simplex, chega-se a solução ótima na 9ª iteração com o resultado da função
objetivo de R$ 4720,00, assim:
Destino
Disponibilidade
Origem C1 C2 C3 C4
D1 0 30 0 0 30
D2 0 0 60 30 90
D3 0 70 0 0 70
DUMMY 10 0 10 0 20
Com este resultado pode-se observar que o C1 não é atendido e o Cliente 3 (C3 ) também não em sua
totalidade.
A solução do problema do transporte, como todo problema representado por um modelo de programação
linear, pode ser obtida pelo método Simplex. Entretanto, devido a suas características especiais, podemos descrever
um método que, embora mantenha fases e critérios Simplex, é um algoritmo mais rápido e mais eficiente, pois tem
os cálculos mais especificados.
Exemplo
Validando as restrições:
1ª linha:
2ª linha:
3ª linha:
1ª coluna:
2ª coluna:
3ª coluna:
Função objetivo:
O método do canto noroeste garante a não formação de circuitos entre as variáveis básicas, além de
satisfazer as condições de contorno.
OBS.: Por não se tratar de um método mais sofisticado, “menos inteligente”, muitas vezes a solução encontrada não
será de boa qualidade, por isso pode-se optar por outros algoritmos de construção como os demonstrados a seguir.
Para este método, até que a solução esteja completa, escolher a célula de menor custo e atribuir a maior
quantidade possível.
Caso dê empate, escolher arbitrariamente a célula a ter a maior quantidade.
Geralmente, este método retorna uma qualidade superior em relação ao método do canto noroeste.
Exemplo
Inicialmente, escolher a célula de menor custo e colocar o máximo de quantidade possível. Neste caso, o
menor custo encontra-se em toda a linha da variável dummy. Então, aleatoriamente, escolho uma delas para
colocar a quantidade máxima possível.
Agora, entre as variáveis sem soluções, busca-se a variável com o menor valor. No caso, R$ 60,00 é o menor
custo, então atribui-se 14 na quantidade pois é o menor valor entre 14 e 15 (demanda e disponibilidade).
E, assim, sucessivamente.
Demanda 12 7 14 0 7
Solução Construída:
Demanda 12 14 7
Validando as restrições:
1ª linha:
2ª linha:
3ª linha:
1ª coluna:
2ª coluna:
3ª coluna:
Função objetivo:
Observa-se que o método do mínimo custo gerou uma solução com um custo menor do que a do método do
canto noroeste, isso geralmente acontece pois o método do mínimo custo é um algoritmo mais focado na
finalidade do problema, ou seja, no mínimo custo da função objetivo. Contudo, nenhuma das duas soluções
pode-se afirmar que é a ótima.
Penalidade em uma linha ou coluna é a diferença positiva entre os dois custos de menor valor na linha ou
coluna.
A ideia desse método é fazer o transporte com prioridade na linha ou na coluna que apresenta a maior
penalidade. Como o transporte é feito na célula de menor custo, tenta-se evitar com isso o transporte na célula de
custo maior, evitando-se assim incorrer num aumento de custo igual à penalidade calculada.
Descrição do método:
a. Calcular a penalidade para cada linha ou coluna. Escolher a linha ou coluna para transporte, que tenha a
maior penalidade. Caso haja empate, escolha arbitrariamente uma delas.
b. Transportar o máximo possível na linha ou coluna escolhida, elegendo a célula de menor custo unitário
de transporte. Esse procedimento zera a oferta ou demanda da célula correspondente. A linha ou coluna
que tenha sua disponibilidade zerada deve ser eliminada.
c. Retornar ao item a, até que todos os transportes tenham sido realizados.
Exemplo
Método: Vogel
QUADRO #1 D1 D2 D3 Disponibilidade DIFERENÇAS
O1 ? 140x11 ? 60x12 ? 110x13 15 110 – 60 = 50
O2 ? 70x21 ? 90x22 ? 120x23 13 90 – 70 =20
A ? 0x31 ? 0x32 ? 0x33 5 0 – 0 =0
Demanda 12 14 7
DIFERENÇAS 70 – 0 = 70 60 – 0 = 60 110 – 0 = 110 MAIOR DIFERENÇA
Na variável de menor custo na coluna onde há a maior diferença, atribuo a maior quantidade possível.
Método: Vogel
QUADRO #1 D1 D2 D3 Disponibilidade DIFERENÇAS
O1 ? 140x11 ? 60x12 ? 110x13 15 110 – 60 = 50
O2 ? 70x21 ? 90x22 ? 120x23 13 90 – 70 =20
A - 0x31 - 0x32 5 0x33 5 0 0 – 0 =0
Demanda 12 14 7 2
DIFERENÇAS 70 – 0 = 70 60 – 0 = 60 110 – 0 = 110 MAIOR DIFERENÇA
Método: Vogel
QUADRO #2 D1 D2 D3 Disponibilidade DIFERENÇAS
O1 ? 140x11 ? 60x12 ? 110x13 15 110 – 60 = 50
O2 ? 70x21 ? 90x22 ? 120x23 13 90 – 70 =20
A - 0x31 - 0x32 5 0x33 0
Demanda 12 14 2
DIFERENÇAS 140 – 70 = 70 90 – 60 = 30 120 – 110 = 10
Método: Vogel
QUADRO #2 D1 D2 D3 Disponibilidade DIFERENÇAS
O1 - 140x11 ? 60x12 ? 110x13 15 110 – 60 = 50
O2 12 70x21 ? 90x22 ? 120x23 13 1 90 – 70 =20
A - 0x31 - 0x32 5 0x33 0
Demanda 12 0 14 2
DIFERENÇAS 140 – 70 = 70 90 – 60 = 30 120 – 110 = 10
Quadro #3:
Método: Vogel
QUADRO #3 D1 D2 D3 Disponibilidade DIFERENÇAS
O1 - 140x11 ? 60x12 ? 110x13 15 110 – 60 = 50
O2 12 70x21 ? 90x22 ? 120x23 1 120 – 90 =30
A - 0x31 - 0x32 5 0x33 0
Demanda 0 14 2
DIFERENÇAS 90 – 60 = 30 120 – 110 = 10
Método: Vogel
QUADRO #3 D1 D2 D3 Disponibilidade DIFERENÇAS
Demanda 0 14 2
DIFERENÇAS 90 – 60 = 30 120 – 110 = 10
Quadro #4:
Método: Vogel
QUADRO #4 D1 D2 D3 Disponibilidade
Demanda 0 0 2
Solução Construída:
Método: Vogel
D1 D2 D3 Disponibilidade
Demanda 12 14 7
Validando as restrições:
1ª linha:
2ª linha:
3ª linha:
1ª coluna:
2ª coluna:
3ª coluna:
Função objetivo:
O método de Vogel não tem a pretensão de encontrar a solução ótima, todavia, neste problema a solução
encontrada é a ótima – isso pode ser confirmado com o resultado encontrado no Excel através do método simplex.
Assim, pode-se concluir que o método de Vogel normalmente traz soluções melhores que os métodos de canto
noroeste e mínimo custo.
O método de Stepping Stone é um método de melhoria, então obtida uma solução inicial para o quadro de
transportes, o passo seguinte é verificar se esta solução pode ser melhorada ou não.
Assemelha-se ao Simplex, porém com um número menor de passos, um número menor de iterações, assim é
capaz de obter, também a solução ótima do problema.
Exemplo
Escolhido, arbitrariamente, aplicar o método de Stepping Stone a partir da solução encontrada no método
do canto noroeste.
O importante é estabelecer um critério de parada, para este método é que todos os caminhos somam custo
total não negativo.
Assim como no Simplex a forma como se deve verificar se a solução pode ser melhorada ou não é tirando
uma variável que esteja na base (variável básica) e colocando uma variável que está fora da base (variável não
básica). Então se analisa a solução obtida, se melhorou ou não.
Então no quadro, acima, se vai investigar cada uma das variáveis que estão fora da base e ver se elas
conseguem melhorar a solução, são os caminhos fechados. Inicialmente, temos que supor que se esteja carregando
pelo menos 1 unidade do item em uma variável fora da base.
O problema é que se estoura algumas restrições, assim deve-se diminuir o valor de outra variável.
Causa-se um outro problema na segunda coluna. Também, estoura-se outra restrição. Então, para ajustar
diminui-se 1 unidade na variável x22 o que satisfaz todas as restrições.
Para ver se a solução é viável ou não, analisar o benefício que ela causou:
Demanda 12 14 7
Demanda 12 14 7
Logo, como se quer reduzir o custo e há um benefício máximo de −100 em cada unidade de x21 então,
coloca-se a maior quantidade possível nesta variável.
1°) Observa-se pelo caminho quais as variáveis em que o valor diminui:
x21 → x11 → x12 → x22 = +70 −140 +60 −90 = −100
2°) Qual a menor quantidade que tenho nestas variáveis:
Mínimo (x11, x22) = Mínimo (12, 11)
3°) Pegar o valor mínimo e substituir no valor de x21; somar no valor de x12 (3 + 11); subtrair nos valores de
x11 (12−11) e x22 (11−11), de tal maneira que o x22 se anulará (sempre o mínimo se anulará):
Demanda 12 14 7
Agora, fazer novamente os caminhos fechados (lembrando que o critério de parada é quando todos os
caminhos somam custo total não negativo.
Demanda 12 14 7
Demanda 12 14 7
Demanda 12 14 7
Demanda 12 14 7
3°) Pegar o valor mínimo e substituir no valor de x13; somar no valor de x21; subtrair nos valores de x23 e x11,
de tal maneira que o x11 se anulará (sempre o mínimo se anulará):
Demanda 12 14 7
Agora, fazer novamente os caminhos fechados (lembrando que o critério de parada é quando todos os
caminhos somam custo total não negativo.
Demanda 12 14 7
Demanda 12 14 7
Demanda 12 14 7
Demanda 12 14 7
Critério de parada satisfeito porque não há nenhum dos caminhos que oferece uma melhoria para esta
solução. Enfim, tem-se a solução ótima.
O caso da Maximização
Alguns modelos de programação linear, embora tenham objetivo de maximização, são problemas de
transportes.
Exemplo
Quadro Original
D1 D2 D3 Disponibilidade
O1 - 140x11 - 60x12 - 110x13 15
O2 - 70x21 - 90x22 - 120x23 13
A - 0x31 - 0x32 - 0x33 5
Demanda 12 14 7
Inverter os custos no quadro, calculando a diferença de cada valor em relação ao maior que receberá zero.
Novo Quadro
D1 D2 D3 Disponibilidade
Demanda 12 14 7
Este novo quadro representa o prejuízo ou a perda de oportunidade que tem-se quando se deixa de usar a
variável que trazia o maior benefício. Então, esse novo quadro deve ser minimizado e não maximizado, logo
devo utilizar o algoritmo do problema de transporte e assim, obter-se-á a melhor solução possível de um
problema de maximização.
OBS.: Após calcular o Novo Quadro, para a função objetivo, pegar a quantidades do Novo Quadro e
multiplicar por seus respectivos coeficientes no Quadro Original.
O problema da degenerescência
Para uma solução básica inicial deve, sempre ter, número de linhas + número de colunas – 1 = número de
variáveis básicas que se deve ter, também, comumente equacionado como: 𝑚 + 𝑛 − 1.
Exemplo
4-
D1 D2 A Disponibilidade
O1 ? 25x11 ? 20x12 ? 0x13 2000
O2 ? 30x21 ? 25x22 ? 0x23 1000
O3 ? 20x31 ? 15x32 ? 0x33 1500
Demanda 2000 2000 500
Para a solução deste problema, somente linha ou coluna deverá ter as demais variáveis como não básicas,
pois para este exemplo a regra 𝑚 + 𝑛 − 1, não será atendida, então adapta-se através da degeneração,
conforme demonstrado a seguir.
VARIÁVEL DEGENERADA
Isso satisfaz a regra 𝑚 + 𝑛 − 1 = variáveis básicas que são: x11, x12, x22, x23, x33, 5 variáveis = 3 + 3 – 1.
Agora resolve-se o problema normalmente pelo método de Stepping Stone.
Método: Stepping Stone
QUADRO #4 D1 D2 A Disponibilidade
O1 2000 25x11 - 20x12 - 0x13 2000
O2 0 30x21 1000 25x22 - 0x23 1000
O3 - 20x31 1000 15x32 500 0x33 1500
Demanda 2000 2000 500
1- Uma empresa distribuidora tem três depósitos que estocam respectivamente 160, 200 e 100 unidades de
um produto, e deve abastecer quatro clientes cujos pedidos são de 100, 80, 120 e 80 unidades,
respectivamente. Os custos unitários de transporte dos depósitos para os clientes estão na tabela:
C1 C2 C3 C4
D1 2,1 1,8 1,8 1,8
D2 1,5 2,4 1,8 2,1
D3 2,4 1,5 2,4 1,8
2- O quadro de custos devido à distribuição de um produto a partir das origens O para os destinos D é o
seguinte:
D1 D2 D3 Disponibilidades
O1 10 12 - 12
O2 12 14 15 18
O3 6 8 10 30
Necessidades 10 20 30
3- Três armazéns abastecem cinco pontos de venda. O quadro abaixo mostra os custos de distribuição, a
capacidade dos armazéns e as necessidades nos pontos de vendas. A companhia responsável pelos
armazéns não quer abastecer o ponto de venda P4 a partir do armazém A1, nem o ponto de venda P3 a partir
do armazém A3.
P1 P2 P3 P4 P5 Disponibilidades
A1 16 14 12 12 16 170
A2 12 4 14 8 8 60
A3 8 6 4 14 10 90
Necessidades 15 69 36 18 42
Respostas
1- 𝑥13 = 100, 𝑥14 = 60, 𝑥21 = 100, 𝑥23 = 20, 𝑥32 = 80, 𝑥34 = 20, 𝑍 = 630
2- 𝑥12 = 12, 𝑥23 = 18, 𝑥31 = 10, 𝑥32 = 8, 𝑥33 = 12, 𝑍 = 658
3- 𝑥13 = 36, 𝑥22 = 42, 𝑥24 = 18, 𝑥31 = 15, 𝑥32 = 27, 𝑥35 = 42, 𝑍 = 1446