Tobias Achterberg
unread,Jun 8, 2016, 5:02:34 AM6/8/16Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to gur...@googlegroups.com
SOS2 constraints will not be part of the LP relaxation, but dealt with by branching.
Consider an SOS2 constraint (x1,...,xk) and assume that in the LP relaxation we
have at least two non-adjacent xj variables with non-zero value. Then, Gurobi
will select a break-point p of this SOS2 constraint (which is somewhere between
the two non-adjacent non-zero variables) and branch by creating two child nodes:
in the left child it will set x1 = ... = x[p-1] = 0, and in the right child it
will set x[p+1] = ... = xk = 0.
This is a valid branching split, because if any of the variables left of p is
non-zero then all variables right of p have to be zero, due to the SOS2
property, and vice versa. It also cuts off the current LP solution.
But note that if there are other branching possibilities (i.e., integer variable
with fractional LP value) then Gurobi would often first branch on an integer
variable before dealing with the SOS2 constraints.
Best regards,
Tobias