Template:Short description Template:Stack Template:About

In mathematics, the transitive closure Template:Math of a homogeneous binary relation Template:Mvar on a set Template:Mvar is the smallest relation on Template:Mvar that contains Template:Mvar and is transitive. For finite sets, "smallest" can be taken in its usual sense, of having the fewest related pairs; for infinite sets Template:Math is the unique minimal transitive superset of Template:Math.

For example, if Template:Mvar is a set of airports and Template:Mvar means "there is a direct flight from airport Template:Mvar to airport Template:Mvar" (for Template:Mvar and Template:Mvar in Template:Mvar), then the transitive closure of Template:Mvar on Template:Mvar is the relation Template:Math such that Template:Math means "it is possible to fly from Template:Mvar to Template:Mvar in one or more flights".

More formally, the transitive closure of a binary relation Template:Mvar on a set Template:Mvar is the smallest (w.r.t. ⊆) transitive relation Template:Math on Template:Mvar such that Template:MvarTemplate:Math; see Template:Harvtxt. We have Template:Math = Template:Mvar if, and only if, Template:Mvar itself is transitive.

Conversely, transitive reduction adduces a minimal relation Template:Mvar from a given relation Template:Mvar such that they have the same closure, that is, Template:Math; however, many different Template:Mvar with this property may exist.

Both transitive closure and transitive reduction are also used in the closely related area of graph theory.

Transitive relations and examplesEdit

A relation R on a set X is transitive if, for all x, y, z in X, whenever Template:Nowrap and Template:Nowrap then Template:Nowrap. Examples of transitive relations include the equality relation on any set, the "less than or equal" relation on any linearly ordered set, and the relation "x was born before y" on the set of all people. Symbolically, this can be denoted as: if Template:Nowrap and Template:Nowrap then Template:Nowrap.

One example of a non-transitive relation is "city x can be reached via a direct flight from city y" on the set of all cities. Simply because there is a direct flight from one city to a second city, and a direct flight from the second city to the third, does not imply there is a direct flight from the first city to the third. The transitive closure of this relation is a different relation, namely "there is a sequence of direct flights that begins at city x and ends at city y". Every relation can be extended in a similar way to a transitive relation.

An example of a non-transitive relation with a less meaningful transitive closure is "x is the day of the week after y". The transitive closure of this relation is "some day x comes after a day y on the calendar", which is trivially true for all days of the week x and y (and thus equivalent to the Cartesian square, which is "x and y are both days of the week").

Existence and descriptionEdit

For any relation R, the transitive closure of R always exists. To see this, note that the intersection of any family of transitive relations is again transitive. Furthermore, there exists at least one transitive relation containing R, namely the trivial one: X × X. The transitive closure of R is then given by the intersection of all transitive relations containing R.

For finite sets, we can construct the transitive closure step by step, starting from R and adding transitive edges. This gives the intuition for a general construction. For any set X, we can prove that transitive closure is given by the following expression

<math>R^{+}=\bigcup_{i = 1}^{\infty} R^i.</math>

where <math>R^i</math> is the i-th power of R, defined inductively by

<math>R^1 = R</math>

and, for <math>i>0</math>,

<math>R^{i+1} = R \circ R^i</math>

where <math>\circ</math> denotes composition of relations.

To show that the above definition of R+ is the least transitive relation containing R, we show that it contains R, that it is transitive, and that it is the smallest set with both of those characteristics.

  • <math>R \subseteq R^{+}</math>: <math> R^+</math> contains all of the <math> R^i</math>, so in particular <math> R^+</math> contains <math> R</math>.
  • <math> R^{+}</math> is transitive: If <math>(s_1, s_2), (s_2, s_3)\in R^+</math>, then <math>(s_1, s_2)\in R^j</math> and <math>(s_2, s_3)\in R^k</math> for some <math>j,k</math> by definition of <math>R^+</math>. Since composition is associative, <math>R^{j+k} = R^j \circ R^k</math>; hence <math>(s_1, s_3)\in R^{j+k} \subseteq R^+</math> by definition of <math>\circ</math> and <math>R^+</math>.
  • <math>R^{+}</math> is minimal, that is, if <math>T</math> is any transitive relation containing <math>R</math>, then <math>R^{+} \subseteq T</math>: Given any such <math>T</math>, induction on <math>i</math> can be used to show <math>R^i\subseteq T</math> for all <math>i</math> as follows: Base: <math>R^1 = R \subseteq T</math> by assumption. Step: If <math>R^i\subseteq T</math> holds, and <math>(s_1, s_3)\in R^{i+1} = R \circ R^i</math>, then <math>(s_1, s_2) \in R</math> and <math>(s_2, s_3)\in R^i</math> for some <math>s_2</math>, by definition of <math>\circ</math>. Hence, <math>(s_1, s_2), (s_2, s_3)\in T</math> by assumption and by induction hypothesis. Hence <math>(s_1, s_3)\in T</math> by transitivity of <math>T</math>; this completes the induction. Finally, <math>R^i\subseteq T</math> for all <math>i</math> implies <math>R^{+} \subseteq T</math> by definition of <math>R^{+}</math>.

