Documente Academic
Documente Profesional
Documente Cultură
Problemas de Transportes e de
Afectao
1. Problema de Transporte
Este problema, que um dos particulares de PL, consiste em determinar a forma mais
econmica de enviar um bem disponvel, em quantidades limitadas, em determinados locais para
outros locais onde necessrio. Como qualquer problemas de PL, tambm este pode ser resolvido
pelo mtodo Simplex. Porm, a sua estrutura prpria permitiu a utilizao de mtodos que, embora
derivados do Simplex, so mais eficientes.
Existem muitos problemas de PL, que podem ser formulados como de transporte, apesar de,
aparentemente, no existir qualquer relao com este tipo de problemas.
O problema clssico de transporte surge com a necessidade de programar a distribuio ptima
de um produto homogneo que :
a) encontra-se disponvel em m origens nas quantidades fixas ai > 0 (oferta), com i = 1, , m;
b) necessrio em n destinos nas quantidades fixas bj > 0 (procura), com j = 1, 2, , n;
c) deve ser enviado directamente para os destinos, esgotando as disponibilidades em cada origem
e satisfazendo as necessidades em cada destino (a procura total iguala a oferta total);
e tendo por objectivo a minimizao do custo total envolvido no programa de distribuio desse
produto, em que se supe que os custos unitrios de transporte da cada origem i para cada destino j,
cij, so proporcionais s quantidades transportadas, xij.
70
Problema de Transporte
x ij = a i
x ij = b j
O custo de transporte associado a cada percurso (i, j) dado por cij xij, pelo que o custo total do plano
de transporte dado por
c ij x ij .
i
Problema de Transporte
71
DESTINOS
1
O
R
I
G
E
N
S
...
Oferta
x11
c11
x12
c12
...
x1n
c1n
a1
x21
c21
x22
c22
...
x2n
c2n
a2
...
...
xm1
Procura
...
cm1
xm2
b1
...
...
cm2
...
b2
xmn
...
am
cmn
a i = bj
bn
Minimizar Z = c ij x ij
i =1 j =1
Sujeito a
x ij = a i
(i = 1, 2, . . ., m)
restries de oferta
j =1
m
x ij = b j
(j = 1, 2, . . ., n)
restries de procura
i =1
xij 0
(i = 1, 2, . . ., m; j = 1, 2, . . ., n)
O problema clssico apresenta uma estrutura especial, segundo a disposio das restries :
x11 + . . . + x1n
= a1
x21 + . . . + x2n
= a2
.
.
.
xm1 + . . . + xmn
x11
+ x21
.
. . .
.
.
.
.
x1n
+ x2n
.
.
.
.
.
.
.
.
.
.
.
.
+ xm1
.
.
.
= am
= b1
.
.
.
+ xmn
.
.
.
= bn
A estrutura especial da matriz dos coeficientes caracteriza-se pelo facto de ser constituda por
uns (1) e zeros (0), e por cada varivel xij ter como coeficientes significativos apenas 2 elementos
72
Problema de Transporte
Exemplo :
Certa empresa possui 2 fbricas a produzirem determinado produto, a ser depois transportado
para 3 centros de distribuio.
As fbricas 1 e 2 produzem 100 e 50 carregamentos por ms, respectivamente. Os centros 1, 2 e 3
necessitam de receber 80, 30 e 40 carregamentos por ms, respectivamente.
Sabendo que os custos de transporte, por carregamento, so os que constam no quadro :
Centro 1
Centro 2
Centro 3
Fbrica 1
Fbrica 2
Z=
x12 +
x22 + 2 x23
x13
= 100
x21 +
+
x11
x23 =
50
80
30
x23 =
40
x21
+
x12
x22 +
x22
x13
inteiros.
Problema de Transporte
73
Oferta
x11
x12
x13
100
x21
x22
x23
50
Procura
80
30
40
150
Primeira VB : x11 = min { 100, 80 } = 80, (100 = oferta da origem 1; 80 = procura no destino 1). O
destino 1 v satisfeita a procura respectiva. Traa-se a coluna 1 e ficam disponveis 100 80 = 20
unidades na origem 1. Tem-se ento o novo quadro :
80
100
20
50
80
30
40
Segunda VB : x12 = min { 20, 30 } = 20. A origem 1 fica esgotada. Traa-se a linha 1 e fica por satisfazer
30 20 = 10 unidades no destino 2. O quadro fica ento :
80
20
100
20
50
80
30
10
40
74
Problema de Transporte
Terceira VB : x22 = min { 10, 50 } = 10. O destino 2 v satisfeita a procura respectiva. Traa-se a coluna
2 e fica disponvel 50 10 = 40 unidades na origem 2. O quadro fica ento :
80
20
100
20
10
50
40
80
30
40
10
Quarta VB : x23 que nica (igualdade entre oferta e procura. O quadro fica ento :
80
20
80
10
40
30
10
40
100
20
50
40
A SBA obtida :
x11 = 80, x12 = 20, x22 = 10, x23 = 40 variveis bsicas (clulas preenchidas)
x13 = 0, x21 = 0 variveis no bsicas (clulas vazias)
a que corresponde o valor da FO,
z = 7 80 + 4 20 + 1 10 + 2 40 = 730.
Esta soluo que tem (m + n 1) = (2 + 3 1) = 4 variveis bsicas, apresentada em forma
tabular de acordo com o quadro seguinte :
80
20
10
80
40
30
100
50
40
Este mtodo, ao invs do anterior, tem em considerao a matriz dos custos de transporte, pelo
que, em princpio, determina solues iniciais mais prximas da soluo ptima.
Neste caso, a escolha da varivel a tomar como bsica, recai sobre aquela de menor custo em
cada quadro (em caso de empate, a escolha arbitrria).
Exemplo : Retome-se o exemplo anterior.
Primeira VB : o menor dos custos c22, pelo que x22 = min { 50, 30 } = 30. O destino 2 fica totalmente
satisfeito, traa-se a coluna 2, ficando disponveis 50 30 = 20 unidades na origem 2.
7
3
30
100
50
20
80
30
40
Segunda VB : o menor dos custos c23, pelo que x23 = min { 20, 40 } = 20. A origem 2 fica esgotada,
traa-se a linha 2, ficando por satisfazer 40 20 = 20 unidades no destino 3.
Problemas de Transportes e de Afectao
Problema de Transporte
75
7
3
4
30
80
20
100
50
20
30
40
20
Terceira VB : o menor dos custos c13, pelo que x13 = min { 20, 100 } = 20. O destino 2 fica totalmente
satisfeito, traa-se a coluna 3, ficando disponveis 100 20 = 80 unidades na origem 1.
7
3
30
80
20
100
80
20
50
20
40
20
Resta c11, pelo que x11 = min { 80, 80 } = 80 : a oferta disponvel iguala a procura por satisfazer.
80
30
7
3
80
30
20
100
80
20
50
20
30
40
20
A SBA obtida :
x11 = 80, x13 = 20, x22 = 30, x23 = 20 variveis bsicas (clulas preenchidas)
x21 = 0, x12 = 0 variveis no bsicas (clulas vazias)
a que corresponde o valor da FO,
z = 7 80 + 3 20 + 1 30 + 2 20 = 690
7
3
80
30
30
20
100
20
50
40
Neste mtodo, o critrio de escolha da varivel a tomar como bsica em cada quadro o do
menor custo da linha ou coluna associada maior das diferenas entre os dois menores custos da
cada linha ou coluna (penalidades).
Portanto, para facilitar esta escolha, recomenda-se que acrescente-se uma linha e uma coluna, s
quais esto associados as penalizaes de cada uma delas.
76
Problema de Transporte
Exemplo :
50
100
50
80
30
40
30
Segunda VB : a maior penalidade ocorre na coluna 1, pelo que pode-se escolher a varivel de menor
custo nesta coluna para bsica : x11 = min { 30, 100 } = 30. O destino 1 fica totalmente satisfeito, traase a coluna 1, ficando disponveis 100 30 = 70 unidades na origem 1.
30
100
50
50
70
80
30
40
30
Terceira VB : a maior penalidade ocorre na coluna 2, pelo que pode-se escolher a varivel de menor
custo nesta coluna para bsica : x12 = min { 30, 70 } = 30. O destino 2 fica totalmente satisfeito, traa-se
a coluna 2, ficando disponveis 70 30 = 40 unidades na origem 1.
4
100
50
30
50
30
70
40
80
30
40
30
Como resta apenas a varivel x13, esta a prxima a entrar na base : : x13 = 40. Portanto, a soluo
bsica inicial a seguinte :
30
50
3
80
30
40
1
30
100
50
40
Problema de Transporte
77
ocupadas;
Passo 3. Se ui + vj cij para todas as clulas no preenchidas ento a soluo ptima; caso
A partir de uma SBA pode obter uma nova soluo daquele tipo, atravs de transferncias de
unidades entre clulas, o que constitui um ciclo. Dado que em cada quadro os requerimentos e as
disponibilidades tm que ser satisfeitos, sempre que se adicionam n unidades a uma clula tm que
se subtrar as mesmas n unidades a uma outra que esteja na mesma linha e a outra que esteja na
mesma coluna. Assim, geralmente, pode-se determinar um ciclo de transferncias da seguinte forma :
procura-se uma clula preenchida na mesma linha da clula para a qual se pretende transferir
unidades,
na mesma coluna desta nova clula procura-se outra clula preenchida,
na mesma linha desta nova clula procura-se outra clula preenchida. Se esta ltima clula se
encontrar na mesma coluna da clula para a qual se pretende transferir unidades, o ciclo fica
determinado; caso contrrio, continua-se a pesquisa, at se encontrar uma clula preenchida
pertencente a essa coluna.
78
Problema de Transporte
Nas clulas, cujos valores podem sofrer diminuio, associado um sinal () e nas outras um sinal
(+). A sequncia de clulas com (+) e () constituem um ciclo atravs do qual se podem fazer
transferncias de unidades para a clula pretendida. O nmero mximo de unidades que se podem
transferir para aquela clula, de modo a se obter uma SBA, atravs deste ciclo, dado por :
Min { xij : xij afectado de sinal () no ciclo }.
Por exemplo, tome-se a SBA determinada pelo mtodo do Canto de Noroeste :
80
20 ()
4 x13 (+) 3
100
10 (+)
40 ()
50
80
30
40
Pode-se transferir 1 unidade para a clula (1, 3), diminuindo 1 unidade nas clulas (1, 2) e (2, 3), e
aumentando 1 unidade na clula (2, 2). O nmero mximo de unidades que se podem transferir para
a clula (1, 3) :
Min { 20, 40 } = 20
O que implica que a varivel que vai sair da base x12, pois a clula (1, 2) fica vazia.
Desta forma, a nova SBA :
80
7
3
30
80
20
100
20
50
30
40
1.5.3. Exemplo
u1
v1 +
+
u1
v2
+
u1
u2 +
u2
v2 3
3
v1
+
v2
u2
v3 2
u1 , u2 , v1 , v2 , v3 sem sinal
Problema de Transporte
79
Passo 1. Supondo que a SBA inicial a obtida pelo mtodo do Canto Noroeste, tem-se o quadro :
QUADRO 1
80
20
10
40
100
50
80
30
40
O custo total de transporte : z = 7 80 + 4 20 + 1 10 + 2 40 = 730.
Passo 2. A cada VB do primal est associada uma restrio saturada do dual. Assim,
VB do Primal
Restrio do Dual
x11
u1 + v1 = 7
x12
u1 + v2 = 4
x22
u2 + v2 = 1
x23
u2 + v3 = 2
ser a que ir entrar na nova SBA. As VNB candidatas a entrar na base so x13 e x21.
Passo 5. Relativamente a x13, tem-se :
80
20 ()
4 x13 (+) 3
100
10 (+)
40 ()
50
80
30
40
Podendo ser transferidas, no mximo 20 unidades ( min { 20, 40 } ). A diminuio no custo total
de transporte, por unidade transferida para a clula (1, 3) : u1 + v3 c13 = 2; assim, se x13 for a nova
VB, haver um decrscimo de 40 unidades no custo total (2 20).
Relativamente a x21, tem-se :
7
20 (+)
x21 (+) 3
10 ()
80 ()
40
100
50
80
30
40
Podendo ser transferidas, no mximo 10 unidades ( min { 10, 80 } ). A diminuio no custo total
de transporte, por unidade transferida para a clula (2, 1) : u2 + v1 c21 = 1; assim, se x21 for a nova
VB, haver um decrscimo de 10 unidades no custo total (1 10).
80
Problema de Transporte
7
30
3
80
20
100
20
50
30
40
u1 + v1 = 7
v1 = 7
u1 + v3 = 3
v3 = 3
u2 + v3 = 2
u2 = 1
u2 + v2 = 1
v2 = 2
80 ()
30
x21 (+) 3
80
20 (+)
100
20 ()
50
30
40
Podendo ser transferidas, no mximo 20 unidades ( min { 20, 80 } ). A diminuio no custo total
de transporte, por unidade transferida para a clula (2, 1) : u2 + v1 c21 = 3; assim, haver um
decrscimo de 60 unidades no custo total (3 20).
Desta forma, introduzindo x21 na base, obtm-se o seguinte quadro :
QUADRO 3
60
20
4
30
40
100
50
80
30
40
O custo total de transporte : z = 7 60 + 3 40 + 3 20 + 1 30 = 630.
Passo 2. Fazendo u1 = 0, as restantes variveis duais tm os seguintes valores :
u1 + v1 = 7
v1 = 7
u1 + v3 = 3
v3 = 3
u2 + v1 = 3
u2 = 4
u2 + v2 = 1
v2 = 5
Passo 3. Apenas a clula (1, 2) no satisfaz a desigualdade : u1 + v2 > c12 (0 + 5 > 4).
Problema de Transporte
81
Passo 4. Apenas existe uma VNB candidata a entrar na base : x12. Logo, tem-se :
60 ()
7 x12 (+) 4
20 (+)
30 ()
80
40
30
100
50
40
Podendo ser transferidas, no mximo 30 unidades ( min { 30, 60 } ). A diminuio no custo total
de transporte, por unidade transferida para a clula (1, 2) : u1 + v2 c12 = 1; assim, haver um
decrscimo de 30 unidades no custo total (1 30).
Desta forma, introduzindo na base x21, obtm-se o seguinte quadro :
QUADRO 4
30
50
30
40
100
50
80
30
40
O custo total de transporte : z = 7 30 + 4 30 + 3 40 + 3 50 = 600.
Passo 2. Fazendo u1 = 0, as restantes variveis duais tm os seguintes valores :
u1 + v1 = 7
v1 = 7
u1 + v2 = 4
v2 = 4
u1 + v3 = 3
v3 = 3
u2 + v1 = 3
u2 = 4
ui + vj cij,
est-se na presena da soluo ptima do problema.
Portanto, a soluo ptima e respectivo valor da FO : X* = (30, 30, 40, 50, 0, 0) Z* = 600.
1.6. Degenerescncia
Uma soluo degenerada quando tem menos do que (m + n 1) VB e ocorre sempre que
surjam empates na obteno de uma
SBA inicial, antes de ser escolhida a ltima VB,
nova SBA, aquando da escolha da varivel a ser substituda na base.
Um dos mtodos para resolver estes casos, consiste em perturbar os valores de ai e bj, da
forma seguinte :
ai = ai +
(i = 1, 2, , m)
bj = bj
(j = 1, 2, , n1)
82
Problema de Transporte
bn = bn + m .
com > 0 e arbitrariamente pequeno, para que a soluo obtida seja muito prxima da correcta.
Exemplo :
100
40
80
20
40
20
80
40
20
100
40
40
100 +
40 +
80
40 + 2
20
20
3
80
100 +
40 +
40 +
40 + 2
20
20
3
80
20
100
40
40
40
83
b) a procura superior oferta ( ai < bj) : criar uma origem fictcia com disponibilidade igual
Sujeito a
x ij = 1
(i = 1, 2, , n)
x ij = 1
(j = 1, 2, , n)
xij = 0, 1
em que os dois conjuntos de restries garantem que cada indivduo afectado exactamente a uma s
tarefa, e que cada tarefa executada por um s indivduo, respectivamente.
O facto de considerar xij = 0 ou xij = 1 torna o problema de difcil resoluo. No entanto, a sua
substituio por xij 0 transforma o problema de afectao num problema de transporte equivalente
(Quadro 2), em que :
os indivduos so as origens e as tarefas so os destinos;
84
...
x11
c11
x12
c12
...
x1n
c1n
x21
c21
x22
c22
...
x2n
c2n
...
n
...
xn1
...
cn1
xn2
...
...
cn2
...
xnn
...
cnn
fbrica estabelecer uma afectao mquinaempregado recproca e exclusiva, que envolva um custo
mnimo. Os custos de afectao so os seguintes :
Mquina
Empregado
25
31
35
24
17
16
15
23
18
Sujeito a
x 11 + x 12 + x 13 = 1
x 21 + x 22 + x 23 = 1 1 empregado 1 mquina
x 31 + x 32 + x 33 = 1
x 11 + x 21 + x 31 = 1
x 12 + x 22 + x 32 = 1 1 mquina 1 empregado
x 13 + x 23 + x 33 = 1
85
neste facto que se apoia o algoritmo Hngaro, que consiste nos seguintes passos :
Passo 1. Aos elementos de cada linha da matriz de custos, subtrair o mnimo dessa linha.
Na matriz resultante, aos elementos de cada coluna, subtrair o mnimo dessa coluna.
Passo 2. Tomar uma das linhas com menor n de zeros, enquadrar um deles (aquele que cortar menos
zeros) e cortar todos os restantes dessa linha e dessa coluna. Prosseguir at que todos os zeros
estejam cortados.
Se houver n zeros enquadrados, tem-se a soluo ptima; caso contrrio prosseguir.
Passo 3. Cobrir os zeros enquadrados com o menor n possvel de traos :
1. assinalar (com 9) as linhas que no contm zeros enquadrados;
2. assinalar as colunas com pelo menos um zero cortado nas linhas assinaladas;
3. assinalar as linhas com um zero enquadrado nas colunas assinaladas;
4. repetir 2 e 3 at no ser possvel assinalar mais linhas ou colunas;
5. traar as linhas no assinaladas e as colunas assinaladas.
Passo 4. Determinar o menor elemento da submatriz constituda pelos elementos no traados;
subtrair esse elemento aos elementos dessa submatriz e adicion-lo aos elementos na interseco
de dois traos. Voltar ao passo 2.
86
25
24
15
31
17
23
35
16
18
Passo 1. Subtraindo aos elementos da 1 linha 25, aos da 2 16 e aos da 3 15, obtm-se :
1
2
3
0
8
0
6
1
8
10
0
3
Apenas a 2 coluna no contm zeros, pelo que se subtrai aos respectivos elementos o menor
deles, que 1, resultando
1
2
3
0
8
0
5
0
7
10
0
3
Passo 2. Enquadrar o zero da posio (1, 1) e cortar o zero da posio (3, 1); enquadrar o zero da
posio (2, 2) e cortar o zero da posio (2, 3); desta forma, obtm-se :
1
0o
10
0o
Como no existe mais zeros para enquadrar ou traar, termina este processo.
Como no existem 3 zeros enquadrados, no se tem a soluo ptima.
Passo 3. Cobrindo com o menor nmero possvel de traos, os zeros enquadrados, obtm-se :
1
0o
10
0o
(4)
9 (1)
9 (3)
9
(2), (5)
87
Passo 4. Subtrair aos elementos no traados o menor de entre eles e adicion-lo aos elementos na
interseco de dois traos neste caso, o valor 3; obtendo-se assim a nova matriz :
1
2
3
0
11
0
2
0
4
7
0
0
em que se subtraiu 3 unidades aos elementos x12, x13, x32 e x33 e adicionou-se 3 unidades ao
elemento x21.
Passo 2. Enquadrar o zero da linha 1 e traar o zero da coluna 1; enquadrar a coluna 2 e traar os
00
11
00
00
Como ainda existe um zero, na posio (3, 3), enquadra-se tambm esse zero.
Como existem 3 zeros enquadrados, tem-se assim a soluo ptima, que a seguinte :
x 11 = 1 ,
x 22 = 1 ,
x 33 = 1
z = 25 + 17 + 18 = 60 .