Strip Packing

Strip Packing#

This model packs a set of rectangles without rotation or overlap within a strip of a given width, while minimizing the length of the strip.

This is a Strip-packing example from http://minlp.org/library/lib.php?lib=GDP

import pyomo.environ as pyo
from pyomo.gdp import Disjunct, Disjunction

model = pyo.ConcreteModel()

model.RECTANGLES = pyo.Set(ordered=True, initialize=[0,1,2,3])

# Width and Lenght of each rectangle
model.Width = pyo.Param(model.RECTANGLES, initialize={0:6, 1:3, 2:4, 3:2})
model.Length = pyo.Param(model.RECTANGLES, initialize={0:6, 1:8, 2:5, 3:3})

model.StripWidth = pyo.Param(initialize=10, doc="Width of the strip" )

# upperbound on length (default is sum of lengths of rectangles)
model.LengthUB = pyo.Param(initialize=sum(model.Length[i] for i in
                                          model.RECTANGLES))

# x (length) and y (width) coordinates of each of the rectangles
model.x = pyo.Var(model.RECTANGLES, bounds=(0, model.LengthUB),
                  doc="rectangle corner x-position (position down length)")
def y_bounds(m, i):
    return (0, m.StripWidth-m.Width[i])
model.y = pyo.Var(model.RECTANGLES,
              bounds=y_bounds,
              doc="rectangle corner y-position (position across width)")

# length of strip (this will be the objective)
model.MaxLength = pyo.Var(within=pyo.NonNegativeReals)

# generate the list of possible rectangle conflicts (which are any pair)
def rec_pairs_filter(model, i, j):
    return i < j
model.OVERLAP_PAIRS = pyo.Set(initialize=model.RECTANGLES * model.RECTANGLES,
    dimen=2, filter=rec_pairs_filter)

# strip length constraint
@model.Constraint(model.RECTANGLES)
def strip_ends_after_last_rec(model, i):
    return model.MaxLength >= model.x[i] + model.Length[i]

# minimize length
model.total_length = pyo.Objective(expr=model.MaxLength)

#
# Insert the no-overlap disjunctions here!
#
@model.Disjunction(model.OVERLAP_PAIRS)
def noOverlap(m,i,j):
    return [
        m.x[i] + m.Length[i] <= m.x[j],
        m.x[j] + m.Length[j] <= m.x[i],
        m.y[i] + m.Width[i] <= m.y[j],
        m.y[j] + m.Width[j] <= m.y[i],
    ]
#
# Transform the model using the BigM relaxation
#
pyo.TransformationFactory('gdp.bigm').apply_to(model)

#
# Solve and print the solution
#
pyo.SolverFactory('glpk').solve(model, tee=True)
model.pprint()
for i in model.RECTANGLES:
    print("Rectangle %s: (%s, %s)" % (i, pyo.value(model.x[i]), pyo.value(model.y[i])))
model.total_length.display()
WARNING: DEPRECATED: OrderedScalarSet OVERLAP_PAIRS: 'filter=' callback
signature matched (block, *value).  Please update the callback to match the
signature (block, value).  (deprecated in 6.8.0) (called from
/home/murraybj/CHE498/pyomo_jupyter_book/.venv/lib/python3.10/site-
packages/pyomo/core/base/disable_methods.py:124)
GLPSOL--GLPK LP/MIP Solver 5.0
Parameter(s) specified in the command line:
 --write /tmp/tmp0j28vhms.glpk.raw --wglp /tmp/tmp40t_dwqy.glpk.glp --cpxlp
 /tmp/tmp81ict0el.pyomo.lp
Reading problem data from '/tmp/tmp81ict0el.pyomo.lp'...
/tmp/tmp81ict0el.pyomo.lp:250: warning: lower bound of variable 'x12' redefined
/tmp/tmp81ict0el.pyomo.lp:250: warning: upper bound of variable 'x12' redefined
34 rows, 33 columns, 104 non-zeros
24 integer variables, all of which are binary
274 lines were read
Writing problem data to '/tmp/tmp40t_dwqy.glpk.glp'...
218 lines were written
GLPK Integer Optimizer 5.0
34 rows, 33 columns, 104 non-zeros
24 integer variables, all of which are binary
Preprocessing...
34 rows, 33 columns, 104 non-zeros
24 integer variables, all of which are binary
Scaling...
 A: min|aij| =  1.000e+00  max|aij| =  3.000e+01  ratio =  3.000e+01
