[Coin-discuss] Cbc crashes when solving this mps file
Esben Mose Hansen
esben at ange.dk
Sat Mar 3 05:23:18 EST 2007
On Thursday March 1 2007 23:20, John J Forrest wrote:
> Esben,
>
> Code was trying to recreate original row indices for processed problem -
> but CglPreProcess had added rows rather than just reducing - don't really
> know why error hadn't happened before. Row indices were never used - it
> was just a by-product of getting original column indices - which were
> correct.
>
> So I have just moved some code around so just column indices computed.
> Should be OK now.
Thank you. Now cbc can solve the problem, but my "custom" solver (which is
mostly a copy of cbc) attempts to save the original column and row names
after preprocessing. However, now when calling
process.originalRows()
CglPreprocess crashes in createOriginalIndices() in this line
originalRow_[i]=originalRows[originalRow_[i]];
This happens on the last pass for me (iPass has decreased all the way to 0).
No wonder, since originalRow_[i] is huge and negative. It seems to be the size
of the array since the precedent indices (like originalRow_[i-1]) seems
reasonble, but the following are off.
I'll continue to see if I can spot what goes wrong. However, much of these
problems could be mitigated and the code made much simpler if you used the
std::vector<double> instead of raw pointers. I'd urge you to consider using
the STL some more :)
Again, thanks for your invaluable help :)
--
regards, Esben
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
More information about the Coin-discuss
mailing list