Investigação Operacional- 2009/10 - Problemas de Transportes 28 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 cij 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 m X n X cij xij i=1 j=1 n X xij = ai i = 1; : : : ; m xij = bj j = 1; : : : ; n j=1 m X i=1 xij 0 i = 1; : : : ; m; j = 1; : : : ; n Exemplo : Uma empresa siderúrgica produz, anualmente, 4 200 000 toneladas de aço, em três localidades (A1 ; A2 ; A3 ) que deve ser entregue em quatro outras localidades (B1 ; B2 ; B3 ; B4 ). As quantidades produzidas e requeridas são indicadas a seguir. 1 800 000 ton em A1 600 000 ton em B1 900 000 ton em A2 1 500 000 ton em B2 1 500 000 ton em A3 1 200 000 ton em B3 900 000 ton em B4 Os custos de transporte, por tonelada, da origem i (i = 1; 2; 3) para o destino j (j = 1; 2; 3; 4), são dados no quadro que se segue. B1 B2 B3 B4 A1 20 14 26 30 A2 22 24 40 42 A3 32 36 52 56 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- 2009/10 - Problemas de Transportes 29 Min z = 20x11 + 14x12 + 26x13 + 30x14 + 22x21 + 24x22 + 40x23 + 42x24 + 32x31 + 36x32 + 52x33 + 56x34 x11 + x12 + x13 + x14 = 1800000 x21 + x22 + x23 + x24 = 900000 x31 + x32 + x33 + x34 = 1500000 x11 + x21 + x31 = 600000 x12 + x22 + x32 = 1500000 x13 + x23 + x33 = 1200000 x14 + x24 + x34 = 900000 x11 ; x12 ; x13 ; x14 x21 ; x22 ; x23 ; x24 ; x31 ; x32 ; x33 ; x34 0 A matriz das restrições deste problema é: 2 6 6 6 6 6 6 A=6 6 6 6 6 4 1 1 1 1 0 0 0 0 0 0 0 0 3 7 0 0 0 0 1 1 1 1 0 0 0 0 7 7 0 0 0 0 0 0 0 0 1 1 1 1 7 7 7 1 0 0 0 1 0 0 0 1 0 0 0 7 7 0 1 0 0 0 1 0 0 0 1 0 0 7 7 7 0 0 1 0 0 0 1 0 0 0 1 0 5 0 0 0 1 0 0 0 1 0 0 0 1 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 é 6. Generalizando para um problema com m origens e n destinos, é fácil também demonstrar nesse caso que só há m + n dimensão m + n 1 linhas linearmente independentes. Isto é, a matriz B terá 1, o que é o mesmo que a…rmar que há precisamente m + n1 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 Ai para Bj na canto superior direito da célula (i; j): B1 B2 B3 B4 A1 20 14 26 30 1800000 A2 22 24 40 42 900000 A3 32 36 52 56 1500000 1500000 1200000 600000 900000 Investigação Operacional- 2009/10 - Problemas de Transportes 30 Comecemos por observar que 1800000 + 900000 + 1500000 = 600000 + 1500000 + 1200000 + 900000 = 4200000. 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 105 , é possível simpli…car os cálculos dividindo tudo por esse valor, passando a unidade a ser 105 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 x11 e continuando sempre com a variável correspondente ao quadrado mais a NW ainda disponível. B1 B2 20 12 A2 22 3 A3 32 6 A1 B3 14 24 36 6 15 B4 26 30 18 6 40 42 9 6 52 56 15 9 12 9 Obteve-se assim uma solução inicial com 4 + 3 1 = 6 variáveis básicas, à qual corresponde o valor 20 6 + 56 6 + 14 12 + 24 3 + 40 6 + 52 9 = 1416 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 28 e tirar partido das condições de optimalidade dum par de problemas primal-dual. Max w = m X ai u i + i=1 s. a ui + v j n X bj v j j=1 cij i = 1; : : : ; m; j = 1; : : : 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 xkp é básico então uk + vp = ckp . 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 6 equações e 7 incógnitas, correspondente à aplicação das condições de complementaridade às 8 > > > > > > > > > < 6 variáveis básicas (x11 ; x12 ; x22 ; x23 ; x33 ; x34 ): u1 + v1 = 20 u1 + v2 = 14 u2 + v2 = 24 > u2 + v3 = 40 > > > > > u3 + v3 = 52 > > > : u + v = 56 3 4 Investigação Operacional- 2009/10 - Problemas de Transportes 31 Este sistema é indeterminado, com grau de indeterminação 1.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 v4 = 0, virá u3 = 56 e por substituição para trás obtém-se, sucessivamente, v3 = 20; u1 = 34 e v1 = 4; u2 = 44; v2 = 14. 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, c13 = c13 u1 v3 = 26 34 ( 4) = 4 c14 = c14 u1 v4 = 30 34 0= c21 = c21 u2 v1 = 22 44 ( 14) = c24 = c24 u2 v4 = 42 44 0= c31 = c31 u3 v1 = 32 56 ( 14) = c32 = c32 u3 v2 = 36 56 ( 20) = 0 4 8 2 10 Observa-se assim que a variável x31 , à 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 x31 é incrementado. Para simpli…car, atribui-se a x31 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á: v1 = u1 = 34 14 v2 = 20 6 u2 = 44 22 u3 = 56 32 20 v3 = 12 + 24 3 36 6 v4 = 0 26 30 18 6+ 40 42 9 6 52 56 15 15 Conclui-se, assim, que o maior valor que 4 14 9 12 9 pode tomar é 3, isto é a variável x31 vai-se tornar básica com o valor 3 por troca com a variável x22 que se anula. Obtém-se assim a nova solução admissível: 3 20 22 3 6 15 14 24 32 36 15 26 30 18 9 40 42 9 3 52 56 15 12 à qual corresponde o valor 1386 (< 1416) para a função objectivo. 9 9 Investigação Operacional- 2009/10 - Problemas de Transportes 32 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 B1 1. Considere-se o seguinte exemplo: B2 B3 A1 2 1 0;5 2 A2 1 0;5 2 2; 5 1 1 2; 5 Usando a regra do canto noroeste para obter a solução inicial vem: B1 A1 B2 2 1 B3 1 1 1 A2 0;5 1 Ora, deveriamos ter 2 + 3 0;5 2; 5 1 2 2 2; 5 2; 5 1 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 1 variáveis básicas. No exemplo vem: B1 A1 B2 2 1 1 1 A2 B3 1 0;5 0;5 1 2; 5 1 2+ 2 2; 5 2; 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 Vejamos o que acontece neste exemplo: v1 = 2 u1 = 0 1 1 u2 = 1; 5 1 v2 = 1 2 1 0;5 2 2;5 1 v3 = 0; 5 1 0;5 2; 5 2; 5 + 2 2+ 2; 5 = 0. Investigação Operacional- 2009/10 - 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 x21 como tem o custo actualizado mais negativo é a que deve entrar na base: v1 = 2 u1 = 0 v2 = 1 2 1 1 u2 = 1; 5 1 1 2;5 0;5 + 0;5 2 1 Vemos que deve ser v3 = 0; 5 2 2; 5 1 2+ 2; 5 2; 5 + = 1 e virá o novo quadro: 2 1 1 1 1 0;5 2 2;5 1 1 +1 0;5 1; 5 2 2+ 2; 5 2; 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 +1.