GM: min|aij| =  7.577e-01  max|aij| =  1.320e+00  ratio =  1.742e+00
EQ: min|aij| =  5.958e-01  max|aij| =  1.000e+00  ratio =  1.679e+00
2N: min|aij| =  5.000e-01  max|aij| =  1.000e+00  ratio =  2.000e+00
Constructing initial basis...
Size of triangular part is 34
Solving LP relaxation...
GLPK Simplex Optimizer 5.0
34 rows, 33 columns, 104 non-zeros
      0: obj =   6.000000000e+00 inf =   4.750e+00 (7)
      8: obj =   8.000000000e+00 inf =   0.000e+00 (0)
OPTIMAL LP SOLUTION FOUND
Integer optimization begins...
Long-step dual simplex will be used
+     8: mip =     not found yet >=              -inf        (1; 0)
+    22: >>>>>   1.100000000e+01 >=   8.000000000e+00  27.3% (6; 0)
+    45: mip =   1.100000000e+01 >=     tree is empty   0.0% (0; 15)
INTEGER OPTIMAL SOLUTION FOUND
Time used:   0.0 secs
Memory used: 0.1 Mb (95163 bytes)
Writing MIP solution to '/tmp/tmp0j28vhms.glpk.raw'...
76 lines were written
2 Set Declarations
    OVERLAP_PAIRS : Size=1, Index=None, Ordered=Insertion
        Key  : Dimen : Domain : Size : Members
        None :     2 :    Any :    6 : {(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)}
    RECTANGLES : Size=1, Index=None, Ordered=Insertion
        Key  : Dimen : Domain : Size : Members
        None :     1 :    Any :    4 : {0, 1, 2, 3}

4 Param Declarations
    Length : Size=4, Index=RECTANGLES, Domain=Any, Default=None, Mutable=False
        Key : Value
          0 :     6
          1 :     8
          2 :     5
          3 :     3
    LengthUB : Size=1, Index=None, Domain=Any, Default=None, Mutable=False
        Key  : Value
        None :    22
    StripWidth : Width of the strip
        Size=1, Index=None, Domain=Any, Default=None, Mutable=False
        Key  : Value
        None :    10
    Width : Size=4, Index=RECTANGLES, Domain=Any, Default=None, Mutable=False
        Key : Value
          0 :     6
          1 :     3
          2 :     4
          3 :     2

3 Var Declarations
    MaxLength : Size=1, Index=None
        Key  : Lower : Value : Upper : Fixed : Stale : Domain
        None :     0 :  11.0 :  None : False : False : NonNegativeReals
    x : rectangle corner x-position (position down length)
        Size=4, Index=RECTANGLES
        Key : Lower : Value : Upper : Fixed : Stale : Domain
          0 :     0 :   0.0 :  22.0 : False : False :  Reals
          1 :     0 :   0.0 :  22.0 : False : False :  Reals
          2 :     0 :   6.0 :  22.0 : False : False :  Reals
          3 :     0 :   8.0 :  22.0 : False : False :  Reals
    y : rectangle corner y-position (position across width)
        Size=4, Index=RECTANGLES
        Key : Lower : Value : Upper : Fixed : Stale : Domain
          0 :     0 :   4.0 :     4 : False : False :  Reals
          1 :     0 :   0.0 :     7 : False : False :  Reals
          2 :     0 :   3.0 :     6 : False : False :  Reals
          3 :     0 :   0.0 :     8 : False : False :  Reals

1 Objective Declarations
    total_length : Size=1, Index=None, Active=True
        Key  : Active : Sense    : Expression
        None :   True : minimize :  MaxLength

1 Constraint Declarations
    strip_ends_after_last_rec : Size=4, Index=RECTANGLES, Active=True
        Key : Lower : Body                 : Upper : Active
          0 :  -Inf : x[0] + 6 - MaxLength :   0.0 :   True
          1 :  -Inf : x[1] + 8 - MaxLength :   0.0 :   True
          2 :  -Inf : x[2] + 5 - MaxLength :   0.0 :   True
          3 :  -Inf : x[3] + 3 - MaxLength :   0.0 :   True

