Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error in CglRedSplit::generateCuts(): rstat[557]: 0 and wrong result #105

Open
christoph-cullmann opened this issue Jun 18, 2024 · 5 comments

Comments

@christoph-cullmann
Copy link

With

value_8315709965526.lp.txt

and the driver options

        /**
         * deactivate all cuts first and then activate the ones we know are good below one by one
         */
        "-cuts=off",

        /**
         * Gomory
         *   used A LOT
         */
        "-gomory=on",

        /**
         * Gomory(2)
         *   alternative variant of Gomory
         *   fixes timeout for e.g. value_530288.lp
         *   kills e.g. value_87454.lp
         */
        "-gmi=on",

        /**
         * TwoMirCuts
         *   needed as "on" for e.g. value_24093348.lp to avoid timeout even on Linux
         */
        "-two=on",

        /**
         * Reduce-and-split
         *   improves A LOT of problems, e.g. makes value_6054.lp solvable at all without cplex
         */
        "-reduce=on",

        /**
         * Probing
         *   fixes rounding for test/value_2266800625.lp
         */
        "-probing=on",

        /**
         * enable some diving heuristics
         * e.g. this fixes issue with value_8923.lp on Windows, is else infeasible
         */
        "-DivingS=on",
        "-DivingL=on",
        "-DivingC=on",

I run into

./clpsolve test/value_8315709965526.lp 
This is clpsolve, Release: 24.04i, Build: 15541391, Tag: master, Branch: master
(c) Copyright AbsInt Angewandte Informatik GmbH
Progress: [12:36:24]: Reading lp file 'test/value_8315709965526.lp'...
Progress: [12:36:24]: Finished reading lp file.
Progress: [12:36:24]: 0 fixed, 171 tightened bounds, 13 strengthened rows, 0 substitutions
Progress: [12:36:24]: 0 fixed, 74 tightened bounds, 1 strengthened rows, 0 substitutions
Progress: [12:36:24]: 0 fixed, 10 tightened bounds, 0 strengthened rows, 0 substitutions
Progress: [12:36:24]: processed model has 557 rows, 418 columns (418 integer (133 of which binary)) and 1859 elements
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
Progress: [12:36:24]: 6 added rows had average density of 48.166667
Progress: [12:36:24]: At root node, 6 cuts changed objective from 8.31571e+12 to 8.315582e+12 in 100 passes
Progress: [12:36:24]: Cut generator 0 (Probing) - 1440 row cuts average 4.3 elements, 0 column cuts (0 active)  in 0.347 seconds - new frequency is 1
Progress: [12:36:24]: Cut generator 1 (Gomory) - 15 row cuts average 51.7 elements, 0 column cuts (0 active)  in 0.009 seconds - new frequency is 1
Progress: [12:36:24]: Cut generator 2 (Reduce-and-split) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.014 seconds - new frequency is 1000
Progress: [12:36:24]: Cut generator 3 (Gomory(2)) - 20 row cuts average 67.2 elements, 0 column cuts (0 active)  in 0.012 seconds - new frequency is 1
Progress: [12:36:24]: Cut generator 4 (TwoMirCuts) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.006 seconds - new frequency is 1000
Progress: [12:36:24]: Integer solution of 8.315581e+12 found by DiveAny after 138 iterations and 1 nodes (0.63 seconds)
Progress: [12:36:24]: After 1 nodes, 2 on tree, 8.315581e+12 best solution, best possible 8.315582e+12 (0.68 seconds)
Progress: [12:36:24]: Integer solution of 8.315582e+12 found by rounding after 148 iterations and 2 nodes (0.69 seconds)
Progress: [12:36:24]: Integer solution of 8.315582e+12 found by DiveCoefficient after 148 iterations and 2 nodes (0.69 seconds)
Progress: [12:36:24]: Search completed - best objective 8315581980910, took 214 iterations and 4 nodes (0.69 seconds)
Progress: [12:36:24]: Strong branching done 98 times (777 iterations), fathomed 1 nodes and fixed 20 variables
Progress: [12:36:24]: Maximum depth 1, 89 variables fixed on reduced cost
Progress: [12:36:24]: Cuts at root node changed objective from 8.31571e+12 to 8.31558e+12
Progress: [12:36:24]: Probing was tried 102 times and created 1457 cuts (0.347075 seconds)
Progress: [12:36:24]: Gomory was tried 102 times and created 15 cuts (0.009246 seconds)
Progress: [12:36:24]: Reduce-and-split was tried 100 times and created 0 cuts (0.013587 seconds)
Progress: [12:36:24]: Gomory(2) was tried 102 times and created 20 cuts (0.012007 seconds)
Progress: [12:36:24]: TwoMirCuts was tried 100 times and created 0 cuts (0.005909 seconds)
Progress: [12:36:24]: Result - Optimal solution found
Progress: [12:36:24]: Objective value:                8.31558198091e+12
    Enumerated nodes:               4
    Total iterations:               214
    Time (CPU seconds):             0.695438
    Time (Wallclock seconds):       0.713187
