Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • stable/2.8/Cbc/src/CbcFollowOn.hpp

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