Sie sind auf Seite 1von 38

Prof.

Geraldo Nunes Silva

Estas notas de aula são Basedas no livro:


“Hillier, F. S. e G. J. Lieberman. Introdução à Pesquisa Operacional,
Campus, 3a ed., 1988”
Agradeço a Professora Gladys Castillo do Departamento de Matemática da
Universidade de Aveiro por ter permitido a utilização de alguns slides
preparados pelo um grupo de pessoas de seu departamento
Aula de Hoje
• O método Simplex Aplicado ao Problema de Transporte
(PT).

Obtenção de uma SBF inicial.


 Método do canto N-W;
 Método do mínimo da matriz de custos;
 Método de Vogel.

 Obtenção da solução óptima.


 Método de Dantzig.
Problema de Transporte. Exemplo Protótipo

Uns dos principais produtos da firma Lactosal é o leite.

Os pacotes de leites são empacotados


em 3 fábricas
e depois são distribuídos de caminhão
para quatro armazéns

Conhecendo os custos de transporte, a procura prevista


para cada armazém e as capacidades de produção de
cada fábrica, pretende-se:

OTIMIZAR O PROGRAMA DE DISTRIBUIÇÃO DIÁRIO DO


LEITE.
Problema de Transporte. Exemplo Protótipo

Os dados dos custos de uma carga de leite para cada combinação


fábrica-armazém e das ofertas (produção) e procuras, em cargas de
caminhão/dia, são os seguintes:

Custo por carga de


caminhão
24 cargas diárias
de leite devem ser Armazéns
produzidas e Fábricas 1 2 3 4 Oferta
distribuídas
1 1 2 3 4 6

2 4 3 2 4 8

3 0 2 2 1 10

Procura 4 7 6 7
Quadro do Problema de Transporte
Custo por carga de
camião
Armazéns
Fábricas 1 2 3 4 Oferta

1 1 2 3 4 6

2 4 3 2 4 8

3 0 2 2 1 10

Procura 4 7 6 7

Destino
1 2 3 4 Oferta
Origem
1 2 3 4
1 x11 x12 x13 x14 6
4 3 2 4
2 x21 x22 x23 x24 8
0 2 2 1
3 x31 x32 x33 x34 10

Procura 4 7 6 7 24 =24

Para o exemplo protótipo a oferta total é igual


à procura total
Algoritmo para a resolução do PT.

Obtenção de uma SBF


inicial

A SBF verifica o Sim


critério de
otimalidade?
FIM !!!
a solução é
Não ótima
Mover-se para uma SBF
"melhor"
Algoritmo para a resolução do PT.
• Como o problema de transporte é apenas um tipo especial de
problema de programação linear, ele poderia ser resolvido aplicando o
método simplex exatamente como vimos anteriormente

• Para tanto, teríamos que acrescentar variáveis artificiais e usando o


método “big M”, por exemplo, proceder as iterações do método
simplex.

• Entretanto, veremos na aula de hoje como explorar esta estrutura


especial para obtermos um método muito mais eficiente o qual
chamaremos método simplex para o problema de transporte

• Cabe observar que outros tipos de estruturas especiais podem ser


exploradas de forma a obter algoritmos eficientes (veremos em outra
aula como explorar a estrutura especial do problema de designação)
Passo 1: Obtenção de uma SBF Inicial

• Qualquer SBF do problema de transporte tem no máximo


m+n-1 variáveis básicas
Qualquer restrição de oferta é igual à soma das restrições de demanda menos
a soma das outras restrições de oferta e, cada restrição de demanda também é
igual a soma das restrições de oferta menos a soma das outras restições de
demanda.

• Assim vamos contruir uma SBF inicial selecionando m+n–1


variáveis, uma de cada vez e, posteriormente, vamos atribuir
valores a essas variáveis.

• Diversos métodos foram propostos para obteção de uma SBF