Note: Value of objective function: 8315581980910.
Note: Solving succeeded.

@christoph-cullmann christoph-cullmann changed the title ### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0 and wrong result Error in CglRedSplit::generateCuts(): rstat[557]: 0 and wrong result Jun 18, 2024
@jjhforrest
Copy link
Contributor

It looks as if the problem is that the solver is passed in to CglRedSplit as const, but the code casts away the const. It looks as if the code returns early because of a problem e.g. rstat[557] and not everything is reset. The next generator gets confused and gives a bad cut. I could modify master, but maybe someone else can come up with a better solution.

So try modifying code as
@ -1163,12 +1163,11
void CglRedSplit::generateCuts(const OsiSolverInterface &si, OsiCuts & cs,
const CglTreeInfo )
{

  • solver = const_cast<OsiSolverInterface *>(&si);
  • solver = si.clone();solver->resolve();
    if(solver == NULL) {
    printf("### WARNING: CglRedSplit::generateCuts(): no solver available.\n");
    return;
    }
    if(!solver->optimalBasisIsAvailable()) {
    printf("### WARNING: CglRedSplit::generateCuts(): no optimal basis available.\n");
    return;
    @@ -1197,7 +1196,7 @@ void CglRedSplit::generateCuts(const OsiSolverInterface &si, OsiCuts & cs,

    solver->enableFactorization();
    generateCuts(cs);

  • solver->disableFactorization();
  • delete solver; // solver->disableFactorization();
    } /* generateCuts */

@christoph-cullmann
Copy link
Author

I tried that, leads for me to even more

ERROR: CglRedSplit::generateCuts(): rstat[557]: 0

but the result was then ok as 8315709965526.

@christoph-cullmann
Copy link
Author

❯ ./clpsolve test/value_8315709965526.lp
This is clpsolve, Release: 24.04i, Build: 15541893, Tag: master, Branch: master
(c) Copyright AbsInt Angewandte Informatik GmbH
Progress: [15:52:53]: Reading lp file 'test/value_8315709965526.lp'...
Progress: [15:52:53]: Finished reading lp file.
Progress: [15:52:53]: 0 fixed, 171 tightened bounds, 13 strengthened rows, 0 substitutions
Progress: [15:52:53]: 0 fixed, 74 tightened bounds, 1 strengthened rows, 0 substitutions
Progress: [15:52:53]: 0 fixed, 10 tightened bounds, 0 strengthened rows, 0 substitutions
Progress: [15:52:53]: processed model has 557 rows, 418 columns (418 integer (133 of which binary)) and 1859 elements
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
### ERROR: CglRedSplit::generateCuts(): rstat[557]: 0
Progress: [15:52:54]: Integer solution of 8.31571e+12 found by DiveLineSearch after 2 iterations and 0 nodes (0.59 seconds)
Progress: [15:52:54]: 1 added rows had average density of 3
Progress: [15:52:54]: At root node, 1 cuts changed objective from 8.31571e+12 to 8.31571e+12 in 100 passes
Progress: [15:52:54]: Cut generator 0 (Probing) - 1902 row cuts average 4.0 elements, 0 column cuts (0 active)  in 0.385 seconds - new frequency is 1
Progress: [15:52:54]: Cut generator 1 (Gomory) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.009 seconds - new frequency is 1000
Progress: [15:52:54]: Cut generator 2 (Reduce-and-split) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.038 seconds - new frequency is 1000
Progress: [15:52:54]: Cut generator 3 (Gomory(2)) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.001 seconds - new frequency is 1000
Progress: [15:52:54]: Cut generator 4 (TwoMirCuts) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.007 seconds - new frequency is 1000
Progress: [15:52:54]: Integer solution of 8.31571e+12 found by strong branching after 2 iterations and 0 nodes (0.59 seconds)
Progress: [15:52:54]: Search completed - best objective 8315709965526, took 2 iterations and 0 nodes (0.59 seconds)
Progress: [15:52:54]: Strong branching done 2 times (1 iterations), fathomed 1 nodes and fixed 0 variables
Progress: [15:52:54]: Maximum depth 0, 0 variables fixed on reduced cost
Progress: [15:52:54]: Cuts at root node changed objective from 8.31571e+12 to 8.31571e+12
Progress: [15:52:54]: Probing was tried 100 times and created 1902 cuts (0.385097 seconds)
Progress: [15:52:54]: Gomory was tried 100 times and created 0 cuts (0.008648 seconds)
Progress: [15:52:54]: Reduce-and-split was tried 100 times and created 0 cuts (0.038469 seconds)
Progress: [15:52:54]: Gomory(2) was tried 100 times and created 0 cuts (0.000761 seconds)
Progress: [15:52:54]: TwoMirCuts was tried 100 times and created 0 cuts (0.006509 seconds)
Progress: [15:52:54]: Result - Optimal solution found
Progress: [15:52:54]: Objective value:                8.31570996553e+12
    Enumerated nodes:               0
    Total iterations:               2
    Time (CPU seconds):             0.598424
    Time (Wallclock seconds):       0.59943
Note: Value of objective function: 8315709965526.
Note: Solving succeeded.


@jjhforrest
Copy link
Contributor

Probably a mistake to say error (ifndef NDEBUG). It seems to mean that the code thinks that it is a free row and it does not know what to do - so returns leaving model in a mess. It is not a free row ? it is a cut with a lower rhs of -2.0e15 and upper of infinity! I found out that that cut was being generated in CglProbing so will stop that happening in master.

@christoph-cullmann
Copy link
Author

I tried it with the latest master today, there it looks already better, thanks a lot:

❯ ./clpsolve test/value_8315709965526.lp
This is clpsolve, Release: 24.04i, Build: 15542307, Tag: master, Branch: master
(c) Copyright AbsInt Angewandte Informatik GmbH
Progress: [09:40:32]: Reading lp file 'test/value_8315709965526.lp'...
Progress: [09:40:32]: Finished reading lp file.
Progress: [09:40:32]: 0 fixed, 171 tightened bounds, 13 strengthened rows, 0 substitutions
Progress: [09:40:32]: 0 fixed, 74 tightened bounds, 1 strengthened rows, 0 substitutions
Progress: [09:40:32]: 0 fixed, 10 tightened bounds, 0 strengthened rows, 0 substitutions
Progress: [09:40:32]: processed model has 557 rows, 418 columns (418 integer (133 of which binary)) and 1859 elements
Progress: [09:40:32]: Integer solution of 8.31571e+12 found by DiveLineSearch after 0 iterations and 0 nodes (0.76 seconds)
Progress: [09:40:32]: At root node, 0 cuts changed objective from 8.31571e+12 to 8.31571e+12 in 100 passes
Progress: [09:40:32]: Cut generator 0 (Probing) - 1000 row cuts average 2.7 elements, 0 column cuts (0 active)  in 0.461 seconds - new frequency is 1
Progress: [09:40:32]: Cut generator 1 (Gomory) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.011 seconds - new frequency is 1000
Progress: [09:40:32]: Cut generator 2 (Reduce-and-split) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.016 seconds - new frequency is 1000
Progress: [09:40:32]: Cut generator 3 (Gomory(2)) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.001 seconds - new frequency is 1000
Progress: [09:40:32]: Cut generator 4 (TwoMirCuts) - 0 row cuts average 0.0 elements, 0 column cuts (0 active)  in 0.008 seconds - new frequency is 1000
Progress: [09:40:32]: After 0 nodes, 1 on tree, 8.31571e+12 best solution, best possible 8.31571e+12 (0.78 seconds)
Progress: [09:40:32]: Integer solution of 8.31571e+12 found by rounding after 0 iterations and 1 nodes (0.78 seconds)
Progress: [09:40:32]: Integer solution of 8.31571e+12 found by strong branching after 0 iterations and 1 nodes (0.79 seconds)
Progress: [09:40:32]: Search completed - best objective 8315709965526, took 0 iterations and 1 nodes (0.79 seconds)
Progress: [09:40:32]: Strong branching done 4 times (2 iterations), fathomed 1 nodes and fixed 0 variables
Progress: [09:40:32]: Maximum depth 0, 85 variables fixed on reduced cost
Progress: [09:40:32]: Cuts at root node changed objective from 8.31571e+12 to 8.31571e+12
Progress: [09:40:32]: Probing was tried 101 times and created 1001 cuts (0.460845 seconds)
Progress: [09:40:32]: Gomory was tried 100 times and created 0 cuts (0.010921 seconds)
Progress: [09:40:32]: Reduce-and-split was tried 100 times and created 0 cuts (0.015749 seconds)
Progress: [09:40:32]: Gomory(2) was tried 100 times and created 0 cuts (0.000537 seconds)
Progress: [09:40:32]: TwoMirCuts was tried 100 times and created 0 cuts (0.007697 seconds)
Progress: [09:40:32]: Result - Optimal solution found
Progress: [09:40:32]: Objective value:                8.31570996553e+12
    Enumerated nodes:               1
    Total iterations:               0
    Time (CPU seconds):             0.792259
    Time (Wallclock seconds):       0.79778
Note: Value of objective function: 8315709965526.
Note: Solving succeeded.

Unfortunately another of my solver regression tests then runs into an error with that revision.

value_231271646004486.lp.txt

❯ ./clpsolve test/value_231271646004486.lp
This is clpsolve, Release: 24.04i, Build: 15542307, Tag: master, Branch: master
(c) Copyright AbsInt Angewandte Informatik GmbH
Progress: [09:41:46]: Reading lp file 'test/value_231271646004486.lp'...
Progress: [09:41:46]: Finished reading lp file.
Progress: [09:41:46]: 0 fixed, 98 tightened bounds, 12 strengthened rows, 0 substitutions
Progress: [09:41:46]: 0 fixed, 24 tightened bounds, 0 strengthened rows, 0 substitutions
Progress: [09:41:46]: processed model has 583 rows, 410 columns (410 integer (126 of which binary)) and 1918 elements
clpsolve: /local/ssd/cullmann/build/lpsolve.clpsolve/libcbc/src/Clp/src/ClpNonLinearCost.cpp:1087: void ClpNonLinearCost::checkInfeasibilities(double): Assertion `lowerValue <= upperValue' failed.
Assert: Caught fatal signal 6 (Aborted).
    Please report this problem to our support.
    Program: clpsolve, Release: 24.04i, Build: 15542307, Tag: master
    
    Backtrace (please include this in your support request):
     0# Ur::MessageHandler::print(Ur::Message&) in ./clpsolve
     1# Ur::Application::catchSignal(int) in ./clpsolve
     2# 0x0000737B370EFAE0 in /usr/lib/libc.so.6
     3# 0x0000737B37147E44 in /usr/lib/libc.so.6
     4# gsignal in /usr/lib/libc.so.6
     5# abort in /usr/lib/libc.so.6
     6# 0x0000737B370D73DF in /usr/lib/libc.so.6
     7# 0x0000737B370E7C67 in /usr/lib/libc.so.6
     8# ClpNonLinearCost::checkInfeasibilities(double) in ./clpsolve
     9# ClpSimplex::gutsOfSolution(double*, double const*, bool) in ./clpsolve
    10# ClpSimplexPrimal::statusOfProblemInPrimal(int&, int, ClpSimplexProgress*, bool, int, ClpSimplex*) in ./clpsolve
    11# ClpSimplexPrimal::primal(int, int) in ./clpsolve
    12# ClpSimplex::dual(int, int) in ./clpsolve
    13# OsiClpSolverInterface::crunch() in ./clpsolve
    14# OsiClpSolverInterface::resolve() in ./clpsolve
    15# CbcHeuristicDive::solution(double&, int&, int&, OsiRowCut**, CbcSubProblem**&, double*) in ./clpsolve
    16# CbcHeuristicDive::solution(double&, double*) in ./clpsolve
    17# CbcModel::solveWithCuts(OsiCuts&, int, CbcNode*) in ./clpsolve
    18# CbcModel::branchAndBound(int) in ./clpsolve
    19# CbcMain1(std::__1::deque<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>>, CbcModel&, CbcParameters&, int (*)(CbcModel*, int), ampl_info*) in ./clpsolve
    20# CbcMain1(int, char const**, CbcModel&, CbcParameters&, int (*)(CbcModel*, int), ampl_info*) in ./clpsolve
    21# solveLP(char const*) in ./clpsolve
    22# main in ./clpsolve
    23# 0x0000737B370D8C88 in /usr/lib/libc.so.6
    24# __libc_start_main in /usr/lib/libc.so.6
    25# _start in ./clpsolve
zsh: IOT instruction (core dumped)  ./clpsolve test/value_231271646004486.lp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants