IBM Support

Display conflict and relaxation information for infeasible models using OPL script

Question & Answer


Question

How do I print (and iterate over) the conflicts in and relaxations for my infeasible model using OPL script.

Answer

The following sample shows one such approach for a simple model:


dvar int x1 in 0..40;
dvar int+ x2;
dvar int+ x3;
maximize x1 + 2*x2 - 3*x3;
subject to{
  c1:  x2 + x3 <= 20;
  c2: x1 - 3*x2 + x3 <= 30;
  c3: x1 <= 20;
  c4: x1 >= 40;
}
main{
 thisOplModel.generate();
 if(cplex.solve()){
  writeln("Solve successful; solve status="+cplex.getCplexStatus());
  writeln("Objective value="+cplex.getObjValue());
 }  
 else{
  writeln("Solve failed; CPLEX status="+cplex.getCplexStatus());
  writeln("Calling printConflict (CONFLICT REFINER)");
  writeln(thisOplModel.printConflict());
  writeln("Printing conflicts using conflictIterator");
  var confIter = thisOplModel.conflictIterator;
  for(var x in confIter){
   writeln("Member name:"+x.ct.name);
   writeln("Conflict type:"+x.info);
  }    
  writeln("Calling printRelaxation (FEASOPT)");
  writeln(thisOplModel.printRelaxation());
  writeln("Printing relaxations using relaxationIterator");
  var relaxIter = thisOplModel.relaxationIterator;
  for(x in relaxIter){
   writeln("Member name:"+x.ct.name);
   writeln("Old bound:"+x.info);
   writeln("New bound:"+x.info2);
   writeln("Bound changed to:"+x.info3);
  }
 }
}

[{"Product":{"code":"SSSA5P","label":"IBM ILOG CPLEX Optimization Studio"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Area:ILOG Script for OPL\/OPL Script","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"12.2;12.3;12.4","Edition":"All Editions","Line of Business":{"code":"LOB10","label":"Data and AI"}},{"Product":{"code":"SSSA5P","label":"IBM ILOG CPLEX Optimization Studio"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Area:ILOG Script for OPL\/OPL Script","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF016","label":"Linux"},{"code":"PF017","label":"Mac OS"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"}],"Version":"12.4;12.3;12.2.0.1;12.2","Edition":"All Editions","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
16 June 2018

UID

swg21615786