Você está na página 1de 34

Copiado do site

http://www.mat.ua.pt/io/Documentos/Acetatos/CapituloII_7_2_files/frame.htm
Departamento Matemtica da Universidade de Aveiron

Profa. Marli

II. Programao Linear (PL)


Captulo 7.2:
Resoluo do Problema de Transporte (PT).

Obteno de uma SBA 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

em 3 fbricas

e depois so distribudos de camio


para quatro armazns
Conhecendo os custos de transporte, a procura prevista
para cada armazm e as capacidades de produo de
cada fbrica, pretende-se:
OPTIMIZAR O PROGRAMA DE DISTRIBUIO DIRIO
DO LEITE.

Problema de Transporte. Exemplo Prottipo


Os dados dos custos de uma carga de leite para cada combinao fbricaarmazm e das ofertas(produo) e procuras, em cargas de camio/dia, so
os seguintes:

24
24cargas
cargasdirias
dirias
de
deleite
leitedevem
devem
ser
serproduzidas
produzidasee
distribudas
distribudas

Custo por carga de


camio
Armazns
Fbricas

Oferta

10

Procura

Quadro do Problema de Transporte


Custo por carga de
camio
Armazns
Fbricas

Oferta

10

Procura

Destino
Origem
1
2
3
Procura

2
1

x11
x21
x31

4
0

3
3

2
x12

x22

x13
2
x23

2
x32

2
x33

Oferta

4
x14

4
4

x24
1
x34

Para o exemplo prottipo a oferta total igual


procura total

6
8
10
24 =24

Algoritmo para a resoluo do PT.


Obteno
Obteno de
de uma
uma SBA
SBA
inicial
inicial

A
A SBA
SBA verifica
verifica
o
o critrio
critrio de
de
optimalidade?
optimalidade?
No

Sim
FIM
FIM !!!
!!!
aa soluo
soluo
ptima
ptima

Mover-se
Mover-se para
para uma
uma SBA
SBA
"melhor"
"melhor"

Passo 1: Obteno de uma SBA 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).
A primeira varivel bsica escolhida ser sempre x11, depois
consoante 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 facto de
no considerar os custos na identificao da SBA inicial.

Exemplo Prottipo. Mtodo do Canto Noroeste


1.
1 x11 =min (4,6 )= 4
2.
2 x12 =min (7,2 )= 2

1
4

3.
3 x22 =min (5,8 )= 5

6.
6 x34=min (7,7 )= 7

3
2

4.
4 x23=min (6,3 )= 3
5.
5 x33=min (3,10 )= 3

7
5

10

7
3

0
0
SBA
SBA inicial:
inicial: XX0 =
= (( 44,, 2,
2, 0,
0, 0,
0, 0,
0, 5,
5, 3,
3, 0,
0, 0,
0, 0,
0, 3,
3, 77 )) ;; zz0 =
= 42
42

Passo 1: Obteno de uma SBA 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 consoante o 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 ptima
que o mtodo anterior, j que so considerados os custos na identificao da SBA
inicial.

Exemplo Prottipo.Mtodo do Mnimo dos Custos


1:
1: min (cij )= c31= 0

x31 =min (4,10)= 4

2:
2 min (cij) =c34= 1 x34
= min ( 7, 6 )= 6

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

SBA
SBA inicial:
inicial:

3:
3 min (ci) = c12=c23= 2
x12 = min ( 7, 6 ) = 6
4:
4 min (cij) =c23= 2
x23= min ( 6, 8 ) = 6

6
2

7
1

1
6

6
8 2 1
10

7
1

XX00 =
0,6
= (( 00,, 6,
6, 0,
0, 0,
0, 0,
0, 1,
1, 6,
6, 1,
1, 4,0,
4,0, 0,6)
0,6)
= 38
38
0,6 ;; zz =

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 SBA inicial, em geral, melhor do que as obtidas pelos
mtodos anteriores.

Exemplo Prottipo.Mtodo de Vogel.


