Problema de costo mínimo
Método uno método de programación de matriz de coeficientes 0-1
Código
Dado que no hay un formato de coloración de código de tipo jerga, primero daré una captura de pantalla, tal vez sea más claro
model:
sets:
node/1..6/;
road(node,node)/1,2,1,3,2,4,2,5,3,4,3,5,4,6,5,6/:w,f;
endsets
data:
w=2,1,5,3,4,3,0,0;
enddata
n=@size(node);
min=@sum(road(i,j):w(i,j)*f(i,j));
@for(node(i)|i#ne#1 #and# i#ne#n:
@sum(road(i,j):f(i,j))=@sum(road(j,i):f(j,i))
);
@sum(road(i,j)|i#eq#1:f(i,j))=1;
@sum(road(j,i)|i#eq#n:f(j,i))=1;
resultado de la operación
Método dos de programación dinámica
Código
model:
sets:
node/1..6/:L;
road(node,node)/1,2,1,3,2,4,2,5,3,4,3,5,4,6,5,6/:c;
endsets
data:
c=2,1,5,3,4,3,0,0;
enddata
L(1)=0;
@for(node(i)|i#gt#1:
L(i)=@min(road(j,i)|j#ne#i:L(j)+c(j,i))
);
end
resultado de la operación
Método tres Método de matriz de adyacencia
Código
model:
sets:
node/1..6/:L;
road(node,node):a,w;
endsets
data:
a=
0,1,1,0,0,0,
0,0,0,1,1,0,
0,0,0,1,1,0,
0,0,0,0,0,1,
0,0,0,0,0,1,
0,0,0,0,0,0;
w=
9,2,1,9,9,9,
9,9,9,5,3,9,
9,9,9,4,3,9,
9,9,9,9,9,0,
9,9,9,9,9,0,
9,9,9,9,9,9;
enddata
L(1)=0;
@for(node(i)|i#ne#1:
L(i)=@min(road(j,i)|j#ne#i #and# a(j,i)#ne#0:
L(j)+w(j,i)));
end
resultado de la operación