00001 00002 // 00003 // Module : CliqueHeuristicsSeparator.hh 00004 // Description : Separate the clique inequalities with heuristics. 00005 // Author : Steffen Rebennack 00006 // Email : srebenac@ix.urz.uni-heidelberg.de; 00007 // steffen.rebennack@web.de 00008 // Copyright : (C) 2006 by the University of Heidelberg 00009 // Created on : Tue Apr 04 14:07:11 2006 00010 // Last modified by : - 00011 // Last modified on : - 00012 // Update count : 0 00013 // 00015 // 00016 // Date Name Changes/Extensions 00017 // ---- ---- ------------------ 00018 // 00020 00021 #ifndef CLIQUE_HEURISTICS_SEPARATOR_HH 00022 #define CLIQUE_HEURISTICS_SEPARATOR_HH 00023 00024 #include <abacus/separator.h> 00025 00026 class Graph; 00027 class StableSetLPSolution; 00028 00029 00034 class CliqueHeuristicsSeparator: 00035 public ABA_SEPARATOR <ABA_CONSTRAINT, ABA_VARIABLE> { 00036 00037 public: 00038 00039 // ------------------------------------------------------------------------- 00040 // ------------- M e t h o d s ( p u b l i c ) ---------------------------- 00041 // ------------------------------------------------------------------------- 00042 00049 CliqueHeuristicsSeparator(StableSetLPSolution *solution, 00050 Graph *theGraph); 00051 00055 ~CliqueHeuristicsSeparator(); 00056 00064 virtual void separate(); 00065 00066 00067 private: 00068 00069 // ------------------------------------------------------------------------- 00070 // ------------- M e t h o d s ( p r i v a t e ) -------------------------- 00071 // ------------------------------------------------------------------------- 00072 00079 int getRandomNumber(int bound) const; 00080 00081 00082 // ------------------------------------------------------------------------- 00083 // ------------- V a r i a b l e s ( p r i v a t e ) ---------------------- 00084 // ------------------------------------------------------------------------- 00085 00089 StableSetLPSolution *lpSolution; 00090 00094 Graph *itsGraph; 00095 00096 }; 00097 00098 #endif 00099 00100