
UNEXPLORED iteration 0, partition [U, U, B, B]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [3.0, 4.0, 0.0, -2.0]
UB: [3.0, 4.0, Infinity, Infinity]
!!! 0.0 < -2.0 < Infinity
[2, 3]
 -1  2  1  0  0
  3  1  0  1 -2
 -6 -5  0  0  0
 -6 -5  0  0  0

getDualExitCandidate
    3(1) -2.0
        -2.0/1.0=4.0 => 3(1) INCREASE LOWER
    2(0) 0.0
==>> 3(1) INCREASE LOWER

testDualEnterRatio
    0(0) relaxed = 2.0000000166666667
    1(1) relaxed = 5.00000005
        2.0 (scale 3.0) => 0(0) UPPER DECREASE
==>> 0(0) UPPER DECREASE

Pivoting: 3(1) INCREASE LOWER -> 0(0) UPPER DECREASE
==>> Row: 1, Exit: 3, Column/Enter: 0.
Cost=-6.0, Pivot1=3.0, Pivot2=3.0, RHS=-2.0, Inf=-2.0

UNEXPLORED iteration 1, partition [B, U, B, L]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [2.3333333333333335, 4.0, -0.6666666666666666, 0.0]
UB: [3.0, 4.0, Infinity, Infinity]
!!! 0.0 < -0.6666666666666666 < Infinity
[2, 0]
         0   2.33333         1  0.333333 -0.666667
         1  0.333333         0  0.333333 -0.666667
         0        -3         0         2        -4
         0        -3         0         2        -4

getDualExitCandidate
    0(1) 0.0
    2(0) -0.6666666666666666
        -0.6666666666666666/1.1111111111111112=0.39999999999999997 => 2(0) INCREASE LOWER
==>> 2(0) INCREASE LOWER

testDualEnterRatio
    1(1) relaxed = 1.2857143071428572
        1.2857142857142856 (scale 2.3333333333333335) => 1(1) UPPER DECREASE
==>> 1(1) UPPER DECREASE

Pivoting: 2(0) INCREASE LOWER -> 1(1) UPPER DECREASE
==>> Row: 0, Exit: 2, Column/Enter: 1.
Cost=-3.0, Pivot1=2.3333333333333335, Pivot2=2.3333333333333335, RHS=-0.6666666666666666, Inf=-0.6666666666666666

UNEXPLORED iteration 2, partition [B, B, L, L]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [2.428571428571429, 3.7142857142857144, 0.0, 0.0]
UB: [3.0, 4.0, Infinity, Infinity]
[1, 0]
         0         1  0.428571  0.142857 -0.285714
         1         0 -0.142857  0.285714 -0.571429
         0         0   1.28571   2.42857  -4.85714
         0         0   1.28571   2.42857  -4.85714

getDualExitCandidate
    0(1) 0.0
    1(0) 0.0
==>> -1(-1) STAY BASIS

FEASIBLE iteration 2, partition [B, B, L, L]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [2.428571428571429, 3.7142857142857144, 0.0, 0.0]
UB: [3.0, 4.0, Infinity, Infinity]
[1, 0]
         0         1  0.428571  0.142857 -0.285714
         1         0 -0.142857  0.285714 -0.571429
         0         0   1.28571   2.42857  -4.85714
         0         0   1.28571   2.42857  -4.85714

getPrimalEnterCandidate
    3(0) 2.4285714285714284 @ LOWER
    2(1) 1.2857142857142856 @ LOWER
==>> -1(-1) BASIS STAY

OPTIMAL iteration 2, partition [B, B, L, L]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [2.428571428571429, 3.7142857142857144, 0.0, 0.0]
UB: [3.0, 4.0, Infinity, Infinity]
[1, 0]
         0         1  0.428571  0.142857 -0.285714
         1         0 -0.142857  0.285714 -0.571429
         0         0   1.28571   2.42857  -4.85714

-33.142857142857146 OPTIMAL [B, B, L, L]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [2.428571428571429, 3.7142857142857144, 0.0, 0.0]
UB: [3.0, 4.0, Infinity, Infinity]

Iteration 1: OPTIMAL -33.142857142857146 @ { 2.428571428571429, 3.7142857142857144 }
2.428571428571429 ! Integer: x1
CUT_GMI_1_1: -4.2 < [1=-1.4]
-5.20000000000000016 ! -4.2 <= CUT_GMI_1_1
CUT_GMI_0_2: -7.58333333334 < [0=-1.75, 1=-1.16666666666]
-5.20000000000000016 ! -4.2 <= CUT_GMI_1_1
-8.583333333308572311904761904 ! -7.58333 <= CUT_GMI_0_2

UNEXPLORED iteration 0, partition [U, U, B, B, B]
LB: [0.0, 0.0, 0.0, 0.0, -Infinity]
 X: [3.0, 3.0, 2.0, -1.0, 1.1666666666400003]
UB: [3.0, 3.0, Infinity, Infinity, 0.0]
!!! 0.0 < -1.0 < Infinity
!!! -Infinity < 1.1666666666400003 < 0.0
[2, 3, 4]
       -1        2        1        0        0        2
        3        1        0        1        0       -1
    -1.75 -1.16667        0        0        1  1.16667
       -6       -5        0        0        0        0
       -6       -5        0        0        0        0

getDualExitCandidate
    4(2) 1.1666666666400003
        1.1666666666400003/1.0=1.3611111110488896 => 4(2) DECREASE UPPER
    3(1) -1.0
    2(0) 0.0
==>> 4(2) DECREASE UPPER

testDualEnterRatio
    0(0) relaxed = 3.428571457142857
    1(1) relaxed = 4.285714328595918
        3.4285714285714284 (scale 1.75) => 0(0) UPPER DECREASE
==>> 0(0) UPPER DECREASE

Pivoting: 4(2) DECREASE UPPER -> 0(0) UPPER DECREASE
==>> Row: 2, Exit: 4, Column/Enter: 0.
Cost=-6.0, Pivot1=-1.75, Pivot2=-1.75, RHS=1.1666666666400003, Inf=1.1666666666400003

UNEXPLORED iteration 1, partition [B, U, B, B, U]
LB: [0.0, 0.0, 0.0, 0.0, -Infinity]
 X: [2.3333333333485715, 3.0, 1.3333333333485713, 0.9999999999542861, 0.0]
UB: [3.0, 3.0, Infinity, Infinity, 0.0]
[2, 3, 0]
         0   2.66667         1         0 -0.571429   1.33333
         0        -1         0         1   1.71429         1
         1  0.666667         0         0 -0.571429 -0.666667
         0        -1         0         0  -3.42857        -4
         0        -1         0         0  -3.42857        -4

getDualExitCandidate
    0(2) 0.0
    3(1) 0.0
    2(0) 0.0
==>> -1(-1) STAY BASIS

FEASIBLE iteration 1, partition [B, U, B, B, U]
LB: [0.0, 0.0, 0.0, 0.0, -Infinity]
 X: [2.3333333333485715, 3.0, 1.3333333333485713, 0.9999999999542861, 0.0]
UB: [3.0, 3.0, Infinity, Infinity, 0.0]
[2, 3, 0]
         0   2.66667         1         0 -0.571429   1.33333
         0        -1         0         1   1.71429         1
         1  0.666667         0         0 -0.571429 -0.666667
         0        -1         0         0  -3.42857        -4
         0        -1         0         0  -3.42857        -4

getPrimalEnterCandidate
    4(0) -3.4285714285714284 @ UPPER
    1(1) -1.0000000000228564 @ UPPER
==>> -1(-1) BASIS STAY

OPTIMAL iteration 1, partition [B, U, B, B, U]
LB: [0.0, 0.0, 0.0, 0.0, -Infinity]
 X: [2.3333333333485715, 3.0, 1.3333333333485713, 0.9999999999542861, 0.0]
UB: [3.0, 3.0, Infinity, Infinity, 0.0]
[2, 3, 0]
         0   2.66667         1         0 -0.571429   1.33333
         0        -1         0         1   1.71429         1
         1  0.666667         0         0 -0.571429 -0.666667
         0        -1         0         0  -3.42857        -4

-29.00000000009143 OPTIMAL [B, U, B, B, U]
LB: [0.0, 0.0, 0.0, 0.0, -Infinity]
 X: [2.3333333333485715, 3.0, 1.3333333333485713, 0.9999999999542861, 0.0]
UB: [3.0, 3.0, Infinity, Infinity, 0.0]

