00001 00002 // 00003 // Module : StableSetModKSeparator.hh 00004 // Description : Mod-k separation. 00005 // Author : Hanna Seitz, Steffen Rebennack 00006 // Email : Hanna.Seitz@informatik.uni-heidelberg.de; 00007 // srebenac@ix.urz.uni-heidelberg.de; 00008 // steffen.rebennack@web.de 00009 // Copyright : University of Heidelberg 00010 // Created on : Thu Apr 06 10:51:17 2006 00011 // Last modified by : - 00012 // Last modified on : - 00013 // Update count : 0 00014 // 00016 // 00017 // Date Name Changes/Extensions 00018 // ---- ---- ------------------ 00019 // 00021 00022 00023 #ifndef STABLE_SET_MOD_2_SEPARATOR_HH 00024 #define STABLE_SET_MOD_2_SEPARATOR_HH 00025 00026 #include <abacus/separator.h> 00027 00028 class Graph; 00029 class StableSetLPSolution; 00030 00031 00035 class StableSetModKSeparator: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 StableSetModKSeparator(StableSetLPSolution *solution, 00050 Graph *itsGraph); 00051 00055 ~StableSetModKSeparator(); 00056 00064 virtual void separate(); 00065 00072 void applyRanking(ABA_BUFFER<double> *rank); 00073 00074 00075 private: 00076 00077 // ------------------------------------------------------------------------- 00078 // ------------- V a r i a b l e s ( p r i v a t e ) ---------------------- 00079 // ------------------------------------------------------------------------- 00080 00084 StableSetLPSolution *lpSolution; 00085 00089 int nVariables; 00090 00095 Graph *itsGraph; 00096 00097 }; 00098 00099 #endif 00100 00101