Prof. Volmir Wilhelm TP052 – Pesquisa Operacional UFPR 32 16 - PROBLEMA DO TRANSPORTE Visa minimizar o custo total do transporte necessário para abastecer n centros consumidores (destinos) a partir de m centros fornecedores (origens) a1, a2, ..., am : ofertas b1, b2, ..., bn : demandas xij : quantidades a serem transportadas da origem i para o destino j. Z min m n c i 1 j 1 n s.a ij xij x ij ai i 1,2,..., m x ij bj j 1,2,..., n i 1,2,..., m j 1,2,..., n j 1 m i 1 xij 0 Somando as m restrições de oferta e as n restrições de demanda obtem-se m n m xij ai i 1 j 1 i 1 m e n n xij b j i 1 j 1 j 1 m n i 1 j 1 ai b j indicando que o modelo do transporte exige uma igualdade entre oferta total e demanda total. Porém o algoritmo a ser apresentado também pode ser utilizado quando a oferta total não for igual a demanda total. Se a demanda é menor que a oferta, basta incluir um consumidor fictício, cuja demanda seja, exatamente, a diferença entre o total de oferta e o total da demanda, enquanto que os custos de transporte de cada origem ao consumidor fictício são tomados iguais a zero Se a oferta é menor que a demanda total, basta incluir uma origem fictícia, cuja oferta restabeleça o equilíbrio entre demanda total e oferta total. Neste caso deve-se fixar igual a zero os custos deste depósito fictício para todos os centros consumidores. Estudar exemplos no livro do Puccini, páginas 112, 113, 114, 115. Exemplo da página 112. Uma firma fabrica um determinado produto em quatro cidades 1, 2, 3 e 4; o produto destina-se a três centros de consumo A, B e C. Sabe-se que: a) As cidades A, B, C e D dispõem respectivamente de 30, 20, 50 e 10 unidades do produto. b) Os centros de consumo I, II e III necessitam respectivamente de 20, 40 e 50 unidades. c) Os custos unitários de transporte ($) 1A: 1 1B: 2 1C: 3 2A: 10 2B: ... 2C: 8 3A: 3 3B: 4 3C: 2 4A: 5 4B: 2 4C: 1 O modelo de transporte correspondente será: Prof. Volmir Wilhelm TP052 – Pesquisa Operacional UFPR 33 DETERMINAÇÃO DE UMA SOLUÇÃO INICIAL Já foi estudado o problema do transporte e sua formulação num problema de programação linear. Nesta etapa serão estudadas técnicas para gerar soluções iniciais para tal modelo de programação linear. Serão vistos: A regra do Canto Noroeste O processo do Custo Mínimo O Método de Vogel A obtenção de uma solução inicial pode ser feita de forma quase arbitrária. As exigências são muito mais simples que aquelas do método simplex e são as seguintes: - ser viável, isto é, satisfazer todas as restrições do modelo; - conter (n + m - 1) variáveis básicas; e - as variáveis básicas não devem formar um circuito fechado. a) Regra do Canto Noroeste A regra será aplicada no quadro de soluções segundo os seguintes passos: - Passo 1: comece pela célula superior esquerda; - Passo 2: coloque nessa célula a maior quantidade permitida pela oferta e demanda correspondentes; - Passo 3: atualize os valores da oferta e da demanda que foram modificados pelo Passo 2; - Passo 4: siga para a célula da direita se houver alguma oferta restante e volta ao Passo 2. Caso contrário, siga para a célula inferior e volte ao Passo 2. O processo continua até que sejam esgotadas as ofertas de todas as origens e supridas as demandas de todos os destinos. EXEMPLO A 10 (7) 1 2 2 11 3 Demanda 7 (0) 1 2 3 Demanda - A 7 7 B 7 (2) 8 (4) 12 6 (4, 0) B 2 4 6 C 6 9 (6) 8 (4) 10 (4) D 5 1 4 (4) 4 (0) C D 6 4 10 4 4 Oferta 9 (2, 0) 10 (4, 0) 8 (4, 0) Oferta 9 10 8 Primeiro deve-se verificar se a demanda total é igual a oferta total. A solução inicial será: x1A=7, x1B=2, x2B= 4, x2C=6, x3C=4, x3D=4, Z=218 Usando a regra do Canto Noroeste, a solução inicial independe dos custos, isto é, depende exclusivamente das ofertas das origens e das demandas dos destinos. Prof. Volmir Wilhelm TP052 – Pesquisa Operacional UFPR 34 b) Regra do Custo Mínimo A regra será aplicada no quadro de soluções segundo os seguintes passos: - Passo 1: localize no quadro de custos o menor cij que não tenha oferta ou demanda nula; - Passo 2: coloque nessa célula a maior quantidade permitida pela oferta e demanda correspondentes; - Passo 3: atualize os valores da oferta e da demanda que foram modificados pelo Passo 2. O processo continua até que sejam esgotadas as ofertas de todas as origens e supridas as demandas de todos os destinos. EXEMPLO 1 2 3 Demanda 1 2 3 Demanda A B C 6 (9) 9 8 (1) 10 (1,0) 10 2 (6) 11 (1) 7 (1,0) 7 8 12 (6) 6 (0) A B C 9 6 1 7 6 6 1 10 D 5 1 (4) 4 4 (0) D 4 Oferta 9 (0) 10 (6,0) 8 (7,6,0) Oferta 9 10 8 4 A solução inicial será: x1C=9, x2A=2, x2D= 4, x3A=1, x3B=4, x3C=1, Z=161. Usando a regra do Custo mínimo, a solução depende dos custos. c) Método de Vogel – Método das Penalidades O método de Vogel depende tanto dos custos como das demandas e ofertas. A regra será aplicada no quadro de soluções segundo os seguintes passos: - Passo 1: em cada linha, identifique a diferença de custo entre o menor valor e o segundo menor - Passo 2: em cada coluna, identifique também a variação de custo entre o menor valor e o segundo menor - Passo 3: na linha ou coluna correspondente à maior de todas as variações selecione a célula de menor custo e coloque aí a maior quantidade permitida pela oferta e demanda correspondentes - Passo 4: atualize os valores de oferta e demanda que foram modificados pelo Passo 3; caso a linha tenha tido sua oferta reduzida a zero, cancele a linha e volte ao Passo 2; caso a coluna tenha zerado sua demanda, volte ao Passo 1 e, depois, Passo 3. O processo continua até que sejam esgotadas as ofertas de todas as origens e supridas as demandas de todos os destinos. Exemplo do porque o método de Vogel geralmente é melhor que os outros 2 métodos A B Oferta 1 500 1 40 10 1000 2 30 Demanda 50 20 Prof. Volmir Wilhelm TP052 – Pesquisa Operacional UFPR EXEMPLO A 10 2 11 7 8 B 7 8 12 6 1 C 6 9 8 10 2 D 5 1 4 4 3 Oferta 9 10 8 1 1 4 1 2 3 Demanda A 10 2 (7) 11 7 (0) B 7 8 12 6 1 C 6 9 8 10 2 D 5 1 4 4 3 Oferta 9 10 (3) 8 1 7 4 1 2 3 Demanda A 10 2 (7) 11 7 (0) B 7 (6) 8 12 6 (0) 5 C 6 9 8 10 2 D 5 1 (3) 4 4 (1) 1 Oferta 9 (3) 10 (3,0) 8 1 2 3 Demanda A 10 2 (7) 11 7 (0) B 7 (6) 8 12 6 (0) C 6 9 8 10 2 D 5 1 (3) 4 (1) 4 (1,0) 1 Oferta 9 (3) 10 (3,0) 8 (7) 1 2 3 Demanda A 10 2 (7) 11 7 (0) B 7 (6) 8 12 6 (0) C 6 (3) 9 8 10 (7) 1 D 5 1 (3) 4 (1) 4 (1,0) Oferta 9 (3,0) 10 (3,0) 8 (7) 1 2 3 Demanda A 10 2 (7) 11 7 (0) B 7 (6) 8 12 6 (0) C 6 (3) 9 8 (7) 10 (7,0) D 5 1 (3) 4 (1) 4 (1,0) Oferta 9 (3,0) 10 (3,0) 8 (7,0) 1 2 3 Demanda 1 4 1 4 35 Prof. Volmir Wilhelm A 1 2 3 Demanda TP052 – Pesquisa Operacional UFPR B 6 C 3 D 7 7 6 Oferta 9 10 8 3 1 4 7 10 36 A solução inicial será: x1B=6, x1C=3, x2A=7, x2D=3, x3C=7, x3D=1, Z=137. MÉTODO U-V PARA ACHAR A SOLUÇÃO ÓTIMA A seguir será estudado o método de Vogel (também conhecido como método u-v) para obtenção da solução ótima para o problema do transporte. a) Determinação da variável que entra na base Suponhamos que temos m origens e n destinos e a matriz de custos C = cij. Então o modelo dos transportes é Z m n c i 1 j 1 n ij xij 0 x ij ai u i i 1,..., m x ij bj v j 1,..., n j 1 m i 1 j xij 0 Se tivermos uma solução inicial, então será necessário eliminar as variáveis básicas da função objetivo. Seja u1, u2, ..., um e v1, v2, ..., vn as constantes pelas quais devem ser multiplicadas as restrições, antes de somá-las à função objetivo. Somando esses múltiplos das restrições à função objetivo, ela se transforma em Z cij u i v j xij u i ai v j b j m n i 1 j 1 m n i 1 j 1 e portanto, conhecida a solução inicial viável deve-se ter, para cada uma das (m + n –1) variáveis básicas, cij ui v j 0 ficando a função objetiva expressa somente em função das variáveis não-básicas. Os múltiplos (m + n) ui e vj serão determinado a partir de (m + n - 1) equações do tipo cij ui v j 0 . Por termos uma variável a mais que equações, pode-se atribuir valor nulo a uma delas e determinar as demais. No exemplo desenvolvido na aula passada construímos a seguinte solução inicial básica através do Processo do Custo Mínimo. 1 2 3 A 10 2 11 v1 B 7 8 12 v2 C 6 9 8 v3 D 5 1 4 v4 u1 u2 u3 9 6 1 4 6 1 Prof. Volmir Wilhelm TP052 – Pesquisa Operacional UFPR 37 Portanto o valor das (m + n) variáveis ui e vj será obtido das equações Variável básica x1C : 6-u1-v3 0 Variável básica x 2 A : 2-u 2 -v1 0 Variável básica x 2 D : 1-u 2 -v 4 0 Variável básica x3 A : 11-u 3 -v1 0 Variável básica x3 B : 12-u 3 -v 2 0 Variável básica x3C : 8-u 3 -v3 0 Fazendo, por exemplo u1 = 0 tem-se v3 6 v2 10 u 2 7 u 3 2 v1 9 v4 8 então 3 u a i 1 4 i i v b j 1 j j 0 9 7 10 2 8 54 9 7 10 6 6 10 8 4 215 Coeficient e x1 A : 10 9 1 Coeficient e x1B : 7 10 3 Coeficient e x1D : 5 8 3 Coeficient e x 2 B : 8 7 10 5 Coeficient e x 2C : 9 7 6 10 Coeficient e x3 D : 4 2 8 6 E tem-se finalmente Z 161 x1A 3x1B 3x1D 5x2 B 10 x2C 6 x3D Conclui-se que a solução ótima ainda não foi encontrada pois a função objetivo contém coeficientes negativos (pois é um problema de minimização) Todos estes cálculos podem ser feitos utilizando os seguintes quadros 1 2 3 1 2 3 vj A B C 9 6 1 6 1 D 4 A B 10 7 8 2 11 12 v1 = 9 5º v2 = 10 4º C 6 9 8 v3 = 6 2º D 5 1 4 v4 = 8 ui u1 = 0 1º u2 = -7 6º u3 = 2 3º Os valores dos coeficientes das variáveis não básicas é facilmente calculado. Prof. Volmir Wilhelm 1 2 3 vj A 10 (1) 2 11 v1 = 9 TP052 – Pesquisa Operacional UFPR B 7 (-3) 8 (5) 12 v2 = 10 C 6 9 (10) 8 v3 = 6 D 5 (-3) 1 4 (-6) v4 = 8 38 ui u1 = 0 u2 = -7 u3 = 2 Até agora sabemos determinar uma solução básica inicial e atualizar os coeficientes da função objetivo em função desta base. Deveremos determinar, agora, quem será a próxima variável a entrar na base, e quem deverá sair da base b) Determinação da variável que sai da base No exemplo anterior verifica-se que a solução ainda não é ótima pois na função objetivo existem coeficientes negativos, ou seja, Z 161 x1A 3x1B 3x1D 5x2 B 10 x2C 6 x3D A variável que deverá entrar na base é x3D pois se ela tornar-se positiva então irá minimizar mais ainda a função objetivo. Sabe-se, do método simplex que a variável que deve sair da base é aquela que se anular mais rapidamente quando x3D aumentar de valor. Vejamos isto a partir do próximo quadro. 1 2 3 A B C 9 6+ 1- 6 1 D 4- + i) Imaginando que a variável x3D entrará na base com valor > 0, que deve ser o maior possível. ii) Somar e subtrair aos valores de certas variáveis básicas de tal modo a se fechar um circuito que garanta a compatibilidade da nova solução. iii) Determinar o maior valor permitido a . No nosso exemplo será = 1. iv) O novo quadro será A 1 2 3 B C 9 6 1 7 D 3 1 As demais variáveis básicas (fora do circuito) não terão seus valores alterados. Prof. Volmir Wilhelm TP052 – Pesquisa Operacional UFPR 39 EXEMPLO COMPLETO Após x3D entrar na base, os custos serão Z 161 6 155 1 2 3 vj A 10 (7) 2 11 (6) v1 = 5 A 1 2 3 B 7 (-3) 8 (-1) 12 v2 = 12 B + C 6 9 (4) 8 v3 = 8 C 9- 7 6- 1+ D 5 (3) 1 4 v4 = 4 ui u1 = -2 u2 = -3 u3 = 0 D 3 1 O menor coeficiente é de x1B e portanto deverá entrar na base. Se = 6 então x3B deverá sair da base e os novos quadros serão ( Z 6 7 3 6 7 2 3 1 7 8 1 4 137 ) A 1 2 3 1 2 3 vj B 6 C 3 7 7 A 10 (7) 2 11 (6) v1 = 3 6 B 7 8 (2) 12 (3) v2 = 7 7 D 3 1 C D 5 (3) 6 9 (4) 1 8 4 v3 = 6 2 v4 = 2 4 ui u1 = 0 1 u2 = -1 5 u3 = 2 3 Todos os coeficientes das variáveis não básicas são positivos, e portanto se qualquer uma delas entrar na base irá “piorar” o valor da função objetivo. Logo, a solução encontrada é ótima. x1B 6 x1C 3 x2 A 7 x2 D 3 x 3C 7 x 3 D 1 Prof. Volmir Wilhelm TP052 – Pesquisa Operacional UFPR 40 CASOS ESPECIAIS a) Empate na entrada: escolha aleatória b) Empate na saída – degeneração: deve-se eliminar apenas a linha ou a coluna, não pode-se eliminar a linha e a coluna simultaneamente c) Solução múltiplas: quando alguma variável básica for nula d) Exemplo completo: página 129. 1 2 3 Dem. A 7 4 2 5 B 5 7 6 9 C 6 6 10 7 D 11 10 8 8 Of. 9 13 7 A B 9 0 C D 7 9 7 6 2 8 Of. 9 13 7 Solução final 1 2 3 Dem. 5 5