PropertiesEdit

The intersection of two transitive relations is transitive.

The union of two transitive relations need not be transitive. To preserve transitivity, one must take the transitive closure. This occurs, for example, when taking the union of two equivalence relations or two preorders. To obtain a new equivalence relation or preorder one must take the transitive closure (reflexivity and symmetry—in the case of equivalence relations—are automatic).

In graph theoryEdit

File:Transitive-closure.svg
Transitive closure constructs the output graph from the input graph.

In computer science, the concept of transitive closure can be thought of as constructing a data structure that makes it possible to answer reachability questions. That is, can one get from node a to node d in one or more hops? A binary relation tells you only that node a is connected to node b, and that node b is connected to node c, etc. After the transitive closure is constructed, as depicted in the following figure, in an O(1) operation one may determine that node d is reachable from node a. The data structure is typically stored as a Boolean matrix, so if matrix[1][4] = true, then it is the case that node 1 can reach node 4 through one or more hops.

The transitive closure of the adjacency relation of a directed acyclic graph (DAG) is the reachability relation of the DAG and a strict partial order.

File:Equivalentie.svg
A cluster graph, the transitive closure of an undirected graph

The transitive closure of an undirected graph produces a cluster graph, a disjoint union of cliques. Constructing the transitive closure is an equivalent formulation of the problem of finding the components of the graph.<ref>Template:Citation</ref>

In logic and computational complexityEdit

The transitive closure of a binary relation cannot, in general, be expressed in first-order logic (FO). This means that one cannot write a formula using predicate symbols R and T that will be satisfied in any model if and only if T is the transitive closure of R. In finite model theory, first-order logic (FO) extended with a transitive closure operator is usually called transitive closure logic, and abbreviated FO(TC) or just TC. TC is a sub-type of fixpoint logics. The fact that FO(TC) is strictly more expressive than FO was discovered by Ronald Fagin in 1974; the result was then rediscovered by Alfred Aho and Jeffrey Ullman in 1979, who proposed to use fixpoint logic as a database query language.<ref>(Libkin 2004:vii)</ref> With more recent concepts of finite model theory, proof that FO(TC) is strictly more expressive than FO follows immediately from the fact that FO(TC) is not Gaifman-local.<ref>(Libkin 2004:49)</ref>

In computational complexity theory, the complexity class NL corresponds precisely to the set of logical sentences expressible in TC. This is because the transitive closure property has a close relationship with the NL-complete problem STCON for finding directed paths in a graph. Similarly, the class L is first-order logic with the commutative, transitive closure. When transitive closure is added to second-order logic instead, we obtain PSPACE.

In database query languagesEdit

Template:Further Since the 1980s Oracle Database has implemented a proprietary SQL extension CONNECT BY... START WITH that allows the computation of a transitive closure as part of a declarative query. The SQL 3 (1999) standard added a more general WITH RECURSIVE construct also allowing transitive closures to be computed inside the query processor; as of 2011 the latter is implemented in IBM Db2, Microsoft SQL Server, Oracle, PostgreSQL, and MySQL (v8.0+). SQLite released support for this in 2014.

Datalog also implements transitive closure computations.<ref>(Silberschatz et al. 2010:C.3.6)</ref>

MariaDB implements Recursive Common Table Expressions, which can be used to compute transitive closures. This feature was introduced in release 10.2.2 of April 2016.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

AlgorithmsEdit

Efficient algorithms for computing the transitive closure of the adjacency relation of a graph can be found in Template:Harvtxt. Reducing the problem to multiplications of adjacency matrices achieves the time complexity of matrix multiplication,<ref>Template:Harvnb, Template:Harvnb</ref> <math>O(n^{2.3728596})</math>. However, this approach is not practical since both the constant factors and the memory consumption for sparse graphs are high Template:Harv. The problem can also be solved by the Floyd–Warshall algorithm in <math>O(n^3)</math>, or by repeated breadth-first search or depth-first search starting from each node of the graph.

For directed graphs, Purdom's algorithm solves the problem by first computing its condensation DAG and its transitive closure, then lifting it to the original graph. Its runtime is <math>O(m+\mu n)</math>, where <math>\mu</math> is the number of edges between its strongly connected components.<ref name=Purdom>Template:Cite journal</ref><ref>Template:Cite report</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>

More recent research has explored efficient ways of computing transitive closure on distributed systems based on the MapReduce paradigm.<ref>(Afrati et al. 2011)</ref>

See alsoEdit

ReferencesEdit

Template:Reflist

External linksEdit

Template:Order theory