[Coin-discuss] OsiClpSolverInterface::modifyCoefficient problems

John J Forrest jjforre at us.ibm.com
Fri Mar 24 06:03:31 EST 2006


James,

Seems like you have hit two separate bugs.  I would guess the second one 
is a bug in OsiPresolve.  It looks as if ClpPresolve gets rid of zero 
elements before doing main part of presolve.  What happens if you don't do 
OsiPresolve but just call OsiClpSolverInterface::initialSolve() - it 
should do a ClpPresolve and so should be OK?  I will see if you have given 
enough information for me to track down first bug.  I will try to have 
that fixed by Monday.  If I have the time and energy I may move a function 
- allElementsInRange from ClpPackedMatrix to CoinPackedMatrix and then it 
will be easy to modify OsiPresolve.


John Forrest



"James Gibbons" <James.Gibbons at nottingham.ac.uk> 
Sent by: coin-discuss-bounces at list.coin-or.org
03/23/2006 01:10 PM
Please respond to
Discussions about open source software for Operations Research 
<coin-discuss at list.coin-or.org>


To
<coin-discuss at list.coin-or.org>
cc

Subject
[Coin-discuss] OsiClpSolverInterface::modifyCoefficient problems






Hi,

I'm having some problems with modifying matrix coefficients through the 
OsiClpSolverInterface, i.e. the modifyCoefficient member function. I'm 
reading in a LP file generated by Dash mosel, modifying the matrix and 
then resolving. Or at least that is my intention. There are two related 
problems

1. If I set keepZero to false, no coefficients are modifyemodified matrix. 
I'm writing a mixture of zeros and doubles. I've confirmed this by writing 
the matrix as an LP file after the attempted modification (it is the same 
as before) and by inserting some logging code in CoinPackedMatrix.cpp (no 
logging occurs). I've also tried getModelPtr()->modifyCoefficients with 
the same results. I'm also modifying some row and column bounds, this 
works fine.

2. If I set keepZero to true the matrix is modified (checked using the 
methods above) but now when presolving (using OsiPresolve) the matrix I 
get:

Assertion failed: nowUpper < large2, file CoinPresolveImpliedFree.cpp, 
line 306

However, I can load the modified matrix back into mosel and solve to the 
expected answers (with presolve) .

I guess I'm doing something wrong somewhere and would appreciate some 
pointers. My code is pretty complex and the problem large so it might be 
difficult to come up with a simple test case. However, I prepared to try 
if it would help,

Thanks,
James

-- 
Dr James Gibbons
Research Fellow
Division of Agricultural & Environmental Sciences
School of Biosciences
University of Nottingham
Sutton Bonington Campus
Loughborough
LE12 5RD

direct line: 0115 9516081
fax:           0115 9516060
e-mail:       james.gibbons at nottingham.ac.uk

This message has been checked for viruses but the contents of an 
attachment
may still contain software viruses, which could damage your computer 
system:
you are advised to perform your own checks. Email communications with the
University of Nottingham may be monitored as permitted by UK legislation.


_______________________________________________
Coin-discuss mailing list
Coin-discuss at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/coin-discuss

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/coin-discuss/attachments/20060324/f1c59342/attachment.html>


More information about the Coin-discuss mailing list