00001
00002
00003
00004
00005
00006
00007
00008 #ifndef CbcSimpleIntegerPseudoCost_H
00009 #define CbcSimpleIntegerPseudoCost_H
00010
00011 #include "CbcSimpleInteger.hpp"
00013
00014 class CbcSimpleIntegerPseudoCost : public CbcSimpleInteger {
00015
00016 public:
00017
00018
00019 CbcSimpleIntegerPseudoCost ();
00020
00021
00022 CbcSimpleIntegerPseudoCost (CbcModel * model, int iColumn, double breakEven = 0.5);
00023
00024
00025 CbcSimpleIntegerPseudoCost (CbcModel * model, int iColumn,
00026 double downPseudoCost, double upPseudoCost);
00027
00028 CbcSimpleIntegerPseudoCost (CbcModel * model, int dummy, int iColumn,
00029 double downPseudoCost, double upPseudoCost);
00030
00031
00032 CbcSimpleIntegerPseudoCost ( const CbcSimpleIntegerPseudoCost &);
00033
00035 virtual CbcObject * clone() const;
00036
00037
00038 CbcSimpleIntegerPseudoCost & operator=( const CbcSimpleIntegerPseudoCost& rhs);
00039
00040
00041 virtual ~CbcSimpleIntegerPseudoCost ();
00042
00044 virtual double infeasibility(const OsiBranchingInformation * info,
00045 int &preferredWay) const;
00046
00048 virtual CbcBranchingObject * createCbcBranch(OsiSolverInterface * solver, const OsiBranchingInformation * info, int way) ;
00049
00051 inline double downPseudoCost() const {
00052 return downPseudoCost_;
00053 }
00055 inline void setDownPseudoCost(double value) {
00056 downPseudoCost_ = value;
00057 }
00058
00060 inline double upPseudoCost() const {
00061 return upPseudoCost_;
00062 }
00064 inline void setUpPseudoCost(double value) {
00065 upPseudoCost_ = value;
00066 }
00067
00069 inline double upDownSeparator() const {
00070 return upDownSeparator_;
00071 }
00073 inline void setUpDownSeparator(double value) {
00074 upDownSeparator_ = value;
00075 }
00076
00078 virtual double upEstimate() const;
00080 virtual double downEstimate() const;
00081
00083 inline int method() const {
00084 return method_;
00085 }
00087 inline void setMethod(int value) {
00088 method_ = value;
00089 }
00090
00091 protected:
00093
00095 double downPseudoCost_;
00097 double upPseudoCost_;
00102 double upDownSeparator_;
00109 int method_;
00110 };
00111
00112
00113 #endif
00114