MCPcopy Create free account
hub / github.com/Gecode/gecode / main

Function main

contribs/qecode/examples/network-pricing1.cpp:69–168  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67/////////////////////////////////////////////////////////////////////////////////////////
68
69int main() {
70 int NCustomer = 9;
71 int NArc = 5;
72 int*c = new int[NCustomer*NArc]; // [NArc*i+j] : Initial cost for client i to reach way j
73 int* d = new int[NCustomer]; // d[i] : amount of data client i wants to transmit
74 int* u = new int[NCustomer]; // u[i] : maximum cost client i will accept
75 int max = 19;
76
77 c[0*NArc+0]=5; c[0*NArc+1]=1; c[0*NArc+2]=8; c[0*NArc+3]=6; c[0*NArc+4]=6;
78 c[1*NArc+0]=2; c[1*NArc+1]=8; c[1*NArc+2]=6; c[1*NArc+3]=3; c[1*NArc+4]=1;
79 c[2*NArc+0]=0; c[2*NArc+1]=8; c[2*NArc+2]=0; c[2*NArc+3]=8; c[2*NArc+4]=6;
80 c[3*NArc+0]=2; c[3*NArc+1]=4; c[3*NArc+2]=7; c[3*NArc+3]=5; c[3*NArc+4]=8;
81 c[4*NArc+0]=8; c[4*NArc+1]=2; c[4*NArc+2]=4; c[4*NArc+3]=3; c[4*NArc+4]=4;
82 c[5*NArc+0]=5; c[5*NArc+1]=4; c[5*NArc+2]=6; c[5*NArc+3]=4; c[5*NArc+4]=1;
83 c[6*NArc+0]=5; c[6*NArc+1]=6; c[6*NArc+2]=7; c[6*NArc+3]=4; c[6*NArc+4]=8;
84 c[7*NArc+0]=5; c[7*NArc+1]=8; c[7*NArc+2]=1; c[7*NArc+3]=3; c[7*NArc+4]=6;
85 c[8*NArc+0]=7; c[8*NArc+1]=8; c[8*NArc+2]=8; c[8*NArc+3]=3; c[8*NArc+4]=5;
86
87 d[0]=7; d[1]=16; d[2]=16; d[3]=19; d[4]=18; d[5]=13; d[6]=8; d[7]=11; d[8]=18;
88 u[0]=122; u[1]=190; u[2]=113; u[3]=285; u[4]=247; u[5]=255; u[6]=143; u[7]=121; u[8]=139;
89 IntArgs carg(NCustomer*NArc,c); // Copy c in an IntArgs for further constraint posting
90 IntArgs darg(NCustomer,d); // Copy d in an IntArgs for further constraint posting
91 IntArgs uarg(NCustomer,u); // Copy u in an IntArgs for further constraint posting
92
93 bool q[] = {false,true,false};
94 int* nv = new int[3];
95 nv[0]=NArc;
96 nv[1]=1;
97 nv[2]=9;
98
99 Qcop problem(3,q,nv);
100 int postarfs[] = {3,7,11,15,19};
101 IntSet thePossibleTariffs(postarfs,5);
102 for (int i=0;i<NArc;i++)
103 problem.QIntVar(i,thePossibleTariffs); // tariff for way i
104 IntVarArgs branch1(NArc);
105 for (int i=0;i<NArc;i++)
106 branch1[i] = problem.var(i);
107 branch(*(problem.space()),branch1,INT_VAR_SIZE_MIN(),INT_VAL_MIN());
108 problem.nextScope();
109
110 problem.QIntVar(NArc,0,NCustomer-1); // k
111 IntVarArgs branch2(NArc+1);
112 for (int i=0;i<NArc+1;i++)
113 branch2[i] = problem.var(i);
114 branch(*(problem.space()),branch2,INT_VAR_SIZE_MIN(),INT_VAL_MIN());
115 problem.nextScope();
116
117 problem.QIntVar(NArc+1,0,NArc-1); // a
118 problem.QIntVar(NArc+2,0,1000000); // cost
119 problem.QIntVar(NArc+3,0,1000000); // Income
120 IntVar a(problem.var(NArc+1));
121 IntVar cost(problem.var(NArc+2));
122 IntVar income(problem.var(NArc+3));
123 problem.QIntVar(NArc+4,0,1000000);
124 problem.QIntVar(NArc+5,0,1000000);
125 problem.QIntVar(NArc+6,0,1000000);
126 problem.QIntVar(NArc+7,0,1000000);

Callers

nothing calls this directly

Calls 15

INT_VAR_SIZE_MINFunction · 0.85
INT_VAL_MINFunction · 0.85
getExistentialMethod · 0.80
optimizeMethod · 0.80
getAggregateMethod · 0.80
printStrFunction · 0.70
branchFunction · 0.50
relFunction · 0.50
elementFunction · 0.50
multFunction · 0.50
QIntVarMethod · 0.45
varMethod · 0.45

Tested by

no test coverage detected