Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions check/TestMipSolver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2541,6 +2541,24 @@ TEST_CASE("issue-3433", "[highs_test_mip_solver]") {
highs.resetGlobalScheduler(true);
}

TEST_CASE("issue-3451", "[highs_test_mip_solver]") {
// reduced version of the model in issue 3451. IPX stops with "no progress"
// before centring when computing the analytic centre, but the KKT check
// reports the solution as optimal. Fixing columns at bounds of this
// uncentred point used to make the feasible model infeasible. The same
// cause led to a wrong optimal objective in issue 3452
std::string filename =
std::string(HIGHS_DIR) + "/check/instances/issue-3451.mps";
Highs highs;
highs.setOptionValue("output_flag", dev_run);
highs.setOptionValue("mip_rel_gap", 0);
highs.readModel(filename);
const HighsModelStatus require_model_status = HighsModelStatus::kOptimal;
const double optimal_objective = -135.865250363;
solve(highs, kHighsOnString, require_model_status, optimal_objective);
highs.resetGlobalScheduler(true);
}

TEST_CASE("conflict-pool-sync-empty-conflict", "[highs_test_mip_solver]") {
// an empty conflict, which can be derived when a proof is violated by the
// global bounds alone, is stored at the end of the conflict entries and
Expand Down
369 changes: 369 additions & 0 deletions check/instances/issue-3451.mps
Original file line number Diff line number Diff line change
@@ -0,0 +1,369 @@
NAME issue-3451
ROWS
N obj
G r0
L r1
E r2
E r3
L r4
E r5
E r6
G r7
L r8
E r9
E r11
G r12
G r13
G r14
L r16
L r17
L r18
E r19
G r20
E r23
COLUMNS
MARK0000 'MARKER' 'INTORG'
x0 obj -1
x0 r0 -8
x0 r2 -9
x0 r4 -2
x0 r5 -5
x0 r7 5
x0 r9 9
x0 r14 -4
x0 r18 8
x0 r20 -8
x1 obj 10
x1 r4 -6
x1 r8 8
x1 r12 7
x2 obj -1
x2 r1 1
x2 r2 -5
x2 r8 -4
x2 r16 -8
x2 r17 -7
x2 r19 -8
x2 r20 -4
x4 obj 6
x4 r0 -6
x4 r4 4
x4 r5 1
x4 r8 5
x4 r18 -4
x5 obj 9
x5 r2 4
x5 r3 -3
x5 r6 -9
x5 r20 -8
x6 obj -5
x6 r2 -5
x6 r7 -3
x6 r8 -3
x6 r11 3
x6 r14 5
x6 r17 1
x6 r23 3
x7 obj 2
x7 r4 7
x7 r5 -8
x7 r6 3
x7 r8 6
x7 r12 -2
x7 r14 2
x7 r17 -9
x7 r19 7
MARK0001 'MARKER' 'INTEND'
x8 obj 6
x8 r1 -4
x8 r2 -9
x8 r3 -3
x8 r17 -5
x9 obj -3
x9 r2 4
x9 r7 -5
x9 r14 -4
x9 r16 -1
x9 r19 -9
MARK0002 'MARKER' 'INTORG'
x10 obj -1.0000091470480299
x10 r3 9
x10 r6 3
x10 r7 8
x10 r8 2
x10 r9 6
x10 r11 -1
x10 r12 1
x10 r23 -1
x11 obj 6
x11 r1 3
x11 r3 4
x12 obj 10
x12 r1 -3
x12 r4 -7
x12 r9 -2
x12 r11 -2
x12 r12 -1
x12 r13 5
x12 r16 -2
x12 r23 -2
MARK0003 'MARKER' 'INTEND'
x13 obj -3
x13 r0 -9
x13 r3 -1
x13 r4 5
x13 r7 2
x13 r13 4
x13 r16 1
MARK0004 'MARKER' 'INTORG'
x14 obj -5
x14 r0 -2
x14 r1 5
x14 r4 9
x14 r5 6
x14 r14 -2
x14 r17 4
x14 r18 -2
x14 r19 -5
x15 obj -2
x15 r0 -1
x15 r16 -9
x15 r20 4
x16 obj -4
x16 r0 2
x16 r2 -4
x16 r4 8
x16 r5 -7
x16 r9 6
x16 r17 3
x17 obj 10
x17 r0 3
x17 r1 5
x17 r17 -5
x18 obj -4
x18 r1 9
x18 r2 2
x18 r6 -7
x18 r8 -9
x18 r11 6
x18 r14 -7
x18 r17 8
x18 r23 6
x19 obj -9
x19 r1 9
x19 r3 -6
x19 r7 8
x19 r8 9
x19 r14 9
x19 r17 2
x19 r20 3
MARK0005 'MARKER' 'INTEND'
x20 obj 5
x20 r4 -8
x20 r6 2
x20 r8 4
x20 r13 8
x21 obj 7
x21 r2 9
x21 r4 2
x21 r14 5
MARK0006 'MARKER' 'INTORG'
x22 obj 10
x22 r2 -2
x22 r7 8
x22 r13 -5
x22 r16 1
x22 r18 -6
MARK0007 'MARKER' 'INTEND'
x23 obj -7
x23 r3 -5
x23 r5 -2
x23 r7 1
x23 r14 6
x23 r16 -1
x23 r17 6
x23 r19 5
x23 r20 -8
MARK0008 'MARKER' 'INTORG'
x24 obj -7
x24 r1 -1
x24 r6 -7
x24 r7 1
x24 r13 5
x25 obj -8
x25 r1 1
x25 r4 -6
x25 r6 2
x25 r17 -5
x26 obj -9
x26 r1 7
x26 r2 4
x26 r7 7
x26 r9 1
x26 r11 3
x26 r12 -5
x26 r13 9
x26 r16 2
x26 r17 1
x26 r23 3
x27 obj -6
x27 r6 6
x27 r9 -6
x27 r16 -2
x27 r17 1
MARK0009 'MARKER' 'INTEND'
x28 obj -1
x28 r5 5
x28 r12 6
MARK0010 'MARKER' 'INTORG'
x29 obj 8
x29 r5 -9
x29 r12 8
x29 r19 -3
x30 r3 9
x30 r7 -2
x30 r12 -3
x30 r13 7
x30 r16 1
x31 obj -8
x31 r0 6
x31 r2 -5
x31 r7 2
x31 r9 -5
x31 r13 9
x31 r19 8
x31 r20 -5
MARK0011 'MARKER' 'INTEND'
x32 obj -2
x32 r1 6
x32 r9 6
x32 r11 -8
x32 r14 -4
x32 r23 -8
x33 obj 5
x33 r5 -4
x33 r8 4
x33 r12 -7
x33 r14 -1
MARK0012 'MARKER' 'INTORG'
x35 obj -5
x35 r0 -9
x35 r7 -5
x35 r9 5
x35 r13 6
x35 r14 -7
x35 r17 -6
x35 r18 2
MARK0013 'MARKER' 'INTEND'
x36 r6 9
x36 r9 -8
x36 r19 -6
x36 r20 6
MARK0014 'MARKER' 'INTORG'
x37 obj -8
x37 r0 -1
x37 r3 5
x37 r11 8
x37 r13 -5
x37 r23 7.9999538430192381
MARK0015 'MARKER' 'INTEND'
x40 obj 7
x40 r3 1
x40 r5 9
x40 r11 -4
x40 r13 5
x40 r18 -5
x40 r20 -3
x40 r23 -4
MARK0016 'MARKER' 'INTORG'
x42 obj 8
x42 r1 -2
x42 r4 -5
x42 r5 6
x42 r7 4
x42 r9 -6
x42 r16 4
x42 r18 1
x42 r20 4
x43 obj -3
x43 r0 -8
x43 r1 2
x43 r3 -4
x43 r5 -1
x43 r8 3
x43 r11 -1
x43 r18 2
x43 r20 5
x43 r23 -1
x44 obj -7
x44 r1 -9
x44 r4 -5
x44 r9 7
x44 r13 1
x44 r16 2
x44 r19 7
MARK0017 'MARKER' 'INTEND'
RHS
RHS_V obj 20.630962959642641
RHS_V r0 16
RHS_V r1 257
RHS_V r2 -79.564016153248986
RHS_V r3 -119.66503469642078
RHS_V r4 136
RHS_V r5 -47.334829482709921
RHS_V r6 -50.398430863341822
RHS_V r7 85.782306880204203
RHS_V r8 228
RHS_V r9 35.670521359842411
RHS_V r11 -33.09179631635169
RHS_V r12 -51
RHS_V r13 192
RHS_V r14 142
RHS_V r16 -54.435386239591594
RHS_V r17 -172.97788360025527
RHS_V r18 -36
RHS_V r19 29.202867840254626
RHS_V r20 -101
RHS_V r23 -33.09179631635169
BOUNDS
UI BOUND x0 4
BV BOUND x1
BV BOUND x2
UI BOUND x4 9
UI BOUND x5 16
UI BOUND x6 12
UI BOUND x7 17
UP BOUND x8 19
UP BOUND x9 7
UI BOUND x10 7
UI BOUND x11 8
UI BOUND x12 2
UP BOUND x13 2
UI BOUND x14 17
UI BOUND x15 4
UI BOUND x16 14
UI BOUND x17 17
BV BOUND x18
UI BOUND x19 13
UP BOUND x20 8
UP BOUND x21 12
UI BOUND x22 7
UP BOUND x23 11
UI BOUND x24 6
UI BOUND x25 8
UI BOUND x26 14
UI BOUND x27 8
UP BOUND x28 7
UI BOUND x29 14
UI BOUND x30 2
UI BOUND x31 8
UP BOUND x32 4
UP BOUND x33 2
UI BOUND x35 15
UP BOUND x36 3
UI BOUND x37 7
UP BOUND x40 8
UI BOUND x42 3
UI BOUND x43 13
UI BOUND x44 6
ENDATA
Loading
Loading