I want to code a bi-objective problem with epsilon-constraint method in ILOG OPL, is there any samples to help me? thanks
Asked
Active
Viewed 730 times
1 Answers
0
int n=10;
int m=25;
range position = 0..n-1;
dvar boolean x[position][position];
dvar float obj1 in position;
dvar float obj2 in position;
minimize (obj1)*n+obj2;
subject to
{
sum(i,j in position) x[i][j]==m;
forall(i,j in position) (x[i][j]==1) => (obj1>=i);
forall(i,j in position) (x[i][j]==1) => (obj2>=j);
}
execute
{
writeln("objectives : ",obj1+1," ",obj2+1);
}
main
{
var epsilon=0.0001;
thisOplModel.generate();
cplex.setObjCoef(thisOplModel.obj2,0);
cplex.solve();
thisOplModel.postProcess();
var obj1=thisOplModel.obj1.solutionValue;
thisOplModel.obj1.LB=obj1;
thisOplModel.obj1.UB=obj1+epsilon;
cplex.setObjCoef(thisOplModel.obj2,1);
cplex.solve();
thisOplModel.postProcess();
}
which gives
objectives : 3 10
objectives : 3 9

Alex Fleischer
- 9,276
- 2
- 12
- 15