Escolar Documentos
Profissional Documentos
Cultura Documentos
Transporte e Afectacao I O Capitulo 6 2013
Transporte e Afectacao I O Capitulo 6 2013
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
Figura 1. Rede do Problema de Transporte. A Figura 1 ilustra o problema de transporte sob a forma de uma rede com m origens e n destinos representados por ns; os arcos que ligam as origens aos destinos representam os percursos atravs dos quais o produto pode ser transportado. Uma outra forma de representar este problema, consiste na utilizao de um quadro (ver Quadro 1), em que,
cada linha corresponde a uma origem, cada coluna corresponde a um destino, a ltima coluna contm a informao relativa s quantidades disponveis nas origens, a ltima linha contm a informao respeitante a quantidades necessrias nos destinos, em cada quadrcula (i, j) encontra-se a quantidade a transportar da origem i para o destino j, xij,
e o correspondente custo unitrio de transporte, cij. Para qualquer plano de transporte admissvel,
x ij = a i
j
x ij = b j
i
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 j
71
c11 c21
c12 c22
... ...
c1n c2n
a1 a2 ... am
cm1
cm2
...
...
xmn
bn
cmn
a i = bj
Sujeito a
x ij = a i
j =1 m
(i = 1, 2, . . ., m)
restries de oferta
i =1
x ij = b j
(j = 1, 2, . . ., n)
restries de procura
xij 0
(i = 1, 2, . . ., m; j = 1, 2, . . ., n)
O problema clssico apresenta uma estrutura especial, segundo a disposio das restries : x11 + . . . + x1n x21 + . . . + x2n . . . xm1 + . . . + xmn x11 . . . x1n + x21 . . . + x2n . . . . . . . . . . . . . . . + xm1 . . . + xmn = a1 = a2 . . . = am = b1 . . . = 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 Exemplo :
Problema de Transporte
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
7 3
4 1
3 2
a formalizao do problema (minimizao do custo total de transporte) vem : Minimizar Sujeito a Z= 7 x11 + 4 x12 + 3 x13 + 3 x21 + x11 + x12 + x13 x21 + x11 x12 x13 + x21 + x22 + x22 + x22 + 2 x23 = 100 x23 = = = x23 = 50 80 30 40
inteiros.
Problema de Transporte
73
Este mtodo fcil de aplicar, mas tem um inconveniente : no considera os custos de transporte. Aqui, a varivel escolhida como bsica , em cada quadro, a que se encontra situada no canto superior esquerdo (canto Noroeste). Portanto, as VB escolhidas so as seguintes :
x11 : no primeiro quadro, x12 ou x21 : no segundo quadro, consoante tenha sido traada a coluna 1 ou a linha 1, e assim sucessivamente, at terem sido traadas todas as linhas e todas as colunas.
x11 x21
80
7 3
x12 x22
30
4 1
x13 x23
40
3 2
100 50 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 50
20
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 50 40
20
80
30 10
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 10
100 50
20 40
30 40 10 Quarta VB : x23 que nica (igualdade entre oferta e procura. O quadro fica ento :
80 20 10 40
80
100 50 40
20 40
80 A SBA obtida :
30 10
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
7 3
80
20 10 30
4 1
40 40
3 2
100 50
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
4 1
3 2
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 80
30
4 1 30
20
3 2
100 50 20
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 80
30
4 1 30
20 20
3 2
100 50
80 20
40 20 Resta c11, pelo que x11 = min { 80, 80 } = 80 : a oferta disponvel iguala a procura por satisfazer.
80
7 3 80
30
4 1 30
20 20
3 2 40 20
100 50
80 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 (melhor que no Canto Noroeste)
7 3
80 30 30
4 1
20 20 40
3 2
100 50
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 Exemplo :
Problema de Transporte
Retome-se o exemplo anterior (considere o quadro inicial nas condies descritas). Primeira VB : a maior penalidade ocorre na coluna 1, pelo que pode-se escolher a varivel de menor custo nesta coluna para bsica : x21 = min { 80, 50 } = 50. A origem 2 fica esgotada, traa-se a linha 2, ficando por satisfazer 80 50 = 30 unidades no destino 1. 7
50
4 1
3
3 2
1
1 1
100 50
3
4
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 50
7 3
4
4 1
3
3 2
1
1 1
100 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.
30 50
7 3
4
30
4 1
3
3 2
1
1 1
100 50
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
7 3 80
30
4 1 30
40
3 2 40
100 50
Problema de Transporte
77
Sejam ui e vj as variveis duais associadas, respectivamente, s restries de oferta e de procura. A cada varivel bsica do problema primal (clula preenchida) est associada uma restrio saturada do problema dual : xij (VB do primal) ui + vj = cij. O algoritmo composto pelos seguintes passos :
Passo 1. Determinar uma SBA inicial; Passo 2. Determinar as variveis duais, fazendo u1 = 0, e calcular as restantes usando as clulas
ocupadas;
Passo 3. Se ui + vj cij para todas as clulas no preenchidas ento a soluo ptima; caso
um maior decrscimo no custo total. Transferir para essa clula o nmero mximo de unidades possvel. Voltar ao Passo 2.
1.5.2. Obteno de uma nova SBA
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
7 3
80
20 () 10 (+) 30
4 x13 (+) 3 1
40 () 40
100 50
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
80 30 30
4 1
20 20 40
3 2
100 50
1.5.3. Exemplo
Retome-se o exemplo anterior. Se se associar as variveis duais ui (i = 1, 2) e vj (j = 1, 2, 3) s 2 restries de oferta e 3 restries de procura, respectivamente, o problema dual pode ser formulado da seguinte forma : Maximizar W = 100 u1 + 50 u2 + 80 v1 + 30 v2 + 40 v3 Sujeito a u1 u1 u1 u2 + u2 u2 u1 , u2 , v1 , v2 , v3 sem sinal v1 + v2 + + v1 + + v2 + 7 4 v2 3 3 1 v3 2
Problema de Transporte Passo 1. Supondo que a SBA inicial a obtida pelo mtodo do Canto Noroeste, tem-se o quadro : QUADRO 1 80
79
7 3
20 10
4 1
40
3 2
100 50
u1 + v1 = 7 u1 + v2 = 4 u2 + v2 = 1 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
7 3
80
20 () 10 (+) 30
4 x13 (+) 3 1
40 () 40
100 50
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 :
80 ()
20 (+) 10 ()
4 1
40
3 2
100 50
x21 (+) 3
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 3 80
30
4 1 30
20 20
3 2 40
100 50
u1 + v1 = 7 u1 + v3 = 3 u2 + v3 = 2 u2 + v2 = 1
v1 = 7 v3 = 3 u2 = 1 v2 = 2
Passo 3. S a clula (2, 1) no satisfaz a desigualdade : u2 + v1 > c21 (1 + 7 > 3). Passo 4. Apenas existe uma VNB candidata a entrar na base : x21. Logo, tem-se : 80 ()
7
30 30
4 1
20 (+) 20 () 40
3 2
100 50
x21 (+) 3 80
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
7 3
30
4 1
40
3 2
100 50
u1 + v1 = 7 u1 + v3 = 3 u2 + v1 = 3 u2 + v2 = 1
v1 = 7 v3 = 3 u2 = 4 v2 = 5
Passo 3. Apenas a clula (1, 2) no satisfaz a desigualdade : u1 + v2 > c12 (0 + 5 > 4).
Problema de Transporte Passo 4. Apenas existe uma VNB candidata a entrar na base : x12. Logo, tem-se : 60 () 20 (+) 80
81
7 x12 (+) 4 3
30 () 30
40
3 2
40
100 50
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
7 3
30
4 1
40
3 2
100 50
u1 + v1 = 7 u1 + v2 = 4 u1 + v3 = 3 u2 + v1 = 3 ui + vj cij,
v1 = 7 v2 = 4 v3 = 3 u2 = 4
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 + bj = bj (i = 1, 2, , m) (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 :
7 3 80
20
4 1 20
40
3 2 40
100 40
A soluo obtida degenerada, pois (m + n 1) = 4 e apenas 3 VB so positivas. Aplicando o mtodo descrito em cima, tem-se : 7 3 80 20 4 1 3 2 40 + 2 100 + 40 +
7 3 80
20
4 1 20
40 +
3 2
100 + 40 +
40 + 2
7 3 80
20
4 1 20
0 40
3 2 40
100 40
83
b) a procura superior oferta ( ai < bj) : criar uma origem fictcia com disponibilidade igual
Sujeito a
x ij = 1
j
(i = 1, 2, , n)
(j = 1, 2, , n)
x ij = 1
i
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
... ...
1 1 ... 1
...
...
Quadro 2. Problema de Afectao. Exemplo : Numa fbrica foram instaladas 3 mquinas e 3 empregados. O objectivo da Direco da
fbrica estabelecer uma afectao mquinaempregado recproca e exclusiva, que envolva um custo mnimo. Os custos de afectao so os seguintes :
Mquina 1 1 Empregado 2 3 2 3
25 24 15
31 17 23
35 16 18
A formulao do problema a seguinte : Minimizar Z = 25 x11 + 31 x12 + 35 x13 + + 24 x21 + 17 x22 + 16 x23 + + 15 x31 + 23 x32 + 18 x33 Sujeito a
85
adicionada ou subtrada a qualquer linha ou coluna da matriz de custos. Este teorema pode ser explorado em dois sentidos :
1) Se num problema alguns elementos da matriz de custos forem negativos, ento pode passar-se
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
Problema de Afectao (Assignment) Exemplo : Considere-se o problema apresentado anteriormente, neste captulo.
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 1 2 3 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 1 2 3 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 1 2 3 0o 2 3
5
0o
10 0 3
8 0
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 1 2 3 0o 2 3
5
0o
10 0 3
9 (3)
(4)
8 0
9
(2), (5)
9 (1)
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 1 2 3 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
2
00
7 0
00
11 0
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 e
z = 25 + 17 + 18 = 60 .