Quadro 1
1:
1: acrescentar uma linha e
uma coluna, com as
diferenas entre os dois
menores custos, em coluna e
em linha respectivamente.

10 3

2:
2 Seleccionar a maior das
diferenas: max (diferenas)
= 3 , coluna 4.
3:
3 Seleccionar o menor dos
custos para esta coluna:
min (cijij: j=4)= c34
=1
34
x34
= min ( 7, 10 ) = 7
34

Iterao
Iterao 1:
1:

3
7

mnimo
mximo

xx3434== 77

Exemplo Prottipo. Mtodo de Vogel.


Quadro 2
1:
1: calcular as novas
diferenas relativas apenas
aos elementos no traados
2:
2 Seleccionar a maior das
diferenas:
max (diferenas) = 2 e
corresponde linha 3.
3:
3 Seleccionar o menor dos
custos para esta linha:
min (cijij: i=3)= c31
=0
31
x31
= min ( 4, 3 ) = 3
31

1
4
1

mnimo

mximo

Iterao
Iterao2:
2: xx3131=
=33

Exemplo Prottipo. Mtodo de Vogel.


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

mnimo

3
4
1

mximo

Iterao
Iterao3:
3: xx1111==11

Exemplo Prottipo. Mtodo de Vogel


Quadro 5
As restantes
quadrculas podem ser
preenchidas
imediatamente:
x22
= 22
22
x23
= 66
23

1
1

2
SBA
SBAinicial:
inicial:

5
4

XX00 ==((11,,5,
0,7
5,0,
0,0,
0,0,
0,2,
2,6,
6,0,
0,3,0,
3,0,0,7)
0,7)
36
0,7 ;; zz ==36

Passo 1: Obteno de uma SBA Inicial.


Exemplo Prottipo

mais fcil

Mtodo

SBA inicial

"pior" SBA

z0 = 42

Canto do NW

menos fcil

f.o.

Mnimo de custos

X0 = ( 4 , 2, 0, 0,
0, 5, 3, 0,
0, 0, 3, 7)
7

Voguel

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

z0 = 38

z0 = 36
"melhor"
SBA

Passo 2: Obteno da soluo ptima


Mtodo de Dantzing. Critrio de optimalidade
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
admissvel:
ui + vj- cij 0 ,
( i , j ) IB ?

Sim

FIM
a soluo
ptima !!!

No

Passar ao passo seguinte

Obteno da soluo ptima.Mtodo de Dantzing.


Passo 1: Critrio de optimalidade.

O primeiro passo, que consiste em testar a optimalidade da


SBA actual pode ser executado recorrendo Dualidade.
Para o efeito necessrio determinar a correspondente soluo
dual.

Enquanto na apresentao tabular do mtodo simplex esta


soluo pode ser lida directamente 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

Oferta

10

Procura

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

Diagrama
Diagramade
deTucker
Tucker
Problema primal

Max w
= 6
= 8
= 10
1
= 4
= 7
= 6
= 7
1

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

1
1

1
1

1
1

1
1

1
1

Problema dual

Formulao do Problema Dual de Transporte.


Custo por carga de
camio
Armazns
Fbricas

Oferta

10

Procura

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

u1
u1
u1
u1

1
2
+ v3
3
+ v4 4
+ v1
4
+ v2
3
+ v3
2
+ v4
4
+ v1
0
+ v2
2
+ v3
2
+ v4
1
+ v1
+ v2

u2
u2
u2
u2

u3
u3
u3
u3

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


)

Exemplo Prottipo. Sistema de Dantzing


Para a SBA inicial obtida pelo Mtodo do Canto N-W
X0 = ( 4 , 2, 0, 0, 0, 5, 3, 0, 0, 0, 3, 7 ) tem-se:

De
Deacordo
acordocom
comaa
propriedade
propriedadedos
dosdesvios
desvios
complementares,
a
complementares, acada
cada
varivel
varivelbsica
bsicado
doproblema
problema
primal
primalseseencontra
encontraassociada
associada
uma
umarestrio
restriosaturada
saturadano
no
problema
problemadual
dual. .
Sistema de Dantzig
para a SBA actual

