Você está na página 1de 38

Prof.

Geraldo Nunes Silva


Estas notas de aula so Basedas no livro: Hillier, F. S. e G. J. Lieberman. Introduo Pesquisa Operacional, Campus, 3a ed., 1988 Agradeo a Professora Gladys Castillo do Departamento de Matemtica da Universidade de Aveiro por ter permitido a utilizao de alguns slides preparados pelo um grupo de pessoas de seu departamento

Aula de Hoje
O mtodo Simplex Aplicado ao Problema de Transporte (PT).
Obteno

de uma SBF inicial. Mtodo do canto N-W; Mtodo do mnimo da matriz de custos; Mtodo de Vogel.

Obteno da soluo ptima. Mtodo de Dantzig.

Problema de Transporte. Exemplo Prottipo


Uns dos principais produtos da firma Lactosal o leite.

Os pacotes de leites so empacotados

e depois so distribudos de caminho para quatro armazns Conhecendo os custos de transporte, a procura prevista para cada armazm e as capacidades de produo de cada fbrica, pretende-se:

em 3 fbricas

OTIMIZAR O PROGRAMA DE DISTRIBUIO DIRIO DO LEITE.

Problema de Transporte. Exemplo Prottipo


Os dados dos custos de uma carga de leite para cada combinao fbrica-armazm e das ofertas (produo) e procuras, em cargas de caminho/dia, so os seguintes:
Custo por carga de caminho Armazns Fbricas 1 2 3 Procura 1 1 4 0 4 2 2 3 2 7 3 3 2 2 6 4 4 4 1 7 Oferta 6 8 10

24 cargas dirias de leite devem ser produzidas e distribudas

Quadro do Problema de Transporte


Custo por carga de camio Armazns Fbricas 1 2 3 Procura 1 1 4 0 4 2 2 3 2 7 3 3 2 2 6 4 4 4 1 7 Oferta 6 8 10

Destino Origem 1 2 3 Procura

1
1 x11 4 x21 0 x31 x32 x22 x12

2
2 x13 3

3
3

4
4 x14 2 4 x24 2 1 x34

Oferta 6 8 10 24 =24

x23 2 x33

Para o exemplo prottipo a oferta total igual procura total

Algoritmo para a resoluo do PT.


Obteno de uma SBF inicial

A SBF verifica o critrio de otimalidade?

Sim FIM !!! a soluo tima

No

Mover-se para uma SBF "melhor"

Algoritmo para a resoluo do PT.


Como o problema de transporte apenas um tipo especial de problema de programao linear, ele poderia ser resolvido aplicando o mtodo simplex exatamente como vimos anteriormente Para tanto, teramos que acrescentar variveis artificiais e usando o mtodo big M, por exemplo, proceder as iteraes do mtodo simplex. Entretanto, veremos na aula de hoje como explorar esta estrutura especial para obtermos um mtodo muito mais eficiente o qual chamaremos mtodo 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 designao)

Passo 1: Obteno de uma SBF Inicial


Qualquer SBF do problema de transporte tem no mximo m+n-1 variveis bsicas Qualquer restrio de oferta igual soma das restries de demanda menos a soma das outras restries de oferta e, cada restrio de demanda tambm igual a soma das restries de oferta menos a soma das outras resties de demanda.

Assim vamos contruir uma SBF inicial selecionando m+n1 variveis, uma de cada vez e, posteriormente, vamos atribuir valores a essas variveis.
Diversos mtodos foram propostos para obteo de uma SBF inicial, vejamos a seguir alguns deles.

Passo 1: Obteno de uma SBF Inicial Mtodo do Canto Noroeste


