[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