Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef BIPARTITEGRAPHORDERING_H
00024 #define BIPARTITEGRAPHORDERING_H
00025
00026 using namespace std;
00027
00028 namespace ColPack
00029 {
00037 class BipartiteGraphOrdering : public BipartiteGraphVertexCover
00038 {
00039 public:
00040
00041 int OrderVertices(string s_OrderingVariant);
00042
00043 private:
00044
00045
00046 int CheckVertexOrdering(string s_VertexOrderingVariant);
00047
00048 protected:
00049
00050 double m_d_OrderingTime;
00051
00052 string m_s_VertexOrderingVariant;
00053
00054 vector<int> m_vi_OrderedVertices;
00055
00056 public:
00057
00058
00059 BipartiteGraphOrdering();
00060
00061
00062 ~BipartiteGraphOrdering();
00063
00064
00065 virtual void Clear();
00066
00067
00068 virtual void Reset();
00069
00070
00071 int NaturalOrdering();
00072 int RandomOrdering();
00073
00074
00075 int LargestFirstOrdering();
00076
00077
00078 int SmallestLastOrdering();
00079
00080
00081 int IncidenceDegreeOrdering();
00082
00083
00084 int SelectiveLargestFirstOrdering();
00085
00086
00087 int SelectiveSmallestLastOrdering();
00088
00089
00090 int SelectiveIncidenceDegreeOrdering();
00091
00092
00093 int DynamicLargestFirstOrdering();
00094
00095
00096 string GetVertexOrderingVariant();
00097
00098
00099 void GetOrderedVertices(vector<int> &output);
00100
00101 void PrintVertexOrdering();
00102
00103 double GetVertexOrderingTime();
00104 };
00105 }
00106 #endif