# CbcPartialNodeInfo.hpp

Go to the documentation of this file.

    00001 // $Id$
    00002 // Copyright (C) 2002, International Business Machines
    00003 // Corporation and others.  All Rights Reserved.
    00004 // This code is licensed under the terms of the Eclipse Public License (EPL).
    00005
    00006 // Edwin 11/24/09 carved from CbcNode
    00007
    00008 #ifndef CbcPartialNodeInfo_H
    00009 #define CbcPartialNodeInfo_H
    00010
    00011 #include <string>
    00012 #include <vector>
    00013
    00014 #include "CoinWarmStartBasis.hpp"
    00015 #include "CoinSearchTree.hpp"
    00016 #include "CbcBranchBase.hpp"
    00017 #include "CbcNodeInfo.hpp"
    00018
    00019 class OsiSolverInterface;
    00020 class OsiSolverBranch;
    00021
    00022 class OsiCuts;
    00023 class OsiRowCut;
    00024 class OsiRowCutDebugger;
    00025 class CoinWarmStartBasis;
    00026 class CbcCountRowCut;
    00027 class CbcModel;
    00028 class CbcNode;
    00029 class CbcSubProblem;
    00030 class CbcGeneralBranchingObject;
    00039 class CbcPartialNodeInfo : public CbcNodeInfo {
    00040
    00041 public:
    00042
    00048     virtual void applyToModel (CbcModel *model, CoinWarmStartBasis *&basis,
    00049                                CbcCountRowCut **addCuts,
    00050                                int &currentNumberCuts) const ;
    00051
    00053     virtual int applyBounds(int iColumn, double & lower, double & upper, int force) ;
    00058     virtual CbcNodeInfo * buildRowBasis(CoinWarmStartBasis & basis ) const ;
    00059     // Default Constructor
    00060     CbcPartialNodeInfo ();
    00061
    00062     // Constructor from current state
    00063     CbcPartialNodeInfo (CbcNodeInfo * parent, CbcNode * owner,
    00064                         int numberChangedBounds, const int * variables,
    00065                         const double * boundChanges,
    00066                         const CoinWarmStartDiff *basisDiff) ;
    00067
    00068     // Copy constructor
    00069     CbcPartialNodeInfo ( const CbcPartialNodeInfo &);
    00070
    00071     // Destructor
    00072     ~CbcPartialNodeInfo ();
    00073
    00075     virtual CbcNodeInfo * clone() const;
    00077     inline const CoinWarmStartDiff *basisDiff() const {
    00078         return basisDiff_ ;
    00079     }
    00081     inline const int * variables() const {
    00082         return variables_;
    00083     }
    00084     // New bound
    00085     inline const double * newBounds() const {
    00086         return newBounds_;
    00087     }
    00089     inline int numberChangedBounds() const {
    00090         return numberChangedBounds_;
    00091     }
    00092 protected:
    00093     /* Data values */
    00094
    00096     CoinWarmStartDiff *basisDiff_ ;
    00098     int * variables_;
    00099     // New bound
    00100     double * newBounds_;
    00102     int numberChangedBounds_;
    00103 private:
    00104
    00106     CbcPartialNodeInfo & operator=(const CbcPartialNodeInfo& rhs);
    00107 };
    00108
    00109 #endif //CbcPartialNodeInfo_H
    00110

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines