kkt function

173 views
Skip to first unread message

Sara Amr

unread,
Dec 8, 2015, 7:05:38 PM12/8/15
to YALMIP
Hi,

i'm using the kkt function in yalmip to derive the KKT conditions for an inner problem of a bilevel model, and i get the following statements.
I'd really appreciate it if someone can help me with explaining the statements highlighted in bold.

Removed 82 duplicated or redundant inequalities
Transfered 112 inequalities to equalities
Starting derivation of dual bounds (can be turned off using option kkt.dualbounds)
*Computing 203 primal bounds (required for dual bounds) ---> the dual bounds are for the lambda variable, right? what are the primal bounds?
*Computing 495 bounds on parameterized RHS (required for dual bounds) ---> what is meant by parameterized RHS?
Parameterized RHS in equality not yet supported in lifting based bounds ---> what does this statement mean?
*Computing 495 dual bounds
*Warning: Some of the dual upper bounds are infinite ---> is this something to worry about?

thanks,
Sara

Johan Löfberg

unread,
Dec 9, 2015, 1:54:48 AM12/9/15
to YALMIP
primal bounds are bounds extracted on your decision variables, needed for big-M models, and helps when deriving bounds on the duals

parameterized RHS means Ax <=b(y) where y is a parameter, and x is the decision variable

Don't bother about lifting, it is an alternative way to strengthen the bound propagation

Infinite dual bonds is never fun. You will have to add reasonable bounds on the duals manually, as done in the examples

Sara Amr

unread,
Dec 9, 2015, 12:40:08 PM12/9/15
to YALMIP
primal bounds are bounds extracted on your decision variables -- why does it do that if i'm providing upper and lower bounds on my decision variables?

parameterized RHS means Ax <=b(y) where y is a parameter, and x is the decision variable -- I have all the RHS as fixed values

Johan Löfberg

unread,
Dec 9, 2015, 1:30:01 PM12/9/15
to YALMIP
If you have supplied bounds, then YALMIP will detect those of course, and perhaps improve them during bound propagation to create even stronger big-M models. Indeed, you 
must supply bounds, otherwise the big-M models will most likely be very poor


Sara Amr

unread,
Dec 9, 2015, 4:52:17 PM12/9/15
to YALMIP
I also defined binary variables using the command binvar. do i need to supply bounds for that within the kkt function? or it already understands that it is a binary variable?

Sorry for all the questions, I'm trying to understand from where are the numbers coming, because they are not adding up to the number of variables or constraints.

Johan Löfberg

unread,
Dec 10, 2015, 2:18:12 AM12/10/15
to YALMIP
When YALMIP derives bounds, it essentially computes the bounding box of the parametric domain, intersected with all kkt constraints except the nonconvex complementary slackness constraint. Hence, any integer constraint on the outer parametric variables will automatically be used.

Johan Löfberg

unread,
Dec 10, 2015, 2:23:27 AM12/10/15
to YALMIP
The fact that you have binary variables in the outer problem, and hundreds of constraints and variables, indicates that you have to be extremely lucky for this to be solvable

Sara Amr

unread,
Dec 15, 2015, 10:38:31 AM12/15/15
to YALMIP
when you mentioned i need to add reasonable bounds on the duals manually, how can i do that if i'm calling the kkt function and giving it the inner problem.
or do i have to derive the kkt conditions manually like here: http://users.isy.liu.se/johanl/yalmip/pmwiki.php?n=Examples.BilevelProgramming

Johan Löfberg

unread,
Dec 15, 2015, 11:27:40 AM12/15/15
to YALMIP
Reply all
Reply to author
Forward
0 new messages