Você está na página 1de 7

TRANSPORTE – Gestão de Cadeia de Suprimentos (MG600)

Problema: definição de rotas de transporte. Determinar a rota com menor distância para
os seguintes pontos.

CÓDIGO GAMS
--------------------------------------------------------------------------------------------------------------------
* Author: Marcos Proenca
SETS
i cidades /0*20/
ALIAS (i,j);
PARAMETER cordx(i)
/
04
10
20
31
41
52
62
73
83
93
10 4
11 5
12 5
13 5
14 6
15 6
16 6
17 7
18 7
19 7
20 8
/

cordy(i)
/
03
10
24
32
47
53
65
71
84
97
10 6
11 1
12 3
13 7
14 1
15 5
16 7
17 3
18 4
19 6
20 5
/
;
PARAMETER d(i,j);
d(i,j)= sqrt((abs(cordx(j) - cordx(i)))**2 + (abs(cordy(j) - cordy(i)))**2);
display d;

VARIABLES
x(i,j) 1 se a rota vai de i para j imediatamente e 0 caso contrario
z distancia total percorrida
u(i);

BINARY VARIABLE x;

EQUATIONS
custo funcao objetivo
restr_suc(i) garante que cada cidade i tem uma unica cidade sucessora
restr_antec(j) garante que cada cidade j tem uma unica cidade antecessora
rest_subtour(i,j) garante a nao existencia de subrotas
;
custo.. z =e= sum((i,j) $ {ord(i)<>ord(j)}, d(i,j) * x(i,j) );
restr_suc(i).. sum(j${ORD(j) <> ORD(i)}, x(i,j) ) =e= 1;
restr_antec(j).. sum(i${ORD(i) <> ORD(j)}, x(i,j) ) =e= 1;
rest_subtour(i,j)$[ord(j) > 1 and ord(i) <> ord(j)].. u(j) =g= u(i) + x(i,j) + card(i)*(x(i,j)-1);

MODEL caixeiro /all/;


SOLVE caixeiro USING mip minimizing z;
DISPLAY z.l, x.l;
--------------------------------------------------------------------------------------------------------------------
RESULTADOS:
Problema: caminho mínimo. Determinar o caminho mais curto do ponto A (origem) para
o ponto J (destino)
CÓDIGO GAMS
--------------------------------------------------------------------------------------------------------------------
* Author: Marcos Proenca
set i origem /A,B,C,D,E,F,G,H,I,J/
conexoes(i,i) /A.B,
A.C,
A.D,
B.E,
B.C,
C.F,
C.D,
D.G,
E.F,
E.I,
F.H,
F.G,
I.J,
I.H,
H.G,
H.J,
G.J/
;
alias(i,j,k);
parameter d(i,j)
/
A.B 90,
A.C 138,
A.D 348,
B.E 84,
B.C 66,
C.F 90,
C.D 156,
D.G 48,
E.F 120,
E.I 84,
F.H 60,
F.G 132,
I.J 126,
I.H 132,
H.G 48,
H.J 126
G.J 150
/
variables x(i,j),z;
binary variables x;
equations
FO funçao objetivo
R1
R2
R3
;

FO.. z =e= sum((i,j),d(i,j)*x(i,j));


R1.. sum(conexoes('A',j), x('A',j)) =e= 1;
R2.. sum(conexoes(i,'J'), x(i,'J')) =e= 1;
R3(j)${ord(j) gt 1 and ord(j) <> card(j)}..
sum(conexoes(i,j), x(i,j)) - sum(conexoes(j,k), x(j,k)) =e= 0;

Model caminhominimo /all/;


solve caminhominimo using mip minimizing z;

display x.l,z.l;
--------------------------------------------------------------------------------------------------------------------
RESULTADOS:

Você também pode gostar