A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG - 2010.

Apresentações semelhantes


Apresentação em tema: "Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG - 2010."— Transcrição da apresentação:

1 Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG - 2010

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): Clientes 123 1243 Fábricas2152 3116 Manuel Pina Marques

3 Modelo de PL para Problema de Transportes x ij - quantidade de frigoríficos a transportar da fabrica i para o cliente j min 2x 11 + 4x 12 + 3x 13 + x 21 + 5x 22 + 2x 23 + x 31 + x 32 + 6x 33 sujeito a: x 11 +x 12 +x 13  20 x 21 +x 22 +x 23  20 x 31 +x 32 +x 33  20 x 11 +x 21 +x 31  10 x 12 +x 22 +x 32  30 x 13 +x 23 +x 33  20 x ij  0 Manuel Pina Marques

4 2 43 1 52 1 16 20 Quantidade disponível em cada origem Quantidade necessária em cada destino 103020 c ij Custos unitários de transporte x 11 x 12 x 13 x 21 x 31 x 22 x 32 x 33 Variáveis de decisão x ij Quantidade a enviar da origem i para o destino j Formulação como um Problema de Transportes Quadro para algoritmo de transportes Manuel Pina Marques

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

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

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

8 2 43 1 52 116 20 103020 Geração de uma solução inicial para o problema pela Regra do CUSTO MÍNIMO: 10 0 Menor valor de c ij 20 0 10 Atribuir o maior valor possível à variável x 32, 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 x 33 (isto é, ela será uma variável não básica) 10 0 0 0 0 Manuel Pina Marques

9 2 43 1 52 116 20 103020 Geração de uma solução inicial pela Regra do Canto NW Começando no canto superior esquerdo (canto NW), atribuir à variável x 11 o maior valor possível compatível com quantidade disponível na origem 1 (20) e da quantidade necessária no destino 1 (10) 1 10 0 Das variáveis com valor ainda não atribuído, considera-se a do canto NW. Atribuir a essa variável (no exemplo será x 12 ) o maior valor possível. 10 0 20 Como a atribuição do valor 20 à variável x 22 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 Das variáveis com valor ainda não atribuído, considera-se a do canto NW. Atribuir a essa variável (no exemplo será x 22 ) o maior valor possível. 0 0 20 0 0 Manuel Pina Marques

10 Geração de uma solução inicial pela Regra do Canto NW 2 43 1 52 1161 10 20 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 É assim necessário “promover” uma variável não básica (nula) a básica Representação das variáveis básicas através de um grafo: O1 origens destinos x 11 x 12 x 22 x 33 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) x 21 x 21 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 O2 O3 D1 D2 D3 x 23 Se x 23 for “promovida” a básica, os vértices O3 e D3 passam a ser acessíveis a partir dos restantes vértices x 23 Outras variáveis que podem ser “promovidas” a básicas, em alternativa a x 23 x 13 x 31 x 32 x 13 x 31 x 32 Vamos, por exemplo, promover x 13 a básica, de entre as variáveis possíveis ( x 13, x 23, x 31, x 32 ) Vamos, por exemplo, promover x 13 a básica, de entre as variáveis possíveis ( x 13, x 23, x 31, x 32 ) 0 Solução inicial obtida pela regra do Canto NW Manuel Pina Marques

11 2 4 3 1 52 161 10 20 0 Algoritmo de Transportes 1- cálculo dos custos marginais Para cada variável básica x ij, definir dois custos (custos marginais): u i - custo de despacho na origem i Para cada variável básica x ij, definir dois custos (custos marginais): u i - custo de despacho na origem i u1u1 u2u2 u3u3 v1v1 v2v2 v3v3 x 11 : 2 = u 1 + v 1 x 12 : 4 = u 1 + v 2 x 13 : 3 = u 1 + v 3 x 22 : 5 = u 2 + v 2 x 33 : 6 = u 3 + v 3 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. v j - custo de recepção no destino j, de forma a que c ij = u i + v j Obtêm-se assim 5 equações (tantas quantas as variáveis básicas):

12 2 4 3 1 52 161 10 20 0 u1u1 u2u2 u3u3 v1v1 v2v2 v3v3 Para x 11 tem-se : c 11 = u 1 + v 1  2= u1u1 Arbitrando, por exemplo, v 1 = 0 0 x 11 : 2 = u 1 + v 1 x 12 : 4 = u 1 + v 2 x 13 : 3 = u 1 + v 3 x 22 : 5 = u 2 + v 2 x 33 : 6 = u 3 + v 3 +0  u1u1 =2 2 x 11 : 2 = u 1 + v 1 x 12 : 4 = u 1 + v 2 x 13 : 3 = u 1 + v 3 x 22 : 5 = u 2 + v 2 x 33 : 6 = u 3 + v 3 Algoritmo de Transportes 1- cálculo dos custos marginais Manuel Pina Marques

