Graph with at most one cycle per component
In graph theory, a pseudoforest is an undirected graph in which every connected component has at most one cycle. That is, it is a system of vertices and edges connecting pairs of vertices, such that no two cycles of consecutive edges share any vertex with each other, nor can any two cycles be connected to each other by a path of consecutive edges. A pseudotree is a connected pseudoforest.
The names are justified by analogy to the more commonly studied trees and forests. (A tree is a connected graph with no cycles; a forest is a disjoint union of trees.) Gabow and Tarjan attribute the study of pseudoforests to Dantzig's 1963 book on linear programming, in which pseudoforests arise in the solution of certain network flow problems. Pseudoforests also form graph-theoretic models of functions and occur in several algorithmic problems. Pseudoforests are sparse graphs – their number of edges is linearly bounded in terms of their number of vertices (in fact, they have at most as many edges as they have vertices) – and their matroid structure allows several other families of sparse graphs to be decomposed as unions of forests and pseudoforests. The name "pseudoforest" comes from .
Definitions and structure.
We define an undirected graph to be a set of vertices and edges such that each edge has two vertices (which may coincide) as endpoints. That is, we allow multiple edges (edges with the same pair of endpoints) and loops (edges whose two endpoints are the same vertex). A subgraph of a graph is the graph formed by any subsets of its vertices and edges such that each edge in the edge subset has both endpoints in the vertex subset.
A connected component of an undirected graph is the subgraph consisting of the vertices and edges that can be reached by following edges from a single given starting vertex. A graph is connected if every vertex or edge is reachable from every other vertex or edge. A cycle in an undirected graph is a connected subgraph in which each vertex is incident to exactly two edges, or is a loop.
A pseudoforest is an undirected graph in which each connected component contains at most one cycle. Equivalently, it is an undirected graph in which each connected component has no more edges than vertices. The components that have no cycles are just trees, while the components that have a single cycle within them are called 1-trees or unicyclic graphs. That is, a 1-tree is a connected graph containing exactly one cycle. A pseudoforest with a single connected component (usually called a pseudotree, although some authors define a pseudotree to be a 1-tree) is either a tree or a 1-tree; in general a pseudoforest may have multiple connected components as long as all of them are trees or 1-trees.
If one removes from a 1-tree one of the edges in its cycle, the result is a tree. Reversing this process, if one augments a tree by connecting any two of its vertices by a new edge, the result is a 1-tree; the path in the tree connecting the two endpoints of the added edge, together with the added edge itself, form the 1-tree's unique cycle. If one augments a 1-tree by adding an edge that connects one of its vertices to a newly added vertex, the result is again a 1-tree, with one more vertex; an alternative method for constructing 1-trees is to start with a single cycle and then repeat this augmentation operation any number of times. The edges of any 1-tree can be partitioned in a unique way into two subgraphs, one of which is a cycle and the other of which is a forest, such that each tree of the forest contains exactly one vertex of the cycle.
Certain more specific types of pseudoforests have also been studied.
A 1-forest, sometimes called a maximal pseudoforest, is a pseudoforest to which no more edges can be added without causing some component of the graph to contain multiple cycles. If a pseudoforest contains a tree as one of its components, it cannot be a 1-forest, for one can add either an edge connecting two vertices within that tree, forming a single cycle, or an edge connecting that tree to some other component. Thus, the 1-forests are exactly the pseudoforests in which every component is a 1-tree.
The spanning pseudoforests of an undirected graph "G" are the pseudoforest subgraphs of "G" that have all the vertices of "G". Such a pseudoforest need not have any edges, since for example the subgraph that has all the vertices of "G" and no edges is a pseudoforest (whose components are trees consisting of a single vertex).
The maximal pseudoforests of "G" are the pseudoforest subgraphs of "G" that are not contained within any larger pseudoforest of "G". A maximal pseudoforest of "G" is always a spanning pseudoforest, but not conversely. If "G" has no connected components that are trees, then its maximal pseudoforests are 1-forests, but if "G" does have a tree component, its maximal pseudoforests are not 1-forests. Stated precisely, in any graph "G" its maximal pseudoforests consist of every tree component of "G", together with one or more disjoint 1-trees covering the remaining vertices of "G".
Directed pseudoforests.
Versions of these definitions are also used for directed graphs. Like an undirected graph, a directed graph consists of vertices and edges, but each edge is directed from one of its endpoints to the other endpoint. A directed pseudoforest is a directed graph in which each vertex has at most one outgoing edge; that is, it has outdegree at most one. A directed 1-forest – most commonly called a functional graph (see below), sometimes maximal directed pseudoforest – is a directed graph in which each vertex has outdegree exactly one. If "D" is a directed pseudoforest, the undirected graph formed by removing the direction from each edge of "D" is an undirected pseudoforest.
Number of edges.
Every pseudoforest on a set of "n" vertices has at most "n" edges, and every maximal pseudoforest on a set of "n" vertices has exactly "n" edges. Conversely, if a graph "G" has the property that, for every subset "S" of its vertices, the number of edges in the induced subgraph of "S" is at most the number of vertices in "S", then "G" is a pseudoforest. 1-trees can be defined as connected graphs with equally many vertices and edges.
Moving from individual graphs to graph families, if a family of graphs has the property that every subgraph of a graph in the family is also in the family, and every graph in the family has at most as many edges as vertices, then the family contains only pseudoforests. For instance, every subgraph of a thrackle (a graph drawn so that every pair of edges has one point of intersection) is also a thrackle, so Conway's conjecture that every thrackle has at most as many edges as vertices can be restated as saying that every thrackle is a pseudoforest. A more precise characterization is that, if the conjecture is true, then the thrackles are exactly the pseudoforests with no four-vertex cycle and at most one odd cycle.
Streinu and Theran generalize the sparsity conditions defining pseudoforests: they define a graph as being ("k","l")-sparse if every nonempty subgraph with "n" vertices has at most "kn" − "l" edges, and ("k","l")-tight if it is ("k","l")-sparse and has exactly "kn" − "l" edges. Thus, the pseudoforests are the (1,0)-sparse graphs, and the maximal pseudoforests are the (1,0)-tight graphs. Several other important families of graphs may be defined from other values of "k" and "l",
and when "l" ≤ "k" the ("k","l")-sparse graphs may be characterized as the graphs formed as the edge-disjoint union of "l" forests and "k" − "l" pseudoforests.
Almost every sufficiently sparse random graph is pseudoforest. That is, if "c" is a constant with 0 ; "c" ; 1/2, and P"c"("n") is the probability that choosing uniformly at random among the "n"-vertex graphs with "cn" edges results in a pseudoforest, then P"c"("n") tends to one in the limit for large "n". However, for "c" ; 1/2, almost every random graph with "cn" edges has a large component that is not unicyclic.
Enumeration.
A graph is "simple" if it has no self-loops and no multiple edges with the same endpoints. The number of simple 1-trees with "n" labelled vertices is
formula_1
The values for "n" up to 300 can be found in sequence OEIS:  of the On-Line Encyclopedia of Integer Sequences.
The number of maximal directed pseudoforests on "n" vertices, allowing self-loops, is "nn", because for each vertex there are "n" possible endpoints for the outgoing edge. André Joyal used this fact to provide a bijective proof of Cayley's formula, that the number of undirected trees on "n" nodes is "n""n" − 2, by finding a bijection between maximal directed pseudoforests and undirected trees with two distinguished nodes. If self-loops are not allowed, the number of maximal directed pseudoforests is instead ("n" − 1)"n".
Graphs of functions.
Directed pseudoforests and endofunctions are in some sense mathematically equivalent. Any function ƒ from a set "X" to itself (that is, an endomorphism of "X") can be interpreted as defining a directed pseudoforest which has an edge from "x" to "y" whenever ƒ("x") = "y". The resulting directed pseudoforest is maximal, and may include self-loops whenever some value "x" has ƒ("x") = "x". Alternatively, omitting the self-loops produces a non-maximal pseudoforest. In the other direction, any maximal directed pseudoforest determines a function ƒ such that ƒ("x") is the target of the edge that goes out from "x", and any non-maximal directed pseudoforest can be made maximal by adding self-loops and then converted into a function in the same way. For this reason, maximal directed pseudoforests are sometimes called functional graphs. Viewing a function as a functional graph provides a convenient language for describing properties that are not as easily described from the function-theoretic point of view; this technique is especially applicable to problems involving iterated functions, which correspond to paths in functional graphs.
Cycle detection, the problem of following a path in a functional graph to find a cycle in it, has applications in cryptography and computational number theory, as part of Pollard's rho algorithm for integer factorization and as a method for finding collisions in cryptographic hash functions. In these applications, ƒ is expected to behave randomly; Flajolet and Odlyzko study the graph-theoretic properties of the functional graphs arising from randomly chosen mappings. In particular, a form of the birthday paradox implies that, in a random functional graph with "n" vertices, the path starting from a randomly selected vertex will typically loop back on itself to form a cycle within O(√"n") steps. Konyagin et al. have made analytical and computational progress on graph statistics.
Martin, Odlyzko, and Wolfram investigate pseudoforests that model the dynamics of cellular automata. These functional graphs, which they call "state transition diagrams", have one vertex for each possible configuration that the ensemble of cells of the automaton can be in, and an edge connecting each configuration to the configuration that follows it according to the automaton's rule. One can infer properties of the automaton from the structure of these diagrams, such as the number of components, length of limiting cycles, depth of the trees connecting non-limiting states to these cycles, or symmetries of the diagram. For instance, any vertex with no incoming edge corresponds to a Garden of Eden pattern and a vertex with a self-loop corresponds to a still life pattern.
Another early application of functional graphs is in the "trains" used to study Steiner triple systems. The train of a triple system is a functional graph having a vertex for each possible triple of symbols; each triple "pqr" is mapped by ƒ to "stu", where "pqs", "prt", and "qru" are the triples that belong to the triple system and contain the pairs "pq", "pr", and "qr" respectively. Trains have been shown to be a powerful invariant of triple systems although somewhat cumbersome to compute.
Bicircular matroid.
A matroid is a mathematical structure in which certain sets of elements are defined to be independent, in such a way that the independent sets satisfy properties modeled after the properties of linear independence in a vector space. One of the standard examples of a matroid is the graphic matroid in which the independent sets are the sets of edges in forests of a graph; the matroid structure