[Coin-discuss] Re: How to deal with tolerance?

Laszlo Ladanyi ladanyi at us.ibm.com
Fri Dec 16 15:48:30 EST 2005


You are right, Miroslaw, it's not handled gracefully.

Right now I'm busy with travel plans, but when I'm back (end of Dec) I'll take
a closer look. Feel free to bug me to get it done...

--Laci

On Fri, 16 Dec 2005, Miroslav Karamanov wrote:

> 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
> _______________________________________________
> Coin-discuss mailing list
> Coin-discuss at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-discuss
> 




More information about the Coin-discuss mailing list