13 2 4 3 1 52 161 10 20 0 u1u1 u2u2 u3u3 v1v1 v2v2 v3v3 Para x 12 tem-se : c 12 = u 1 + v 2  4=2 Arbitrando, por exemplo, v 1 = 0 0 + v2v2  =2 2 x 11 : 2 = u 1 + v 1 x 12 : 4 = u 1 + v 2 x 13 : 3 = u 1 + v 3 x 22 : 5 = u 2 + v 2 x 33 : 6 = u 3 + v 3 v2v2 2 Algoritmo de Transportes 1- cálculo dos custos marginais Manuel Pina Marques

14 2 4 3 1 52 161 10 20 0 u1u1 u2u2 u3u3 v1v1 v2v2 v3v3 Para x 13 tem-se : c 13 = u 1 + v 3  3=2 Arbitrando, por exemplo, v 1 = 0 0 + v3v3  =1 2 x 11 : 2 = u 1 + v 1 x 12 : 4 = u 1 + v 2 x 13 : 3 = u 1 + v 3 x 22 : 5 = u 2 + v 2 x 33 : 6 = u 3 + v 3 v3v3 21 Algoritmo de Transportes 1- cálculo dos custos marginais Manuel Pina Marques

15 2 4 3 1 52 161 10 20 0 u1u1 u2u2 u3u3 v1v1 v2v2 v3v3 Para x 22 tem-se : c 22 = u 2 + v 2  5= u2u2 Arbitrando, por exemplo, v 1 = 0 0 +2  =3 2 x 11 : 2 = u 1 + v 1 x 12 : 4 = u 1 + v 2 x 13 : 3 = u 1 + v 3 x 22 : 5 = u 2 + v 2 x 33 : 6 = u 3 + v 3 21 u2u2 3 Algoritmo de Transportes 1- cálculo dos custos marginais Manuel Pina Marques

16 2 4 3 1 52 161 10 20 0 u1u1 u3u3 v1v1 v2v2 v3v3 Para x 33 tem-se : c 33 = u 3 + v 3  6= u3u3 Arbitrando, por exemplo, v 1 = 0 0 +1  =5 2 x 11 : 2 = u 1 + v 1 x 12 : 4 = u 1 + v 2 x 13 : 3 = u 1 + v 3 x 22 : 5 = u 2 + v 2 x 33 : 6 = u 3 + v 3 21 u3u3 3 5 Algoritmo de Transportes 1- cálculo dos custos marginais Manuel Pina Marques

17 2 4 3 1 52 161 10 20 0 0 2 2 1 3 5 Algoritmo de Transportes 2 - cálculo das diferenças Para cada variável não básica x ij, calcular a diferença  i j = c ij – [ u i + v j ] x 23 :  23 = c 23 – [ u 2 + v 3 ]  21 = 1 – [3 + 0] = –2–2 –2–2  23 = 2 – [3 + 1] = –2–2 x 21 :  21 = c 21 – [ u 2 + v 1 ] x 31 :  31 = c 31 – [ u 3 + v 1 ] x 32 :  32 = c 32 – [ u 3 + v 2 ]   –2–2  31 = 1 – [5 + 0] = –4–4  –4–4  –6–6  32 = 1 – [5 + 2] = –6–6 A solução é óptima se se verificarem as condições: Problema de minimização  ij  0 Problema de Maximização  ij  0 A solução é óptima se se verificarem as condições: Problema de minimização  ij  0 Problema de Maximização  ij  0 Os  ij têm o mesmo significado dos coeficientes na função objectivo no Simplex Manuel Pina Marques

18 Algoritmo de Transportes A solução não é óptima, pois há  ij < 0 e o problema é de minimização A solução não é óptima, pois há  ij < 0 e o problema é de minimização 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 ) 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 ) Entra para a base a variável x 32 (  32 = – 6 ) 2 4 3 1 52 161 10 20 0 0 2 2 1 3 5 –2–2 –2–2 –4–4 –6–6 x 32 Manuel Pina Marques

19 Algoritmo de Transportes 2 4 3 1 52 161 10 20 0 –2–2 –2–2 –4–4 –6–6 Ao entrar na base, a variável x 32 deixa de valer 0 passando a valer , positivo. O valor das variáveis básicas altera-se de forma a que: Sejam respeitadas disponibilidades e necessidades (restrições do problema) (i) só uma variável não básica passe a básica (e vice-versa); (ii) o valor de  garanta que nenhuma variável tome um valor negativo (iii) +  –  A disponibilidade de frigoríficos na fábrica 3 é de 20 frigoríficos. A solução actual, x 31 = x 32 = 0 e x 33 = 20 respeita essa disponibilidade (linha 3 da tabela). Como x 32 vai entrar para a base (por adição do valor  ), esta restrição deixa de ser respeitada: x 31 + (x 32 +  ) + x 33 = 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. A disponibilidade de frigoríficos na fábrica 3 é de 20 frigoríficos. A solução actual, x 31 = x 32 = 0 e x 33 = 20 respeita essa disponibilidade (linha 3 da tabela). Como x 32 vai entrar para a base (por adição do valor  ), esta restrição deixa de ser respeitada: x 31 + (x 32 +  ) + x 33 = 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 x 32 Não é possível subtrair  a x 31 (variável não básica), pois esta variável assumiria um valor negativo Deve-se então subtrair  a uma variável básica que, no exemplo, terá de ser x 33

