O Problema de Transportes
Optimização em Redes e Não Linear – p. 1/1
Problema de Transportes
O método simplex para o P.T.
1. Determinar uma sol. bás. admiss. inicial.
2. Testar a optimalidade da sol. actual.
Para isso calcular os custos reduzidos zij − cij para cada
var. não básica. Se todos zij − cij ≤ 0, então ST OP a sol.
é óptima, caso contrário continuar no Passo 3.
3. Seleccionar as variáveis de entrada e de saída da base.
4. Obter a nova sol. bás. admiss. e repetir o Passo 2.
Optimização em Redes e Não Linear – p. 2/1
Problema de Transportes
Passo 1. Obtenção de uma sol. bás. admiss. inicial
Como escolher o valor para exactamente m + n − 1 var. bás. ?
1. Método do canto superior esquerdo ou do canto noroeste (NW)
tornar bás. a var. x11 atribuindo-lhe o maior valor possível
x11 = min{a1 , b1 } esgotando ou a origem 1 ou o destino 1
no caso 1, a linha 1 deixa de ser considerada e tornamos
bás. a var. x21 atribuindo-lhe o maior valor possível
x21 = min{a2 , (b1 − x11 )} esgotando ou a origem 2 ou o
destino 1
Optimização em Redes e Não Linear – p. 3/1
Problema de Transportes
no caso 2, a coluna 1 deixa de ser considerada e tornamos
bás. a var. x12 atribuindo-lhe o maior valor possível
x12 = min{(a2 − x11 ), b2 } esgotando ou a origem 1 ou o
destino 2
em cd passo do mét. esgotamos ou uma origem ou um
destino e continuamos no caso 1 na mesma coluna e linha
seguinte, no caso 2 na mesma linha e coluna seguinte
no máx. obtemos n + m − 1 var. positivas que não formam
ciclo
Optimização em Redes e Não Linear – p. 4/1
Problema de Transportes
se esgotarmos simultaneamente uma origem e um destino,
podemos atribuir um zero à próxima var. da mesma linha ou
da mesma coluna e continuar como anteriormente
Desvantagem: não tem em conta a matriz dos custos.
Exemplo
5
3
2
100
4
2
1
50
80 30 40
Optimização em Redes e Não Linear – p. 5/1
Problema de Transportes
2. Método do mı́nimo da matriz de custos
em cd passo do mét. torna-se bás. a var. a que corresponde o menor
custo da matriz
considere o exemplo anterior
3. Método de Vögel
Em cada passo do mét. torna-se bás. a var. a que corresponde o menor
custo da linha ou coluna associada à maior das diferenças entre os dois
menores custos de cada linha e cada coluna.
Exemplo
8
3
5
9
200
1
7
4
6
700
3
8
2
4
100
250
350
200
200
Optimização em Redes e Não Linear – p. 6/1
Problema de Transportes
Passo 2. Testar a optimalidade da sol. bás. admiss. actual
cálculo dos custos reduzidos zij − cij para cd var. não
básica
se zij − cij ≤ 0 para todas as var., ST OP a sol. actual é
óptima, senão continuar no Passo 3.
há dois modos de cálculo dos custos reduzidos
(use o exemplo usado no mét. de Vögel, mas det. a sol. bás.
admiss. inicial através do mét. canto noroeste)
Optimização em Redes e Não Linear – p. 7/1
Problema de Transportes
1. Método de Stepping-Stone
baseia-se no mét. simplex
construção do ciclo associado a cd var. não bás.
cálculo dos custos reduzidos zij − cij para cd var. não
básica em que
zij − cij =
X
−(⊕/ ⊖ ck1 k2 ) − cij
xk1 k2 v.b.ciclo
Optimização em Redes e Não Linear – p. 8/1
Problema de Transportes
2. Método de Dantzig
baseia-se nos resultados da dualidade
construir um vector (u, v) que verifique as cond. de
complement. de slacks para isso
const. um sist. com m + n − 1 equações: se xij é
var. bás. então ui + vj = cij
como uma das m + n rest. do prob. primal é
redundante, este sistema é indeterminado, pelo
que se fixa o valor de uma das var. duais a zero
resolução do sist.
Optimização em Redes e Não Linear – p. 9/1
Problema de Transportes
cálculo dos custos reduzidos zij − cij para cd var. não
básica em que
zij − cij = ui + vj − cij
Optimização em Redes e Não Linear – p. 10/1
Problema de Transportes
Passo 3. Seleccionar as var. de entrada e saı́da na base
escolher a var. a entrar na base: determinar xkl tal que
zkl − ckl = max{zij − cij , zij − cij > 0}
construir o ciclo correspondente à var. de entrada na
base xkl
escolher a var. a sair da base: determinar
θ = min{xij , xij tem sinal ⊖ no ciclo de xkl }
Optimização em Redes e Não Linear – p. 11/1
Problema de Transportes
Passo 4. Obter a nova sol. bás. admissı́vel
alterar apenas o valor das var. no ciclo da var. xkl que
entra na base
xij =
(
xij + θ
xij − θ
se xij tem sinal ⊕ no ciclo
se xij tem sinal ⊖ no ciclo
novo valor da f.o. é
z = z − θ(zkl − ckl )
Optimização em Redes e Não Linear – p. 12/1
Download

algoritmos primal (Stepping