HiGHS icon indicating copy to clipboard operation
HiGHS copied to clipboard

Crash with unbounded columns

Open spakin opened this issue 3 years ago • 1 comments

I set up the following as a MIP problem using Highs_passModel in C:

\begin{array}{ll}
\mathrm{Min.} & 3 x_0 + 2 x_1 + 1 x_2 \\
\mathrm{s.t.} & 1 \leq x_0 - x_1 \\
& 1 \leq x_1 - x_2 \\
& 10 \leq x_0 + x_1 + x_2
\end{array}

When I call Highs_run on the result…Boom!

./src/mip/HighsDomain.cpp:3284: bool HighsDomain::ConflictSet::explainInfeasibility(): Assertion `ninfmin == 0' failed.
Aborted (core dumped)

Here's my source code and an MPS file generated from the model: crash.zip

If I replace

const double col_lower[] = {-1e30, -1e30, -1e30};

in line 17 with, say,

const double col_lower[] = {0.0, 0.0, 0.0};

the assertion failure goes away.

spakin avatar Jan 03 '23 04:01 spakin

Hello!

My understanding of the code is very limited, but it looks like the problematic assertion will always fail if there are free variables in the objective function. It looks like (1) there is some code missing that handles free variables, (2) the assertion is too strict or (3) both.

I changed the assertion to work around this (see attached diff) and the problem can now be solved to optimality.

Regards, Franz assert_change.txt

fwesselm avatar Feb 20 '23 14:02 fwesselm