xx11==44
11

uu1 ++vv1 == 11
1
1

xx1212==22

uu1 ++vv2 == 22
1
2

xx2222==55

uu2 ++vv2 == 33
2
2

xx2323==33

uu2 ++vv3 == 22
2
3

xx33 ==33
33

uu3 ++vv3 == 22
3
3

xx3434==77

uu3 ++vv4 == 11
3
4

Exemplo Prottipo. Obteno da soluo ptima.


Passo 1: Critrio de Optimalidade
1.
1. Determinar
Determinar aa soluo
soluo dual.
dual.

Dado que uma das (m+n)


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

uu1 =0
1 =0

uu1 ++vv1 == 11
1
1

vv1 =1
1 =1

uu1 ++vv2 == 22
1
2

vv2 =2
2 =2

uu2 ++vv2 == 33
2
2

uu2 =1
2 =1

uu2 ++vv3 == 22
2
3

vv3 =1
3 =1

uu3 ++vv3 == 22
3
3

uu3 =1
3 =1

uu3 ++vv4 == 11
3
4

vv4 =0
4 =0

Obteno da soluo ptima.


Passo 1: Critrio de Optimalidade
1.
1. Determinar
Determinar aa soluo
soluo dual.
dual.
Esta soluo para as variveis duais pode ser obtida
directamente no quadro de transporte correspondente SBA
em presena.
Em sntese, fixando u1 =0, desloca-se em linha atravs das
quadrculas correspondentes s variveis bsicas, para obter
os vj. Uma vez obtidos estes, desloca-se em coluna atravs
das quadrculas correspondentes s variveis bsicas
para obter os

ui .

Obteno da soluo ptima.


Passo 1: Critrio de Optimalidade
1.
1. Determinar
Determinar aa soluo
soluo dual.
dual.
u1+ v2=2
0 + v2=2

u2+ v3=2
1 + v3=2

(2)

u1+ v1=1
0 + v1=1

(4)

u3+ v4=1
1 + v4=1
(6)

(1)

u2+ v2=3
u2+ 2 =3
(3)

u3+ v3=2
u3+ 1=2

(5)

v1=1
u1=0

u2=1

v2=2
2
5

v4=0

6
8

3
4

3
2

u3=1

v3=1

10
24

Obteno da soluo ptima.


Passo 1: Critrio de Optimalidade
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 admissvel e
consequentemente
a soluo primal em presena ptima.
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 ptima.


Passo 1: Critrio de Optimalidade
3.
3. Existe
Existe algum
algumuui i+
+vvj-j- ccijij>>00,, ((ii,,jj)) IIBB ??

v1=1
u1=0
Esta
Estasoluo
soluono
no
ptima,
ptima,pois
poisexistem
existem
valores
valorespositivos
positivospara
para
uui ++vvj-- ccij nas
i
j
ij nas
quadrculas
quadrculas(3,1)
(3,1)ee
(3,2),
(3,2),ooque
quesignifica
significa
que
queas
ascorrespondentes
correspondentes
restries
restriesduais
duaisno
no
esto
estosatisfeitas.
satisfeitas.

u2=1
u3=1

4
4
-2-2
22

v2=2
2
5

2
3

v3=1
-2-2

3
2

3
2

11

v4=0
-4-4
-3-3

7
7

4
4

6
8
10
24

Exemplo Prottipo. Obteno da soluo ptima.


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
max{{uui i++vvj j-- ccijij ::uui i++vvj j-- ccijij>>00 }}
v1=1
u1=0
u2=1

mximo

u3=1

AAvarivel
varivelaaentrar
entrar
xx31

4
4
-2-2
22

v2=2
2
5

2
3

v3=1
-2-2

3
2

3
2

11

v4=0
-4-4
-3-3

7
7

4
4

6
8
10
24

31

Obteno da soluo ptima.


