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 using namespace std;
00022
00023 #ifndef BIPARTITEGRAPHPARTIALORDERING_H
00024 #define BIPARTITEGRAPHPARTIALORDERING_H
00025
00026 #define RIGHT_PARTIAL_DISTANCE_TWO COLUMN_PARTIAL_DISTANCE_TWO
00027 #define LEFT_PARTIAL_DISTANCE_TWO ROW_PARTIAL_DISTANCE_TWO
00028
00029 namespace ColPack
00030 {
00037 class BipartiteGraphPartialOrdering : public BipartiteGraphInputOutput
00038 {
00039 public:
00040
00041 int OrderVertices(string s_OrderingVariant = "NATURAL", string s_ColoringVariant = "COLUMN_PARTIAL_DISTANCE_TWO");
00042
00043 private:
00044
00045 int CheckVertexOrdering(string s_VertexOrderingVariant);
00046
00047 protected:
00048
00049 double m_d_OrderingTime;
00050
00051 string m_s_VertexOrderingVariant;
00052
00053 vector<int> m_vi_OrderedVertices;
00054
00055 public:
00056
00057 BipartiteGraphPartialOrdering();
00058
00059 ~BipartiteGraphPartialOrdering();
00060
00061 virtual void Clear();
00062
00063 virtual void Reset();
00064
00065 int RowNaturalOrdering();
00066 int ColumnNaturalOrdering();
00067
00068 int RowRandomOrdering();
00069 int ColumnRandomOrdering();
00070
00071 int RowLargestFirstOrdering();
00072 int ColumnLargestFirstOrdering();
00073
00074 int RowSmallestLastOrdering();
00075 int ColumnSmallestLastOrdering();
00076
00077 int RowIncidenceDegreeOrdering();
00078 int ColumnIncidenceDegreeOrdering();
00079
00080 string GetVertexOrderingVariant();
00081
00082 void GetOrderedVertices(vector<int> &output);
00083
00084 void PrintVertexOrdering();
00085
00086 double GetVertexOrderingTime();
00087 };
00088 }
00089 #endif