[Coin-discuss] Re: How to deal with tolerance?
Miroslav Karamanov
miroslav at andrew.cmu.edu
Fri Dec 16 15:39:43 EST 2005
Thank you, John!
This fixes the problem (at least for the instance I tested).
Still, what bothers me is that BCP_lp_user::test_full()
finds violated bounds but it returns just NULL, as it would
do in case of integer infesible solution. As a result, BCP
tries to branch and aborts (if no branching variables are
found). Probably this test of bounds is not necessary.
Otherwise, its outcome should be handled separately.
Best,
Miroslav
> Date: Fri, 16 Dec 2005 10:17:58 -0500
> From: John J Forrest <jjforre at us.ibm.com>
> Subject: Re: [Coin-discuss] How to deal with tolerance?
> To: Discussions about open source software for Operations Research
> <coin-discuss at list.coin-or.org>
> Message-ID:
> <OFCD701799.07B0113C-ON852570D9.0053B03D-852570D9.00540B5C at us.ibm.com>
> Content-Type: text/plain; charset="us-ascii"
>
> Miroslav,
>
> That seems a large discrepancy so I would guess the problem is badly
> scaled. Clp can return an answer which is optimal when scaled but not
> when unscaled. This can be tested in Clp but you can modify the default
> action of OsiClpSolverInterface::resolve by using
> OsiClpSolverInterface::setCleanupScaling(n) (suggested value of n = 1).
>
> See if that helps
>
> John Forrest
>
>
>
> Miroslav Karamanov <miroslav at andrew.cmu.edu>
> Sent by: coin-discuss-bounces at list.coin-or.org
> 12/15/2005 06:38 PM
> Please respond to
> Discussions about open source software for Operations Research
>
>
> To
> coin-discuss at list.coin-or.org
> cc
>
> Subject
> [Coin-discuss] How to deal with tolerance?
>
>
>
> I am using BCP + CLP and I came accross the following
> problem: the solution returned by CLP was found out of
> bounds by BCP (in particular, BCP_lp_user::test_full())
>
> Obviously, both solvers use different precision. test_full
> uses BCP_IntegerTolerance (set to 1e-5 by me). Please advise
> what the best way to deal with this issue is.
>
> I had to increase BCP_IntegerTolerance to 1e-3 in order to
> avoid this problem but this is not a good solution.
> Shouldn't the tolerance for integrality be different from
> the tolerance for bounds?
> Or should they be relative to the magnitude of numbers?
> The problem occurs with large integers (like 4000.0011 with
> u.b. 4000)
> Thank you.
>
> Miroslav
More information about the Coin-discuss
mailing list