Skip to main content

On PreSOS1BigM Parameter

Answered

Comments

8 comments

  • Marika Karbstein
    Gurobi Staff Gurobi Staff

    If parameter PreSOS1BigM is set to 0 then the SOS constraints of type 1 are not reformulated with linear constraints. In this case, these SOS constraints are not part of the LP relaxation. They are included in branching if they are violated.

    0
  • Ankit Bansal
    Gurobi-versary
    Conversationalist
    First Question

    Thank you very much for your reply.  Couple of follow-up questions:

    how are they included in the branching? Is it through GUB branching or through some other method?

    0
  • Marika Karbstein
    Gurobi Staff Gurobi Staff

    I am not quite sure what you mean by GUB branching.
    If an SOS constraint is not satisfied then more than 1 variable is different from 0. The branching is done on these variables, for example, one of them or a subset is fixed to 0. 
    Does this answer your question?

    0
  • Ankit Bansal
    Gurobi-versary
    Conversationalist
    First Question

    Yes. This answers my question. Thank you very much.

    What I meant by GUB branching can be found in the following IJOC paper (Section 2.2): https://pubsonline.informs.org/doi/abs/10.1287/ijoc.11.2.173

    Fixing a subset of variables in the SOS1 constraint to zero in one of the branches (and its complement to 0 to zero in another branch) is what is termed in the literature as Generalized Upper Bound (GUB)/SOS branching.

    Is it possible to know how these subset of variables (to set to zero in one branch) are chosen in Gurobi?

    0
  • Marika Karbstein
    Gurobi Staff Gurobi Staff

    I am afraid we cannot give you more details on this.

    May I ask the intention of the question? Do you want to use Gurobi for some kind of benchmark that requires some knowledge of how SOS constraints are handled?

    0
  • Ankit Bansal
    Gurobi-versary
    Conversationalist
    First Question

    Thank you very much for your help. I am trying to solve a MIP model using Gurobi for my research that has a bunch of SOS1 constraints. I think SOS1 branching may be more effective for my model than the reformulation and thus, I am curious how SOS1 branching is handled in Gurobi. 

    0
  • Marika Karbstein
    Gurobi Staff Gurobi Staff

    I am sorry but I cannot give you more details. But it is interesting that your model can be solved more efficiently if the SOS constraints are not reformulated. Did you also experiment with the parameter PreSOS1Encoding?

    0
  • Ankit Bansal
    Gurobi-versary
    Conversationalist
    First Question

    Yes, I did. It seems to work better without the reformulation.

    0

Please sign in to leave a comment.