00001 /*===========================================================================* 00002 * This file is part of the Bcps Linear Solver (BLIS). * 00003 * * 00004 * BLIS 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-2013, Lehigh University, Yan Xu, and Ted Ralphs. * 00021 * All Rights Reserved. * 00022 *===========================================================================*/ 00023 00024 //############################################################################# 00025 // This file is modified from CbcHeuristic.hpp 00026 //############################################################################# 00027 00028 #ifndef BlisHeurRound_h_ 00029 #define BlisHeurRound_h_ 00030 00031 #include <string> 00032 #include <vector> 00033 00034 #include "CoinPackedMatrix.hpp" 00035 #include "OsiCuts.hpp" 00036 00037 #include "BlisHeuristic.h" 00038 00039 class BlisModel; 00040 00041 //############################################################################# 00042 00044 class BlisHeurRound : public BlisHeuristic { 00045 private: 00047 BlisHeurRound & operator=(const BlisHeurRound& rhs); 00048 00049 protected: 00051 CoinPackedMatrix matrix_; 00052 00054 CoinPackedMatrix matrixByRow_; 00055 00057 int seed_; 00058 00059 public: 00061 BlisHeurRound() {} 00062 00064 BlisHeurRound(BlisModel * model, const char *name, int strategy) 00065 : 00066 BlisHeuristic(model, name, strategy) 00067 { 00068 assert(model->solver()); 00069 } 00070 00072 ~BlisHeurRound() {} 00073 00075 BlisHeurRound( const BlisHeurRound &); 00076 00078 virtual BlisHeuristic * clone() const; 00079 00081 virtual void setModel(BlisModel * model); 00082 00088 virtual bool searchSolution(double & objectiveValue, 00089 double * newSolution); 00090 00092 void setSeed(int value) { seed_ = value; } 00093 00094 }; 00095 #endif