abstractMixedGraph Class Reference

The base class for all kinds of graph objects. More...

#include <abstractMixedGraph.h>

Inheritance diagram for abstractMixedGraph:

managedObject goblinRootObject abstractDiGraph abstractGraph mixedGraph abstractBalancedFNW bigraphToDigraph denseDiGraph digraphToDigraph layeredAuxNetwork sparseDiGraph abstractBiGraph denseGraph sparseGraph colourContraction explicitSubdivision explicitSurfaceGraph inducedSubgraph lineGraph

Public Types

enum  TMergeLayoutMode {
  MERGE_ALIGN_RIGHT = 0,
  MERGE_ALIGN_BELOW = 1,
  MERGE_OVERLAY = 2
}
enum  TMetricType {
  METRIC_DISABLED = 0,
  METRIC_MANHATTAN = 1,
  METRIC_EUCLIDIAN = 2,
  METRIC_MAXIMUM = 3,
  METRIC_SPHERIC = 4
}
enum  TMethAdjacency {
  ADJ_SEARCH = 0,
  ADJ_MATRIX = 1
}
enum  TMethOrthogonal {
  ORTHO_DEFAULT = -1,
  ORTHO_EXPLICIT = 0,
  ORTHO_EULER = 1,
  ORTHO_DEG4 = 2,
  ORTHO_4PLANAR = 3,
  ORTHO_VISIBILITY_RAW = 4,
  ORTHO_VISIBILITY_TRIM = 5,
  ORTHO_VISIBILITY_GIOTTO = 6
}
enum  TOptFDP {
  FDP_DEFAULT = -1,
  FDP_GEM = 0,
  FDP_SPRING = 1,
  FDP_RESTRICTED = 2,
  FDP_LAYERED = 4,
  FDP_LAYERED_RESTR = 6
}
enum  TOptAlign {
  ALIGN_OPTIMIZE = 0,
  ALIGN_LEFT = 1,
  ALIGN_CENTER = 2,
  ALIGN_FDP = 3,
  ALIGN_RIGHT = 4
}
enum  TOptLayered {
  LAYERED_DEFAULT = -1,
  LAYERED_FEEDBACK = 1,
  LAYERED_EDGE_SPAN = 2,
  LAYERED_VERTICAL = 3,
  LAYERED_COLOURS = 4,
  LAYERED_FDP = 8,
  LAYERED_ALIGN = 16,
  LAYERED_SWEEP = 32,
  LAYERED_HORIZONTAL = 48
}
enum  TOptExtractEmbedding {
  PLANEXT_DEFAULT = 0,
  PLANEXT_GROW = 1,
  PLANEXT_DUAL = 2,
  PLANEXT_CONNECT = 3
}
enum  TMethSPX {
  SPX_DEFAULT = -1,
  SPX_FIFO = 0,
  SPX_DIJKSTRA = 1,
  SPX_BELLMAN = 2,
  SPX_BFS = 3,
  SPX_DAG = 4,
  SPX_TJOIN = 5
}
enum  TOptSPX {
  SPX_ORIGINAL = 0,
  SPX_REDUCED = 1
}
enum  TOptDAGSearch {
  DAG_TOPSORT = 0,
  DAG_CRITICAL = 1,
  DAG_SPTREE = 2
}
enum  {
  CONN_CUT_NODE = 0,
  CONN_LEFT_HAND = 1,
  CONN_RIGHT_HAND = 2
}
enum  TRetDFS {
  DFS_DISCONNECTED = 0,
  DFS_BICONNECTED = 1,
  DFS_MULTIPLE_BLOCKS = 2,
  DFS_ALMOST_BICONNECTED = 3
}
enum  TOptNodeSplitting {
  MCC_UNIT_CAPACITIES = 0,
  MCC_MAP_DEMANDS = 1,
  MCC_MAP_UNDERLYING = 2
}
enum  TMethMCC {
  MCC_DEFAULT = -1,
  MCC_MAXFLOW = 0,
  MCC_PREFLOW_FIFO = 1,
  MCC_PREFLOW_HIGH = 2,
  MCC_IDENTIFICATION = 3
}
enum  TOptSeriesParallel {
  ESP_UNDIRECTED = 0,
  ESP_DIRECTED = 1,
  ESP_EMBEDDING = 2,
  ESP_ORIENT = 4,
  ESP_VISIBILITY = 8,
  ESP_MINOR = 16
}
enum  TMethPlanarity {
  PLANAR_DEFAULT = -1,
  PLANAR_HO_TA = 0,
  PLANAR_DMP = 1
}
enum  TOptPlanarity {
  PLANAR_NO_OPT = 0,
  PLANAR_MINOR = 1
}
enum  TOptComplement {
  PERFECT_AS_IS = 0,
  PERFECT_COMPLEMENT = 1
}
enum  TMethMST {
  MST_DEFAULT = -1,
  MST_PRIM = 0,
  MST_PRIM2 = 1,
  MST_KRUSKAL = 2,
  MST_EDMONDS = 3
}
enum  TOptMST {
  MST_PLAIN = 0,
  MST_ONE_CYCLE = 1,
  MST_UNDIRECTED = 2,
  MST_DIRECTED = 4,
  MST_REDUCED = 8,
  MST_ONE_CYCLE_REDUCED = 9,
  MST_MAX = 16
}
enum  TMethMXF {
  MXF_DEFAULT = -1,
  MXF_SAP = 0,
  MXF_DINIC = 1,
  MXF_PREFLOW_FIFO = 2,
  MXF_PREFLOW_HIGH = 3,
  MXF_PREFLOW_SCALE = 4,
  MXF_SAP_SCALE = 5
}
enum  TMethMCFST {
  MCF_ST_DEFAULT = -1,
  MCF_ST_DIJKSTRA = 0,
  MCF_ST_SAP = 1,
  MCF_ST_BFLOW = 2
}
enum  TMethMCF {
  MCF_BF_DEFAULT = -1,
  MCF_BF_CYCLE = 0,
  MCF_BF_COST = 1,
  MCF_BF_TIGHT = 2,
  MCF_BF_MEAN = 3,
  MCF_BF_SAP = 4,
  MCF_BF_SIMPLEX = 5,
  MCF_BF_LINEAR = 6,
  MCF_BF_CAPA = 7,
  MCF_BF_PHASE1 = 8
}
enum  THeurTSP {
  TSP_HEUR_DEFAULT = -1,
  TSP_HEUR_RANDOM = 0,
  TSP_HEUR_FARTHEST = 1,
  TSP_HEUR_TREE = 2,
  TSP_HEUR_CHRISTOFIDES = 3,
  TSP_HEUR_NEAREST = 4
}
enum  TRelaxTSP {
  TSP_RELAX_DEFAULT = -1,
  TSP_RELAX_NULL = -2,
  TSP_RELAX_1TREE = 0,
  TSP_RELAX_FAST = 1,
  TSP_RELAX_SUBOPT = 2
}
enum  TMethMaxCut {
  MAX_CUT_DEFAULT = -1,
  MAX_CUT_GRASP = 0,
  MAX_CUT_TREE = 1,
  MAX_CUT_TJOIN = 2
}

