Decision Optimization

 View Only
Expand all | Collapse all

Specific Special Ordered Set of type 2 usage (SOS2) for semi-continuous objective function

  • 1.  Specific Special Ordered Set of type 2 usage (SOS2) for semi-continuous objective function

    Posted Tue May 18, 2021 12:22 PM
    Hello,

    I am working on a model with semi-continuous piecewise linear objective function.

    I have studied an article that present a specific special ordered set (SOSD) to deal with such functions.
    Their formulation is similar to a SOS2 with slightly more restrictive constraints (two consecutive non-null variables must be from the same segment, i.e {1, 1, 0, 0} is SOSD but {0, 1, 1, 0} is not.)

    They also add specific branching strategies for branch and bound on variables of the SOSD.


    Is there a way I can add restrictions on SOS2 and the branching process ? Or even define my own type of SOS ?

    Regards

    ------------------------------
    Louis Fourcade
    ------------------------------

    #DecisionOptimization


  • 2.  RE: Specific Special Ordered Set of type 2 usage (SOS2) for semi-continuous objective function

    IBM Champion
    Posted Tue May 18, 2021 04:06 PM
    I assume you are working with CPLEX (as opposed to CP Optimizer).
    • Can you define your own SOS type? I'm pretty sure the answer is no.
    • Can you emulate the SOSD order? If I understand it correctly (which is not certain), I think you can, by declaring two SOS2 constraints with the same variables but different ordering. (Note: I have not actually tried this.) So if your variables are x[i] for i = 0, ... , 2n - 1, then the first SOS2 constraint would order them that way and the second SOS2 constraint would use the ordering x[2], x[1], x[4], x[3], ..., x[2n - 1], x[2n - 2].
    • Have you considered the direct support for discontinuous piecewise linear functions in CPLEX (using piecewise linear functions with repeated breakpoints)? There is an example in the user manual.


    ------------------------------
    Paul Rubin
    Professor Emeritus
    Michigan State University
    ------------------------------



  • 3.  RE: Specific Special Ordered Set of type 2 usage (SOS2) for semi-continuous objective function

    Posted Wed May 19, 2021 04:43 AM
    Thank you for your answer,

    I have not yet tried the direct support for discontinuous piecewise linear function, it may be a better solution.
    I was thinking of adding null variables ({x1, y1, 0, x2, y2, 0, x3, y3, ...}) to emulate SOSD with SOS2 but your representation with two SOS2 seems to be more efficient since there is no added variables in the problem.

    ------------------------------
    Louis Fourcade
    ------------------------------