Rooted graph
In mathematics, and, in particular, in graph theory, a rooted graph is a graph in which one vertex has been distinguished as the root.[1][2] Both directed and undirected versions of rooted graphs have been studied, and there are also variant definitions that allow multiple roots.
Rooted graphs may also be known (depending on their application) as pointed graphs or flow graphs. In some of the applications of these graphs, there is an additional requirement that the whole graph be reachable from the root vertex.
Variations
In topological graph theory, the notion of a rooted graph may be extended to consider multiple vertices or multiple edges as roots. The former are sometimes called vertex-rooted graphs in order to distinguish them from edge-rooted graphs in this context.[3] Graphs with multiple nodes designated as roots are also of some interest in combinatorics, in the area of random graphs.[4] These graphs are also called multiply rooted graphs.[5]
The terms rooted directed graph or rooted digraph also see variation in definitions. The obvious transplant is to consider a digraph rooted by identifying a particular node as root.[6][7] However, in computer science, these terms commonly refer to a narrower notion, namely a rooted directed graph is a digraph with a distinguished node r, such that there is a directed path from r to any node other than r.[8][9][10][11] Authors which give the more general definition, may refer to these as connected rooted digraphs,[6] or accessible rooted graphs (see § Set theory).
The Art of Computer Programming defines rooted digraphs slightly more broadly, namely a directed graph is called rooted if it has at least one node that can reach all the other nodes; Knuth notes that the notion thus defined is a sort of intermediate between the notions of strongly connected and connected digraph.[12]
Applications
Flow graphs
In computer science, rooted graphs in which the root vertex can reach all other vertices are called flow graphs or flowgraphs.[13] Sometimes an additional restriction is added specifying that a flow graph must have a single exit (sink) vertex as well.[14]
Flow graphs may be viewed as abstractions of flow charts, with the non-structural elements (node contents and types) removed.[15][16] Perhaps the best known sub-class of flow graphs are control flow graphs, used in compilers and program analysis. An arbitrary flow graph may converted to a control flow graph by performing an edge contraction on every edge that is the only outgoing edge from its source and the only incoming edge into its target.[17] Another type of flow graph commonly used is the call graph, in which nodes correspond to entire subroutines.[18]
The general notion of flow graph has been called program graph,[19] but the same term has also been used to denote only control flow graphs.[20] Flow graphs have also been called unlabeled flowgraphs,[21] and proper flowgraphs.[15] These graphs are sometimes used in software testing.[15][18]
When required to have a single exit, flow graphs have two properties not shared with directed graphs in general. Flow graphs can be nested, which is the equivalent of a subroutine call (although there is no notion of passing parameters), and flow graphs can also be sequenced, which is the equivalent of sequential execution of two pieces of code.[22] Prime flow graphs are defined as flow graphs that cannot be decomposed via nesting or sequencing using a chosen pattern of subgraphs, for example the primitives of structured programming.[23] Theoretical research has been done on determining, for example, the proportion of prime flow graphs given a chosen set of graphs.[24]
Set theory
Peter Aczel has used rooted directed graphs such that every node is reachable from the root (which he calls accessible pointed graphs) to formulate Aczel's anti-foundation axiom in non-well-founded set theory. In this context, each vertex of an accessible pointed graph models a (non-well-founded) set within Aczel's non-well-foundet set theory, and an arc from a vertex v to a vertex w models that v is an element of w. Aczel's anti-foundation axiom states that every accessible pointed graph models a family of (non-well-founded) sets in this way.[25]
Combinatorial game theory
Given a purely combinatorial game, there is an associated rooted directed graph whose vertices are game positions and whose edges are moves, and graph traversal starting from the root is used to create a game tree. If the graph contains directed cycles, then a position in the game could repeat infinitely many times, and rules are usually needed to prevent the game from continuing indefinitely. Otherwise, the graph is a directed acyclic graph, and if it isn't a rooted tree, then the game has transpositions. This graph and its topology is important in the study of game complexity, where the state-space complexity is the number of vertices in the graph, the average game length is the average number of vertices traversed from the root to a vertex with no direct successors, and the average branching factor of a game tree is the average outdegree of the graph.
Combinatorial enumeration
The number of rooted undirected graphs for 1, 2, ... nodes is 1, 2, 6, 20, 90, 544, ... (sequence A000666 in the OEIS)
Related concepts
A special case of interest are rooted trees, the trees with a distinguished root vertex. If the directed paths from the root in the rooted digraph are additionally restricted to be unique, then the notion obtained is that of (rooted) arborescence—the directed-graph equivalent of a rooted tree.[7] A rooted graph contains an arborescence with the same root if and only if the whole graph can be reached from the root, and computer scientists have studied algorithmic problems of finding optimal arborescences.[26]
Rooted graphs may be combined using the rooted product of graphs.[27]
See also
References
- ^ Zwillinger, Daniel (2011), CRC Standard Mathematical Tables and Formulae, 32nd Edition, CRC Press, p. 150, ISBN 978-1-4398-3550-0
- ^ Harary, Frank (1955), "The number of linear, directed, rooted, and connected graphs", Transactions of the American Mathematical Society, 78: 445–463, doi:10.1090/S0002-9947-1955-0068198-2, MR 0068198. See p. 454.
- ^ Gross, Jonathan L.; Yellen, Jay; Zhang, Ping (2013), Handbook of Graph Theory (2nd ed.), CRC Press, pp. 764–765, ISBN 978-1-4398-8018-0
- ^ Spencer, Joel (2001), The Strange Logic of Random Graphs, Springer Science & Business Media, chapter 4, ISBN 978-3-540-41654-8
- ^ Harary (1955, p. 455).
- ^ a b Björner, Anders; Ziegler, Günter M. (1992), "8. Introduction to greedoids" (PDF), in White, Neil (ed.), Matroid Applications, Encyclopedia of Mathematics and its Applications, vol. 40, Cambridge: Cambridge University Press, pp. 284–357, doi:10.1017/CBO9780511662041.009, ISBN 0-521-38165-7, MR 1165537, Zbl 0772.05026,
In this context a rooted digraph Δ = (V,E,r) is called connected (or 1-connected) if there is a directed path from the root to every vertex.
{{citation}}
: Invalid|ref=harv
(help) See in particular p. 307. - ^ a b Gordon, Gary; McMahon, Elizabeth (February 1989), "A greedoid polynomial which distinguishes rooted arborescences" (PDF), Proceedings of the American Mathematical Society, 107 (2): 287–287, CiteSeerX 10.1.1.308.2526, doi:10.1090/s0002-9939-1989-0967486-0,
A rooted subdigraph F is a rooted arborescence if the root vertex ∗ is in F and, for every vertex v in F, there is a unique directed path in F from ∗ to v. Thus, rooted arborescences in digraphs correspond to rooted trees in undirected graphs.
- ^ Ramachandran, Vijaya (1988), "Fast Parallel Algorithms for Reducible Flow Graphs", Concurrent Computations: 117–138, doi:10.1007/978-1-4684-5511-3_8,
A rooted directed graph or a flow graph G = (V, A, r) is a directed graph with a distinguished vertex r such that there is a directed path in G from r to every vertex v in V − r.
. See in particular p. 122. - ^ Okamoto, Yoshio; Nakamura, Masataka (2003), "The forbidden minor characterization of line-search antimatroids of rooted digraphs" (PDF), Discrete Applied Mathematics, 131 (2): 523–533, doi:10.1016/S0166-218X(02)00471-7,
A rooted digraph is a triple G=(V,E,r) where (V ∪ {r}, E) is a digraph and r is a specified vertex called the root such that there exists a path from r to every vertex of V.
. See in particular p. 524. - ^ Jain, Abhinandan (2010), Robot and Multibody Dynamics: Analysis and Algorithms, Springer Science & Business Media, p. 136, ISBN 978-1-4419-7267-5,
A rooted digraph is a connected digraph with a single root node that is the ancestor of every other node in the digraph.
- ^ Chen, Xujin (2004), "An Efficient Algorithm for Finding Maximum Cycle Packings in Reducible Flow Graphs" (PDF), Lecture Notes in Computer Science: 306–317, CiteSeerX 10.1.1.894.5261, doi:10.1007/978-3-540-30551-4_28, hdl:10722/48600,
A rooted directed graph or a flow graph is a digraph G with a distinguished vertex r, called its root, such that there is a path in G from r to every vertex in G.
. - ^ Knuth, Donald (1997), "2.3.4.2. Oriented trees", The Art of Computer Programming, vol. 1 (3rd ed.), Pearson Education, p. 372, ISBN 0-201-89683-4,
It is said to be rooted if there is at least one root, that is, at least one vertex R such that there is an oriented path from V to R for all V ≠ R.
- ^ Gross, Yellen & Zhang (2013, p. 1372).
- ^ Fenton, Norman Elliott; Hill, Gillian A. (1993), Systems Construction and Analysis: A Mathematical and Logical Framework, McGraw-Hill, p. 319, ISBN 978-0-07-707431-9.
- ^ a b c Zuse, Horst (1998), A Framework of Software Measurement, Walter de Gruyter, pp. 32–33, ISBN 978-3-11-080730-1
- ^ Samaroo, Angelina; Thompson, Geoff; Williams, Peter (2010), Software Testing: An ISTQB-ISEB Foundation Guide, BCS, The Chartered Institute, p. 108, ISBN 978-1-906124-76-2
- ^ Tarr, Peri L.; Wolf, Alexander L. (2011), Engineering of Software: The Continuing Contributions of Leon J. Osterweil, Springer Science & Business Media, p. 58, ISBN 978-3-642-19823-6
- ^ a b Jalote, Pankaj (1997), An Integrated Approach to Software Engineering, Springer Science & Business Media, p. 372, ISBN 978-0-387-94899-7
- ^ Thulasiraman, K.; Swamy, M. N. S. (1992), Graphs: Theory and Algorithms, John Wiley & Sons, p. 361, ISBN 978-0-471-51356-8
- ^ Cechich, Alejandra; Piattini, Mario; Vallecillo, Antonio (2003), Component-Based Software Quality: Methods and Techniques, Springer Science & Business Media, p. 105, ISBN 978-3-540-40503-0
- ^ Beineke, Lowell W.; Wilson, Robin J. (1997), Graph Connections: Relationships Between Graph Theory and Other Areas of Mathematics, Clarendon Press, p. 237, ISBN 978-0-19-851497-8
- ^ Fenton & Hill (1993, p. 323).
- ^ Fenton & Hill (1993, p. 339).
- ^ Cooper, C. (2008), "Asymptotic Enumeration of Predicate-Junction Flowgraphs", Combinatorics, Probability and Computing, 5 (3): 215, doi:10.1017/S0963548300001991
- ^ Aczel, Peter (1988), Non-well-founded sets., CSLI Lecture Notes, vol. 14, Stanford, CA: Stanford University, Center for the Study of Language and Information, ISBN 0-937073-22-9, MR 0940014
{{citation}}
: CS1 maint: url-status (link) - ^ Drescher, Matthew; Vetta, Adrian (2010), "An Approximation Algorithm for the Maximum Leaf Spanning Arborescence Problem", ACM Trans. Algorithms, 6 (3): 46:1–46:18, doi:10.1145/1798596.1798599.
- ^ Godsil, C. D.; McKay, B. D. (1978), "A new graph product and its spectrum" (PDF), Bull. Austral. Math. Soc., 18 (1): 21–28, doi:10.1017/S0004972700007760, MR 0494910
Further reading
- McMahon, Elizabeth W. (1993), "On the greedoid polynomial for rooted graphs and rooted digraphs", Journal of Graph Theory, 17 (3): 433–442, doi:10.1002/jgt.3190170316
- Gordon, Gary (2001), "A characteristic polynomial for rooted graphs and rooted digraphs", Discrete Mathematics, 232 (1–3): 19–33, doi:10.1016/S0012-365X(00)00186-2