Bpp/Graph_problem Serial_parallel | C++ |
|  |
This module provides facilities for serial-parallel graphs. This section allows you to access the C++ source files of the module. This module is part of Bpp/Graph_problem . The files listed below are included in the interface part of the module. So any module dependent of this module is also dependent of the files listed here. The files listed below are needed by the implementation part of the module. But a module dependent of this module is not necessary dependent of the files listed here. The namespaces listed below are integrated in this module. That means any element declared in one of those namespaces can now be directly used by or from this module. The aliases listed below are only used internally by the interface. They are here just to lighten the writing of certain declarations. Never use them, they are local to the interface and can not be used outside of it. tdGraph = class prArcData,class prNodeData
tuGraph = prArcData,prNodeData
Here are listed the errors that are supported or generated by the module. To use one of them, you do not have to specify the namespace of the module. erArcGraphAssociationProblem Can not associate the arc with the graph.
erNotSerialParallel The graph is not serial-parallel.
erSplitNotFound Split of the tree not found.
Here are listed the functions provided by the module. To use one of them, you have to specify the namespace of the module. template <tdGraph> void associateTreeWithGraph(clBinaryTree<clSerialParallelData<tuGraph> > & agTree,clGraph<tuGraph> & agGraph) Associates a tree just read from a stream with a graph.
template <tdGraph> void findArcs(clBinaryTree<clSerialParallelData<tuGraph> > & agTree,std_vector(clArc<tuGraph> *) & agArcS) Lists all the arcs contained in a serial-parallel component. It stores them in a vector.
template <tdGraph> void findNodes(clBinaryTree<clSerialParallelData<tuGraph> > & agTree,std_vector(clNode<tuGraph> *) & agNodeS,clNode<tuGraph> ** agSourceNode,clNode<tuGraph> ** agTargetNode) Lists all the nodes contained in a serial-parallel component. It stores them in a vector, expect for the source and target nodes of the component that are collected separately in the two last arguments of the function.
template <tdGraph> clNode<tuGraph> * getTreeSourceNode(clBinaryTree<clSerialParallelData<tuGraph> > & agTree) Returns the source node of the serial-parallel component represented by a binary tree. If nil is returned, it means the tree is empty or invalid.
template <tdGraph> clNode<tuGraph> * getTreeTargetNode(clBinaryTree<clSerialParallelData<tuGraph> > & agTree) Returns the target node of the serial-parallel component represented by a binary tree. If nil is returned, it means the tree is empty or invalid.
template <tdGraph,class prTreeS> void postDecompose(std_vector(clBinaryTree<clSerialParallelData<tuGraph> > *) & agTreeS,prTreeS & agBreakerS,std_deque(prTreeS *) & agPieceD,std_deque(prTreeS *) & agBrokenD) After a graph has been decomposed into several series-parallel components, this function performs a post-process for future algorithms that will need to rebuild the original graph back from the series-parallel components. Supposing the series-parallel components are aggregated to form single arcs, nodes they hide may need to be revealed by splitting these very same arcs. This function proposes a splitting scenario so the original graph can be reconstructed by adding one by one the aggregated arcs, and keeping at each step the arcs as aggregated as possible.
template <tdGraph,class prTreeS> tyBoolean splitTree(clBinaryTree<clSerialParallelData<tuGraph> > & agTree,clNode<tuGraph> & agNode,prTreeS & agComponentS) Splits a serial-parallel component into several serial-parallel subcomponents so a given node it contains is not inside a component any more. It returns true if the splitting has indeed been performed.
Here are listed the classes provided by the module. To use one of them, you have to specify the namespace of the module. template <tdGraph> class clDecomposeAlgo
Represents an algorithm to decompose a graph into serial-parallel components. The components are trees that represent the serial-parallel structure of the graph. A node in these trees is either a serial operation, a parallel operation or an arc. If the graph is serial-parallel, there is only one generated tree. It is an abstract class. template <tdGraph> class clDecomposeAlgoI : public clDecomposeAlgo<tuGraph>
Represents the method I to decompose a graph into serial-parallel components. template <tdGraph> class clDecomposeAlgoII : public clDecomposeAlgo<tuGraph>
Represents the method II to decompose a graph into serial-parallel components. template <tdGraph> class clDecomposeAlgoIII : public clDecomposeAlgo<tuGraph>
Represents the method III to decompose a graph into serial-parallel components. template <tdGraph> class clSerialParallelData
Represents the data carried by a binary tree representing a serial-parallel component of a graph. type clArc<tuGraph> * cpArc Type of an arc.
enumeration { none , serial , parallel } tyOperation Enumeration of the construction operations.
cpArc arc() Pointer to an arc, if there is no operation. Reading and writing access.
tyOperation operation() Construction operation. Reading and writing access.
| | Copyright (c) 1999-2016 - Bruno Bachelet - bruno@nawouak.net - http://www.nawouak.net | Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation. See this license for more details (http://www.gnu.org). |
|
| |