CbcSimpleIntegerPseudoCost.hpp

Go to the documentation of this file.
00001 // $Id: CbcSimpleIntegerPseudoCost.hpp 1902 2013-04-10 16:58:16Z stefan $
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/10/2009-- carved out of CbcBranchActual
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     // Default Constructor
00019     CbcSimpleIntegerPseudoCost ();
00020 
00021     // Useful constructor - passed model index
00022     CbcSimpleIntegerPseudoCost (CbcModel * model, int iColumn, double breakEven = 0.5);
00023 
00024     // Useful constructor - passed and model index and pseudo costs
00025     CbcSimpleIntegerPseudoCost (CbcModel * model, int iColumn,
00026                                 double downPseudoCost, double upPseudoCost);
00027     // Useful constructor - passed and model index and pseudo costs
00028     CbcSimpleIntegerPseudoCost (CbcModel * model, int dummy, int iColumn,
00029                                 double downPseudoCost, double upPseudoCost);
00030 
00031     // Copy constructor
00032     CbcSimpleIntegerPseudoCost ( const CbcSimpleIntegerPseudoCost &);
00033 
00035     virtual CbcObject * clone() const;
00036 
00037     // Assignment operator
00038     CbcSimpleIntegerPseudoCost & operator=( const CbcSimpleIntegerPseudoCost& rhs);
00039 
00040     // Destructor
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 
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 28 Jan 2014 for Cbc by  doxygen 1.6.1