Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.

 View Only
  • 1.  Conflict refiner does not provide information for an infeasible CP model

    Posted Thu September 04, 2025 08:35 AM
    Hi everyone
     
    I am attempting to solve a scheduling problem with CP Optimizer in CPLEX Optimization Studio. According to the console output, the instance appears to be infeasible.

    ! --------------------------------------------------- CP Optimizer 22.1.2.0 --

    ! Minimization problem - 1.063 variables, 459 constraints

    ! ConflictRefinerFailLimit = 180

    ! TimeLimit = 180

    ! LogVerbosity = Terse

    ! Initial process time : 0,04s (0,04s extraction + 0,00s propagation)

    ! . Log search space : 1.976,1 (before), 1.976,1 (after)

    ! . Memory usage : 4,3 MB (before), 4,3 MB (after)

    ! Using parallel search with 4 workers.

    ! ----------------------------------------------------------------------------

    ! Best Branches Non-fixed W Branch decision

    0 1.063 -

    + New bound is 183

    ! Using iterative diving.

    ! Using failure-directed search.

    37.782 525 1 -

    + New bound is 185

    37.987 525 1 164 >= endOf(task#58)

    + New bound is 188

    38.639 582 1 171 >= startOf(mode#98)

    + New bound is 192

    38.874 582 1 160 <= startOf(lock104)

    + New bound is 193

    39.095 663 1 153 >= startOf(lock104)

    + New bound is 195

    40.198 560 1 181 >= startOf(task#148)

    + New bound is 197

    439k 645 1 183 >= startOf(mode#796)

    + New bound is 199

    439k 374 1 F 56 <= startOf(lock2)

    + New bound is 201

    ! ----------------------------------------------------------------------------

    ! Search completed, model has no solution.

    ! Best bound : 201

    ! ----------------------------------------------------------------------------

    ! Number of branches : 16.605.707

    ! Number of fails : 698.463

    ! Total memory usage : 20,8 MB (19,1 MB CP Optimizer + 1,7 MB Concert)

    ! Time spent in solve : 55,40s (55,37s engine + 0,04s extraction)

    ! Search speed (br. / s) : 299.947,7

    ! ----------------------------------------------------------------------------

    Thus, I added the following piece of code at the end of my .mod file:

    main {
    thisOplModel.generate();
    cp.param.TimeLimit = 180;
    cp.param.ConflictRefinerFailLimit = 180;
    if (!cp.solve()) {
    writeln(thisOplModel.printConflict());
    }
    else {
      writeln("Existe solucion factible");
    }
    However, when I resolve it again, the console output remains the same. Additionally, no information appears on the "Conflicts" tab. Meanwhile, the "Scripting log" tab only shows: No conflicts available.
    How can I get information about which specific constraints are conflicting in the instance that determines the problem is infeasible?
    Thanks in advance
    Francisco Y.


    ------------------------------
    Francisco Yuraszeck
    Yuraszeck
    ------------------------------


  • 2.  RE: Conflict refiner does not provide information for an infeasible CP model

    Posted Fri September 05, 2025 05:31 AM
    Hello

    Opl Studio is not always able to generate a conflict for CP models, but you can run the conflict refiner and generate the conflict 

    Option 1 : You can run in command line your configuration with the -conflict option
    oplrun -conflict myPathToProject myConfigurationName

    Option 2: An alternative is to export the .cpo file : you need to activate the option in a .ops seetting file  that you attach to your run configuration, or you can generate it with oplrun in command line with the option -d mycpofile.cpo . Now you can use cpoptimizer in command line 
    read mycpofile.cpo
    tools conflict
    write conflict myConflictFile.cpo

    David





  • 3.  RE: Conflict refiner does not provide information for an infeasible CP model

    Posted Fri September 05, 2025 10:48 AM

    Hello Francisco,

             In addition to David's answer, you can use the default LogVerbosity instead of Terse.

    After that, you should see the result of the conflict refiner in the "Engine Log" tab ("Registro del motor").

    ! ----------------------------------------------------------------------------

     ! Conflict refining - 459 constraints

     ! ConflictRefinerFailLimit = 180

     ! ----------------------------------------------------------------------------



    ------------------------------
    Thierry Sola
    ------------------------------



  • 4.  RE: Conflict refiner does not provide information for an infeasible CP model

    Posted Fri September 05, 2025 05:16 PM

    Thank you David



    ------------------------------
    Francisco Yuraszeck
    Yuraszeck
    ------------------------------