Ignore:
Timestamp:
Jan 16, 2013 1:41:25 PM (6 years ago)
Author:
forrest
Message:

multiple root solvers, stronger strong branching and cutoff as constraint

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cbc/src/CbcCountRowCut.hpp

    r1573 r1839  
    110110    int numberPointingToThis_;
    111111
    112     /// Which generator created this cut
     112    /** Which generator created this cut
     113        (add 10000 if globally valid)
     114        if -1 then from global cut pool
     115        -2 cut branch
     116        -3 unknown
     117    */
    113118    int whichCutGenerator_;
    114119
    115120};
     121/**
     122   Really for Conflict cuts to -
     123   a) stop duplicates
     124   b) allow half baked cuts
     125   The whichRow_ field in OsiRowCut2 is used for a type
     126   0 - normal
     127   1 - processed cut
     128   2 - unprocessed cut i.e. dual ray computation
     129*/
     130// for hashing
     131typedef struct {
     132  int index, next;
     133} CoinHashLink;
     134class CbcRowCuts {
     135public:
    116136
     137  CbcRowCuts(int initialMaxSize=0, int hashMultiplier=4 );
     138  ~CbcRowCuts();
     139  CbcRowCuts(const CbcRowCuts& rhs);
     140  CbcRowCuts& operator=(const CbcRowCuts& rhs);
     141  inline OsiRowCut2 * cut(int sequence) const
     142  { return rowCut_[sequence];}
     143  inline int numberCuts() const
     144  { return numberCuts_;}
     145  inline int sizeRowCuts() const
     146  { return numberCuts_;}
     147  inline OsiRowCut * rowCutPtr(int sequence)
     148  { return rowCut_[sequence];}
     149  void eraseRowCut(int sequence);
     150  // Return 0 if added, 1 if not, -1 if not added because of space
     151  int addCutIfNotDuplicate(const OsiRowCut & cut,int whichType=0);
     152  // Return 0 if added, 1 if not, -1 if not added because of space
     153  int addCutIfNotDuplicateWhenGreedy(const OsiRowCut & cut,int whichType=0);
     154  // Add in cuts as normal cuts (and delete)
     155  void addCuts(OsiCuts & cs);
     156private:
     157  OsiRowCut2 ** rowCut_;
     158  /// Hash table
     159  CoinHashLink *hash_;
     160  int size_;
     161  int hashMultiplier_;
     162  int numberCuts_;
     163  int lastHash_;
     164};
    117165#endif
    118166
Note: See TracChangeset for help on using the changeset viewer.