Public Member Functions

 abstractMixedGraph (TNode=0, TArc=0) throw ()
virtual ~abstractMixedGraph () throw ()
void CheckLimits () throw (ERRejected)
unsigned long Allocated () const throw ()
bool IsGraphObject () const throw ()
virtual bool IsBipartite () const throw ()
virtual bool IsDirected () const throw ()
virtual bool IsUndirected () const throw ()
virtual bool IsSparse () const throw ()
virtual bool IsDense () const throw ()
bool IsRepresented () const throw ()
virtual bool IsBalanced () const throw ()
bool IsEmbedded () const throw ()
TArc InsertArc (TNode u, TNode v) throw (ERRange,ERRejected)
TArc InsertArc (TNode u, TNode v, TCap cc, TFloat ll, TCap bb=0) throw (ERRange,ERRejected)
TNode InsertNode () throw (ERRange,ERRejected)
void DeleteNode (TNode v) throw (ERRange,ERRejected)
virtual void RandomArcs (TArc _m) throw (ERRejected)
void RandEulerian (TArc _m) throw (ERRejected)
virtual void RandRegular (TArc k) throw (ERRejected)
void AddGraphByNodes (abstractMixedGraph &G, TMergeLayoutMode mergeLayoutMode=MERGE_OVERLAY) throw (ERRejected)
void FacetIdentification (abstractMixedGraph &G) throw (ERRejected)
TNode N () const throw ()
TNode L () const throw ()
TNode NI () const throw ()
TArc M () const throw ()
TNode ND () const throw ()
virtual size_t SizeInfo (TArrayDim arrayDim, TSizeInfo size) const throw ()
virtual graphRepresentationRepresentation () throw ()
virtual const graphRepresentationRepresentation () const throw ()
virtual attributePoolRepresentationalData () const throw ()
virtual attributePoolGeometry () const throw ()
virtual attributePoolLayoutData () const throw ()
void ImportLayoutData (const abstractMixedGraph &G) throw ()
bool GetLayoutParameter (const char *tokenStr, char *valueStr) const throw ()
template<typename T>
bool GetLayoutParameter (TOptLayoutTokens token, T &value, TLayoutModel model=LAYOUT_DEFAULT) const throw ()
bool SetLayoutParameter (const char *tokenStr, const char *valueStr) throw ()
template<typename T>
bool SetLayoutParameter (TOptLayoutTokens token, const T value) throw ()
template<typename T>
bool SetLayoutParameter (TOptLayoutTokens token, const T value, TLayoutModel model) throw ()
void SyncSpacingParameters (TOptLayoutTokens token, TFloat &spacing) throw ()
attributePoolRegisters () const throw ()
virtual TNode DefaultSourceNode () const throw ()
virtual TNode DefaultTargetNode () const throw ()
TNode DefaultRootNode () const throw ()
void SetSourceNode (TNode v) throw (ERRange)
void SetTargetNode (TNode v) throw (ERRange)
void SetRootNode (TNode v) throw (ERRange)
virtual TNode StartNode (TArc a) const =0 throw (ERRange)
virtual TNode EndNode (TArc a) const throw (ERRange)
virtual TArc Right (TArc a, TNode v) const =0 throw (ERRange,ERRejected)
virtual TArc Left (TArc a) const throw (ERRange,ERRejected)
virtual TArc First (TNode v) const =0 throw (ERRange,ERRejected)
virtual TCap Demand (TNode v) const throw (ERRange)
TCap MaxDemand () const throw ()
virtual bool CDemand () const throw ()
virtual TCap UCap (TArc a) const throw (ERRange)
TCap MaxUCap () const throw ()
virtual bool CUCap () const throw ()
virtual TCap LCap (TArc a) const throw (ERRange)
virtual TCap MaxLCap () const throw ()
virtual bool CLCap () const throw ()
virtual TFloat Length (TArc a) const throw (ERRange)
TFloat MaxLength () const throw ()
virtual bool CLength () const throw ()
virtual char Orientation (TArc a) const throw (ERRange)
char Orientation () const throw ()
virtual bool COrientation () const throw ()
TArc Reverse (TArc a) const throw (ERRange)
virtual bool Blocking (TArc a) const throw (ERRange)
virtual TFloat C (TNode v, TDim i) const throw (ERRange)
void SetC (TNode v, TDim i, TFloat pos) throw (ERRange,ERRejected)
TFloat CMin (TDim i) const throw (ERRange)
TFloat CMax (TDim i) const throw (ERRange)
virtual TDim Dim () const throw ()
TMetricType MetricType () const throw ()
virtual TFloat RedLength (const TFloat *pi, TArc a) const throw (ERRange)
TNode NodeAnchorPoint (TNode v) const throw (ERRange)
TNode ArcLabelAnchor (TArc a) const throw (ERRange)
bool NoArcLabelAnchors () const throw ()
TNode PortNode (TArc a) const throw (ERRange)
TNode ThreadSuccessor (TNode v) const throw (ERRange)
bool NoThreadSuccessors () const throw ()
TLayoutModel LayoutModel () const throw ()
void SetLayoutModel (TLayoutModel model) throw ()
virtual bool HiddenNode (TNode v) const throw (ERRange)
virtual bool HiddenArc (TArc a) const throw (ERRange)
void SetNodeVisibility (TNode v, bool visible) throw (ERRange)
void SetArcVisibility (TArc a, bool visible) throw (ERRange)
virtual TArc Adjacency (TNode u, TNode v, TMethAdjacency method=ADJ_MATRIX) const throw (ERRange)
void MarkAdjacency (TNode u, TNode v, TArc a) throw (ERRange,ERRejected)
void ReleaseAdjacencies () throw ()
virtual TIndex OriginalOfNode (TNode v) const throw (ERRange)
virtual TIndex OriginalOfArc (TArc a) const throw (ERRange)
void ReleaseNodeMapping () throw ()
void ReleaseArcMapping () throw ()
void Layout_AlignWithOrigin () throw (ERRejected)
void Layout_TransformCoordinate (TDim i, TFloat cMin, TFloat cMax) throw (ERRejected)
void Layout_GetBoundingInterval (TDim i, TFloat &cMin, TFloat &cMax) const throw ()
void Layout_FreezeBoundingBox () throw ()
void Layout_DefaultBoundingBox () throw ()
void Layout_ReleaseBoundingBox () throw ()
void Layout_ConvertModel (TLayoutModel model) throw ()
void Layout_Circular (TFloat spacing=0.0) throw (ERRejected)
void Layout_CircularByPredecessors (TFloat spacing=0.0) throw (ERRejected)
void Layout_CircularByColours (TFloat spacing=0.0) throw (ERRejected)
bool Layout_Outerplanar (TFloat spacing=0.0) throw (ERRejected)
void Layout_Equilateral (TFloat spacing=0.0) throw (ERRejected)
void Layout_Kandinsky (TMethOrthogonal method=ORTHO_DEFAULT, TFloat spacing=0.0) throw (ERRejected)
void Layout_OrthogonalDeg4 (TMethOrthogonal method=ORTHO_4PLANAR, TFloat spacing=0.0) throw (ERRejected)
bool Layout_OrthoSmallNodeCompaction () throw (ERRejected)
bool Layout_OrthoSmallLineSweep () throw (ERRejected)
void Layout_VisibilityRepresentation (TMethOrthogonal method=ORTHO_VISIBILITY_TRIM, TFloat spacing=0.0) throw (ERRejected)
void Layout_KandinskyTree (TNode root=NoNode, TFloat spacing=0.0) throw (ERRejected)
bool Layout_HorizontalVerticalTree (TNode root=NoNode, TFloat spacing=0.0) throw (ERRejected)
void Layout_ForceDirected (TOptFDP method=FDP_DEFAULT, TFloat spacing=0.0) throw (ERRejected)
void Layout_PredecessorTree (TOptAlign mode=ALIGN_OPTIMIZE, TFloat dx=0.0, TFloat dy=0.0) throw (ERRejected)
void Layout_Layered (int method=LAYERED_DEFAULT, TFloat dx=0.0, TFloat dy=0.0) throw (ERRejected)
virtual investigatorNewInvestigator () const throw ()
THandle Investigate () const throw (ERRejected)
investigatorInvestigator (THandle H) const throw (ERRejected)
void Reset (THandle H) const throw (ERRejected)
void Reset (THandle H, TNode v) const throw (ERRange,ERRejected)
TArc Read (THandle H, TNode v) const throw (ERRange,ERRejected)
TArc Peek (THandle H, TNode v) const throw (ERRange,ERRejected)
bool Active (THandle H, TNode v) const throw (ERRange,ERRejected)
void Close (THandle H) const throw (ERRejected)
void ReleaseInvestigators () const throw ()
void StripInvestigators () const throw ()
void InitSubgraph () throw ()
virtual void SetSub (TArc a, TFloat lambda) throw (ERRange,ERRejected)
virtual void SetSubRelative (TArc a, TFloat lambda) throw (ERRange)
virtual void Push (TArc a, TFloat lambda) throw (ERRange,ERRejected)
virtual TFloat Sub (TArc a) const =0 throw (ERRange)
TFloat ResCap (TArc a) const throw (ERRange)
TCap Cardinality () const throw ()
TFloat Length () const throw ()
TFloat Weight () const throw ()
void AddToSubgraph (TNode v=NoNode) throw (ERRange,ERRejected)
virtual void InitPartition () throw ()
virtual void Bud (TNode v) throw (ERRange)
virtual void Merge (TNode u, TNode v) throw (ERRange)
virtual TNode Find (TNode v) throw (ERRange)
virtual void ReleasePartition () throw ()
TFloatInitDistanceLabels (TFloat def=InfFloat) throw ()
TFloatGetDistanceLabels () const throw ()
TFloatRawDistanceLabels () throw ()
virtual TFloat Dist (TNode v) const throw (ERRange)
void SetDist (TNode v, TFloat thisDist) throw (ERRange)
void ReleaseLabels () throw ()
TFloatInitPotentials (TFloat def=0) throw ()
TFloatGetPotentials () const throw ()
TFloatRawPotentials () throw ()
TFloat Pi (TNode v) const throw (ERRange)
void SetPotential (TNode v, TFloat thisPi) throw (ERRange)
void PushPotential (TNode v, TFloat epsilon) throw (ERRange)
void UpdatePotentials (TFloat cutValue) throw (ERRejected)
void ReleasePotentials () throw ()
TNodeInitNodeColours (TNode def=NoNode) throw ()
TNodeGetNodeColours () const throw ()
TNodeRawNodeColours () throw ()
TNodeRandomNodeOrder () throw ()
virtual TNode NodeColour (TNode v) const throw (ERRange)
void SetNodeColour (TNode v, TNode thisColour) throw (ERRange)
void ReleaseNodeColours () throw ()
void ExtractCut () throw (ERRejected)
void ExtractBipartition () throw (ERRejected)
void ExtractColours () throw (ERRejected)
TArcInitEdgeColours (TArc def=NoArc) throw ()
TArcGetEdgeColours () const throw ()
TArcRawEdgeColours () throw ()
TArc EdgeColour (TArc a) const throw (ERRange)
void SetEdgeColour (TArc a, TArc thisColour) throw (ERRange)
void ReleaseEdgeColours () throw ()
TNode ExtractEmbedding (TOptExtractEmbedding option=PLANEXT_DEFAULT, void *pArg=NULL) throw (ERRejected)
void MarkExteriorFace (TArc a) throw (ERRange,ERRejected)
TNode Face (TArc a) throw (ERRange)
TArc ExteriorArc () const throw ()
bool ExteriorNode (TNode v, TNode thisFace=NoNode) const throw (ERRange)
void ReleaseEmbedding () throw ()
TArcInitPredecessors () throw ()
TArcGetPredecessors () const throw ()
TArcRawPredecessors () throw ()
TArc Pred (TNode v) const throw (ERRange)
void SetPred (TNode v, TArc thisPred) throw (ERRange,ERRejected)
void ReleasePredecessors () throw ()
TNode ExtractTrees () throw ()
TNode ExtractPath (TNode u, TNode v) throw ()
TNode ExtractCycles () throw ()
TNode Extract1Matching () throw ()
TNode ExtractEdgeCover () throw ()
void InitDegrees () throw ()
void InitDegInOut () throw ()
TFloat Deg (TNode v) throw (ERRange)
TFloat DegIn (TNode v) throw (ERRange)
TFloat DegOut (TNode v) throw (ERRange)
TFloat Divergence (TNode v) throw (ERRange)
void ReleaseDegrees () throw ()
virtual void Write (const char *fileName) const throw (ERFile)
void WriteSpecial (goblinExport &F, const attributePool &pool, TPoolEnum token) const throw ()
virtual void WriteIncidences (goblinExport *F) const throw ()
void WriteUCap (goblinExport *F) const throw ()
void WriteLCap (goblinExport *F) const throw ()
void WriteLength (goblinExport *F) const throw ()
void WriteDemand (goblinExport *F) const throw ()
void WriteOrientation (goblinExport *F) const throw ()
void WriteGeometry (goblinExport *F) const throw ()
void WriteLayout (goblinExport *F) const throw ()
void WriteRegisters (goblinExport *F) const throw ()
void WriteRegister (goblinExport &F, TPoolEnum token) const throw (ERRange)
void WriteSubgraph (goblinExport &F) const throw ()
void ReadSpecial (goblinImport &F, attributePool &pool, TPoolEnum token) throw (ERParse)
bool ShortestPath (TNode source, TNode target=NoNode) throw (ERRange,ERRejected)
bool ShortestPath (TMethSPX method, TOptSPX characteristic, const indexSet< TArc > &EligibleArcs, TNode source, TNode target=NoNode) throw (ERRange,ERRejected)
TNode VoronoiRegions (const indexSet< TNode > &Terminals) throw (ERRejected)
TNode NegativeCycle (TOptSPX characteristic, const indexSet< TArc > &EligibleArcs, TNode source=NoNode, TFloat epsilon=0) throw (ERRange)
TNode BFS (const indexSet< TArc > &EligibleArcs, const indexSet< TNode > &S, const indexSet< TNode > &T) throw ()
TNode DAGSearch (TOptDAGSearch opt, const indexSet< TArc > &EligibleArcs, TNode s=NoNode, TNode t=NoNode) throw (ERRange)
bool Connected () throw ()
virtual bool Connected (TCap k) throw ()
TRetDFS CutNodes (TArc rootArc=NoArc, TNode *order=NULL, TArc *lowArc=NULL) throw ()
bool Biconnected () throw ()
bool STNumbering (TArc rootArc=NoArc, TNode source=NoNode, TNode target=NoNode) throw (ERRejected)
virtual bool EdgeConnected (TCap k) throw ()
bool StronglyConnected () throw ()
virtual bool StronglyConnected (TCap k) throw ()
virtual bool StronglyEdgeConnected (TCap k) throw ()
TCap NodeConnectivity (TNode source=NoNode, TNode target=NoNode, TOptNodeSplitting mode=MCC_MAP_DEMANDS) throw ()
TCap EdgeConnectivity (TNode source=NoNode, TNode target=NoNode) throw (ERRange)
TCap EdgeConnectivity (TMethMCC method, TNode source=NoNode, TNode target=NoNode) throw (ERRange)
TCap StrongNodeConnectivity (TNode source=NoNode, TNode target=NoNode, TOptNodeSplitting mode=MCC_MAP_DEMANDS) throw ()
TCap StrongEdgeConnectivity (TNode source=NoNode, TNode target=NoNode) throw (ERRange)
TCap StrongEdgeConnectivity (abstractMixedGraph::TMethMCC method, TNode source=NoNode, TNode target=NoNode) throw (ERRange)
bool EdgeSeriesParallelMethod (TOptSeriesParallel options=ESP_EMBEDDING, TNode s=NoNode, TNode t=NoNode, abstractMixedGraph *_T=NULL) throw (ERRejected)
abstractMixedGraphESP_DecompositionTree (TOptSeriesParallel options=ESP_DIRECTED, TNode s=NoNode, TNode t=NoNode) throw ()
bool IsPlanar (TMethPlanarity method=PLANAR_DEFAULT, TOptPlanarity options=PLANAR_MINOR) throw (ERRejected)
void GrowExteriorFace () throw (ERRejected)
void PlanarConnectivityAugmentation () throw (ERRejected)
void PlanarBiconnectivityAugmentation () throw (ERRejected)
void Triangulation () throw (ERRejected)
void RandomizeIncidenceOrder () throw (ERRejected)
void IncidenceOrderFromDrawing () throw (ERRejected)
bool PlanarizeIncidenceOrder (TMethPlanarity method=PLANAR_DEFAULT) throw (ERRejected)
TNode LMCOrderedPartition (TArc *cLeft, TArc *cRight, TNode *vRight) throw (ERRejected)
void Layout_ConvexDrawing (TArc aBasis=NoArc, TFloat spacing=0.0) throw (ERRejected)
void Layout_StraightLineDrawing (TArc aBasis=NoArc, TFloat spacing=0.0) throw (ERRejected)
void Layout_StaircaseDrawing (TArc aBasis=NoArc, TFloat spacing=0.0) throw (ERRejected)
void Layout_StaircaseTriconnected (TArc aBasis=NoArc, TFloat spacing=0.0) throw (ERRejected)
TNode PerfectEliminationOrder (TOptComplement complementarityMode=PERFECT_AS_IS) throw ()
bool IsChordal (TOptComplement complementarityMode=PERFECT_AS_IS) throw ()
TFloat MinTree (TNode root=NoNode) throw (ERRange,ERRejected)
TFloat MinTree (TMethMST method, TOptMST characteristic, TNode root=NoNode) throw (ERRange,ERRejected)
bool ExtractTree (TNode root, TOptMST characteristic=MST_PLAIN) throw (ERRejected)
bool ExtractTree (TArc *const pred, TNode root, TOptMST characteristic=MST_PLAIN) throw (ERRejected)
TFloat SteinerTree (const indexSet< TNode > &Terminals, TNode root=NoNode) throw (ERRange,ERRejected)
TFloat MaxFlow (TNode source, TNode target) throw (ERRange,ERRejected)
TFloat MaxFlow (TMethMXF method, TNode source, TNode target) throw (ERRange,ERRejected)
bool AdmissibleBFlow () throw ()
TFloat MinCostSTFlow (TNode source, TNode target) throw (ERRange,ERRejected)
TFloat MinCostSTFlow (TMethMCFST method, TNode source, TNode target) throw (ERRange,ERRejected)
TFloat MinCostBFlow (TMethMCF method=MCF_BF_DEFAULT) throw (ERRejected)
virtual TNode StableSet () throw ()
TNode Clique () throw ()
TNode VertexCover () throw ()
virtual TNode NodeColouring (TNode k=NoNode) throw ()
bool NCKempeExchange (TNode *nodeColour, TNode r, TNode x) throw (ERRange,ERRejected)
TNode CliqueCover (TNode k=NoNode) throw ()
TArc EdgeColouring (TArc k=NoNode) throw (ERRange)
TCap FeedbackArcSet () throw ()
void ImplicitOrientationFromDrawing () throw ()
bool ImplicitSTOrientation (TNode s=NoNode, TNode t=NoNode) throw (ERRejected)
virtual void ChinesePostman (bool adjustUCap) throw (ERRejected)
bool EulerianCycle (TArc *pred=NULL) throw (ERRejected)
TFloat TSP (TNode root=NoNode) throw (ERRange,ERRejected)
TFloat TSP (THeurTSP methHeur, TRelaxTSP methRelax1, TRelaxTSP methRelax2, TNode root=NoNode) throw (ERRange,ERRejected)
TFloat MaxCut (TNode s=NoNode, TNode t=NoNode) throw (ERRange)
TFloat MaxCut (TMethMaxCut method, TNode s=NoNode, TNode t=NoNode) throw (ERRange)
TFloat MXC_LocalSearch (TNode *nodeColour, TNode s=NoNode, TNode t=NoNode) throw (ERRange,ERRejected)
managedObjectBFlowToLP () throw ()
managedObjectVerticalCoordinatesModel (TNode *nodeLayer) throw ()
managedObjectHorizontalCoordinatesModel () throw ()
managedObjectStableSetToMIP () throw ()
virtual char * Display () const throw (ERRejected,ERFile)
void TextDisplay (TNode i=NoNode, TNode j=NoNode) const throw ()
void DisplayPath (TNode u, TNode v) throw (ERRange,ERRejected)
TFloat CutCapacity (TNode separator=NoNode) throw (ERCheck)
void ExportToXFig (const char *fileName) const throw (ERFile)
void ExportToTk (const char *fileName) const throw (ERFile)
void ExportToDot (const char *fileName) const throw (ERFile)
void ExportToAscii (const char *fileName, TOption format=0) const throw (ERFile)
template<>
bool GetLayoutParameter (TOptLayoutTokens token, int &value, TLayoutModel model) const throw ()
template<>
bool GetLayoutParameter (TOptLayoutTokens token, double &value, TLayoutModel model) const throw ()
template<>
bool GetLayoutParameter (TOptLayoutTokens token, char *&value, TLayoutModel model) const throw ()
template<>
bool SetLayoutParameter (TOptLayoutTokens token, const double value, TLayoutModel model) throw ()
template<>
bool SetLayoutParameter (TOptLayoutTokens token, const char *value, TLayoutModel model) throw ()

