coin-or / Clp

COIN-OR Linear Programming Solver
Other
396 stars 82 forks source link

Barrier method produces spurious messages as side effects #184

Closed ralacroix closed 3 years ago

ralacroix commented 3 years ago

When using CLP Barrier method via OSI, there's no way to suppress all the messages, so CLP messages appear in the application's output. Despite using OsiClpSolverInterface->setLogLevel(0) each call to the solver produces messages like

0 primal infeasibilities summing to 0 29595 dual infeasibilities summing to 6.25167e+09

The messages do not appear when using the Simplex method.

This is in CLP 1.17.3

jjhforrest commented 3 years ago

No idea how you managed to get those messages.

They seem to be in OsiClpSolverInterface::crossover which is not called from anywhere and was probably experimental.

Have fixed in master.

On 06/04/2021 22:08, ralacroix wrote:

When using CLP Barrier method via OSI, there's no way to suppress all the messages, so CLP messages appear in the application's output. Despite using OsiClpSolverInterface->setLogLevel(0) each call to the solver produces messages like

0 primal infeasibilities summing to 0 29595 dual infeasibilities summing to 6.25167e+09

The messages do not appear when using the Simplex method.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/coin-or/Clp/issues/184, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABWJYHBHE6OK5G5P3VYAUJTTHNZ45ANCNFSM42PP265A.

ralacroix commented 3 years ago

I see what happened. It's our code which called crossover(), and it was on the wrong side of "#ifdef experimental" in a section using the Barrier method. That explains everything. I've stopped it from calling crossover(), and that cleans up the messages on our end. It won't impact our results because we haven't been using Barrier method (until now). But maybe we will now that the problem with spurious messages has been solved.