Iteration 2: OPTIMAL -29.00000000009143 @ { 2.3333333333485715, 3.0 }
2.3333333333485715 ! Integer: x1
CUT_GMI_2_3: -14.9999999994 < [0=-2.99999999986, 1=-2.99999999986]
-15.999999999299047833331199990 ! -15 <= CUT_GMI_2_3

UNEXPLORED iteration 0, partition [U, U, B, B, B, B]
LB: [0.0, 0.0, 0.0, 0.0, -Infinity, -Infinity]
 X: [3.0, 3.0, 2.0, -1.0, 1.1666666666400003, 2.99999999976]
UB: [3.0, 3.0, Infinity, Infinity, 0.0, 0.0]
!!! 0.0 < -1.0 < Infinity
!!! -Infinity < 1.1666666666400003 < 0.0
!!! -Infinity < 2.99999999976 < 0.0
[2, 3, 4, 5]
       -1        2        1        0        0        0        2
        3        1        0        1        0        0       -1
    -1.75 -1.16667        0        0        1        0  1.16667
       -3       -3        0        0        0        1        3
       -6       -5        0        0        0        0        0
       -6       -5        0        0        0        0        0

getDualExitCandidate
    5(3) 2.99999999976
        2.99999999976/1.0=8.99999999856 => 5(3) DECREASE UPPER
    4(2) 1.1666666666400003
    3(1) -1.0
    2(0) 0.0
==>> 5(3) DECREASE UPPER

testDualEnterRatio
    0(0) relaxed = 2.00000001676
    1(1) relaxed = 1.666666683411111
        1.6666666667444445 (scale 2.99999999986) => 1(1) UPPER DECREASE
==>> 1(1) UPPER DECREASE

Pivoting: 5(3) DECREASE UPPER -> 1(1) UPPER DECREASE
==>> Row: 3, Exit: 5, Column/Enter: 1.
Cost=-5.0, Pivot1=-2.99999999986, Pivot2=-2.99999999986, RHS=2.99999999976, Inf=2.99999999976

UNEXPLORED iteration 1, partition [U, B, B, B, B, U]
LB: [0.0, 0.0, 0.0, 0.0, -Infinity, -Infinity]
 X: [3.0, 2.0000000000333333, 3.9999999999333333, -3.33333360913457E-11, 1.8889112496367488E-11, 0.0]
UB: [3.0, 3.0, Infinity, Infinity, 0.0, 0.0]
!!! 0.0 < -3.33333360913457E-11 < Infinity
!!! -Infinity < 1.8889112496367488E-11 < 0.0
[2, 3, 4, 1]
        -3         0         1         0         0  0.666667         4
         2         0         0         1         0  0.333333         0
 -0.583333         0         0         0         1 -0.388889         0
         1         1         0         0         0 -0.333333        -1
        -1         0         0         0         0  -1.66667        -5
        -1         0         0         0         0  -1.66667        -5

getDualExitCandidate
    1(3) 0.0
    4(2) 1.8889112496367488E-11
    3(1) -3.33333360913457E-11
    2(0) 0.0
==>> -1(-1) STAY BASIS

FEASIBLE iteration 1, partition [U, B, B, B, B, U]
LB: [0.0, 0.0, 0.0, 0.0, -Infinity, -Infinity]
 X: [3.0, 2.0000000000333333, 3.9999999999333333, -3.33333360913457E-11, 1.8889112496367488E-11, 0.0]
UB: [3.0, 3.0, Infinity, Infinity, 0.0, 0.0]
!!! 0.0 < -3.33333360913457E-11 < Infinity
!!! -Infinity < 1.8889112496367488E-11 < 0.0
[2, 3, 4, 1]
        -3         0         1         0         0  0.666667         4
         2         0         0         1         0  0.333333         0
 -0.583333         0         0         0         1 -0.388889         0
         1         1         0         0         0 -0.333333        -1
        -1         0         0         0         0  -1.66667        -5
        -1         0         0         0         0  -1.66667        -5

getPrimalEnterCandidate
    0(0) -1.0 @ UPPER
    5(1) -1.6666666667444443 @ UPPER
==>> -1(-1) BASIS STAY

OPTIMAL iteration 1, partition [U, B, B, B, B, U]
LB: [0.0, 0.0, 0.0, 0.0, -Infinity, -Infinity]
 X: [3.0, 2.0000000000333333, 3.9999999999333333, -3.33333360913457E-11, 1.8889112496367488E-11, 0.0]
UB: [3.0, 3.0, Infinity, Infinity, 0.0, 0.0]
!!! 0.0 < -3.33333360913457E-11 < Infinity
!!! -Infinity < 1.8889112496367488E-11 < 0.0
[2, 3, 4, 1]
        -3         0         1         0         0  0.666667         4
         2         0         0         1         0  0.333333         0
 -0.583333         0         0         0         1 -0.388889         0
         1         1         0         0         0 -0.333333        -1
        -1         0         0         0         0  -1.66667        -5

-28.000000000166665 OPTIMAL [U, B, B, B, B, U]
LB: [0.0, 0.0, 0.0, 0.0, -Infinity, -Infinity]
 X: [3.0, 2.0000000000333333, 3.9999999999333333, -3.33333360913457E-11, 1.8889112496367488E-11, 0.0]
UB: [3.0, 3.0, Infinity, Infinity, 0.0, 0.0]

Iteration 3: OPTIMAL -28.000000000166665 @ { 3.0, 2.0000000000333333 }

UNEXPLORED iteration 0, partition [U, U, B, B]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [3.0, 4.0, 0.0, -2.0]
UB: [3.0, 4.0, Infinity, Infinity]
!!! 0.0 < -2.0 < Infinity
[2, 3]
   -1    2    1    0    0
    3    1    0    1   -2
 -0.6 -0.5    0    0    0
 -0.6 -0.5    0    0    0

getDualExitCandidate
    3(1) -2.0
        -2.0/1.0=4.0 => 3(1) INCREASE LOWER
    2(0) 0.0
==>> 3(1) INCREASE LOWER

testDualEnterRatio
    0(0) relaxed = 0.20000001666666667
    1(1) relaxed = 0.50000005
        0.19999999999999998 (scale 3.0) => 0(0) UPPER DECREASE
==>> 0(0) UPPER DECREASE

Pivoting: 3(1) INCREASE LOWER -> 0(0) UPPER DECREASE
==>> Row: 1, Exit: 3, Column/Enter: 0.
Cost=-0.6, Pivot1=3.0, Pivot2=3.0, RHS=-2.0, Inf=-2.0

UNEXPLORED iteration 1, partition [B, U, B, L]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [2.3333333333333335, 4.0, -0.6666666666666666, 0.0]
UB: [3.0, 4.0, Infinity, Infinity]
!!! 0.0 < -0.6666666666666666 < Infinity
[2, 0]
         0   2.33333         1  0.333333 -0.666667
         1  0.333333         0  0.333333 -0.666667
         0      -0.3         0       0.2      -0.4
         0      -0.3         0       0.2      -0.4

getDualExitCandidate
    0(1) 0.0
    2(0) -0.6666666666666666
        -0.6666666666666666/1.1111111111111112=0.39999999999999997 => 2(0) INCREASE LOWER
==>> 2(0) INCREASE LOWER

testDualEnterRatio
    1(1) relaxed = 0.12857145
        0.1285714285714286 (scale 2.3333333333333335) => 1(1) UPPER DECREASE
==>> 1(1) UPPER DECREASE

Pivoting: 2(0) INCREASE LOWER -> 1(1) UPPER DECREASE
==>> Row: 0, Exit: 2, Column/Enter: 1.
Cost=-0.30000000000000004, Pivot1=2.3333333333333335, Pivot2=2.3333333333333335, RHS=-0.6666666666666666, Inf=-0.6666666666666666

UNEXPLORED iteration 2, partition [B, B, L, L]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [2.428571428571429, 3.7142857142857144, 0.0, 0.0]
UB: [3.0, 4.0, Infinity, Infinity]
[1, 0]
         0         1  0.428571  0.142857 -0.285714
         1         0 -0.142857  0.285714 -0.571429
         0         0  0.128571  0.242857 -0.485714
         0         0  0.128571  0.242857 -0.485714

getDualExitCandidate
    0(1) 0.0
    1(0) 0.0
==>> -1(-1) STAY BASIS

FEASIBLE iteration 2, partition [B, B, L, L]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [2.428571428571429, 3.7142857142857144, 0.0, 0.0]
UB: [3.0, 4.0, Infinity, Infinity]
[1, 0]
         0         1  0.428571  0.142857 -0.285714
         1         0 -0.142857  0.285714 -0.571429
         0         0  0.128571  0.242857 -0.485714
         0         0  0.128571  0.242857 -0.485714