Passo 3: Critrio de Sada
1. Seleccionar o percurso relativo varivel que entra atribuindo
s quadrculas 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 quadrcula da varivel que entra, onde so identificadas quais so as
quadrculas onde ser preciso subtrair o valor 0, (com sinal -) e aquelas onde ser
preciso adiciona-lo (com sinal +).
Tudo com o objectivo de as somas em cada linha e coluna permanecerem
inalteradas.
2. Seleccionar 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 ptima.


Passo 3: Critrio de Sada
Determinar
Determinar aa varivel
varivel que
que sai.
sai.

1.
1 Seleccionar o percurso
relativo varivel x31
31
atribuindo s quadrculas
nele includas sinais de
- ou + .
2.
2. Seleccionar a varivel
que sai:
00 =
= min ( 4, 5, 3 ) = 3
a varivel xx3333 sai

- 4
4

x31

2+
- 5

-2
3

-4

3 +

2
-3
2

3 7

7
7

6
8
10
24

mnimo

Obteno da soluo ptima.


Passo 4: Obteno de uma nova SBA
A nova SBA obtm-se adicionando e subtraindo s variveis
que formam o ciclo o valor de 0, consoante estejam
afectadas com

ou

+ , respectivamente;

as restantes variveis mantm os seus valores inalterados.

Exemplo Prottipo.Obteno da soluo ptima.


Passo 4: Obteno de uma nova SBA
- 4

1
4

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

x31

2 +
- 5

3 -

x12=2 + 3 = 5

5
4

x23=3 -3 = 0
x13= 3

7
x23=3 +3 = 6

x11=4 -3 = 1
x22=5 -3 = 2

3 +

6
0

Exemplo Prottipo. Obteno da soluo ptima.


Iterao 2, Passo 1: Critrio de Optimalidade.
1.
1. Determinar
Determinar aa soluo
soluo dual.
dual.
u1+ v2=2
0 + v2=2

u2+ v3=2
1 + v3=2

(2)

u1+ v1=1
0 + v1=1

(4)

u3+ v4=1
-1 + v4=1
(6)

(1)

u2+ v2=3
u2+ 2 =3
(3)

u3+ v1=0
u3+ 1=0

(5)

v1=1
u1=0

1
4

u2=1
u3=-1

v2=2
5
2

v3=1

6
8

3
4

6
2

v4=2

10
24

Exemplo Prottipo. Obteno da soluo ptima.


Iterao 2, Passo 1: Critrio de Optimalidade
2.
2. Calcular
Calcular os
os custos
custos reduzidos
reduzidos para
para as
as variveis
variveis no
no bsicas.
bsicas.
u2+ v4 -4
= 1+ 2 -4=-1

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

(4 )

(2)

u1+ v3 -3
= 0+ 1 -3=-2
(1)

u2+ v1 -4
= 1+ 1 -4=-2
(3)

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

u1=0
u2=1

(5)

u3+ v3 -2
=-1+ 1 -2= -2
(6)

u3=-1

v1=1

1
4
-2-2

v2=2
5
2

-2-2

3
2

6
2

-1-1

v3=1

v4=2
-2-2
-1-1

- -22

4
4

6
8
10

Exemplo Prottipo. Obteno da soluo ptima.


Iterao 2, Passo 1: Critrio de Optimalidade
3.
3. Existe
Existe algum
algumuui i+
+vvj-j- ccijij>>00,, ((ii,,jj)) IIBB ??

v1=1
u1=0
Esta
Estasoluo
soluo
ptima,
ptima,pois
poispara
para
todas
todasas
asvariveis
variveis
no
nobsicas
bsicas
uui ++vvj -- ccij 00
i
j
ij

u2=1
u3=-1

1
4
-2-2

v2=2
5
2

-2-2

3
2

6
2

-1-1

v3=1

v4=2
-2-2
-1-1

- -22

4
4

6
8
10

1
1
Soluo
77);
Soluo ptima:
ptima: XX1=(
=(11,, 5,
5, 0,
0, 0,
0, 0,
0, 2,
2, 6,
6, 0,
0, 3,
3, 0,
0, 0,
0, 7);
= 36
36
7 zz1 =

Você também pode gostar