inicial, vejamos a seguir alguns deles.
Passo 1: Obtenção de uma SBF Inicial
Método do Canto Noroeste
A variável básica escolhida é, em cada quadro, a variável
situada no canto superior esquerdo (daqui o nome do canto do
NW (NorthWest).

A primeira variável básica escolhida será sempre x11, depois que


tenha sido traçada a coluna 1 ou a linha 1,
será escolhida como variável básica x12 ou x21 respectivamente, e
assim sucessivamente até terem sido traçadas todas as linhas e todas
as colunas.

Este método é de aplicação muito fácil, mas tem como grande inconveniente o fato de
não considerar os custos na identificação da SBF inicial.
Exemplo Protótipo. Método do Canto Noroeste

1º. x11 =min (4,6 )= 4 1 2 3 4


6 2
2º. x12 =min (7,2 )= 2 4 2
4 3 2 4
8 3
3º. x22 =min (5,8 )= 5 5 3
4º. x23=min (6,3 )= 3 0 2 2 1
10 7
3 7
5º. x33=min (3,10 )= 3
4 7 6 7
6º. x34=min (7,7 )= 7
5 3

SBF inicial: X0 = ( 4 , 2, 0, 0, 0, 5, 3, 0, 0, 0, 3, 7 ) ; z0 = 42
Passo 1: Obtenção de uma SBF Inicial
Método do Mínimo da Matriz dos Custos.
A variável básica escolhida é a variável que corresponde ao
menor custo (em caso de empate a escolha é arbitrária).

A primeira variável básica escolhida será sempre a de menor


custo, depois será escolhida como variável básica a de menor
custo no quadro resultante relativo ao que foi traçado, e assim
sucessivamente, até terem sido traçadas todas as linhas e
todas as colunas.

Este método, em princípio, fornece soluções iniciais mais próximas da solução ótima
que o método anterior, já que são considerados os custos na identificação da SBF
inicial.
Exemplo Protótipo.Método do Mínimo dos Custos

1º: min (cij )= c31= 0


 x31 =min (4,10)= 4 1 2 3 4
2º: min (cij) =c34= 1 
6 6
x34 = min ( 7, 6 )= 6 4 3 2 4
1 1 8 2 1
3º: min (ci) = c12=c23= 2 6
 x12 = min ( 7, 6 ) = 6 0 2 2 1
10 6
4º: min (cij) =c23= 2 4 6
 x23= min ( 6, 8 ) = 6
5º: min (cij)= c22= 3  4 7 6 7
x22= min ( 2, 1 ) = 1 1 1
6º: min (cij) =c24= 4 
x24=min (1, 1 ) =1

SBF inicial: X0 = ( 0 , 6, 0, 0, 0, 1, 6, 1, 4,0, 0,6) ; z = 38


Passo 1: Obtenção de uma SBA Inicial.
Método de Vogel
A variável básica escolhida é, em cada quadro, a variável que
corresponde ao menor custo da linha ou coluna associada à
maior das diferenças entre os dois menores custos de cada
linha e cada coluna(em caso de empate a escolha é arbitrária).

Este método identifica uma SBF inicial, em geral, melhor do que as obtidas pelos
métodos anteriores.
Exemplo Protótipo.Método de Vogel.
Quadro 1

1º: acrescentar uma linha e


uma coluna, com as 1 2 3 4 1
diferenças entre os dois 6
menores custos, em coluna e
em linha respectivamente. 4 3 2 4 1 8
2º: Selecionar a maior das
0 2 2 1 1
diferenças: max (diferenças)
7 10 3
= 3 , coluna 4.

3º: Selecionar o menor dos 1 0 0 3 mínimo


custos para esta coluna:
min (cij: j=4)= c34= 1 4 7 6 7 máximo
 x34= min ( 7, 10 ) = 7

Iteração 1: x34= 7
Exemplo Protótipo. Método de Vogel.
Quadro 2
1º: calcular as novas
diferenças relativas apenas
aos elementos não traçados
1 2 3 4
2º: Selecionar a maior das 1 6
diferenças:
max (diferenças) = 2 e 4 3 2 4
1 8
corresponde à linha 3.

0 2 2 1
3º: Selecionar o menor dos 3 7
2 3
custos para esta linha:
min (cij: i=3)= c31= 0 1 0 0
 x31= min ( 4, 3 ) = 3
4 7 6
máximo
1 mínimo

Iteração 2: x31= 3
Exemplo Protótipo. Método de Vogel.
Quadro 3

1º: calcular as novas mínimo


diferenças relativas
apenas aos elementos 1 2 3 4
não traçados 1 1 6 5
4 3 2 4
2º: Selecionar a maior 1 8
das diferenças :
max (diferenças) = 3
0 2 2 1
e corresponde à coluna 1.
3 7
3º: Selecionar o menor 3 1 1
dos custos para esta
coluna: 4 7 6
min (cij: j=1) = c11= 1
 x11= min ( 1, 6 ) = 1 1 máximo

Iteração 3: x11= 1
Exemplo Protótipo. Método de Vogel
Quadro 4

1º: calcular as novas


diferenças relativas
apenas aos elementos não mínimo
traçados: todas são iguais
a 1, pelo que pode ser 1 2 3 4 6 5
escolhida qualquer delas . 1 5 1
4 3 2 4 8
2º: Selecionar a coluna 2 1
e o menor dos seus custos :
min (cij: j=2) = c12= 2 2 1
0 2
 x12= min ( 7,5 ) = 5
3 7
1 1
4 7 6
1 2
Iteração 4: x12= 5
Exemplo Protótipo. Método de Vogel
Quadro 5

As células restantes
podem ser preenchidas
imediatamente: 1 2 3 4
x22= 2 1 5
x23= 6
4 3 2 4
2 6 8
0 2 2 1
3 7

2 6
SBF inicial: X0 = ( 1 , 5, 0, 0, 0, 2, 6, 0, 3,0, 0,7) ; z = 36
Passo 1: Obtenção de uma SBF Inicial.
Exemplo Protótipo

mais fácil Método SBF inicial f.o. "pior" SBF

Canto do NW X0 = ( 4 , 2, 0, 0, z0 = 42
0, 5, 3, 0,
0, 0, 3, 7)
Mínimo de custos z0 = 38
X0 = ( 0 , 5, 1, 0,
0, 2, 6, 0,
4, 0, 0, 6)
Voguel z0 = 36
X0 = ( 1 , 5, 0, 0,
0, 2, 6, 0,
3, 0, 0, 7) "melhor"
menos fácil
SBF
Passo 2: Obtenção da solução ótima
Método de Dantzing. Critério de otimalidade

Determinar a solução dual complementar


ui , vj , ( i=1,2…,m , j=1,2…,n ),
por resolução do Sistema de Dantzig:
ui + vj = cij ( i , j )  IB

A solução dual é FIM


factível: Sim a solução é
ui + vj- cij 0 , ótima !!!
( i , j )  IB ?

Não
Passar ao passo seguinte
Obtenção da solução ótima.Método de Dantzing.
Passo 1: Critério de otimalidade.

 O primeiro passo, que consiste em testar a otimalidade da SBF


atual pode ser executado recorrendo à Dualidade.
Para isso é necessário determinar a correspondente solução
dual.
 Enquanto na apresentação tabular do método simplex esta
solução pode ser lida diretamente no quadro respectivo, com a
apresentação tabular do problema de transporte isso não
acontece.
Contudo, atendendo à simplicidade da estrutura do problema
dual de transporte,
é fácil determinar a solução dual.
Formulação do Problema Dual de Transporte.
Custo por carga de
camião
Armazéns
Fábricas 1 2 3 4 Oferta

1 1 2 3 4 6

2 4 3 2 4 8
Diagrama de Tucker
3 0 2 2 1 10

Procura 4 7 6 7 Problema primal


x110 x120 x130 x140 x210 x220 x230 x240 x310 x320 x330 x340 Max w
u1 livre 1 1 1 1 = 6
u2 livre 1 1 1 1 = 8
u3 livre 1 1 1 1 = 10
v1 livre 1 1 1 = 4
v2 livre 1 1 1 = 7
v3 livre 1 1 1 = 6
v4 livre 1 1 1 = 7












Min z 1 2 3 4 4 3 2 4 0 2 2 1
Problema dual
Formulação do Problema Dual de Transporte.
Custo por carga de
camião
Armazéns
Maximizar w = 6 u1 + 8 u2 + 10 u3 +
Fábricas 1 2 3 4 Oferta

1 1 2 3 4 6
4 v1 + 7 v2 + 6 v3 + 7 v4
2 4 3 2 4 8 sujeito a:
3 0 2 2 1 10
u1 + v1  1
Procura 4 7 6 7
u1 + v2  2
u1 + v3  3
u1 + v4  4
u2 + v1  4
u2 + v2  3
u2 + v3  2
u2 + v4  4
u3 + v1  0
u3 + v2  2
u3 + v3  2
u3 + v4  1
ui , v j livres ( i=1,2,3; j=1,2,3,4 )
Exemplo Protótipo. Sistema de Dantzing
Para a SBF inicial obtida pelo Método do Canto N-W
X0 = ( 4 , 2, 0, 0, 0, 5, 3, 0, 0, 0, 3, 7 ) tem-se:

De acordo com a x11= 4 u1 + v1 = 1


propriedade das folgas
complementares, a cada x12 = 2 u1 + v2 = 2
variável básica do problema
primal se encontra associada
uma restrição ativa no x22 = 5 u2 + v2 = 3
problema dual .
x23 = 3 u2 + v3 = 2

Sistema de Dantzig x33 = 3 u3 + v3 = 2


para a SBF atual

x34 = 7 u3 + v4 = 1
Exemplo Protótipo. Obtenção da solução ótima.
Passo 1: Critério de Optimalidade
1º. Determinar a solução dual. u1 =0

u1 + v1 = 1 v1 =1
Dado que uma das (m+n)
restrições do problema primal é
redundante, este sistema de u1 + v2 = 2 v2 =2
equações é indeterminado de
grau 1, pelo que a sua resolução
é efetuada atribuindo um valor u 2 + v2 = 3 u2 =1
arbitrário a qualquer das
variáveis duais e calculando a
partir desta as restantes u2 + v3 = 2 v3 =1
( é habitual fazer u1 =0 )
u3 + v3 = 2 u3 =1

u3 + v4 = 1 v4 =0
Obtenção da solução ótima.
Passo 1: Critério de Otimalidade
1º. Determinar a solução dual.

Esta solução para as variáveis duais pode ser obtida


diretamente no quadro de transporte correspondente à SBF
associada.
Em síntese, fixando u1 =0, desloca-se em linha através das
células correspondentes às variáveis básicas, para obter os
vj. Uma vez obtidos estes, desloca-se em coluna através das
células correspondentes às variáveis básicas
para obter os ui .
Exemplo Protótipo. Obtenção da solução ótima.
Passo 1: Critério de Otimalidade.
1º. Determinar a solução dual.
(2)
u1+ v2=2 (4)
u2+ v3=2 (6)
u3+ v4=1
 0 + v2=2  1 + v3=2  1 + v4=1
(1)
u1+ v1=1
 0 + v1=1 v1=1 v2=2 v3=1 v4=0
1 2 3 4
(3)
u2+ v2=3 u1=0 6
4 2
 u2+ 2 =3
4 3 2 4
(5)
u2=1 5 3 8
u3+ v3=2
 u3+ 1=2 0 2 2 1
u3=1 10
3 7

4 7 6 7 24
Obtenção da solução ótima.
Passo 1: Critério de Otimalidade
Como são satisfeitas as restrições duais de igualdade do
Sistema de Dantzig que correspondem às variáveis primais
básicas, resta apenas verificar se as restantes restrições duais
de desigualdade correspondentes às variáveis primais não
básicas do primal, são igualmente satisfeitas,
o que significa que a solução dual é factível e
consequentemente
a solução primal associada é ótima.

Isto é equivalente a verificar que todos os custos reduzidos


para as variáveis não básicas sejam não positivos.
A verificação de que ui + vj  cij , ( i , j )  IB , é equivalente a (ui + vj ) - cij  0 ,
sendo o primeiro membro desta expressão de obtenção imediata no quadro de
transporte.
Exemplo Protótipo. Obtenção da solução ótima.
Passo 1: Critério de Otimalidade
2º. Calcular os custos reduzidos para as variáveis não básicas.
(2) u1+ v4 -4 (4 )
u2+ v4 -4
(1) u1+ v3 -3 = 0+ 0 -4=-4 = 1+ 0 -4=-3
= 0+ 1 -3=-2
v1=1 v2=2 v3=1 v4=0
1 2 3 4
( 3 )u +
v1 -4
u1=0 6
2 4 2 -2 -4
= 1+ 1 -4=-2 4 3 2 4
u2=1 5 3 8
(5)u3+ v1 -0 -2 -3
= 1+ 1 -0= 2 0 2 2 1
u3=1 10
2 1 3 7
(6)u3+ v2 -2
4 7 6 7 24
= 1+ 2 -2= 1
Exemplo Protótipo. Obtenção da solução ótima.
Passo 1: Critério de Otimalidade
3º. Existe algum ui + vj- cij > 0 , ( i , j )  IB ?

v1=1 v2=2 v3=1 v4=0


Esta solução não é
1 2 3 4
ótima, pois existem u1=0 6
valores positivos para 4 2 -2 -4
ui + vj- cij nas células 4 3 2 4
(3,1) e (3,2), o que u2=1 5 3 8
-2 -3
significa que as
0 2 2 1
correspondentes u3=1 10
restrições duais não 2 1 3 7
estão satisfeitas.
4 7 6 7 24
Exemplo Protótipo. Obtenção da solução ótima.
Passo 2: Critério de Entrada
A variável a entrar na base é escolhida de acordo com o critério:

max {ui + vj - cij : ui + vj - cij> 0 }


Em caso de empate
a escolha é
arbitrária. v1=1 v2=2 v3=1 v4=0
1 2 3 4
u1=0 6
4 2 -2 -4
4 3 2 4
u2=1 5 3 8
-2 -3
máximo
0 2 2 1
u3=1 10
2 1 3 7
A variável a entrar 4 7 6 7 24
é x31
Obtenção da solução ótima.
Passo 3: Critério de Saída
1º. Selecionar o percurso relativo à variável que entra atribuindo às
células nele incluídas sinais de - ou + .
Ao incrementar a variável básica que entra desde zero até um valor positivo 0,
inicia-se um “processo em cadeia" que garante que as restrições de oferta e
procura continuem satisfeitas. Este processo segue um percurso no quadro a partir
da célula da variável que entra, onde são identificadas quais são as células onde
será preciso subtrair o valor 0, (com sinal -) e aquelas onde será preciso adiciona-
lo (com sinal +).
Tudo com o objetivo de as somas em cada linha e coluna permanecerem inalteradas.

2º. Selecionar a variável que sai de acordo com o critério:

min {xij  percurso relativo à variável que entra : xij tem sinal -} = 0

Em caso de empate a escolha é arbitrária.


Exemplo Protótipo. Obtenção da solução ótima.
Passo 3: Critério de Saída

Determinar a variável que sai.

1º. Selecionar o percurso


relativo à variável x31
atribuindo às células nele - +
incluídas sinais de
- ou + .
- +
2º. Selecionar a variável
que sai:
0 = min ( 4, 5, 3 ) = 3 x31
 a variável x33 sai -

mínimo
Obtenção da solução ótima.
Passo 4: Obtenção de uma nova SBF

A nova SBF obtém-se adicionando e subtraindo às variáveis


que formam o ciclo o valor de 0, consoante estejam
afetadas com - ou + , respectivamente;
as restantes variáveis mantêm os seus valores inalterados.
Exemplo Protótipo.Obtenção da solução ótima.
Passo 4: Obtenção de uma nova SBF
1 2 3 4
- 4 2 +
4 3 2 4
X1 = ( 1 , 5, 0, 0, z1 = 36
0, 2, 6, 0, - 5 3 +
3, 0, 0, 7 ) 0 2 2 1
x31 3 - 7
x12=2 + 3 = 5
x23=3 +3 = 6
x11=4 -3 = 1 1 2 3 4
1 5
x22=5 -3 = 2 3 4
4 2
x23=3 -3 = 0 2 6
0 2 2 1
x13= 3
3 0 7
Exemplo Protótipo. Obtenção da solução ótima.
Iteração 2, Passo 1: Critério de Otimalidade.
1º. Determinar a solução dual.
(2)
u1+ v2=2 (4)
u2+ v3=2 (6)u3+ v4=1
 0 + v2=2  1 + v3=2  -1 + v4=1
(1)
u1+ v1=1
 0 + v1=1 v1=1 v2=2 v3=1 v4=2
1 2 3 4
(3)
u2+ v2=3 u1=0 6
1 5
 u2+ 2 =3
4 3 2 4
(5)
u2=1 2 6 8
u3+ v1=0
 u3+ 1=0 0 2 2 1
u3=-1 10
3 7

4 7 6 7 24
Exemplo Protótipo. Obtenção da solução ótima.
Iteração 2, Passo 1: Critério de Otimalidade

2º. Calcular os custos reduzidos para as variáveis não básicas.

(2)u1+ v4 -4 (4 )
u2+ v4 -4
(1) u1+ v3 -3 = 0+2 -4=-2 = 1+ 2 -4=-1
= 0+ 1 -3=-2
v1=1 v2=2 v3=1 v4=2
1 2 3 4
(3)u2+ v1 -4
u1=0 6
1 5 -2 -2
= 1+ 1 -4=-2 4 3 2 4
u2=1 2 6 8
(5) -2 -1
u3+ v2-2
0 2 2 1
=-1+ 2 -2= -1 u3=-1 10
3 -1 -2 7
(6)u3+ v3 -2 4 7 6 7
=-1+ 1 -2= -2
Exemplo Protótipo. Obtenção da solução ótima.
Iteração 2, Passo 1: Critério de Otimalidade

3º. Existe algum ui + vj- cij > 0 , ( i , j )  IB ?

v1=1 v2=2 v3=1 v4=2


1 2 3 4
u1=0 6
Esta solução é 1 5 -2 -2
ótima, pois para 4 3 2 4
todas as variáveis u2=1 2 6 8
-2 -1
não básicas 0 2 2 1
ui + vj - cij  0 u3=-1 10
3 -1 -2 7

4 7 6 7

Solução ótima: X1 =(1 , 5, 0, 0, 0, 2, 6, 0, 3, 0, 0, 7); z1 = 36

Das könnte Ihnen auch gefallen