[Clp] Crash in ClpDualRowSteepest copy ctor

John J Forrest jjforre at us.ibm.com
Wed Oct 28 11:02:33 EDT 2009


Sebastian,

I think I had fixed those errors in my copy of trunk.  Owing to lack of
bandwidth I had not checked in.  Do new changes help?

John Forrest


                                                                                                   
  From:       "Sebastian Theophil" <stheophil at think-cell.com>                                      
                                                                                                   
  To:         <clp at list.coin-or.org>                                                               
                                                                                                   
  Date:       10/28/2009 07:12 AM                                                                  
                                                                                                   
  Subject:    [Clp] Crash in ClpDualRowSteepest copy ctor                                          
                                                                                                   
  Sent by:    clp-bounces at list.coin-or.org                                                         
                                                                                                   





Hi,


I'm trying to avoid the accumulation of rounding errors by repeatedly
solving the same solver object. I also want to avoid having to
reassemble the same constraint system over and over again. So I make a
copy of a previous solver, change constraints, resolve and throw the
copy away again. This seems to trigger some unexpected test cases:

- OsiClpSolverInterface copy ctor makes a copy of the ClpSimplex*
modelPtr_
- ClpSimplex copy ctor calls ClpSimplex::gutsOfCopy
- which makes a copy of dualRowPivot_ and primalColumnPivot_

Both contain a copy to their parent ClpSimplex* that has previously been
set by ClpDualRowPivot::saveWeights

The ClpDualRowSteepest and ClpDualRowPivot copy ctors simply copy the
ClpSimplex* which may be okay in many circumstances but it is certainly
wrong when called from the ClpSimplex copy ctor.

Is it safe to call

  dualRowPivot_ = rhs.dualRowPivot_->clone(false);
  primalColumnPivot_ = rhs.primalColumnPivot_->clone(false);


in ClpSimplex::gutsOfCopy and thus prevent any data from being copied?

Thanks
Sebastian

--
Sebastian Theophil . stheophil at think-cell.com
Software Engineer

think-cell Software GmbH . Invalidenstr. 34 . 10115 Berlin, Germany
http://www.think-cell.com . phone +49-30-666473-10 . toll-free (US)
+1-800-891-8091
Directors: Dr. Markus Hannebauer, Dr. Arno Schoedl . Amtsgericht
Berlin-Charlottenburg, HRB 85229


_______________________________________________
Clp mailing list
Clp at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/clp

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/clp/attachments/20091028/a6dbbdd6/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/clp/attachments/20091028/a6dbbdd6/attachment.gif>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ecblank.gif
Type: image/gif
Size: 45 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/clp/attachments/20091028/a6dbbdd6/attachment-0001.gif>


More information about the Clp mailing list