Decision Optimization

 View Only
Expand all | Collapse all

Receiving "Solver error: Solution has 3 unfixed variables" Mid Solve

  • 1.  Receiving "Solver error: Solution has 3 unfixed variables" Mid Solve

    Posted Tue September 03, 2024 02:06 PM

    Hello,

    I'm using the Python DOCPLEX CP solver (Academic Initiative version), solving a minimization problem with 3 integer variables. During the middle of the solve, I receive the following error:

    docplex.cp.solver.solver.CpoSolverException: Solver error: Solution has 3 unfixed variables

    All three of the variables are included in constraints and the minimization objectives, and they have explicit bounds on their minimum and maximum values, so as I understand they should be fixed. Note too that this error doesn't occur until after the solver has been running for some time (and I assume after any initial checks the solver might perform to ensure all variables are fixed prior to starting the solve).

    What might be causing this problem in the middle of a solve, and how can I fix this so it no longer occurs?

    Thanks,

    Andrew

     



    ------------------------------
    Andrew Wilhelm
    ------------------------------


  • 2.  RE: Receiving "Solver error: Solution has 3 unfixed variables" Mid Solve

    Posted Wed September 04, 2024 07:28 AM

    Hi Andrew,
    This strange indeed.
    This message can occur when a model has floatting-point variables that are not instantiated when all the integer variables are fixed. 
    Can you post the model here or send it to me so that we can have a look ?
    If you don't want to share the code maybe you can share the exported .cpo model. 

    Thanks




  • 3.  RE: Receiving "Solver error: Solution has 3 unfixed variables" Mid Solve

    Posted Wed September 04, 2024 04:28 PM

    Thanks Phillipe for your help with this. I'm not quite sure then how floating-point variables would become uninstantiated for my model, but this might be the underlying reason for why this is happening. To give some more details, my model uses the three integer variables to index into arrays (using model.element()) that contain floating points, and then some operations are performed on these floating points to see if constraints are violated. However, the max values the integers can take are the length of the arrays that they index and all of the floating point values in the arrays are defined, so I'm not sure how these would become uninstantiated.

    Is there an email or similar that I can use to directly send you my .cpo model?

    Thanks,

    Andrew



    ------------------------------
    Andrew Wilhelm
    ------------------------------