1 Block Declarations
    _pyomo_gdp_bigm_reformulation : Size=1, Index=None, Active=True
        1 Constraint Declarations
            noOverlap_xor : Size=6, Index=Any, Active=True
                Key    : Lower : Body                                                                                                                                                                                      : Upper : Active
                (0, 1) :   1.0 :     noOverlap_disjuncts[0].binary_indicator_var + noOverlap_disjuncts[1].binary_indicator_var + noOverlap_disjuncts[2].binary_indicator_var + noOverlap_disjuncts[3].binary_indicator_var :   1.0 :   True
                (0, 2) :   1.0 :     noOverlap_disjuncts[4].binary_indicator_var + noOverlap_disjuncts[5].binary_indicator_var + noOverlap_disjuncts[6].binary_indicator_var + noOverlap_disjuncts[7].binary_indicator_var :   1.0 :   True
                (0, 3) :   1.0 :   noOverlap_disjuncts[8].binary_indicator_var + noOverlap_disjuncts[9].binary_indicator_var + noOverlap_disjuncts[10].binary_indicator_var + noOverlap_disjuncts[11].binary_indicator_var :   1.0 :   True
                (1, 2) :   1.0 : noOverlap_disjuncts[12].binary_indicator_var + noOverlap_disjuncts[13].binary_indicator_var + noOverlap_disjuncts[14].binary_indicator_var + noOverlap_disjuncts[15].binary_indicator_var :   1.0 :   True
                (1, 3) :   1.0 : noOverlap_disjuncts[16].binary_indicator_var + noOverlap_disjuncts[17].binary_indicator_var + noOverlap_disjuncts[18].binary_indicator_var + noOverlap_disjuncts[19].binary_indicator_var :   1.0 :   True
                (2, 3) :   1.0 : noOverlap_disjuncts[20].binary_indicator_var + noOverlap_disjuncts[21].binary_indicator_var + noOverlap_disjuncts[22].binary_indicator_var + noOverlap_disjuncts[23].binary_indicator_var :   1.0 :   True

        1 Block Declarations
            relaxedDisjuncts : Size=24, Index=NonNegativeIntegers, Active=True
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[0] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                     : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[0] + 6 - x[1] - 28.0*(1 - noOverlap_disjuncts[0].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[0].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[1] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                     : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[1] + 8 - x[0] - 30.0*(1 - noOverlap_disjuncts[1].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[1].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[2] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                     : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[0] + 6 - y[1] - 10.0*(1 - noOverlap_disjuncts[2].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[2].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[3] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                     : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[1] + 3 - y[0] - 10.0*(1 - noOverlap_disjuncts[3].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[3].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   1.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[4] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                     : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[0] + 6 - x[2] - 28.0*(1 - noOverlap_disjuncts[4].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[4].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   1.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[5] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                     : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[2] + 5 - x[0] - 27.0*(1 - noOverlap_disjuncts[5].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[5].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[6] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                     : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[0] + 6 - y[2] - 10.0*(1 - noOverlap_disjuncts[6].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[6].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[7] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                     : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[2] + 4 - y[0] - 10.0*(1 - noOverlap_disjuncts[7].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[7].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[8] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                     : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[0] + 6 - x[3] - 28.0*(1 - noOverlap_disjuncts[8].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[8].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[9] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                     : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[3] + 3 - x[0] - 25.0*(1 - noOverlap_disjuncts[9].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[9].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[10] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[0] + 6 - y[3] - 10.0*(1 - noOverlap_disjuncts[10].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[10].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[11] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[3] + 2 - y[0] - 10.0*(1 - noOverlap_disjuncts[11].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[11].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   1.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[12] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[1] + 8 - x[2] - 30.0*(1 - noOverlap_disjuncts[12].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[12].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[13] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[2] + 5 - x[1] - 27.0*(1 - noOverlap_disjuncts[13].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[13].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[14] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[1] + 3 - y[2] - 10.0*(1 - noOverlap_disjuncts[14].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[14].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   1.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[15] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[2] + 4 - y[1] - 10.0*(1 - noOverlap_disjuncts[15].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[15].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[16] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[1] + 8 - x[3] - 30.0*(1 - noOverlap_disjuncts[16].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[16].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   1.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[17] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[3] + 3 - x[1] - 25.0*(1 - noOverlap_disjuncts[17].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[17].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[18] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[1] + 3 - y[3] - 10.0*(1 - noOverlap_disjuncts[18].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[18].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[19] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[3] + 2 - y[1] - 10.0*(1 - noOverlap_disjuncts[19].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[19].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[20] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[2] + 5 - x[3] - 27.0*(1 - noOverlap_disjuncts[20].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[20].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[21] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : x[3] + 3 - x[2] - 25.0*(1 - noOverlap_disjuncts[21].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[21].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[22] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[2] + 4 - y[3] - 10.0*(1 - noOverlap_disjuncts[22].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[22].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   0.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences
                _pyomo_gdp_bigm_reformulation.relaxedDisjuncts[23] : Active=True
                    1 Constraint Declarations
                        transformedConstraints : Size=1, Index=Any, Active=True
                            Key                          : Lower : Body                                                                      : Upper : Active
                            ('constraint[1]_0', 1, 'ub') :  -Inf : y[3] + 2 - y[2] - 10.0*(1 - noOverlap_disjuncts[23].binary_indicator_var) :   0.0 :   True

                    1 Block Declarations
                        localVarReferences : Size=1, Index=None, Active=True
                            1 Var Declarations
                                binary_indicator_var : Size=1, Index=UnindexedComponent_ReferenceSet, ReferenceTo=noOverlap_disjuncts[23].binary_indicator_var
                                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                                    None :     0 :   1.0 :     1 : False : False : Binary

                            1 Declarations: binary_indicator_var

                    2 Declarations: transformedConstraints localVarReferences

        2 Declarations: relaxedDisjuncts noOverlap_xor

1 Disjunct Declarations
    noOverlap_disjuncts : Size=24, Index=Any, Active=False
        noOverlap_disjuncts[0] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[0] + 6 - x[1] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[1] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[1] + 8 - x[0] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[2] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[0] + 6 - y[1] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[3] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   1.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[1] + 3 - y[0] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None :  True : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[4] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   1.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[0] + 6 - x[2] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None :  True : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[5] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[2] + 5 - x[0] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[6] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[0] + 6 - y[2] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[7] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[2] + 4 - y[0] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[8] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[0] + 6 - x[3] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[9] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[3] + 3 - x[0] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[10] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[0] + 6 - y[3] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[11] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   1.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[3] + 2 - y[0] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None :  True : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[12] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[1] + 8 - x[2] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[13] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[2] + 5 - x[1] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[14] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   1.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[1] + 3 - y[2] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None :  True : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[15] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[2] + 4 - y[1] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[16] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   1.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[1] + 8 - x[3] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None :  True : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[17] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[3] + 3 - x[1] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[18] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[1] + 3 - y[3] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[19] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[3] + 2 - y[1] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[20] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[2] + 5 - x[3] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[21] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : x[3] + 3 - x[2] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[22] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   0.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[2] + 4 - y[3] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None : False : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions
        noOverlap_disjuncts[23] : Active=False
            1 Var Declarations
                binary_indicator_var : Size=1, Index=None
                    Key  : Lower : Value : Upper : Fixed : Stale : Domain
                    None :     0 :   1.0 :     1 : False : False : Binary

            1 Constraint Declarations
                constraint : Size=1, Index={1}, Active=True
                    Key : Lower : Body            : Upper : Active
                      1 :  -Inf : y[3] + 2 - y[2] :   0.0 :  False

            1 BooleanVar Declarations
                indicator_var : Size=1, Index=None
                    Key  : Value : Fixed : Stale
                    None :  True : False : False

            1 LogicalConstraint Declarations
                propositions : Size=0, Index={}, Active=False
                    Key : Body : Active

            4 Declarations: indicator_var binary_indicator_var constraint propositions

1 Disjunction Declarations
    noOverlap : Size=6, Index=OVERLAP_PAIRS, Active=False
        Key    : Disjuncts                                                                                                    : Active : XOR
        (0, 1) :     ['noOverlap_disjuncts[0]', 'noOverlap_disjuncts[1]', 'noOverlap_disjuncts[2]', 'noOverlap_disjuncts[3]'] :  False : True
        (0, 2) :     ['noOverlap_disjuncts[4]', 'noOverlap_disjuncts[5]', 'noOverlap_disjuncts[6]', 'noOverlap_disjuncts[7]'] :  False : True
        (0, 3) :   ['noOverlap_disjuncts[8]', 'noOverlap_disjuncts[9]', 'noOverlap_disjuncts[10]', 'noOverlap_disjuncts[11]'] :  False : True
        (1, 2) : ['noOverlap_disjuncts[12]', 'noOverlap_disjuncts[13]', 'noOverlap_disjuncts[14]', 'noOverlap_disjuncts[15]'] :  False : True
        (1, 3) : ['noOverlap_disjuncts[16]', 'noOverlap_disjuncts[17]', 'noOverlap_disjuncts[18]', 'noOverlap_disjuncts[19]'] :  False : True
        (2, 3) : ['noOverlap_disjuncts[20]', 'noOverlap_disjuncts[21]', 'noOverlap_disjuncts[22]', 'noOverlap_disjuncts[23]'] :  False : True

14 Declarations: RECTANGLES Width Length StripWidth LengthUB x y MaxLength OVERLAP_PAIRS strip_ends_after_last_rec total_length noOverlap noOverlap_disjuncts _pyomo_gdp_bigm_reformulation
Rectangle 0: (0.0, 4.0)
Rectangle 1: (0.0, 0.0)
Rectangle 2: (6.0, 3.0)
Rectangle 3: (8.0, 0.0)
total_length : Size=1, Index=None, Active=True
    Key  : Active : Value
    None :   True :  11.0