Ignore:
Timestamp:
Apr 1, 2013 1:09:22 PM (6 years ago)
Author:
forrest
Message:

make it easier to use slow exotic cuts
more on cutoff as constraint and multiple root solver fixes
general fixing of bugs found on MIQP etc

File:
1 edited

Legend:

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

    r1854 r1880  
    149149};
    150150
     151/** Define an idiotic idea class.
     152    The idea of this is that we take some integer variables away from integer and
     153    sum them with some randomness to get signed sum close to 0.5.  We then can
     154    branch to exclude that gap.
     155
     156    This branching rule should be in addition to normal rules and have a high priority.
     157*/
     158
     159class CbcIdiotBranch : public CbcObject {
     160
     161public:
     162
     163    // Default Constructor
     164    CbcIdiotBranch ();
     165
     166    /** Useful constructor
     167    */
     168    CbcIdiotBranch (CbcModel * model);
     169
     170    // Copy constructor
     171    CbcIdiotBranch ( const CbcIdiotBranch &);
     172
     173    /// Clone
     174    virtual CbcObject * clone() const;
     175
     176    // Assignment operator
     177    CbcIdiotBranch & operator=( const CbcIdiotBranch& rhs);
     178
     179    // Destructor
     180    ~CbcIdiotBranch ();
     181
     182    /// Infeasibility - large is 0.5
     183    virtual double infeasibility(const OsiBranchingInformation * info,
     184                                 int &preferredWay) const;
     185
     186    using CbcObject::feasibleRegion ;
     187    /// This looks at solution and sets bounds to contain solution
     188    virtual void feasibleRegion();
     189
     190    /// Creates a branching object
     191    virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface * solver, const OsiBranchingInformation * info, int way) ;
     192    /// Initialize for branching
     193    virtual void initializeForBranching(CbcModel * );
     194protected:
     195    /// Build "cut"
     196    OsiRowCut buildCut(const OsiBranchingInformation * info,int type,int & preferredWay) const;
     197    /// data
     198    /// Thread specific random number generator
     199    mutable CoinThreadRandom randomNumberGenerator_;
     200    /// Saved version of thread specific random number generator
     201    mutable CoinThreadRandom savedRandomNumberGenerator_;
     202};
     203
    151204#endif
    152205
Note: See TracChangeset for help on using the changeset viewer.