[CoinMP-tickets] [CoinMP Library] #9: Issues using Special Ordered Sets

CoinMP Library coin-trac at coin-or.org
Thu Apr 7 11:53:50 EDT 2016


#9: Issues using Special Ordered Sets
------------------------+----------------------
 Reporter:  kurtzb      |      Owner:  somebody
     Type:  defect      |     Status:  new
 Priority:  high        |  Milestone:
Component:  component1  |    Version:
 Severity:  blocker     |   Keywords:  SOS
------------------------+----------------------
 I seem to be having an issue with Special Ordered Sets of Type 1 and Type
 2. When you set up an SOS of Type 1 or Type 2 and one of the variables in
 the set has a cost in the objective of 0, CoinMP fails to find an optimal
 solution.

 Below are examples model in LP Solve format. (I had to use LP Solve since
 it appears the output to MPS in CoinMP also does not print the SOS
 constraint types).

 It is possible that the code I am using is doing something incorrect when
 constructing the model, but it does work when there are all non-zero costs
 in the objective row.

 {{{
 /*SOS Type 1 Working
 Model+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
 /* Objective function */
 min: +C1 +5 C2 +5 C3 +10 C4;

 /* Constraints */
 R1: +C1 <= 10;
 R2: +C2 <= 25;
 R3: +C3 <= 25;
 R4: +C4 <= 35;
 +C1 +C2 +C3 +C4 >= 35;

 /* SOS definitions */
 SOS
 5: C1:0,C2,C3,C4 <= 1:4;


 /*SOS Type 1 Non-working
 Model+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
 /* Objective function */
 min: +5 C2 +5 C3 +10 C4;

 /* Constraints */
 R1: +C1 <= 10;
 R2: +C2 <= 25;
 R3: +C3 <= 25;
 R4: +C4 <= 35;
 +C1 +C2 +C3 +C4 >= 35;

 /* SOS definitions */
 SOS
 5: C1:0,C2,C3,C4 <= 1:4;


 /*SOS Type 2 Working
 Model+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
 /* Objective function */
 min: +C1 +C2 +30 C3 +30 C4 +C5 +C6;

 /* Constraints */
 R1: +C1 <= 30;
 R2: +C2 <= 4;
 R3: +C3 <= 25;
 R4: +C4 <= 10;
 R5: +C5 <= 14;
 R6: +C6 <= 20;
 +C1 +C2 +C3 +C4 +C5 +C6 >= 35;

 /* SOS definitions */
 SOS
 7: C1:0,C2,C3,C4,C5,C6 <= 2:6;

 /*SOS Type 2 Non-working
 Model+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
 /* Objective function */
 min: +C2 +30 C3 +30 C4 +C5 +C6;

 /* Constraints */
 R1: +C1 <= 30;
 R2: +C2 <= 4;
 R3: +C3 <= 25;
 R4: +C4 <= 10;
 R5: +C5 <= 14;
 R6: +C6 <= 20;
 +C1 +C2 +C3 +C4 +C5 +C6 >= 35;

 /* SOS definitions */
 SOS
 7: C1:0,C2,C3,C4,C5,C6 <= 2:6;

 }}}

 Thanks!

--
Ticket URL: <https://projects.coin-or.org/CoinMP/ticket/9>
CoinMP Library <http://projects.coin-or.org/CoinMP>
A lightweight API for some COIN-OR tools



More information about the CoinMP-tickets mailing list