[Cbc-tickets] [COIN-OR Branch-and-Cut MIP Solver] #41: Incorrect
Real Option
calls causes COIN CLP to mark some problems as infeasible
COIN-OR Branch-and-Cut MIP Solver
coin-trac at coin-or.org
Wed Nov 21 18:44:49 EST 2007
#41: Incorrect Real Option calls causes COIN CLP to mark some problems as
infeasible
------------------------+---------------------------------------------------
Reporter: ltaylor | Owner: somebody
Type: defect | Status: new
Priority: major | Milestone:
Component: component1 | Version:
Keywords: |
------------------------+---------------------------------------------------
In coinmp.cpp
In function heading
{{{
SOLVAPI int CoinOptimizeProblem(HPROB hProb, int Method)
}}}
... there are several calls to CoinGetIntOption for parameters
that are actually Real values. The CoinGetIntOption always returns
zero for options that are REAL. So those code lines actually
will set, e.g., DualObjectiveLimit to zero.
DualObjectiveLimit should be set high, and the default is 1e+308.
When it is zero, CLP will mark some feasible problems as infeasible.
This has been bothering me, as I have been using CoinMP.dll for
optimizations,
and it can sometimes get the right answer, but return the
'PrimalInfeasible'
message and status.
I would check this change in myself, but I don't have those privileges
(yet).
LAT
{{{
pCoin->clp->setPrimalObjectiveLimit(CoinGetRealOption(hProb,
COIN_REAL_PRIMALOBJLIM));
pCoin->clp->setDualObjectiveLimit(CoinGetRealOption(hProb,
COIN_REAL_DUALOBJLIM));
pCoin->clp->setPrimalTolerance(CoinGetRealOption(hProb,
COIN_REAL_PRIMALOBJTOL));
pCoin->clp->setDualTolerance(CoinGetRealOption(hProb,
COIN_REAL_DUALOBJTOL));
... skip ...
pCoin->clp->crash(CoinGetRealOption(hProb,
COIN_REAL_CRASHGAP),
}}}
--
Ticket URL: <https://projects.coin-or.org/Cbc/ticket/41>
COIN-OR Branch-and-Cut MIP Solver <http://projects.coin-or.org/Cbc>
An LP-based branch-and-cut MIP solver.
More information about the Cbc-tickets
mailing list