# CbcSimpleIntegerPseudoCost.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/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