00001 /*===========================================================================* 00002 * This file is part of the Bcps Linear 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-2005, International Business Machines * 00021 * Corporation, Lehigh University, Yan Xu, Ted Ralphs, Matthew Salzman and * 00022 * others. All Rights Reserved. * 00023 *===========================================================================*/ 00024 00025 //############################################################################# 00026 // This file is modified from CbcHeuristic.hpp 00027 //############################################################################# 00028 00029 #ifndef BlisHeurRound_h_ 00030 #define BlisHeurRound_h_ 00031 00032 #include <string> 00033 #include <vector> 00034 00035 #include "CoinPackedMatrix.hpp" 00036 #include "OsiCuts.hpp" 00037 00038 #include "BlisHeuristic.h" 00039 00040 class BlisModel; 00041 00042 //############################################################################# 00043 00045 class BlisHeurRound : public BlisHeuristic { 00046 private: 00048 BlisHeurRound & operator=(const BlisHeurRound& rhs); 00049 00050 protected: 00052 CoinPackedMatrix matrix_; 00053 00055 CoinPackedMatrix matrixByRow_; 00056 00058 int seed_; 00059 00060 public: 00062 BlisHeurRound() {} 00063 00065 BlisHeurRound(BlisModel * model, const char *name, int strategy) 00066 : 00067 BlisHeuristic(model, name, strategy) 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 00089 virtual bool searchSolution(double & objectiveValue, 00090 double * newSolution); 00091 00093 void setSeed(int value) { seed_ = value; } 00094 00095 }; 00096 #endif