Loading AI tools
From Wikipedia, the free encyclopedia
In graph theory, an interval graph is the intersection graph of a multiset of intervals on the real line. It has one vertex for each interval in the set, and an edge between every pair of vertices corresponding to intervals that overlap.
Let {I1, I2, ..., In} ⊂ P(R) be a set of intervals.
The corresponding interval graph is G = (V, E), where
From this construction one can verify a common property held by all interval graphs. That is, graph G is an interval graph if and only if the maximal cliques of G can be ordered M1, M2, ..., Mk such that for any v ∈ Mi ∩ Mk, where i < k, it is also the case that v ∈ Mj for any Mj, i ≤ j ≤ k,[1] i.e., there exists a linear order of its maximal cliques such that for each vertex v, all maximal cliques containing v are consecutive.
Several algorithms have been designed to recognize interval graphs in O(|V|+|E|) (linear) time. The original linear time recognition algorithm of Booth & Lueker (1976) is based on their complex PQ tree data structure, but Habib et al. (2000) showed how to solve the problem more simply using lexicographic breadth-first search, based on the fact that a graph is an interval graph if and only if it is chordal and its complement is a comparability graph.[1][2]
All of the algorithms above rely on seeking an ordering of the maximal cliques of G that is consecutive with respect to vertex inclusion, and the precomputation of all maximal cliques is required. A simpler off-line recognition algorithm was provided by W. L. Hsu (1992) which directly places the intervals without precomputing maximal cliques[3].
The algorithm consists of four main steps:
1 function CLO(G(V, E)): 2 ( ω-1(1), ω-1(2),..., ω-1(n) ) := sort V by their degree in descending order; 3 create a list L of sets with ( ω-1(1), ω-1(2),..., ω-1(n) ) as the only set in it; 4 /* each set in L is kept as a doubly linked list */ 5 for i := 1 to n do 6 begin 7 v := the first element of the first set in L; 8 remove v from L; 9 π(i) := v; 10 split each Lj ∈ L into { N(v) ∩ Lj || Lj \ N(v) }; 11 /* the ω order should remain inside each {N(v) ∩ Lj} and {Lj \ N(v)} */ 12 remove empty sets; 13 end 14 return ( π(1), π(2),..., π(n) );
1 function G construction((π(1), π(2),..., π(n)), (N(1), N(2),..., N(n))): // N(i) is the neighbor of π(i). 2 keep two arrays with n elements: initialize all n elements of count[n] to FALSE; initialize all n elements of largestN[n] to 0; 3 for i := 1 to n do 4 begin 5 for j := 1 to sizeof N(i) do: 6 begin 7 largestN[N(i)[j]] := i; 8 end 9 for j := 1 to sizeof N(i) do: 10 begin 11 if count[N(i)[j]] equals FALSE do: 12 count[N(i)[j]] := TRUE; 13 /* the vertices turned to TRUE in this iteration make up U(π(i)) = {u | f(u) = π(i)} */ 14 for k := [N(i)[j]] + 1 to n do: 15 begin 16 if largestN[k] != i do: 17 E" += (N(i)[j], k); 18 end 19 endif 20 end 21 end 22 return E";
17 E" += (N(i)[j], k);
1 if (connected[N(i)[j]] == TRUE) do 2 connected[k] = TRUE; 3 NewVertex[k] = NewVertex[N(i)[j]]; 4 endif 5 else if (connected[k] == TRUE) do 6 connected[N(i)[j]] = TRUE; 7 NewVertex[N(i)[j]] = NewVertex[k]; 8 end elseif 9 else do 10 connected[N(i)[j]] = connected[k] = TRUE; 11 NewVertex[N(i)[j]] = NewVertex[k] = counter++; 12 end else
Interval graphs are chordal graphs and hence perfect graphs.[1][2] Their complements belong to the class of comparability graphs,[4] and the comparability relations are precisely the interval orders.[1]
The interval graphs that have an interval representation in which every two intervals are either disjoint or nested are the trivially perfect graphs.
Proper interval graphs are interval graphs that have an interval representation in which no interval properly contains any other interval; unit interval graphs are the interval graphs that have an interval representation in which each interval has unit length. Every proper interval graph is a claw-free graph. However, the converse is not true. Every claw-free graph is not necessarily a proper interval graph.[5] If the collection of segments in question is a set, i.e., no repetitions of segments is allowed, then the graph is unit interval graph if and only if it is proper interval graph. [citation needed]
The intersection graphs of arcs of a circle form circular-arc graphs, a class of graphs that contains the interval graphs. The trapezoid graphs, intersections of trapezoids whose parallel sides all lie on the same two parallel lines, are also a generalization of the interval graphs.
The pathwidth of an interval graph is one less than the size of its maximum clique (or equivalently, one less than its chromatic number), and the pathwidth of any graph G is the same as the smallest pathwidth of an interval graph that contains G as a subgraph.[6]
The connected triangle-free interval graphs are exactly the caterpillar trees.[7]
The mathematical theory of interval graphs was developed with a view towards applications by researchers at the RAND Corporation's mathematics department, which included young researchers—such as Peter C. Fishburn and students like Alan C. Tucker and Joel E. Cohen—besides leaders—such as Delbert Fulkerson and (recurring visitor) Victor Klee.[8] Cohen applied interval graphs to mathematical models of population biology, specifically food webs.[9]
Other applications include genetics, bioinformatics, and computer science. Finding a set of intervals that represent an interval graph can also be used as a way of assembling contiguous subsequences in DNA mapping.[10] Interval graphs are used to represent resource allocation problems in operations research and scheduling theory. Each interval represents a request for a resource for a specific period of time; the maximum weight independent set problem for the graph represents the problem of finding the best subset of requests that can be satisfied without conflicts.[11] Interval graphs also play an important role in temporal reasoning.[12]
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.