I’ve been working on a bilevel model, and I now have obtained an optimal solution for my objective function.

However, for the upper level and lower level variables that I have defined, the solver returns the same value as the ones that I have initialised for these

For eg, for the variable p, I have initially declared p.up = 30 and the solve solution is also p.l =30

For another variable a, I have initially declared a.lo = 1 and the solver only returns 1 as the optimal solution for a.

Basically, whatever value I set while initialising is what the solver returns for these variables.

Why does this happen?

I request you to help me as soon as possible, as I’m running against some really tough deadlines

Hi
If you fix the upper bound for X with X.UP and the lower bound for Y with Y.LO, those two variables can’t get bigger or smaller resp. than these bounds.
My guess is that X without restriction would tend to infinity, and Y to minus infinity. Setting whatever value for the bounds will return these bounds as a solution.
Cheers
Renger