Questions about solvebilevel.

52 views
Skip to first unread message

MK

unread,
Nov 17, 2018, 8:09:14 AM11/17/18
to YALMIP
Dear sir, 

        When i run my model with the solvebilevle, it ends with the output that "Infeasible in solver".

        However, the inner and outer problem are all linear program. 

        Any suggestions? I have attached the files below. Any help will be greatly appreciated.
     
matlab.zip

Johan Löfberg

unread,
Nov 17, 2018, 8:16:31 AM11/17/18
to YALMIP
you're not telling us which solvers you are using

MK

unread,
Nov 17, 2018, 8:25:35 AM11/17/18
to YALMIP
Sorry for that.

Here is the output information.

* Starting YALMIP bilevel solver.
* Outer solver   : QUADPROG
* Inner solver   : QUADPROG
* Max iterations : 300
 Node       Upper       Gap(%)      Lower    Open
    1 :          Inf      Inf            Inf   0  Infeasible in solver

MK

unread,
Nov 17, 2018, 8:25:59 AM11/17/18
to YALMIP
I didn't change the default solver.

Johan Löfberg

unread,
Nov 17, 2018, 1:47:23 PM11/17/18
to YALMIP
YALMIP picks the best possible, which in your case is quadprog (which isn't that good...)

However, the problem you have is that the outer problem is nonconvex. THe local solver quadprog fails miserably. It doesn't even manage to solve the problem with inner optimality removed

optimize([server_cons(price),user_cons(a)],server_obj(a,price),sdpsettings('solver','quadprog'))

  struct with fields:

    yalmipversion: '20181012'
       yalmiptime: 0.3186
       solvertime: 0.2754
             info: 'Infeasible problem (QUADPROG)'
          problem: 1



That problem is trivially feasible though
optimize([server_cons(price),user_cons(a)])

    yalmipversion: '20181012'
       yalmiptime: 0.3259
       solvertime: 0.0791
             info: 'Successfully solved (GUROBI-GUROBI)'
          problem: 0



However, trying to solve a bilvel problem with nonconvex outer problem is optimistic, to say the least...but your problem appears to be trivial as bmibnb easily solves it to global optimality

[res1,res2]=solvebilevel(server_cons(price),server_obj(a,price),user_cons(a),user_obj(a,price),a,sdpsettings('bilevel.outersolver','bmibnb'))
* Starting YALMIP bilevel solver.
* Outer solver   : BMIBNB
* Inner solver   : GUROBI-GUROBI
* Max iterations : Inf
 Node       Upper       Gap(%)      Lower    Open
    1 :    0.000E+00     0.00      0.000E+00   0  Solved to optimality

res1 = 

  struct with fields:

    problem: 0


res2 = 

  struct with fields:

          upper: 0
           iter: 1
    ninfeascuts: 0
       ndomcuts: 0





Reply all
Reply to author
Forward
0 new messages