class GraphOrdering in group1. More...
#include <GraphOrdering.h>
Inherits ColPack::GraphInputOutput.
Inherited by ColPack::GraphColoring.
Public Member Functions | |
int | GetMaxBackDegree () |
Calculate and return the Maximum Back degree. | |
int | OrderVertices (string s_OrderingVariant) |
GraphOrdering () | |
~GraphOrdering () | |
virtual void | Clear () |
int | NaturalOrdering () |
int | RandomOrdering () |
int | ColoringBasedOrdering (vector< int > &vi_VertexColors) |
int | LargestFirstOrdering () |
int | DistanceTwoLargestFirstOrdering () |
int | DynamicLargestFirstOrdering () |
int | DistanceTwoDynamicLargestFirstOrdering () |
int | SmallestLastOrdering () |
int | DistanceTwoSmallestLastOrdering () |
int | IncidenceDegreeOrdering () |
int | DistanceTwoIncidenceDegreeOrdering () |
string | GetVertexOrderingVariant () |
void | GetOrderedVertices (vector< int > &output) |
void | PrintVertexOrdering () |
double | GetVertexOrderingTime () |
Protected Attributes | |
double | m_d_OrderingTime |
string | m_s_VertexOrderingVariant |
vector< int > | m_vi_OrderedVertices |
Private Member Functions | |
int | GetBackDegree (int index) |
Get Back Degree of vertex m_vi_OrderedVertices[index]. | |
int | CheckVertexOrdering (string s_VertexOrderingVariant) |
int | printVertexEdgeMap (vector< vector< pair< int, int > > > &vvpii_VertexEdgeMap) |
class GraphOrdering in group1.
This class stores the ordered vertices as a vector of vertex identifiers to be used by coloring methods.
Definition at line 33 of file GraphOrdering.h.
ColPack::GraphOrdering::GraphOrdering | ( | ) |
Definition at line 103 of file GraphOrdering.cpp.
References Clear().
ColPack::GraphOrdering::~GraphOrdering | ( | ) |
Definition at line 110 of file GraphOrdering.cpp.
References Clear().
int ColPack::GraphOrdering::CheckVertexOrdering | ( | string | s_VertexOrderingVariant | ) | [private] |
Definition at line 87 of file GraphOrdering.cpp.
References _FALSE, _TRUE, and m_s_VertexOrderingVariant.
Referenced by DistanceTwoDynamicLargestFirstOrdering(), DistanceTwoIncidenceDegreeOrdering(), DistanceTwoLargestFirstOrdering(), DistanceTwoSmallestLastOrdering(), DynamicLargestFirstOrdering(), IncidenceDegreeOrdering(), LargestFirstOrdering(), NaturalOrdering(), RandomOrdering(), and SmallestLastOrdering().
void ColPack::GraphOrdering::Clear | ( | ) | [virtual] |
Reimplemented from ColPack::GraphInputOutput.
Reimplemented in ColPack::GraphColoring, and ColPack::GraphColoringInterface.
Definition at line 117 of file GraphOrdering.cpp.
References m_d_OrderingTime, m_s_VertexOrderingVariant, and m_vi_OrderedVertices.
Referenced by GraphOrdering(), and ~GraphOrdering().
int ColPack::GraphOrdering::ColoringBasedOrdering | ( | vector< int > & | vi_VertexColors | ) |
Definition at line 207 of file GraphOrdering.cpp.
References _TRUE, m_s_VertexOrderingVariant, m_vi_OrderedVertices, ColPack::GraphCore::m_vi_Vertices, Pause(), STEP_DOWN, and STEP_UP.
Referenced by toFileC_forColoringBasedOrdering().
int ColPack::GraphOrdering::DistanceTwoDynamicLargestFirstOrdering | ( | ) |
Definition at line 796 of file GraphOrdering.cpp.
References _FALSE, _TRUE, _UNKNOWN, CheckVertexOrdering(), ColPack::GraphCore::m_vi_Edges, m_vi_OrderedVertices, ColPack::GraphCore::m_vi_Vertices, STEP_DOWN, and STEP_UP.
int ColPack::GraphOrdering::DistanceTwoIncidenceDegreeOrdering | ( | ) |
Definition at line 1354 of file GraphOrdering.cpp.
References _FALSE, _TRUE, _UNKNOWN, CheckVertexOrdering(), ColPack::GraphCore::m_vi_Edges, m_vi_OrderedVertices, ColPack::GraphCore::m_vi_Vertices, STEP_DOWN, and STEP_UP.
Referenced by OrderVertices().
int ColPack::GraphOrdering::DistanceTwoLargestFirstOrdering | ( | ) |
Definition at line 570 of file GraphOrdering.cpp.
References _TRUE, _UNKNOWN, CheckVertexOrdering(), ColPack::GraphCore::m_vi_Edges, m_vi_OrderedVertices, ColPack::GraphCore::m_vi_Vertices, STEP_DOWN, and STEP_UP.
Referenced by OrderVertices().
int ColPack::GraphOrdering::DistanceTwoSmallestLastOrdering | ( | ) |
Definition at line 991 of file GraphOrdering.cpp.
References _FALSE, _TRUE, _UNKNOWN, CheckVertexOrdering(), ColPack::GraphCore::m_vi_Edges, m_vi_OrderedVertices, ColPack::GraphCore::m_vi_Vertices, STEP_DOWN, and STEP_UP.
Referenced by OrderVertices().
int ColPack::GraphOrdering::DynamicLargestFirstOrdering | ( | ) |
Definition at line 353 of file GraphOrdering.cpp.
References _FALSE, _TRUE, _UNKNOWN, CheckVertexOrdering(), ColPack::GraphCore::m_vi_Edges, m_vi_OrderedVertices, ColPack::GraphCore::m_vi_Vertices, STEP_DOWN, and STEP_UP.
Referenced by OrderVertices().
int ColPack::GraphOrdering::GetBackDegree | ( | int | index | ) | [private] |
Get Back Degree of vertex m_vi_OrderedVertices[index].
Precondition: OrderVertices() has been called, i.e. m_vi_OrderedVertices has been populated
Note: This function is written quickly so it is not optimal
int ColPack::GraphOrdering::GetMaxBackDegree | ( | ) |
Calculate and return the Maximum Back degree.
Precondition: OrderVertices() has been called, i.e. m_vi_OrderedVertices has been populated Note: Back degree of a vertex is the degree of that vertex in the subgraph consisting of vertices that had been ordered (i.e., the vertices that are ordered before the current vertex). Depend on the ordering style, each vertex in vector m_vi_OrderedVertices may have different Back degree. The Maximum Back degree of all vertices in the graph will be returned. This is the UPPER BOUND for the number of colors needed to D1-color the graph.
Definition at line 1585 of file GraphOrdering.cpp.
References ColPack::GraphCore::m_vi_Edges, m_vi_OrderedVertices, and ColPack::GraphCore::m_vi_Vertices.
Referenced by toFileC(), and toFileC_forColoringBasedOrdering().
void ColPack::GraphOrdering::GetOrderedVertices | ( | vector< int > & | output | ) |
Reimplemented in ColPack::GraphColoringInterface.
Definition at line 1573 of file GraphOrdering.cpp.
References m_vi_OrderedVertices.
double ColPack::GraphOrdering::GetVertexOrderingTime | ( | ) |
Definition at line 1580 of file GraphOrdering.cpp.
References m_d_OrderingTime.
Referenced by toFileC(), and toFileC_forColoringBasedOrdering().
string ColPack::GraphOrdering::GetVertexOrderingVariant | ( | ) |
Definition at line 1567 of file GraphOrdering.cpp.
References m_s_VertexOrderingVariant.
int ColPack::GraphOrdering::IncidenceDegreeOrdering | ( | ) |
Definition at line 1194 of file GraphOrdering.cpp.
References _FALSE, _TRUE, _UNKNOWN, CheckVertexOrdering(), ColPack::GraphCore::m_vi_Edges, m_vi_OrderedVertices, ColPack::GraphCore::m_vi_Vertices, STEP_DOWN, and STEP_UP.
Referenced by OrderVertices().
int ColPack::GraphOrdering::LargestFirstOrdering | ( | ) |
Definition at line 267 of file GraphOrdering.cpp.
References _TRUE, CheckVertexOrdering(), ColPack::GraphCore::m_i_MaximumVertexDegree, m_vi_OrderedVertices, ColPack::GraphCore::m_vi_Vertices, STEP_DOWN, and STEP_UP.
Referenced by OrderVertices().
int ColPack::GraphOrdering::NaturalOrdering | ( | ) |
Definition at line 131 of file GraphOrdering.cpp.
References _TRUE, CheckVertexOrdering(), m_vi_OrderedVertices, ColPack::GraphCore::m_vi_Vertices, and STEP_DOWN.
Referenced by ColPack::GraphColoring::CheckVertexColoring(), and OrderVertices().
int ColPack::GraphOrdering::OrderVertices | ( | string | s_OrderingVariant | ) |
Definition at line 28 of file GraphOrdering.cpp.
References _TRUE, DistanceTwoIncidenceDegreeOrdering(), DistanceTwoLargestFirstOrdering(), DistanceTwoSmallestLastOrdering(), DynamicLargestFirstOrdering(), IncidenceDegreeOrdering(), LargestFirstOrdering(), NaturalOrdering(), RandomOrdering(), SmallestLastOrdering(), and toUpper().
Referenced by ColPack::GraphColoringInterface::AcyclicColoring(), ColPack::GraphColoringInterface::AcyclicColoring_ForIndirectRecovery(), ColPack::GraphColoringInterface::DistanceOneColoring(), ColPack::GraphColoringInterface::DistanceTwoColoring(), ColPack::GraphColoringInterface::NaiveStarColoring(), ColPack::GraphColoringInterface::RestrictedStarColoring(), ColPack::GraphColoringInterface::StarColoring(), and ColPack::GraphColoringInterface::TriangularColoring().
int ColPack::GraphOrdering::printVertexEdgeMap | ( | vector< vector< pair< int, int > > > & | vvpii_VertexEdgeMap | ) | [private] |
Definition at line 319 of file GraphOrdering.cpp.
void ColPack::GraphOrdering::PrintVertexOrdering | ( | ) |
Definition at line 1619 of file GraphOrdering.cpp.
References m_s_VertexOrderingVariant, and m_vi_OrderedVertices.
int ColPack::GraphOrdering::RandomOrdering | ( | ) |
Definition at line 156 of file GraphOrdering.cpp.
References _TRUE, CheckVertexOrdering(), m_s_VertexOrderingVariant, m_vi_OrderedVertices, ColPack::GraphCore::m_vi_Vertices, randomOrdering(), and STEP_DOWN.
Referenced by OrderVertices().
int ColPack::GraphOrdering::SmallestLastOrdering | ( | ) |
Definition at line 654 of file GraphOrdering.cpp.
References _FALSE, _TRUE, _UNKNOWN, CheckVertexOrdering(), ColPack::GraphCore::m_vi_Edges, m_vi_OrderedVertices, ColPack::GraphCore::m_vi_Vertices, STEP_DOWN, and STEP_UP.
Referenced by OrderVertices(), and ColPack::GraphColoring::TriangularColoring().
double ColPack::GraphOrdering::m_d_OrderingTime [protected] |
Definition at line 66 of file GraphOrdering.h.
Referenced by ColPack::GraphColoringInterface::AcyclicColoring(), ColPack::GraphColoringInterface::AcyclicColoring_ForIndirectRecovery(), Clear(), ColPack::GraphColoringInterface::DistanceOneColoring(), ColPack::GraphColoringInterface::DistanceTwoColoring(), ColPack::GraphColoring::FileVertexColoringMetrics(), ColPack::GraphColoring::FileVertexColors(), GetVertexOrderingTime(), ColPack::GraphColoringInterface::NaiveStarColoring(), ColPack::GraphColoring::PrintVertexColoringMetrics(), ColPack::GraphColoring::PrintVertexColors(), ColPack::GraphColoringInterface::RestrictedStarColoring(), ColPack::GraphColoringInterface::StarColoring(), and ColPack::GraphColoringInterface::TriangularColoring().
string ColPack::GraphOrdering::m_s_VertexOrderingVariant [protected] |
Definition at line 68 of file GraphOrdering.h.
Referenced by ColPack::GraphColoring::CheckVertexColoring(), CheckVertexOrdering(), Clear(), ColoringBasedOrdering(), ColPack::GraphColoring::FileVertexColoringMetrics(), ColPack::GraphColoring::FileVertexColors(), GetVertexOrderingVariant(), ColPack::GraphColoring::PrintVertexColorClasses(), ColPack::GraphColoring::PrintVertexColoringMetrics(), ColPack::GraphColoring::PrintVertexColors(), PrintVertexOrdering(), and RandomOrdering().
vector<int> ColPack::GraphOrdering::m_vi_OrderedVertices [protected] |
Definition at line 70 of file GraphOrdering.h.
Referenced by ColPack::GraphColoring::AcyclicColoring(), ColPack::GraphColoring::AcyclicColoring_ForIndirectRecovery(), Clear(), ColoringBasedOrdering(), ColPack::GraphColoring::DistanceOneColoring(), ColPack::GraphColoring::DistanceTwoColoring(), DistanceTwoDynamicLargestFirstOrdering(), DistanceTwoIncidenceDegreeOrdering(), DistanceTwoLargestFirstOrdering(), DistanceTwoSmallestLastOrdering(), DynamicLargestFirstOrdering(), GetMaxBackDegree(), GetOrderedVertices(), IncidenceDegreeOrdering(), LargestFirstOrdering(), ColPack::GraphColoring::ModifiedTriangularColoring(), ColPack::GraphColoring::NaiveStarColoring(), NaturalOrdering(), PrintVertexOrdering(), RandomOrdering(), ColPack::GraphColoring::RestrictedStarColoring(), SmallestLastOrdering(), ColPack::GraphColoring::StarColoring(), and ColPack::GraphColoring::TriangularColoring().