00001 /*===========================================================================* 00002 * This file is part of the BiCePS Linear Integer Solver (BLIS). * 00003 * * 00004 * BLIS 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-2007, 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, 00065 BlisHeurStrategy strategy, int freq) 00066 : 00067 BlisHeuristic(model, name, strategy, freq) 00068 { 00069 assert(model->solver()); 00070 } 00071 00073 ~BlisHeurRound() {} 00074 00076 BlisHeurRound( const BlisHeurRound &); 00077 00079 virtual BlisHeuristic * clone() const; 00080 00082 virtual void setModel(BlisModel * model); 00083 00084 //using BlisHeuristic::searchSolution ; 00090 virtual bool searchSolution(double & objectiveValue, 00091 double * newSolution); 00092 00094 void setSeed(int value) { seed_ = value; } 00095 00096 }; 00097 #endif