getPrimalEnterCandidate
    3(0) 0.24285714285714285 @ LOWER
    2(1) 0.1285714285714286 @ LOWER
==>> -1(-1) BASIS STAY

OPTIMAL iteration 2, partition [B, B, L, L]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [2.428571428571429, 3.7142857142857144, 0.0, 0.0]
UB: [3.0, 4.0, Infinity, Infinity]
[1, 0]
         0         1  0.428571  0.142857 -0.285714
         1         0 -0.142857  0.285714 -0.571429
         0         0  0.128571  0.242857 -0.485714

-3.314285714285714 OPTIMAL [B, B, L, L]
LB: [0.0, 0.0, 0.0, 0.0]
 X: [2.428571428571429, 3.7142857142857144, 0.0, 0.0]
UB: [3.0, 4.0, Infinity, Infinity]

UNEXPLORED iteration 0, partition [U]
LB: [0.0]
 X: [2.0]
UB: [2.0]
[]

getDualExitCandidate
==>> -1(-1) STAY BASIS

FEASIBLE iteration 0, partition [U]
LB: [0.0]
 X: [2.0]
UB: [2.0]
[]

getPrimalEnterCandidate
    0(0) -0.5 @ UPPER
==>> -1(-1) BASIS STAY

OPTIMAL iteration 0, partition [U]
LB: [0.0]
 X: [2.0]
UB: [2.0]
[]

-1.0 OPTIMAL [U]
LB: [0.0]
 X: [2.0]
UB: [2.0]

UNEXPLORED iteration 0, partition [U, U, B]
LB: [0.0, 0.0, 0.0]
 X: [2.0, 3.5, 0.0]
UB: [2.0, 3.5, Infinity]
[2]
   -1    2    1    0
 -0.6 -0.5    0    0
 -0.6 -0.5    0    0

getDualExitCandidate
    2(0) 0.0
==>> -1(-1) STAY BASIS

FEASIBLE iteration 0, partition [U, U, B]
LB: [0.0, 0.0, 0.0]
 X: [2.0, 3.5, 0.0]
UB: [2.0, 3.5, Infinity]
[2]
   -1    2    1    0
 -0.6 -0.5    0    0
 -0.6 -0.5    0    0

getPrimalEnterCandidate
    0(0) -0.6 @ UPPER
    1(1) -0.5 @ UPPER
==>> -1(-1) BASIS STAY

OPTIMAL iteration 0, partition [U, U, B]
LB: [0.0, 0.0, 0.0]
 X: [2.0, 3.5, 0.0]
UB: [2.0, 3.5, Infinity]
[2]
   -1    2    1    0
 -0.6 -0.5    0    0

-2.95 OPTIMAL [U, U, B]
LB: [0.0, 0.0, 0.0]
 X: [2.0, 3.5, 0.0]
UB: [2.0, 3.5, Infinity]

UNEXPLORED iteration 0, partition [U, U, B]
LB: [0.0, 0.0, 0.0]
 X: [2.0, 3.0, 1.0]
UB: [2.0, 3.0, Infinity]
[2]
 -1  2  1  1
 -6 -5  0  0
 -6 -5  0  0

getDualExitCandidate
    2(0) 0.0
==>> -1(-1) STAY BASIS

FEASIBLE iteration 0, partition [U, U, B]
LB: [0.0, 0.0, 0.0]
 X: [2.0, 3.0, 1.0]
UB: [2.0, 3.0, Infinity]
[2]
 -1  2  1  1
 -6 -5  0  0
 -6 -5  0  0

getPrimalEnterCandidate
    0(0) -6.0 @ UPPER
    1(1) -5.0 @ UPPER
==>> -1(-1) BASIS STAY

OPTIMAL iteration 0, partition [U, U, B]
LB: [0.0, 0.0, 0.0]
 X: [2.0, 3.0, 1.0]
UB: [2.0, 3.0, Infinity]
[2]
 -1  2  1  1
 -6 -5  0  0

-27.0 OPTIMAL [U, U, B]
LB: [0.0, 0.0, 0.0]
 X: [2.0, 3.0, 1.0]
UB: [2.0, 3.0, Infinity]

Iteration 1: OPTIMAL -27.0 @ { 2.0, 3.0 }
