Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouIsabel Freire Fraga Alterado mais de 8 anos atrás
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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.