[Cgl] Limit for GomoryCuts

Thomas Schoenemann thomas_schoenemann at yahoo.de
Thu Dec 20 14:55:11 EST 2012


Hi all,

my application of Cbc (where I added a GomoryCut generator) was producing abnormally large cuts at the root node, although I had set a limit. So I looked into the code and found this passage (line 679 of GomoryCut.cpp):


    limit = limitAtRoot_;
    if (!info.pass) {
      tolerance1=1.0;
      tolerance2=1.0e-2;
      tolerance3=1.0e-6;
      tolerance6=1.0e-7;
      tolerance9=1.0e-5;
      if (!limit||limit>=500)        <----!!!!!!!!!!!!!
    limit=numberColumns;
    } else {


It appears that Cbc does not set info.pass (whatever that signifies) and in this case a limit of 500 or larger is simply ignored. 

I was wondering if there is a plausible reason for this. At the very least I think this behavior should be documented in the text on setLimitAtRoot(). Personally, I'd prefer if the part "||limit >= 500" was removed, it does not make sense to me.

I have a recent version of Cbc, checked out via svn (maybe there is already a repository for 2.8?):

URL: https://projects.coin-or.org/svn/Cbc/stable/2.7
Basis des Projektarchivs: https://projects.coin-or.org/svn/Cbc
UUID des Projektarchivs: 6f23a84d-0c12-0410-9f0c-b73a89ba9ce0
Revision: 1833
Knotentyp: Verzeichnis
Plan: normal
Letzter Autor: stefan
Letzte geänderte Rev: 1833
Letztes Änderungsdatum: 2012-12-04 11:21:49 +0100 (Di, 04. Dez 2012)


If you need my help, let me know.

Best regards,
  Thomas Schoenemann
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cgl/attachments/20121220/e023e59a/attachment.html>


More information about the Cgl mailing list