Skip to content

Instantly share code, notes, and snippets.

@gidden
Last active August 29, 2015 14:24
Show Gist options
  • Select an option

  • Save gidden/238bf48db399f8e58fb7 to your computer and use it in GitHub Desktop.

Select an option

Save gidden/238bf48db399f8e58fb7 to your computer and use it in GitHub Desktop.
CBC 2.8.7 Constraint Violation

Setup

This is a network flow representation within a simulation. Binary variables represent real flows and linear variables represent "fake" slack flows (to guarantee feasibility). Everything is automatically generated based on the simulation context, so in this very simple example there are constraints that appear which are superfluous, e.g., 0 <= y <= 1 is superfluous with y \in {0, 1}. There are 20 binary variables in two categories (supplier 1, supplier 2) and 20 linear variables.

Issue

There is a constraint of the form \sum a_1 y + \sum a_2 y <= 10.01. Values of a_1 and a_2 are chosen such that 10 a_1 + 8 a_2 == 10.004 < 10.01 and 10 a_1 + 9 a_2 == 10.349 > 10.01. However, the solution reported by CBC is setting all supplier 1 variables to 1 and 9 supplier 2 variables to 1, which violates the constraint. I would expect only 8 supplier 2 variables to be set to 1.

NAME BLANK
ROWS
N OBJROW
L R0000000
L R0000001
G R0000002
L R0000003
G R0000004
L R0000005
G R0000006
L R0000007
G R0000008
L R0000009
G R0000010
L R0000011
G R0000012
L R0000013
G R0000014
L R0000015
G R0000016
L R0000017
G R0000018
L R0000019
G R0000020
L R0000021
G R0000022
L R0000023
G R0000024
L R0000025
G R0000026
L R0000027
G R0000028
L R0000029
G R0000030
L R0000031
G R0000032
L R0000033
G R0000034
L R0000035
G R0000036
L R0000037
G R0000038
L R0000039
G R0000040
L R0000041
COLUMNS
C0000000 OBJROW 0.1 R0000000 1.1334249874
C0000000 R0000001 0.7244038594 R0000020 0.1
C0000000 R0000021 1.
C0000001 OBJROW 1. R0000000 0.651670504
C0000001 R0000001 0.3449956175 R0000038 0.1
C0000001 R0000039 1.
C0000002 OBJROW 1. R0000000 0.651670504
C0000002 R0000001 0.3449956175 R0000036 0.1
C0000002 R0000037 1.
C0000003 OBJROW 1. R0000000 0.651670504
C0000003 R0000001 0.3449956175 R0000034 0.1
C0000003 R0000035 1.
C0000004 OBJROW 1. R0000000 0.651670504
C0000004 R0000001 0.3449956175 R0000028 0.1
C0000004 R0000029 1.
C0000005 OBJROW 1. R0000000 0.651670504
C0000005 R0000001 0.3449956175 R0000026 0.1
C0000005 R0000027 1.
C0000006 OBJROW 1. R0000000 0.651670504
C0000006 R0000001 0.3449956175 R0000024 0.1
C0000006 R0000025 1.
C0000007 OBJROW 0.1 R0000000 1.1334249874
C0000007 R0000001 0.7244038594 R0000018 0.1
C0000007 R0000019 1.
C0000008 OBJROW 0.1 R0000000 1.1334249874
C0000008 R0000001 0.7244038594 R0000016 0.1
C0000008 R0000017 1.
C0000009 OBJROW 0.1 R0000000 1.1334249874
C0000009 R0000001 0.7244038594 R0000002 0.1
C0000009 R0000003 1.
C0000010 OBJROW 0.1 R0000000 1.1334249874
C0000010 R0000001 0.7244038594 R0000004 0.1
C0000010 R0000005 1.
C0000011 OBJROW 1. R0000000 0.651670504
C0000011 R0000001 0.3449956175 R0000040 0.1
C0000011 R0000041 1.
C0000012 OBJROW 1. R0000000 0.651670504
C0000012 R0000001 0.3449956175 R0000032 0.1
C0000012 R0000033 1.
C0000013 OBJROW 1. R0000000 0.651670504
C0000013 R0000001 0.3449956175 R0000030 0.1
C0000013 R0000031 1.
C0000014 OBJROW 0.1 R0000000 1.1334249874
C0000014 R0000001 0.7244038594 R0000010 0.1
C0000014 R0000011 1.
C0000015 OBJROW 1. R0000000 0.651670504
C0000015 R0000001 0.3449956175 R0000022 0.1
C0000015 R0000023 1.
C0000016 OBJROW 0.1 R0000000 1.1334249874
C0000016 R0000001 0.7244038594 R0000014 0.1
C0000016 R0000015 1.
C0000017 OBJROW 0.1 R0000000 1.1334249874
C0000017 R0000001 0.7244038594 R0000012 0.1
C0000017 R0000013 1.
C0000018 OBJROW 0.1 R0000000 1.1334249874
C0000018 R0000001 0.7244038594 R0000008 0.1
C0000018 R0000009 1.
C0000019 OBJROW 0.1 R0000000 1.1334249874
C0000019 R0000001 0.7244038594 R0000006 0.1
C0000019 R0000007 1.
C0000020 OBJROW 1001. R0000002 1.
C0000021 OBJROW 1001. R0000004 1.
C0000022 OBJROW 1001. R0000006 1.
C0000023 OBJROW 1001. R0000008 1.
C0000024 OBJROW 1001. R0000010 1.
C0000025 OBJROW 1001. R0000012 1.
C0000026 OBJROW 1001. R0000014 1.
C0000027 OBJROW 1001. R0000016 1.
C0000028 OBJROW 1001. R0000018 1.
C0000029 OBJROW 1001. R0000020 1.
C0000030 OBJROW 1001. R0000022 1.
C0000031 OBJROW 1001. R0000024 1.
C0000032 OBJROW 1001. R0000026 1.
C0000033 OBJROW 1001. R0000028 1.
C0000034 OBJROW 1001. R0000030 1.
C0000035 OBJROW 1001. R0000032 1.
C0000036 OBJROW 1001. R0000034 1.
C0000037 OBJROW 1001. R0000036 1.
C0000038 OBJROW 1001. R0000038 1.
C0000039 OBJROW 1001. R0000040 1.
RHS
RHS R0000000 99986.96659 R0000001 10.01
RHS R0000002 0.1 R0000003 1.
RHS R0000004 0.1 R0000005 1.
RHS R0000006 0.1 R0000007 1.
RHS R0000008 0.1 R0000009 1.
RHS R0000010 0.1 R0000011 1.
RHS R0000012 0.1 R0000013 1.
RHS R0000014 0.1 R0000015 1.
RHS R0000016 0.1 R0000017 1.
RHS R0000018 0.1 R0000019 1.
RHS R0000020 0.1 R0000021 1.
RHS R0000022 0.1 R0000023 1.
RHS R0000024 0.1 R0000025 1.
RHS R0000026 0.1 R0000027 1.
RHS R0000028 0.1 R0000029 1.
RHS R0000030 0.1 R0000031 1.
RHS R0000032 0.1 R0000033 1.
RHS R0000034 0.1 R0000035 1.
RHS R0000036 0.1 R0000037 1.
RHS R0000038 0.1 R0000039 1.
RHS R0000040 0.1 R0000041 1.
RANGES
RANGE R0000000 99986.96659 R0000001 10.01
RANGE R0000003 1. R0000005 1.
RANGE R0000007 1. R0000009 1.
RANGE R0000011 1. R0000013 1.
RANGE R0000015 1. R0000017 1.
RANGE R0000019 1. R0000021 1.
RANGE R0000023 1. R0000025 1.
RANGE R0000027 1. R0000029 1.
RANGE R0000031 1. R0000033 1.
RANGE R0000035 1. R0000037 1.
RANGE R0000039 1. R0000041 1.
BOUNDS
BV BOUND C0000000 1.
BV BOUND C0000001 1.
BV BOUND C0000002 1.
BV BOUND C0000003 1.
BV BOUND C0000004 1.
BV BOUND C0000005 1.
BV BOUND C0000006 1.
BV BOUND C0000007 1.
BV BOUND C0000008 1.
BV BOUND C0000009 1.
BV BOUND C0000010 1.
BV BOUND C0000011 1.
BV BOUND C0000012 1.
BV BOUND C0000013 1.
BV BOUND C0000014 1.
BV BOUND C0000015 1.
BV BOUND C0000016 1.
BV BOUND C0000017 1.
BV BOUND C0000018 1.
BV BOUND C0000019 1.
ENDATA
NAME BLANK
ROWS
N OBJROW
L R0000000
L R0000001
G R0000002
L R0000003
G R0000004
L R0000005
G R0000006
L R0000007
G R0000008
L R0000009
G R0000010
L R0000011
G R0000012
L R0000013
G R0000014
L R0000015
G R0000016
L R0000017
G R0000018
L R0000019
G R0000020
L R0000021
G R0000022
L R0000023
G R0000024
L R0000025
G R0000026
L R0000027
G R0000028
L R0000029
G R0000030
L R0000031
G R0000032
L R0000033
G R0000034
L R0000035
G R0000036
L R0000037
G R0000038
L R0000039
G R0000040
L R0000041
COLUMNS
C0000000 OBJROW 0.2 R0000000 0.651670504
C0000000 R0000001 0.3449956175 R0000038 0.1
C0000000 R0000039 1.
C0000001 OBJROW 0.2 R0000000 0.651670504
C0000001 R0000001 0.3449956175 R0000036 0.1
C0000001 R0000037 1.
C0000002 OBJROW 0.2 R0000000 0.651670504
C0000002 R0000001 0.3449956175 R0000034 0.1
C0000002 R0000035 1.
C0000003 OBJROW 0.2 R0000000 0.651670504
C0000003 R0000001 0.3449956175 R0000028 0.1
C0000003 R0000029 1.
C0000004 OBJROW 0.2 R0000000 0.651670504
C0000004 R0000001 0.3449956175 R0000026 0.1
C0000004 R0000027 1.
C0000005 OBJROW 0.2 R0000000 0.651670504
C0000005 R0000001 0.3449956175 R0000024 0.1
C0000005 R0000025 1.
C0000006 OBJROW 0.1 R0000000 1.1334249874
C0000006 R0000001 0.7244038594 R0000018 0.1
C0000006 R0000019 1.
C0000007 OBJROW 0.1 R0000000 1.1334249874
C0000007 R0000001 0.7244038594 R0000016 0.1
C0000007 R0000017 1.
C0000008 OBJROW 0.1 R0000000 1.1334249874
C0000008 R0000001 0.7244038594 R0000004 0.1
C0000008 R0000005 1.
C0000009 OBJROW 0.1 R0000000 1.1334249874
C0000009 R0000001 0.7244038594 R0000010 0.1
C0000009 R0000011 1.
C0000010 OBJROW 0.1 R0000000 1.1334249874
C0000010 R0000001 0.7244038594 R0000008 0.1
C0000010 R0000009 1.
C0000011 OBJROW 0.1 R0000000 1.1334249874
C0000011 R0000001 0.7244038594 R0000006 0.1
C0000011 R0000007 1.
C0000012 OBJROW 0.2 R0000000 0.651670504
C0000012 R0000001 0.3449956175 R0000040 0.1
C0000012 R0000041 1.
C0000013 OBJROW 0.2 R0000000 0.651670504
C0000013 R0000001 0.3449956175 R0000032 0.1
C0000013 R0000033 1.
C0000014 OBJROW 0.2 R0000000 0.651670504
C0000014 R0000001 0.3449956175 R0000030 0.1
C0000014 R0000031 1.
C0000015 OBJROW 0.2 R0000000 0.651670504
C0000015 R0000001 0.3449956175 R0000022 0.1
C0000015 R0000023 1.
C0000016 OBJROW 0.1 R0000000 1.1334249874
C0000016 R0000001 0.7244038594 R0000014 0.1
C0000016 R0000015 1.
C0000017 OBJROW 0.1 R0000000 1.1334249874
C0000017 R0000001 0.7244038594 R0000012 0.1
C0000017 R0000013 1.
C0000018 OBJROW 0.1 R0000000 1.1334249874
C0000018 R0000001 0.7244038594 R0000002 0.1
C0000018 R0000003 1.
C0000019 OBJROW 0.1 R0000000 1.1334249874
C0000019 R0000001 0.7244038594 R0000020 0.1
C0000019 R0000021 1.
C0000020 OBJROW 2.09 R0000002 1.
C0000021 OBJROW 2.09 R0000004 1.
C0000022 OBJROW 2.09 R0000006 1.
C0000023 OBJROW 2.09 R0000008 1.
C0000024 OBJROW 2.09 R0000010 1.
C0000025 OBJROW 2.09 R0000012 1.
C0000026 OBJROW 2.09 R0000014 1.
C0000027 OBJROW 2.09 R0000016 1.
C0000028 OBJROW 2.09 R0000018 1.
C0000029 OBJROW 2.09 R0000020 1.
C0000030 OBJROW 2.09 R0000022 1.
C0000031 OBJROW 2.09 R0000024 1.
C0000032 OBJROW 2.09 R0000026 1.
C0000033 OBJROW 2.09 R0000028 1.
C0000034 OBJROW 2.09 R0000030 1.
C0000035 OBJROW 2.09 R0000032 1.
C0000036 OBJROW 2.09 R0000034 1.
C0000037 OBJROW 2.09 R0000036 1.
C0000038 OBJROW 2.09 R0000038 1.
C0000039 OBJROW 2.09 R0000040 1.
RHS
RHS R0000000 99986.96659 R0000001 10.01
RHS R0000002 0.1 R0000003 1.
RHS R0000004 0.1 R0000005 1.
RHS R0000006 0.1 R0000007 1.
RHS R0000008 0.1 R0000009 1.
RHS R0000010 0.1 R0000011 1.
RHS R0000012 0.1 R0000013 1.
RHS R0000014 0.1 R0000015 1.
RHS R0000016 0.1 R0000017 1.
RHS R0000018 0.1 R0000019 1.
RHS R0000020 0.1 R0000021 1.
RHS R0000022 0.1 R0000023 1.
RHS R0000024 0.1 R0000025 1.
RHS R0000026 0.1 R0000027 1.
RHS R0000028 0.1 R0000029 1.
RHS R0000030 0.1 R0000031 1.
RHS R0000032 0.1 R0000033 1.
RHS R0000034 0.1 R0000035 1.
RHS R0000036 0.1 R0000037 1.
RHS R0000038 0.1 R0000039 1.
RHS R0000040 0.1 R0000041 1.
RANGES
RANGE R0000000 99986.96659 R0000001 10.01
RANGE R0000003 1. R0000005 1.
RANGE R0000007 1. R0000009 1.
RANGE R0000011 1. R0000013 1.
RANGE R0000015 1. R0000017 1.
RANGE R0000019 1. R0000021 1.
RANGE R0000023 1. R0000025 1.
RANGE R0000027 1. R0000029 1.
RANGE R0000031 1. R0000033 1.
RANGE R0000035 1. R0000037 1.
RANGE R0000039 1. R0000041 1.
BOUNDS
BV BOUND C0000000 1.
BV BOUND C0000001 1.
BV BOUND C0000002 1.
BV BOUND C0000003 1.
BV BOUND C0000004 1.
BV BOUND C0000005 1.
BV BOUND C0000006 1.
BV BOUND C0000007 1.
BV BOUND C0000008 1.
BV BOUND C0000009 1.
BV BOUND C0000010 1.
BV BOUND C0000011 1.
BV BOUND C0000012 1.
BV BOUND C0000013 1.
BV BOUND C0000014 1.
BV BOUND C0000015 1.
BV BOUND C0000016 1.
BV BOUND C0000017 1.
BV BOUND C0000018 1.
BV BOUND C0000019 1.
ENDATA
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment