1 / 28

Algoritmo de Transportes

Algoritmo de Transportes. Objecto de Aprendizagem. DEIG - 2010. Manuel Pina Marques. O problema da distribuição de frigorificos.

lirit
Download Presentation

Algoritmo de Transportes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Algoritmo de Transportes Objecto de Aprendizagem DEIG - 2010 Manuel Pina Marques

  2. O problema da distribuição de frigorificos Um fabricante de frigoríficos tem 3 fabricas, de onde abastece 3 clientes (distribuidores). No início de cada mês recebe de cada cliente a informação sobre o numero de frigoríficos que pretende para esse mês. Esses frigoríficos terão que ser produzidos nas várias fábricas, atendendo à capacidade de produção de cada uma delas. O custo de transportar um frigorifico de cada fábrica para cada cliente é conhecido. O problema consiste em determinar que fábrica(s) deve(m) abastecer cada cliente, e em que quantidades, de forma a que, respeitando as capacidades de produção das fábricas e satisfazendo as necessidades dos clientes, o custo total de transporte seja minimizado. Formule este problema considerando que as capacidades de produção são iguais em todas as fábricas (20 frigoríficos ) e que as necessidades dos clientes são de 10, 30 e 20 frigoríficos. Os custos unitários de transporte são os indicados na tabela seguinte (em milhares de unidades monetárias): Manuel Pina Marques

  3. Modelo de PL para Problema de Transportes xij- quantidade de frigoríficos a transportar da fabrica i para o cliente j min 2x11 + 4x12 + 3x13 + x21 + 5x22 + 2x23 + x31 + x32 + 6x33 sujeito a: x11 +x12 +x13 20 x21 +x22 +x23 20 x31 +x32 +x33 20 x11 +x21 +x31 10 x12 +x22 +x32 30 x13 +x23 +x33 20 xij 0 Manuel Pina Marques

  4. Formulação como um Problema de Transportes Quadro para algoritmo de transportes Variáveis de decisão xij Quantidade a enviar da origem i para o destino j cij Custos unitários de transporte Quantidade disponível em cada origem Destinos (Clientes) 1 2 3 x11 x12 x13 1 20 4 3 2 2 x21 x22 x32 Origens (Fábricas) 20 1 5 2 x31 x32 x33 3 20 1 6 1 Quantidade necessária em cada destino 10 30 20 Manuel Pina Marques

  5. Algoritmo de Transportes • Geração de uma solução inicial para o problema: • Regra do Custo Mínimo • Regra do canto NW • Melhorar a solução até se obter a solução óptima Manuel Pina Marques

  6. Geração de uma solução inicial para o problema pela Regra do CUSTO MÍNIMO Atribuir o maior valor possível à variável x21, tendo em conta a quantidade disponível na origem 2 (20 unidades) e a quantidade necessária no destino 1 (10 unidades) Atribuir valores às variáveis de decisão, por ordem crescente dos respectivos custos unitários de transporte (cij) 1 2 3 Menor valor de cij 1 20 4 3 2 10 2 Há mais duas variáveis com cij =1 Escolher arbitrariamente entre as três variáveis . Vai-se escolher a variável X21 20 1 5 2 3 20 1 1 1 6 10 30 20 Manuel Pina Marques

  7. Geração de uma solução inicial para o problema pela Regra do CUSTO MÍNIMO: Corrigir a quantidade disponível na origem 2 Como está satisfeita na totalidade a quantidade necessária no destino 1, atribuir o valor zero às outras variáveis da coluna de x21 (isto é, elas serão variáveis não básicas nesta solução) 1 2 3 1 20 4 3 2 10 2 20 10 1 5 2 3 20 1 1 6 Corrigir a quantidade procurada no destino 1 10 30 20 0 Manuel Pina Marques

  8. Geração de uma solução inicial para o problema pela Regra do CUSTO MÍNIMO: Atribuir o maior valor possível à variável x32, tendo em conta a quantidade disponível na origem 3 (20 unidades) e a necessária no destino 2 (30 unidades) Como fica esgotada a quantidade disponível na origem 3, atribuir o valor zero à variável x33 (isto é, ela será uma variável não básica) 1 2 3 10 10 1 20 10 0 4 3 2 10 2 10 20 10 0 1 5 2 20 3 20 0 1 1 6 Menor valor de cij 10 30 20 0 10 10 0 0 Manuel Pina Marques

  9. Geração de uma solução inicial pela Regra do Canto NW Como a atribuição do valor 20 à variável x22 esgota simultaneamente a oferta da origem 2 e a necessidade do destino 2 (e existem variáveis a que ainda não foram atribuídos valores) a solução inicial que se irá obter será degenerada Começando no canto superior esquerdo (canto NW), atribuir à variável x11 o maior valor possível compatível com quantidade disponível na origem 1 (20) e da quantidade necessária no destino 1 (10) • Das variáveis com valor ainda não atribuído, considera-se a do canto NW. Atribuir a essa variável (no exemplo será x12) o maior valor possível. 1 2 3 • Das variáveis com valor ainda não atribuído, considera-se a do canto NW. Atribuir a essa variável (no exemplo será x22) o maior valor possível. 10 10 1 20 10 0 4 3 2 2 20 20 0 1 5 2 20 3 20 0 1 1 1 6 10 30 20 0 20 0 0 Manuel Pina Marques

  10. Geração de uma solução inicial pela Regra do Canto NW Solução inicial obtidapela regra do Canto NW A solução encontrada é admissível, mas não é básica (só tem 4 variáveis básicas) Para ser básica é necessário de o número de variáveis básicas seja igual a (n + m –1) No exemplo, 3 (origens) + 3 (destinos) – 1 = 5 variáveis básicas Vamos, por exemplo, promover x13 a básica, de entre as variáveis possíveis (x13, x23, x31, x32) x13 0 x21 x23 É assim necessário “promover” uma variável não básica (nula) a básica 1 2 3 x31 x32 Representação das variáveis básicas através de um grafo: 10 10 1 4 3 2 origens A selecção da variável a “promover” a básica deverá garantir que o grafo representativo das variáveis básicas seja uma árvore e conexo (qualquer vértice do grafo deve ser acessível a partir de qualquer outro vértice) destinos x11 O1 D1 2 20 x12 x13 1 5 2 x21 x22 O2 D2 20 3 Outras variáveis que podem ser “promovidas” a básicas, em alternativa a x23 x21 não pode ser “promovida” a básica, pois os vértices O3 e D3 continuam a não serem acessíveis a partir dos restantes vértices x31 1 1 1 6 x32 Se x23for “promovida” a básica, os vértices O3 e D3 passam a ser acessíveis a partir dos restantes vértices x23 O3 D3 x33 Manuel Pina Marques

  11. Algoritmo de Transportes 1- cálculo dos custos marginais Para cada variável básica xij, definir dois custos (custos marginais): ui- custo de despacho na origem i vj- custo de recepção no destino j, de forma a quecij=ui+vj Obtêm-se assim 5 equações (tantas quantas as variáveis básicas): x11: 2=u1+v1 x12: 4=u1+v2 x13: 3=u1+v3 x22: 5=u2+v2 x33: 6=u3+v3 v2 v1 v3 10 10 0 u1 4 3 2 20 u2 5 equações e 6 incógnitas Pode-se arbitrar o valor de uma qualquer das incógnitas e, a partir das equações, determinar os valores das restantes incógnitas. 1 5 2 20 u3 1 1 6

  12. Algoritmo de Transportes 1- cálculo dos custos marginais Arbitrando, por exemplo, v1 = 0 Para x11 tem-se: c11 = u1 + v1  2 = u1 + 0  u1 = 2 x11:2=u1+v1 x12: 4 = u1 + v2 x13: 3 = u1 + v3 x22: 5 = u2 + v2 x33: 6 = u3 + v3 x11: 2=u1+v1 x12: 4=u1+v2 x13: 3=u1+v3 x22: 5=u2+v2 x33: 6=u3+v3 0 v2 v1 v3 10 10 0 u1 2 4 3 2 20 u2 1 5 2 20 u3 1 1 6 Manuel Pina Marques

  13. Algoritmo de Transportes 1- cálculo dos custos marginais Arbitrando, por exemplo, v1 = 0 Para x12 tem-se: c12 = u1 + v2  v2 v2 4 = 2 +  = 2 x11: 2 = u1 + v1 x12: 4=u1+v2 x13: 3 = u1 + v3 x22: 5 = u2 + v2 x33: 6 = u3 + v3 0 v2 v1 2 v3 10 10 0 u1 2 4 3 2 20 u2 1 5 2 20 u3 1 1 6 Manuel Pina Marques

  14. Algoritmo de Transportes 1- cálculo dos custos marginais Arbitrando, por exemplo, v1 = 0 Para x13 tem-se: c13 = u1 + v3  v3 v3 3 = 2 +  = 1 x11: 2 = u1 + v1 x12: 4 = u1 + v2 x13: 3=u1+v3 x22: 5 = u2 + v2 x33: 6 = u3 + v3 0 v2 v1 2 v3 1 10 10 0 u1 2 4 3 2 20 u2 1 5 2 20 u3 1 1 6 Manuel Pina Marques

  15. Algoritmo de Transportes 1- cálculo dos custos marginais Arbitrando, por exemplo, v1 = 0 Para x22 tem-se: c22 = u2 + v2  u2 u2 5 = + 2  = 3 x11: 2 = u1 + v1 x12: 4 = u1 + v2 x13: 3 = u1 + v3 x22: 5=u2+v2 x33: 6 = u3 + v3 0 v2 v1 2 v3 1 10 10 0 u1 2 4 3 2 20 u2 3 1 5 2 20 u3 1 1 6 Manuel Pina Marques

  16. Algoritmo de Transportes 1- cálculo dos custos marginais Arbitrando, por exemplo, v1 = 0 Para x33 tem-se: c33 = u3 + v3  u3 u3 6 = + 1  = 5 x11: 2 = u1 + v1 x12: 4 = u1 + v2 x13: 3 = u1 + v3 x22: 5 = u2 + v2 x33: 6=u3+v3 0 v2 v1 2 v3 1 10 10 0 u1 2 4 3 2 20 3 1 5 2 20 u3 5 1 1 6 Manuel Pina Marques

  17. Algoritmo de Transportes 2 - cálculo das diferenças Para cada variável não básica xij, calcular a diferença i j = cij– [ui + vj]  21=1– [3+0] = –2 x21: 21=c21 – [u2+v1]  23=2– [3+1] = –2 x23: 23=c23 – [u2+v3]  31=1– [5+0] = –4 x31: 31=c31– [u3+v1]  32=1– [5+2] = –6 x32: 32=c32– [u3+v2] 0 1 2 Osijtêm o mesmo significado dos coeficientes na função objectivo no Simplex • A solução é óptima se se verificarem as condições: • Problema de minimização • ij 0 • Problema de Maximização • ij 0 10 10 0 2 4 3 2 20 3 1 –2 5 –2 2 20 5 1 1 6 –6 –4 Manuel Pina Marques

  18. Algoritmo de Transportes • Num problema de minimização entra para a base a variável não básica que tiver associado um ij mais negativo • (quando o problema é de Maximização, entra para a base a variável com ij positivo, de maior valor ) • A solução não é óptima, pois há ij< 0 • e o problema é de minimização • Entra para a base a variável x32( 32 = – 6 ) 0 1 2 10 10 0 2 4 3 2 20 3 1 –2 –2 5 2 x32 20 5 1 1 6 –6 –4 Manuel Pina Marques

  19. Algoritmo de Transportes • O valor das variáveis básicas altera-se de forma a que: • A disponibilidade de frigoríficos na fábrica 3 é de 20 frigoríficos. • A solução actual, x31 = x32 = 0 e x33= 20 respeita essa disponibilidade (linha 3 da tabela). • Como x32 vai entrar para a base (por adição do valor ), esta restrição deixa de ser respeitada: • x31 + (x32 +  ) + x33= 20  0 + (0 +  ) + 20 = 20   + 20 = 20 • Na nova solução, a fábrica 3 teria de fornecer (20 + ) frigoríficos, mas só dispõe de 20. • Para que esta restrição se volte a verificar, tem que se subtrair, a outra variável da linha 3, o mesmo valor  que foi adicionado a x32 10 10 0 4 3 2 Não é possível subtrair  a x31 (variável não básica), pois esta variável assumiria um valor negativo 20 Ao entrar na base, a variável x32 deixa de valer 0 passando a valer , positivo. Deve-se então subtrair  a uma variável básica que, no exemplo, terá de ser x33 1 –2 –2 5 2 20 –  +  1 1 6 –6 –4

  20. Algoritmo de Transportes • O valor das variáveis básicas altera-se de forma a que: Subtrair  à variável x33 faz com que deixe de ser respeitada a necessidade do cliente 3. Este deixa de receber os 20 frigoríficos que necessita e passa a receber (20 – ) • Para que esta restrição se volte a verificar, tem que se adicionar, a outra variável da coluna 3, o mesmo valor  que foi subtraído a x33 Não é possível adicionar ax23(variável não básica), senão haveria uma segunda variável não básica a entrar para a base na mesma iteração, o que iria contrariar (ii) 10 10 0 +  4 3 2 20 Deve-se então adicionar  a uma variável básica que, no exemplo, terá de ser x13 1 –2 –2 5 2 20 –  +  1 1 6 –6 –4

  21. Algoritmo de Transportes • O valor das variáveis básicas altera-se de forma a que: Adicionar  à variável x13 faz com que deixe de ser respeitada a disponibilidade da fábrica 1. Esta deixa de fornecer os 20 frigoríficos de que dispõe, e passa a fornecer (20 + ) • Para que esta restrição se volte a verificar, tem que se subtrair, a outra variável básica da linha 1, o mesmo valor  que foi adicionado a x13 Caso se subtraia ax11, quando se quiser garantir que o cliente 1 recebe os 10 frigoríficos de que necessita, ter-se-á de adicionar  ax21ou ax31 (o que faria com que houvesse uma segunda variável a entrar na base nesta iteração). 10 10 0 –  –  +  4 3 2 20 +  1 –2 Deve-se então subtrair  ax12 –2 5 2 20 –  +  +  1 1 6 –6 –4 Manuel Pina Marques

  22. Algoritmo de Transportes • O valor das variáveis básicas altera-se de forma a que: Foram definidas as variáveis que, na próxima solução, irão ver o seu valor alterado (as variáveis a que adicionamos, ou subtraímos, ) • Para definirmos o valor de , temos de atender a que: • o valor de  tem de garantir que nenhuma variável tome um valor negativo; • uma das variáveis básicas tem de passar a não básica (isto é, tem de se anular) 10 10 0 –  +  4 3 2 20 •  = • ? 1 –2 –2 5 2 • deverá ser igual ao menor valor das variáveis a que o vamos subtrair 20 –  +  1 1 6 –6 –4 • = min (10, 20) = 10

  23. Algoritmo de Transportes • = min (10, 20) = 10 A variável x32 na nova solução passa a ser uma variável básica x32 =  = 10 A variável x12 anula-se, logo na nova solução passa a ser uma variável não básica x12 = 10 –  = 10 – 10= 0 x13 = 0 +  = 0 +10= 10 x33= 20 –  = 20 – 10= 10 10 10 10 0 –  +  4 3 2 Obtivemos assim uma nova solução alterando o valor de 4 variáveis 20 1 –2 –2 5 2 10 10 20 –  +  1 1 6 –6 –4 Manuel Pina Marques

  24. Algoritmo de Transportes Arbitrando, por exemplo, u1 = 0 • A solução não é óptima, pois há ij< 0 • Entra para a base a variável xijcomijmais negativo: • Há um empate no critério de entrada para a base; pode entrar x21oux23, ambos com ij= – 8 –2 2 3 • Vai-se escolher a variável x21 para entrar para a base (poderia ter sido x23) 10 10 0 4 3 2 6 20 7 1 –8 5 –8 2 10 10 3 1 1 6 –4 Manuel Pina Marques

  25. Algoritmo de Transportes • Terá de sair da base (ou seja, terá se se anular) uma e uma só variável. • No caso presente, ao subtrair = 10 às variáveis x11 e x33 (que tomam ambas actualmente o valor de 10), os valores de ambas as variáveis anulam-se. • Mas só uma delas pode passar a não básica. • Por isso, vamos admitir que a variável x11 permanece como básica e que x33 passa a básica. • (podíamos ter feito ao contrário: x33 permanecia como básica e que x11 passava) a básica Definição do conjunto de variáveis cujo valor será alterado na próxima solução: A solução seguinte será obtida alterando o valor actual de 6 variáveis Note-se que na iteração anterior alteramos somente o valor de 4 variáveis O número de variáveis cujo valor é alterado pode variar de iteração para iteração • deverá ser igual ao menor valor das variáveis a que o vamos subtrair • =min (10, 20, 10) = 10 10 20 10 – 0 + x11permanece básica 4 3 2 6 10 20 10 – + 1 –8 5 –8 2 20 10 10 + – 1 1 6 –4 Manuel Pina Marques

  26. Algoritmo de Transportes Arbitrando, por exemplo, u1 = 0 • A solução não é óptima, pois 12< 0 • =min (0,10) = 0 Em termos numéricos a solução não se vai alterar nesta iteração; no entanto, o conjunto das variáveis básicas altera-se, pois a variável x11passa agora a ser não básica, e x12passa a ser básica 6 2 3 0 + 20 0 – 0 4 3 2 –2 10 + 10 – –1 1 5 0 2 20 –5 1 1 6 4 8 Manuel Pina Marques

  27. Algoritmo de Transportes Arbitrando, por exemplo, v2 = 0 • A solução não é óptima, pois 23 = – 2 < 0 • =min (20,10) = 10 0 –4 –1 0 10 + 10 20 – 4 4 3 2 2 10 10 – 10 + 5 1 5 –2 2 20 1 1 1 6 4 6 Manuel Pina Marques

  28. Algoritmo de Transportes • A solução óptima será então • Enviar da Fábrica 1, 10 frigoríficos para o Cliente 2, e 10 frigoríficos para o Cliente 3; • Enviar da Fábrica 2, 10 frigoríficos para o Cliente 1, e 10 frigoríficos para o Cliente 3; • Enviar da Fábrica 3, 20 frigoríficos para o Cliente 2 Arbitrando, por exemplo, v3 = 0 • A solução é óptima, pois todos os ij 0 Como11 = 0, o problema tem uma solução óptima alternativa à que aqui foi obtida. Caso se desejasse conhecer essa solução óptima alternativa teríamos de fazer entrar para a base a variável x11 O custo total de transporte (valor da função objectivo) associado à solução óptima: CT = 4 x 10 + 3 x 10 + 1 x 10 + 2 x 10 + 1 x 20 = 120 Destinos - (Clientes) 1 –1 0 1 2 3 10 10 1 3 4 3 2 0 2 10 10 2 Origens - (Fábricas) 1 2 5 2 20 3 0 1 1 6 2 6 Manuel Pina Marques

More Related