Protected Member Functions

goblinQueue< TNode, TFloat > * NewNodeHeap () throw (ERRejected)
goblinQueue< TArc, TFloat > * NewArcHeap () throw (ERRejected)
void SetExteriorArc (TArc a) throw (ERRange,ERRejected)
void AdjustDegrees (TArc a, TFloat lambda) throw (ERRange)
void ReadAllData (goblinImport &F) throw (ERParse)
virtual void ReadNNodes (goblinImport &F) throw (ERParse)
void ReadNArcs (goblinImport &F) throw (ERParse)
void ReadRepresentation (goblinImport &F) throw (ERParse)
void ReadGeometry (goblinImport &F) throw (ERParse)
void ReadRegisters (goblinImport &F) throw (ERParse)
void ReadSubgraph (goblinImport &F) throw (ERParse)
void ReadLayoutData (goblinImport &F) throw (ERParse)
TNode SPX_Dijkstra (TOptSPX characteristic, const indexSet< TArc > &EligibleArcs, const indexSet< TNode > &S, const indexSet< TNode > &T) throw (ERRange,ERRejected)
bool SPX_FIFOLabelCorrecting (TOptSPX characteristic, const indexSet< TArc > &EligibleArcs, TNode s, TNode t=NoNode) throw (ERRange,ERCheck)
bool SPX_BellmanFord (TOptSPX characteristic, const indexSet< TArc > &EligibleArcs, TNode s, TNode t=NoNode) throw (ERRange,ERCheck)
TFloat MST_Prim (TMethMST method, TOptMST characteristic, TNode root=NoNode) throw (ERRange,ERRejected)
TFloat MST_Edmonds (TOptMST characteristic, TNode root=NoNode) throw (ERRange,ERRejected)
TFloat MST_Kruskal (TOptMST characteristic, TNode root=NoNode) throw (ERRange,ERRejected)
TFloat STT_TrimLeaves (const indexSet< TNode > &Terminals, TArc *pred) throw ()
virtual TFloat STT_Heuristic (const indexSet< TNode > &Terminals, TNode root) throw (ERRange)
virtual TFloat STT_Enumerate (const indexSet< TNode > &Terminals, TNode root) throw (ERRange)
virtual TFloat TSP_Heuristic (abstractMixedGraph::THeurTSP method, TNode root) throw (ERRange,ERRejected)
TFloat TSP_HeuristicRandom () throw (ERRejected)
TFloat TSP_HeuristicInsert (THeurTSP method, TNode r=NoNode) throw (ERRange,ERRejected)
TFloat TSP_HeuristicTree (TNode r=NoNode) throw (ERRange,ERRejected)
TFloat TSP_LocalSearch (TArc *pred) throw (ERRejected)
bool TSP_NodeExchange (TArc *pred, TFloat limit=0) throw (ERRejected)
virtual TFloat TSP_SubOpt1Tree (abstractMixedGraph::TRelaxTSP method, TNode root, TFloat &bestUpper, bool branchAndBound) throw (ERRange)
virtual TFloat TSP_BranchAndBound (abstractMixedGraph::TRelaxTSP method, int nCandidates, TNode root, TFloat upperBound) throw (ERRejected)
virtual TFloat MXC_Heuristic (abstractMixedGraph::TMethMaxCut method, TNode s=NoNode, TNode t=NoNode) throw (ERRange,ERRejected)
TFloat MXC_HeuristicGRASP (TNode s=NoNode, TNode t=NoNode) throw (ERRange)
TFloat MXC_BranchAndBound (TNode s=NoNode, TNode t=NoNode, TFloat lowerBound=InfFloat) throw (ERRange)

