Investigação Operacional- 00/0 - Problemas de Transportes 8 O Problema de Transportes O problema geral de transportes consiste em determinar a forma mais económica de enviar um bem que está disponível em quantidades limitadas em certos locais (origens) para outros locais onde é necessário (destinos). Os custos associados a esse transporte costumam ser representados numa matriz, chamada matriz de custos de tal modo que o elemento c ij representa o custo de transportar uma unidade do bem em causa da origem i para o destino j. Para que o problema tenha solução é necessário que a soma das quantidades disponíveis nas origens seja igual à soma das quantidades necessárias nos destinos. Este problema pode ser formalizado como um programa linear: Min z = s. a mx nx c ij x ij i= j= nx x ij = a i j= mx x ij = b j i= x ij 0 i = ; : : : ; m j = ; : : : ; n i = ; : : : ; m; j = ; : : : ; n Exemplo : Uma empresa siderúrgica produz, anualmente, 4 00 000 toneladas de aço, em três localidades (A ; A ; A 3 ) que deve ser entregue em quatro outras localidades (B ; B ; B 3 ; B 4 ). As quantidades produzidas e requeridas são indicadas a seguir. 800 000 ton em A 00 000 ton em B 00 000 ton em A 500 000 ton em B 500 000 ton em A 3 00 000 ton em B 3 00 000 ton em B 4 Os custos de transporte, por tonelada, da origem i (i = ; ; 3) para o destino j (j = ; ; 3; 4), são dados no quadro que se segue. B B B 3 B 4 A 0 4 30 A 4 40 4 A 3 3 3 5 5 Supondo que não existem limitações na capacidade de transporte de umas localidades para as outras, determinar ass quantidades a transportar de modo a minimizar os custos totais de transporte. Formulando o problema de acordo com o modelo anteriormente descrito obtém-se:
Investigação Operacional- 00/0 - Problemas de Transportes Min z = 0x + 4x + x 3 + 30x 4 + x + 4x + 40x 3 + 4x 4 + 3x 3 + 3x 3 + 5x 33 + 5x 34 x + x + x 3 + x 4 = 800000 x + x + x 3 + x 4 = 00000 x 3 + x 3 + x 33 + x 34 = 500000 x + x + x 3 = 00000 x + x + x 3 = 500000 x 3 + x 3 + x 33 = 00000 x 4 + x 4 + x 34 = 00000 x ; x ; x 3 ; x 4 x ; x ; x 3 ; x 4 ; x 3 ; x 3 ; x 33 ; x 34 0 A matriz das restrições deste problema é: 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 4 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 Repare-se que a soma das 3 primeiras linhas é igual à soma das 4 últimas, isto é, as linhas da matriz são linearmente dependentes. É fácil demonstrar que a característica da matriz A é. Generalizando para um problema com m origens e n destinos, é fácil também demonstrar nesse caso que só há m + n linhas linearmente independentes. Isto é, a matriz B terá dimensão m + n, o que é o mesmo que a rmar que há precisamente m + n variáveis básicas. A estrutura da matriz do problema de transportes permite resolvê-lo por um algoritmo próprio, bastante mais e ciente do que a utilização do método simplex e que tira partido da forma especial do seu problema dual. Repare-se que, sendo todas as restrições de igualdade, a utilização do algoritmo simplex iria impor a introdução de m+n variáveis arti ciais e uma primeira fase com, pelo menos, m + n iterações, só para encontrar a solução inicial! Comecemos por organizar um quadro com m linhas e n colunas, em que as linhas correspondem às origens e as colunas aos destinos e em que escrevemos o custo unitário de transportar de A i para B j na canto superior direito da célula (i; j): B B B 3 B 4 0 4 30 A 800000 4 40 4 A 00000 3 3 5 5 A 3 500000 00000 500000 00000 00000
Investigação Operacional- 00/0 - Problemas de Transportes 30 Comecemos por observar que 800000 + 00000 + 500000 = 00000 + 500000 + 00000 + 00000 = 400000. Ou seja a procura é igual à oferta, o que signi ca que toda a produção se esgota e toda a procura será satisfeita. Neste caso, como todas estas quantidades são múltiplas de 0 5, é possível simpli car os cálculos dividindo tudo por esse valor, passando a unidade a ser 0 5 toneladas. Para encontrar uma solução inicial admissível há várias técnicas que se podem utilizar, sendo a do canto noroeste (superior esquerdo) a mais vulgar. Consiste em começar por dar o maior valor possível a x e continuando sempre com a variável correspondente ao quadrado mais a NW ainda disponível. B B B 3 B 4 A 0 4 30 8 A 3 4 40 4 A 3 3 3 5 5 5 5 Obteve-se assim uma solução inicial com 4 + 3 = variáveis básicas, à qual corresponde o valor 0 + 4 + 4 3 + 40 + 5 + 5 = 4 para a função objectivo. É agora necessário encontrar um processo de saber se a solução é óptima ou não e, caso não seja, qual a variável a sair da base e qual a variável a entrar na base. Vamos recorrer ao dual do problema geral de transportes apresentado na página 8 e tirar partido das condições de optimalidade dum par de problemas primal-dual. mx nx Max w = a i u i + b j v j i= j= s. a u i + v j c ij i = ; : : : ; m; j = ; : : : n As variáveis u correspondem às restrições nas origens e as variáveis v correspondem às restrições nos destinos. Pelo teorema da complementaridade, as variáveis de afastamento do dual correspondentes a variáveis básicas do primal serão nulas. Além disso, sabe-se que a solução é óptima quando o primal e o dual são admissiveis. Ou seja, se um x kp é básico então u k + v p = c kp. Voltando ao problema que estávamos a resolver, vamos calcular o valor das variáveis do dual correspondentes à solução inicial encontrada pela regra do canto noroeste. Para isso vai ser necessário resolver um sistema com equações e 7 incógnitas, correspondente à aplicação das condições de complementaridade às variáveis básicas (x ; x ; x ; x 3 ; x 33 ; x 34 ): 8 u + v = 0 >< u + v = 4 u + v = 4 u + v 3 = 40 u 3 + v 3 = 5 >: u 3 + v 4 = 5
Investigação Operacional- 00/0 - Problemas de Transportes 3 Este sistema é indeterminado, com grau de indeterminação.para encontrar uma solução particular, pode-se atribuir a uma das variáveis o valor 0 e calcular o correspondente valor para as restantes variáveis. Fazendo v 4 = 0, virá u 3 = 5 e por substituição para trás obtém-se, sucessivamente, v 3 = 4; u = 44; v = 0; u = 34 e v = 4. Obtivemos assim uma solução do problema dual correspondente à solução do primal que estamos a estudar. Podemos calcular os valores das variáveis de afastamento das restrições do dual correspondentes às variáveis não básicas do primal, que, como se sabe da teoria da dualidade, correspondem aos seus custos actualizados. Assim, c 3 = c 3 u v 3 = 34 ( 4) = 4 c 4 = c 4 u v 4 = 30 34 0 = 4 c = c u v = 44 ( 4) = 8 c 4 = c 4 u v 4 = 4 44 0 = c 3 = c 3 u 3 v = 3 5 ( 4) = 0 c 3 = c 3 u 3 v = 3 5 ( 0) = 0 Observa-se assim que a variável x 3, à qual corresponde um custo mais negativo, deve ser tornada básica. Para encontrar a variável que vai sair da base, segue-se um processo semelhante ao usado no método simplex, isto é, será a primeira a anular-se quando x 3 é incrementado. Para simpli car, atribui-se a x 3 o valor, adicionando e subtraindo às restantes variáveis básicas, onde for necessário, de modo que a soma em cada linha e coluna não se altere. Assim virá: v = 4 v = 0 v 3 = 4 v 4 = 0 u = 34 0 + 4 30 8 u = 44 3 4 + 40 4 u 3 = 5 3 3 5 5 5 5 Conclui-se, assim, que o maior valor que pode tomar é 3, isto é a variável x 3 vai-se tornar básica com o valor 3 por troca com a variável x que se anula. Obtém-se assim a nova solução admissível: 0 4 30 3 5 8 4 40 4 3 3 5 5 3 3 5 5 à qual corresponde o valor 38 (< 4) para a função objectivo.
Investigação Operacional- 00/0 - Problemas de Transportes 3 Todo o processo se repetirá até que a solução óptima seja encontrada, o que acontece quando todos os custos actualizados forem positivos, ou seja, quando o dual também for admissível. Nalguns casos não haverá equilíbrio entre a oferta e a procura. Para poder utilizar o algoritmo é então necessário criar uma origem ctícia (caso de excesso de procura) ou um destino ctício (caso de excesso de oferta), aos quais se atribui a quantidade em falta ou excesso. Normalmente os custos associados a origens ou destinos ctícios são nulos, a não ser que haja preços de armazenamento ou penalizações pelo não cumprimento das encomendas. Outro aspecto a referir é a possibilidade de ocorrência de soluções degeneradas, nas quais o número de variáveis não nulas é inferior a m + n. Considere-se o seguinte exemplo: B B B 3 A A ; 5 ; 5 Usando a regra do canto noroeste para obter a solução inicial vem: Ora, deveriamos ter + 3 B B B 3 A A ; 5 ; 5 ; 5 variáveis básicas e só obtivemos 3, isto signi ca que a solução é degenerada, isto é, há uma variável básica que é nula. Utiliza-se aqui o chamado método das perturbações que consiste em acrescentar à disponibilidade de uma ou mais origens um valor in nitesimal e usar essa perturbação para criar variáveis adicionais com valor igual a até perfazer m + n variáveis básicas. No exemplo vem: B B B 3 A + A ; 5 ; 5 ; 5 + Agora já temos 4 variáveis básicas e o algoritmo de transportes pode ser usado normalmente. Assim que obtivermos uma solução com 4 variáveis básicas positivas pode-se fazer = 0. Vejamos o que acontece neste exemplo: v = v = v 3 = 0; 5 u = 0 + u = ; 5 ;5 ; 5 ; 5 ; 5 +
Investigação Operacional- 00/0 - Problemas de Transportes 33 Nas células correspondentes às variáveis não básicas, escreve-se no canto inferior direito o valor do custo actualizado. A variável x como tem o custo actualizado mais negativo é a que deve entrar na base: v = v = v 3 = 0; 5 u = 0 + + u = ; 5 ;5 ; 5 ; 5 ; 5 + Vemos que deve ser = e virá o novo quadro: + + ;5 ; 5 ; 5 ; 5 + Como obtivemos uma solução não degenerada, pode-se neste momento fazer = 0 e continuar o processo normalmente. Em tudo o que foi feito partiu-se do princípio de que todas as rotas são possíveis, mas pode acontecer que haja trajectos impossíveis entre alguma ou algumas das origens e algum ou alguns dos destinos. Para resolver esse problema deve-se considerar os custos correspondentes aos trajectos impossíveis iguais a +.