Originally posted by: SystemAdmin
[g.vandenmoort said:]
I am having issued retrieving the dual value for my constraints. It should be straightforward but I have no clue what I'm doing wrong. Here is my script
//int numEdges = 4;
int maxNode = 4;
//range EDGES = 1..numEdges;
range Node = 1..maxNode;
tuple Edge {
int head;
int tail;
float capacity;
float index;
};
{Edge} edges = {<1,2,1.3,1>,<2,3,2.3,2>,<3,4,1.4,3>,<1,4,10.7,4>};
float cost[edges] = [ 1, 2, 3, 7];
dvar float+ p[edges];
minimize sum(x in edges) cost[x]*p[x];
subject to {
balance:forall(y in Node: y != 1 && y != maxNode) {
sum(x in edges:x.head==y) p[x]- sum(z in edges:z.tail==y) p[z] == 0;
}
toSink:sum(x in edges:x.tail==maxNode) p[x] == 0.5;
capacity:forall(x in edges) p[x]<=x.capacity; <br />}
execute{
for(var x in edges) {
writeln(capacity[x].dual);
}
Thanks in advance.
#DecisionOptimization#OPLusingCPLEXOptimizer