Protected Attributes

disjointFamily< TNode > * partition
goblinQueue< TNode, TFloat > * nHeap
TFloatsDeg
TFloatsDegIn
TFloatsDegOut
TNode n
TNode ni
TArc m
TNodeface
TNode defaultSourceNode
TNode defaultTargetNode
TNode defaultRootNode
attributePool registers

Detailed Description

The base class for all kinds of graph objects.

This class declares the interfaces to any graph representation, layout data and registers (which save computational results). Based on these interfaces, the abstractMixedGraph class implements nearly all optimization and layout algorithms.

The graph nodes are indexed 0,1,..,N()-1, the arcs are indexed 0,1,..,2*M()-1 or 0,1,..,M()-1 depending on whether arc orientations are important or not. In the former case (which is the regular one), the indices 2*i and 2*i+1 refer to the two directions of the same edge.


Constructor & Destructor Documentation

abstractMixedGraph TNode  = 0,
TArc  = 0
throw ()
 

~abstractMixedGraph  )  throw () [virtual]
 


Member Function Documentation

unsigned long Allocated  )  const throw ()
 

Reimplemented from managedObject.

Reimplemented in abstractBalancedFNW, abstractBiGraph, abstractDiGraph, abstractGraph, layeredAuxNetwork, balancedFNW, balancedToBalanced, bigraphToDigraph, denseBiGraph, denseDiGraph, denseGraph, digraphToDigraph, graphToBalanced, mixedGraph, layeredShrNetwork, sparseBiGraph, sparseDiGraph, sparseGraph, and surfaceGraph.

