00001 /*===========================================================================* 00002 * This file is part of the Bcps Linear Solver (BLIS). * 00003 * * 00004 * ALPS is distributed under the Common 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-2005, International Business Machines * 00021 * Corporation, Lehigh University, Yan Xu, Ted Ralphs, Matthew Salzman and * 00022 * others. All Rights Reserved. * 00023 *===========================================================================*/ 00024 00025 00026 //############################################################################# 00027 // NOTE: Borrow ideas from COIN/Cbc 00028 //############################################################################# 00029 00030 00031 #ifndef BlisBranchStrategyPseudo_h_ 00032 #define BlisBranchStrategyPseudo_h_ 00033 00034 #include "BcpsBranchObject.h" 00035 #include "BcpsBranchStrategy.h" 00036 #include "BlisModel.h" 00037 00038 00042 class BlisBranchStrategyPseudo : public BcpsBranchStrategy { 00043 00044 private: 00046 BlisBranchStrategyPseudo& operator=(const BlisBranchStrategyPseudo& rhs); 00047 00048 int relibility_; 00049 00050 public: 00051 00053 BlisBranchStrategyPseudo() : relibility_(1) {} 00054 00056 BlisBranchStrategyPseudo(BlisModel *model, int rel) 00057 : 00058 BcpsBranchStrategy(model), 00059 relibility_(rel) 00060 {} 00061 00063 virtual ~BlisBranchStrategyPseudo() {} 00064 00066 BlisBranchStrategyPseudo(const BlisBranchStrategyPseudo &); 00067 00069 void setRelibility(int rel) { relibility_ = rel; } 00070 00072 virtual BcpsBranchStrategy * clone() const { 00073 return new BlisBranchStrategyPseudo(*this); 00074 } 00075 00081 virtual int betterBranchObject(BcpsBranchObject * thisOne, 00082 BcpsBranchObject * bestSoFar); 00083 00085 int createCandBranchObjects(int numPassesLeft); 00086 }; 00087 00088 #endif