A varivel bsica escolhida , em cada quadro, a varivel situada no canto superior esquerdo (daqui o nome do canto do NW (NorthWest).
A primeira varivel bsica escolhida ser sempre x11, depois que tenha sido traada a coluna 1 ou a linha 1, ser escolhida como varivel bsica x12 ou x21 respectivamente, e assim sucessivamente at terem sido traadas todas as linhas e todas as colunas. Este mtodo de aplicao muito fcil, mas tem como grande inconveniente o fato de no considerar os custos na identificao da SBF inicial.

Exemplo Prottipo. Mtodo do Canto Noroeste


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

1 4 4 5 0

3 2 3 2 3 7

4 4 1

2
3 2

6 8 10

2 3 7

7 5

6 3

SBF inicial: X0 = ( 4 , 2, 0, 0, 0, 5, 3, 0, 0, 0, 3, 7 ) ; z0 = 42

Passo 1: Obteno de uma SBF Inicial Mtodo do Mnimo da Matriz dos Custos.
A varivel bsica escolhida a varivel que corresponde ao menor custo (em caso de empate a escolha arbitrria). A primeira varivel bsica escolhida ser sempre a de menor custo, depois ser escolhida como varivel bsica a de menor custo no quadro resultante relativo ao que foi traado, e assim sucessivamente, at terem sido traadas todas as linhas e todas as colunas.
Este mtodo, em princpio, fornece solues iniciais mais prximas da soluo tima que o mtodo anterior, j que so considerados os custos na identificao da SBF inicial.

Exemplo Prottipo.Mtodo do Mnimo dos Custos


1: min (cij )= c31= 0 x31 =min (4,10)= 4 2: min (cij) =c34= 1 x34 = min ( 7, 6 )= 6

1 4

6 1

2 3 6 2

3 2 1 2 6

4
4

6 8 2 1 10 6

3: min (ci) = c12=c23= 2 x12 = min ( 7, 6 ) = 6


4: min (cij) =c23= 2 x23= min ( 6, 8 ) = 6 5: min (cij)= c22= 3 x22= min ( 2, 1 ) = 1 6: min (cij) =c24= 4 x24=min (1, 1 ) =1

0 4

7 1

7 1

SBF inicial:

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

Passo 1: Obteno de uma SBA Inicial. Mtodo de Vogel


A varivel bsica escolhida , em cada quadro, a varivel que corresponde ao menor custo da linha ou coluna associada maior das diferenas entre os dois menores custos de cada linha e cada coluna(em caso de empate a escolha arbitrria).
Este mtodo identifica uma SBF inicial, em geral, melhor do que as obtidas pelos mtodos anteriores.

Exemplo Prottipo.Mtodo de Vogel. Quadro 1


1: acrescentar uma linha e uma coluna, com as diferenas entre os dois menores custos, em coluna e em linha respectivamente. 2: Selecionar a maior das diferenas: max (diferenas) = 3 , coluna 4. 3: Selecionar o menor dos custos para esta coluna: min (cij: j=4)= c34= 1 x34= min ( 7, 10 ) = 7

1 4 0

2 3 2

3
2 2 7

4
4

1 1 1

6 8 10 3

1 4 7

0 6

0 7

mnimo mximo

Iterao 1:

x34= 7

Exemplo Prottipo. Mtodo de Vogel. Quadro 2


1: calcular as novas diferenas relativas apenas aos elementos no traados

1
2: Selecionar a maior das diferenas: max (diferenas) = 2 e corresponde linha 3.

2 3 2

3 2 2 7

4
4

1 1

6 8 3

4 0

3: Selecionar o menor dos custos para esta linha: min (cij: i=3)= c31= 0 x31= min ( 4, 3 ) = 3

4 1

7
mnimo
Iterao 2:

6
x31= 3

mximo

Exemplo Prottipo. Mtodo de Vogel. Quadro 3


1: calcular as novas diferenas relativas apenas aos elementos no traados 2: Selecionar a maior das diferenas : max (diferenas) = 3 e corresponde coluna 1. 3: Selecionar o menor dos custos para esta coluna: min (cij: j=1) = c11= 1 x11= min ( 1, 6 ) = 1

mnimo

1 1 4

2 3 2

3 2 2 7

1
1

6 5
8

4
1

0
3

3 4 1 7

1 6
mximo

Iterao 3:

x11= 1

Exemplo Prottipo. Mtodo de Vogel Quadro 4


1: calcular as novas diferenas relativas apenas aos elementos no traados: todas so iguais a 1, pelo que pode ser escolhida qualquer delas . 2: Selecionar a coluna 2 e o menor dos seus custos : min (cij: j=2) = c12= 2 x12= min ( 7,5 ) = 5

mnimo

1
1 4 0 3

3
2

4 4 1 7

5
3 2

1 1

6 5 8

1 4 1 7 2
Iterao 4:

1 6
x12= 5

Exemplo Prottipo. Mtodo de Vogel Quadro 5

As clulas restantes podem ser preenchidas imediatamente: x22= 2 x23= 6

1 1 5

2 3 2 2 6

3 2 2 7

4
0 3

4
1

2
SBF inicial:

X0 = ( 1 , 5, 0, 0, 0, 2, 6, 0, 3,0, 0,7) ; z = 36

Passo 1: Obteno de uma SBF Inicial. Exemplo Prottipo Mtodo


Canto do NW

mais fcil

SBF inicial
X0 = ( 4 , 2, 0, 0, 0, 5, 3, 0, 0, 0, 3, 7) X0 = ( 0 , 5, 1, 0, 0, 2, 6, 0, 4, 0, 0, 6) X0 = ( 1 , 5, 0, 0, 0, 2, 6, 0, 3, 0, 0, 7)

f.o.
z0 = 42

"pior" SBF

Mnimo de custos

z0 = 38

Voguel

z0 = 36 "melhor" SBF

menos fcil

Passo 2: Obteno da soluo tima Mtodo de Dantzing. Critrio de otimalidade


Determinar a soluo dual complementar ui , vj , ( i=1,2,m , j=1,2,n ), por resoluo do Sistema de Dantzig: ui + vj = cij ( i , j ) IB A soluo dual factvel: ui + vj- cij 0 , ( i , j ) IB ?
No

Sim

FIM a soluo tima !!!

Passar ao passo seguinte

Obteno da soluo tima.Mtodo de Dantzing. Passo 1: Critrio de otimalidade.

O primeiro passo, que consiste em testar a otimalidade da SBF atual pode ser executado recorrendo Dualidade. Para isso necessrio determinar a correspondente soluo dual. Enquanto na apresentao tabular do mtodo simplex esta

soluo pode ser lida diretamente no quadro respectivo, com a


apresentao tabular do problema de transporte isso no acontece. Contudo, atendendo simplicidade da estrutura do problema

dual de transporte,
fcil determinar a soluo dual.

Formulao do Problema Dual de Transporte.


Custo por carga de camio Armazns Fbricas 1 2 3 Procura 1 1 4 0 4 2 2 3 2 7 3 3 2 2 6 4 4 4 1 7 Oferta 6 8 10

Diagrama de Tucker
Problema primal

x110 x120 x130 x140 x210 x220 x230 x240 x310 x320 x330 x340

Max w

u1 livre u2 livre u3 livre v1 livre v2 livre v3 livre v4 livre Min z

1 1

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

1 1

= = = = = = =

6 8 10 4 7 6 7

Problema dual

Formulao do Problema Dual de Transporte.


Custo por carga de camio Armazns Fbricas 1 2 3 Procura 1 1 4 0 4 2 2 3 2 7 3 3 2 2 6 4 4 4 1 7 Oferta 6 8 10

Maximizar w = 6 u1 + 8 u2 + 10 u3 + 4 v1 + 7 v2 + 6 v3 + 7 v4
sujeito a:

u1 u1 u1 u1

+ v1

+ v2

+ v3 + v4

u2 u2 u2 u2

+ v1 + v2 + v3

+ v4 u3 + v1 u3 + v2 u3 + v3 u3 + v4

1 2 3 4 4 3 2 4 0 2 2 1

ui , v j livres ( i=1,2,3; j=1,2,3,4 )

Exemplo Prottipo. Sistema de Dantzing


Para a SBF inicial obtida pelo Mtodo do Canto N-W X0 = ( 4 , 2, 0, 0, 0, 5, 3, 0, 0, 0, 3, 7 ) tem-se:
De acordo com a propriedade das folgas complementares, a cada varivel bsica do problema primal se encontra associada uma restrio ativa no problema dual .

x11= 4
x12 = 2 x22 = 5 x23 = 3

u1 + v1 u1 + v2 u2 + v2 u2 + v3

= 1 = 2 = 3 = 2

Sistema de Dantzig para a SBF atual

x33 = 3 x34 = 7

u3 + v3 = 2
u3 + v4 = 1

Exemplo Prottipo. Obteno da soluo tima. Passo 1: Critrio de Optimalidade


1. Determinar a soluo dual. u1 =0 = 1 = 2 = 3 = 2 = 2 = 1

Dado que uma das (m+n) restries do problema primal redundante, este sistema de equaes indeterminado de grau 1, pelo que a sua resoluo efetuada atribuindo um valor arbitrrio a qualquer das variveis duais e calculando a partir desta as restantes ( habitual fazer u1 =0 )

u1 + v1 u1 + v2 u2 + v2 u2 + v3 u3 + v3 u 3 + v4

v1 =1 v2 =2 u2 =1
v3 =1

u3 =1
v4 =0

Obteno da soluo tima. Passo 1: Critrio de Otimalidade


1. Determinar a soluo dual. Esta soluo para as variveis duais pode ser obtida diretamente no quadro de transporte correspondente SBF associada. Em sntese, fixando u1 =0, desloca-se em linha atravs das clulas correspondentes s variveis bsicas, para obter os

vj. Uma vez obtidos estes, desloca-se em coluna atravs das


clulas correspondentes s variveis bsicas para obter os ui .

Exemplo Prottipo. Obteno da soluo tima. Passo 1: Critrio de Otimalidade.


1. Determinar a soluo dual.
u1+ v2=2 0 + v2=2 u1+ v1=1 0 + v1=1 u2+ v2=3 u2+ 2 =3
(5) (3) (1) (2) (4)

u2+ v3=2 1 + v3=2

u3+ v4=1 1 + v4=1

(6)

v1=1 u1=0 u2=1 u3=1 4


1

v2=2
2

v3=1
3

3 2

v4=0
4

4
4

2
4

6 8

u3+ v3=2 u3+ 1=2

5
0
2

3
2 1

3 7 6

7
7

10 24

Obteno da soluo tima. Passo 1: Critrio de Otimalidade


Como so satisfeitas as restries duais de igualdade do Sistema de Dantzig que correspondem s variveis primais bsicas, resta apenas verificar se as restantes restries duais de desigualdade correspondentes s variveis primais no bsicas do primal, so igualmente satisfeitas, o que significa que a soluo dual factvel e consequentemente a soluo primal associada tima. Isto equivalente a verificar que todos os custos reduzidos para as variveis no bsicas sejam no positivos.
A verificao de que ui + vj cij , ( i , j ) IB , equivalente a (ui + vj ) - cij 0 , sendo o primeiro membro desta expresso de obteno imediata no quadro de transporte.

Exemplo Prottipo. Obteno da soluo tima. Passo 1: Critrio de Otimalidade


2. Calcular os custos reduzidos para as variveis no bsicas.
u1+ v3 -3 = 0+ 1 -3=-2
(1)

u1+ v4 -4 = 0+ 0 -4=-4

(2)

u2+ v4 -4 = 1+ 0 -4=-3

(4 )

v1=1
1

v2=2 2

v1 -4 = 1+ 1 -4=-2
u3+ v1 -0 = 1+ 1 -0= 2
(6) (5)

( 3 )u + 2

u1=0

2 3

v3=1
-2

3 2

v4=0
4 -4 4 -3 1

4
4 -2 0 2

6 8

u2=1 u3=1

5
2 1

3
2

3 7 6

7 7

10
24

u3+ v2 -2 = 1+ 2 -2= 1

Exemplo Prottipo. Obteno da soluo tima. Passo 1: Critrio de Otimalidade


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

Esta soluo no tima, pois existem valores positivos para ui + vj- cij nas clulas (3,1) e (3,2), o que significa que as correspondentes restries duais no esto satisfeitas.

v1=1

u1=0
u2=1 u3=1

v2=2 2

2 3

v3=1
-2

3 2

v4=0
4
-4 4 -3 1

4
4

6 8 10 24

-2
0 2

5
2 1

3
2

3 7 6

7 7

Exemplo Prottipo. Obteno da soluo tima. Passo 2: Critrio de Entrada


A varivel a entrar na base escolhida de acordo com o critrio:
Em caso de empate a escolha arbitrria.

max {ui + vj - cij : ui + vj - cij> 0 } v1=1


u1=0 u2=1
1

v2=2 2

2 3

v3=1
-2

3 2

v4=0
4 -4 4 -3

4
4 -2 0 2

6 8

5
2 1

3
2

mximo

u3=1
A varivel a entrar

10

x31

24

Obteno da soluo tima. Passo 3: Critrio de Sada


1. Selecionar o percurso relativo varivel que entra atribuindo s clulas nele includas sinais de - ou + . Ao incrementar a varivel bsica que entra desde zero at um valor positivo 0, inicia-se um processo em cadeia" que garante que as restries de oferta e procura continuem satisfeitas. Este processo segue um percurso no quadro a partir da clula da varivel que entra, onde so identificadas quais so as clulas onde ser preciso subtrair o valor 0, (com sinal -) e aquelas onde ser preciso adicionalo (com sinal +). Tudo com o objetivo de as somas em cada linha e coluna permanecerem inalteradas. 2. Selecionar a varivel que sai de acordo com o critrio:
min {xij percurso relativo varivel que entra : xij tem sinal -} = 0

Em caso de empate a escolha arbitrria.

Exemplo Prottipo. Obteno da soluo tima. Passo 3: Critrio de Sada


Determinar a varivel que sai.
1. Selecionar o percurso relativo varivel x31 atribuindo s clulas nele includas sinais de - ou + . 2. Selecionar a varivel que sai: 0 = min ( 4, 5, 3 ) = 3 a varivel x33 sai

x31

+ -

mnimo

Obteno da soluo tima. Passo 4: Obteno de uma nova SBF


A nova SBF obtm-se adicionando e subtraindo s variveis que formam o ciclo o valor de 0, consoante estejam afetadas com

+ , respectivamente; - ou as restantes variveis mantm os seus valores inalterados.

Exemplo Prottipo.Obteno da soluo tima. Passo 4: Obteno de uma nova SBF


1 2 3 2 4 4 1

- 4
X1 = ( 1 , 5, 0, 0, z1 = 36 0, 2, 6, 0, 3, 0, 0, 7 )

2 +
4 3

- 5
0 2

3 +
2

x31
x12=2 + 3 = 5
x11=4 -3 = 1 x22=5 -3 = 2 x23=3 -3 = 0 x13= 3

3 1 2 3 2

7
x23=3 +3 = 6

4 4 1

1
4

5
3

2
0

6
2
2

Exemplo Prottipo. Obteno da soluo tima. Iterao 2, Passo 1: Critrio de Otimalidade.


1. Determinar a soluo dual.
u1+ v2=2 0 + v2=2 u1+ v1=1 0 + v1=1 u2+ v2=3 u2+ 2 =3
(5) (3) (1) (2)

u2+ v3=2 1 + v3=2

(4)

u3+ v4=1 -1 + v4=1

(6)

v1=1 u1=0 u2=1 u3=-1


1

v2=2
2

v3=1
3

v4=2
4 4

1
4

5
2

6 8

u3+ v1=0 u3+ 1=0

2
0
2

6
2 1

3
4 7 6

7 7

10 24

Exemplo Prottipo. Obteno da soluo tima. Iterao 2, Passo 1: Critrio de Otimalidade


2. Calcular os custos reduzidos para as variveis no bsicas.
(2)

u1+ v3 -3 = 0+ 1 -3=-2 u2+ v1 -4 = 1+ 1 -4=-2 u3+ v2-2 =-1+ 2 -2= -1


(5) (3)

(1)

u1+ v4 -4 = 0+2 -4=-2

u2+ v4 -4 = 1+ 2 -4=-1

(4 )

v1=1
1

v2=2

u1=0 u2=1 u3=-1

2 3

v3=1
-2

3 2

v4=2
4 -2 4 -1

1
4 -2

5
2
0
2 -1

6 8 10

6
2
-2

3 4

7 7

u3+ v3 -2 =-1+ 1 -2= -2

(6)

Exemplo Prottipo. Obteno da soluo tima. Iterao 2, Passo 1: Critrio de Otimalidade


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

v1=1
Esta soluo tima, pois para todas as variveis no bsicas ui + vj - cij 0

u1=0

v2=2 5

2 3

v3=1
-2

3 2

v4=2
4 -2 4 -1 1

1
4 -2 0

6 8

u2=1 u3=-1

2
2 -1

6
2 -2

3 4

7 7

10

Soluo tima: X1 =(1 , 5, 0, 0, 0, 2, 6, 0, 3, 0, 0, 7); z1 = 36

Você também pode gostar