void CheckLimits  )  throw (ERRejected)
 

Reimplemented in abstractBiGraph.

char * Display  )  const throw (ERRejected,ERFile) [virtual]
 

Unconditional display of graph objects.

This always generates some output, depending on the value of displayMode. Either TextDisplay() is called, or a trace file is written.

Reimplemented from managedObject.

bool GetLayoutParameter TOptLayoutTokens  token,
char *&  value,
TLayoutModel  model
const throw ()
 

bool GetLayoutParameter TOptLayoutTokens  token,
double &  value,
TLayoutModel  model
const throw ()
 

bool GetLayoutParameter TOptLayoutTokens  token,
int &  value,
TLayoutModel  model
const throw ()
 

goblinQueue< TArc, TFloat > * NewArcHeap  )  throw (ERRejected) [protected]
 

Create a priority queue to store arc indices in the range [0,1,..,m-1].

Returns:
A pointer to the new heap object
The concrete heap type depends on the context parameter methPQ

goblinQueue< TNode, TFloat > * NewNodeHeap  )  throw (ERRejected) [protected]
 

Create a priority queue to store graph node indices in the range [0,1,..,n-1].

Returns:
A pointer to the new heap object
The concrete heap type depends on the context parameter methPQ

bool SetLayoutParameter TOptLayoutTokens  token,
const char *  value,
TLayoutModel  model
throw ()
 

bool SetLayoutParameter TOptLayoutTokens  token,
const double  value,
TLayoutModel  model
throw ()
 


Field Documentation

TNode defaultRootNode [protected]
 

Default root node.

TNode defaultSourceNode [protected]
 

Default source node.

TNode defaultTargetNode [protected]
 

Default target node.

TNode* face [protected]
 

Array of dual incidences (faces left hand of an arc).

TArc m [protected]
 

Number of arcs (counting arc directions only oncce).

TNode n [protected]
 

Number of nodes.

goblinQueue<TNode,TFloat>* nHeap [protected]
 

Cached priority queue for the graph nodes.

TNode ni [protected]
 

Number of Interpolation Points.

disjointFamily<TNode>* partition [protected]
 

Partition of the node set (connected components, colourings).

attributePool registers [protected]
 

An attribute pool representing all potential solutions.

TFloat* sDeg [protected]
 

Explicit degree labels, counting all undirected edges.

TFloat* sDegIn [protected]
 

Explicit degree labels, counting all backward arcs.

TFloat* sDegOut [protected]
 

Explicit degree labels, counting all forward arcs.