Search code examples
pythonpyomo

cplex changes the fixed variable after solving the problem in pyomo


I am trying to solve a MIP, I use pyomo, and Cplex(Interactive Optimizer 20.1.0.0) is solver. The problem is that I want to fix some binary integer variables then solve the problem, and I used:

model.y[1,4].fix(1)
model.y[2,3].fix(0)

, but I have noticed that after solving the problem those fixed variables have changed to another values. How can I say cplex to not change that fixed variables?


Solution

  • Since fixing variable didn't work for me, I tackle my problem with adding a new constraint to the model, and it works.

    def yvar_fix(model, i, j ):
        if (i,j) in y_set_init:
            constraint = (model.y[i,j] == 1)
        else:
            constraint = (model.y[i,j] == 0) 
        return constraint
    model.yvar_fix = pe.Constraint(model.edges, rule=yvar_fix)