00001 /*===========================================================================* 00002 * This file is part of the BiCePS Linear Integer Solver (BLIS). * 00003 * * 00004 * ALPS is distributed under the Eclipse Public License as part of the * 00005 * COIN-OR repository (http://www.coin-or.org). * 00006 * * 00007 * Authors: * 00008 * * 00009 * Yan Xu, Lehigh University * 00010 * Ted Ralphs, Lehigh University * 00011 * * 00012 * Conceptual Design: * 00013 * * 00014 * Yan Xu, Lehigh University * 00015 * Ted Ralphs, Lehigh University * 00016 * Laszlo Ladanyi, IBM T.J. Watson Research Center * 00017 * Matthew Saltzman, Clemson University * 00018 * * 00019 * * 00020 * Copyright (C) 2001-2011, Lehigh University, Yan Xu, and Ted Ralphs. * 00021 * All Rights Reserved. * 00022 *===========================================================================*/ 00023 00024 00025 //############################################################################# 00026 // NOTE: Borrow ideas from COIN/Cbc 00027 //############################################################################# 00028 00029 00030 #ifndef BlisBranchStrategyRel_h_ 00031 #define BlisBranchStrategyRel_h_ 00032 00033 #include "BcpsBranchObject.h" 00034 #include "BcpsBranchStrategy.h" 00035 #include "BlisModel.h" 00036 00037 00040 class BlisBranchStrategyRel : public BcpsBranchStrategy { 00041 00042 private: 00044 BlisBranchStrategyRel& operator=(const BlisBranchStrategyRel& rhs); 00045 00046 int relibility_; 00047 00048 public: 00049 00051 BlisBranchStrategyRel() { 00052 relibility_ = 1; 00053 type_ = static_cast<int>(BlisBranchingStrategyReliability); 00054 } 00055 00057 BlisBranchStrategyRel(BlisModel *model, int rel) 00058 : BcpsBranchStrategy(model) { 00059 relibility_ = 1; 00060 type_ = static_cast<int>(BlisBranchingStrategyReliability); 00061 } 00062 00064 virtual ~BlisBranchStrategyRel() {} 00065 00067 BlisBranchStrategyRel(const BlisBranchStrategyRel &); 00068 00070 void setRelibility(int rel) { relibility_ = rel; } 00071 00073 virtual BcpsBranchStrategy * clone() const { 00074 return new BlisBranchStrategyRel(*this); 00075 } 00076 00082 virtual int betterBranchObject(BcpsBranchObject * thisOne, 00083 BcpsBranchObject * bestSoFar); 00084 00086 int createCandBranchObjects(int numPassesLeft, double ub); 00087 }; 00088 00089 #endif