20 Algoritmo de Transportes 2 4 3 1 52 161 10 20 0 –2–2 –2–2 –4–4 –6–6 O valor das variáveis básicas altera-se de forma a que: Sejam respeitadas disponibilidades e necessidades (restrições do problema) (i) só uma variável não básica passe a básica (e vice-versa); (ii) o valor de  garanta que nenhuma variável tome um valor negativo (iii) +  –  +  Subtrair  à variável x 33 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 x 33 Não é possível adicionar  a x 23 (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 co ntrariar (ii) Deve-se então adicionar  a uma variável básica que, no exemplo, terá de ser x 13

21 Algoritmo de Transportes 2 4 3 1 52 161 10 20 0 –2–2 –2–2 –4–4 –6–6 O valor das variáveis básicas altera-se de forma a que: Sejam respeitadas disponibilidades e necessidades (restrições do problema) (i) só uma variável não básica passe a básica (e vice-versa); (ii) o valor de  garanta que nenhuma variável tome um valor negativo (iii) +  –  +  Adicionar  à variável x 13 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 x 13 Caso se subtraia  a x 11, quando se quiser garantir que o cliente 1 recebe os 10 frigoríficos de que necessita, ter-se-á de adicionar  a x 21 ou a x 31 (o que faria com que houvesse uma segunda variável a entrar na base nesta iteração). Deve-se então subtrair  a x 12 –  +  Manuel Pina Marques

22 Algoritmo de Transportes 2 4 3 1 52 161 10 20 0 –2–2 –2–2 –4–4 –6–6 O valor das variáveis básicas altera-se de forma a que: Sejam respeitadas disponibilidades e necessidades (restrições do problema) (i) só uma variável não básica passe a básica (e vice-versa); (ii) o valor de  garanta que nenhuma variável tome um valor negativo (iii) +  –  +  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) 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)  = ?  = min (10, 20) = 10  deverá ser igual ao menor valor das variáveis a que o vamos subtrair

23 Algoritmo de Transportes 2 4 3 1 52 161 10 20 0 –2–2 –2–2 –4–4 –6–6 +  –  +   = min (10, 20) = 10 x 12 = 10 –  = 10 – 10 = 0 x 13 = 0 +  = 0 +10 = 10 x 32 =  = 10 x 33 = 20 –  = 20 – 10 = 10 A variável x 12 anula-se, logo na nova solução passa a ser uma variável não básica 10 A variável x 32 na nova solução passa a ser uma variável básica 10 Obtivemos assim uma nova solução alterando o valor de 4 variáveis Manuel Pina Marques

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

25 Algoritmo de Transportes 10 20 10 Definição do conjunto de variáveis cujo valor será alterado na próxima solução: 2 1 1 4 5 1 3 2 6 –8–8 6 –8–8 –4–4 –– +  –– –– 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  = min (10, 20, 10) = 10  deverá ser igual ao menor valor das variáveis a que o vamos subtrair 10 20 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 x 11 e x 33 (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 x 11 permanece como básica e que x 33 passa a básica. (podíamos ter feito ao contrário: x 33 permanecia como básica e que x 11 passava) a básica 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 x 11 e x 33 (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 x 11 permanece como básica e que x 33 passa a básica. (podíamos ter feito ao contrário: x 33 permanecia como básica e que x 11 passava) a básica 0 x 11 permanece básica 20 10 Manuel Pina Marques

26 Algoritmo de Transportes 10 20 2 1 1 4 5 1 3 2 6 8 –2–2 0 4 10 20 0 0 –5–5 –1 23 6 Arbitrando, por exemplo, u 1 = 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 x 11 passa agora a ser não básica, e x 12 passa a ser básica 0 Manuel Pina Marques

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

28 Algoritmo de Transportes 20 2 1 1 4 5 1 3 2 6 6 0 2 2 10 3 0 2 –10 1 Arbitrando, por exemplo, v 3 = 0 A solução é óptima, pois todos os  ij  0 10 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 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 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 x 11 Manuel Pina Marques


Carregar ppt "Algoritmo de Transportes Objecto de Aprendizagem Manuel Pina MarquesDEIG - 2010."

Apresentações semelhantes


Anúncios Google