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 #ifndef GRAPHORDERING_H
00022 #define GRAPHORDERING_H
00023
00024 using namespace std;
00025
00026 namespace ColPack
00027 {
00033 class GraphOrdering : public GraphInputOutput
00034 {
00035 public:
00037
00045 int GetMaxBackDegree();
00046
00047 int OrderVertices(string s_OrderingVariant);
00048
00049 private:
00050
00052
00057 int GetBackDegree(int index);
00058
00059
00060 int CheckVertexOrdering(string s_VertexOrderingVariant);
00061
00062 int printVertexEdgeMap(vector< vector< pair< int, int> > > &vvpii_VertexEdgeMap);
00063
00064 protected:
00065
00066 double m_d_OrderingTime;
00067
00068 string m_s_VertexOrderingVariant;
00069
00070 vector<int> m_vi_OrderedVertices;
00071
00072 public:
00073
00074
00075 GraphOrdering();
00076
00077
00078 ~GraphOrdering();
00079
00080
00081 virtual void Clear();
00082
00083
00084 int NaturalOrdering();
00085
00086 int RandomOrdering();
00087
00088 int ColoringBasedOrdering(vector<int> &vi_VertexColors);
00089
00090
00091 int LargestFirstOrdering();
00092
00093
00094 int DistanceTwoLargestFirstOrdering();
00095
00096
00097 int DynamicLargestFirstOrdering();
00098
00099 int DistanceTwoDynamicLargestFirstOrdering();
00100
00101
00102 int SmallestLastOrdering();
00103
00104
00105 int DistanceTwoSmallestLastOrdering();
00106
00107
00108 int IncidenceDegreeOrdering();
00109
00110
00111 int DistanceTwoIncidenceDegreeOrdering();
00112
00113
00114 string GetVertexOrderingVariant();
00115
00116
00117 void GetOrderedVertices(vector<int> &output);
00118
00119 void PrintVertexOrdering();
00120
00121
00122 double GetVertexOrderingTime();
00123 };
00124 }
00125 #endif
00126
00127