Cbc trunk
|
00001 /* 00002 Copyright (C) 2007, Lou Hafer, International Business Machines Corporation 00003 and others. All Rights Reserved. 00004 00005 This code is licensed under the terms of the Eclipse Public License (EPL). 00006 00007 $Id$ 00008 */ 00009 /* 00010 This file is part of cbc-generic. 00011 */ 00012 00013 #ifndef CbcCbcParam_H 00014 #define CbcCbcParam_H 00015 00016 /* \file CbcGenCbcParam.hpp 00017 \brief Declarations for parameters that act on a CbcModel object. 00018 */ 00019 00020 /* 00021 $Id: CbcGenCbcParam.hpp 1173 2009-06-04 09:44:10Z forrest $ 00022 */ 00023 00031 class CbcCbcParam : public CoinParam { 00032 00033 public: 00034 00037 00045 typedef enum { CBCCBC_FIRSTPARAM = CbcGenParam::CBCGEN_LASTPARAM + 1, 00046 00047 ALLOWABLEGAP, COSTSTRATEGY, 00048 CUTDEPTH, CUTOFF, CUTPASS, DIRECTION, 00049 GAPRATIO, 00050 INCREMENT, INFEASIBILITYWEIGHT, INTEGERTOLERANCE, 00051 LOGLEVEL, MAXIMIZE, MAXNODES, MINIMIZE, 00052 MIPOPTIONS, MOREMIPOPTIONS, NUMBERANALYZE, 00053 NUMBERBEFORE, NUMBERMINI, 00054 STRONGBRANCHING, TIMELIMIT_BAB, 00055 00056 CBCCBC_LASTPARAM 00057 00058 } CbcCbcParamCode ; 00059 00061 00070 CbcCbcParam() ; 00071 00078 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help, 00079 double lower, double upper, double dflt = 0.0, 00080 bool display = true) ; 00081 00086 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help, 00087 int lower, int upper, int dflt = 0, 00088 bool display = true) ; 00089 00099 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help, 00100 std::string firstValue, int dflt, bool display = true) ; 00101 00108 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help, 00109 std::string dflt, bool display = true) ; 00110 00113 CbcCbcParam(CbcCbcParamCode code, std::string name, std::string help, 00114 bool display = true) ; 00115 00118 CbcCbcParam(const CbcCbcParam &orig) ; 00119 00122 CbcCbcParam *clone() ; 00123 00126 CbcCbcParam &operator=(const CbcCbcParam &rhs) ; 00127 00130 ~CbcCbcParam() ; 00131 00133 00136 00139 inline CbcCbcParamCode paramCode() const { 00140 return (paramCode_) ; 00141 } 00142 00145 inline void setParamCode(CbcCbcParamCode code) { 00146 paramCode_ = code ; 00147 } 00148 00151 inline CbcModel *obj() const { 00152 return (obj_) ; 00153 } 00154 00157 inline void setObj(CbcModel *obj) { 00158 obj_ = obj ; 00159 } 00160 00162 00163 private: 00164 00167 00169 CbcCbcParamCode paramCode_ ; 00170 00172 CbcModel *obj_ ; 00173 00175 00176 } ; 00177 00178 00179 /* 00180 Declare the utility functions. 00181 */ 00182 00183 namespace CbcCbcParamUtils { 00184 void addCbcCbcParams(int &numParams, CoinParamVec ¶mVec, 00185 CbcModel *model) ; 00186 void loadCbcParamObj(const CoinParamVec paramVec, int first, int last, 00187 CbcModel *model) ; 00188 void setCbcModelDefaults (CbcModel *model) ; 00189 00190 int pushCbcCbcDbl(CoinParam *param) ; 00191 int pushCbcCbcInt(CoinParam *param) ; 00192 } 00193 00194 #endif 00195