Independent set (graph theory)
In graph theory, an independent set or stable set is a set of vertices in a graph, no two of which are adjacent. That is, it is a set I of vertices such that for every two vertices in I, there is no edge connecting the two. Equivalently, each edge in the graph has at most one endpoint in I. The size of an independent set is the number of vertices it contains. Independent sets have also been called internally stable sets.^{[1]}
A maximal independent set is either an independent set such that adding any other vertex to the set forces the set to contain an edge or the set of all vertices of the empty graph.
A maximum independent set is an independent set of largest possible size for a given graph G. This size is called the independence number of G, and denoted α(G).^{[2]} The problem of finding such a set is called the maximum independent set problem and is an NPhard optimization problem. As such, it is unlikely that there exists an efficient algorithm for finding a maximum independent set of a graph.
Every maximum independent set also is maximal, but the converse implication does not necessarily hold.
Contents
Properties
Covering/packingproblem pairs  



Relationship to other graph parameters
A set is independent if and only if it is a clique in the graph’s complement, so the two concepts are complementary. In fact, sufficiently large graphs with no large cliques have large independent sets, a theme that is explored in Ramsey theory.
A set is independent if and only if its complement is a vertex cover.^{[3]} Therefore, the sum of the size of the largest independent set α(G), and the size of a minimum vertex cover β(G), is equal to the number of vertices in the graph.
A vertex coloring of a graph G corresponds to a partition of its vertex set into independent subsets. Hence the minimal number of colors needed in a vertex coloring, the chromatic number χ(G), is at least the quotient of the number of vertices in G and the independent number α(G).
In a bipartite graph with no isolated vertices, the number of vertices in a maximum independent set equals the number of edges in a minimum edge covering; this is König's theorem.
Maximal independent set
An independent set that is not the subset of another independent set is called maximal. Such sets are dominating sets. Every graph contains at most 3^{n/3} maximal independent sets,^{[4]} but many graphs have far fewer. The number of maximal independent sets in nvertex cycle graphs is given by the Perrin numbers, and the number of maximal independent sets in nvertex path graphs is given by the Padovan sequence.^{[5]} Therefore, both numbers are proportional to powers of 1.324718, the plastic number.
Finding independent sets
In computer science, several computational problems related to independent sets have been studied.
 In the maximum independent set problem, the input is an undirected graph, and the output is a maximum independent set in the graph. If there are multiple maximum independent sets, only one need be output. This problem is sometimes referred to as "vertex packing".
 In the maximumweight independent set problem, the input is an undirected graph with weights on its vertices and the output is an independent set with maximum total weight. The maximum independent set problem is the special case in which all weights are one.
 In the maximal independent set listing problem, the input is an undirected graph, and the output is a list of all its maximal independent sets. The maximum independent set problem may be solved using as a subroutine an algorithm for the maximal independent set listing problem, because the maximum independent set must be included among all the maximal independent sets.
 In the independent set decision problem, the input is an undirected graph and a number k, and the output is a Boolean value: true if the graph contains an independent set of size k, and false otherwise.
The first three of these problems are all important in practical applications; the independent set decision problem is not, but is necessary in order to apply the theory of NPcompleteness to problems related to independent sets.
Maximum independent sets and maximum cliques
The independent set problem and the clique problem are complementary: a clique in G is an independent set in the complement graph of G and vice versa. Therefore, many computational results may be applied equally well to either problem. For example, the results related to the clique problem have the following corollaries:
 The independent set decision problem is NPcomplete, and hence it is not believed that there is an efficient algorithm for solving it.
 The maximum independent set problem is NPhard and it is also hard to approximate.
Despite the close relationship between maximum cliques and maximum independent sets in arbitrary graphs, the independent set and clique problems may be very different when restricted to special classes of graphs. For instance, for sparse graphs (graphs in which the number of edges is at most a constant times the number of vertices in any subgraph), the maximum clique has bounded size and may be found exactly in linear time;^{[6]} however, for the same classes of graphs, or even for the more restricted class of bounded degree graphs, finding the maximum independent set is MAXSNPcomplete, implying that, for some constant c (depending on the degree) it is NPhard to find an approximate solution that comes within a factor of c of the optimum.^{[7]}
Finding maximum independent sets
Exact algorithms
The maximum independent set problem is NPhard. However, it can be solved more efficiently than the O(n^{2} 2^{n}) time that would be given by a naive brute force algorithm that examines every vertex subset and checks whether it is an independent set.
An algorithm of Robson (1986) solves the problem in time O(1.2108^{n}) using exponential space. When restricted to polynomial space, there is a time O(1.2127^{n}) algorithm^{[8]} which improves upon a simpler O(1.2209^{n}) algorithm.^{[9]}
In some classes of graphs, including clawfree graphs and perfect graphs, the maximum independent set may be found in polynomial time.^{[10]}
In a bipartite graph, all nodes that are not in the minimum vertex cover can be included in maximum independent set; see König's theorem. Therefore, minimum vertex covers can be found using a bipartite matching algorithm.
Approximation algorithms
In general, the maximum independent set problem cannot be approximated to a constant factor in polynomial time (unless P = NP). In fact, Max Independent Set in general is PolyAPXcomplete, meaning it is as hard as any problem that can be approximated to a polynomial factor.^{[11]} However, there are efficient approximation algorithms for restricted classes of graphs.
In planar graphs, the maximum independent set may be approximated to within any approximation ratio c < 1 in polynomial time; similar polynomialtime approximation schemes exist in any family of graphs closed under taking minors.^{[12]}
In bounded degree graphs, effective approximation algorithms are known with approximation ratios that are constant for a fixed value of the maximum degree; for instance, a greedy algorithm that forms a maximal independent set by, at each step, choosing the minimum degree vertex in the graph and removing its neighbors, achieves an approximation ratio of (Δ+2)/3 on graphs with maximum degree Δ.^{[13]} Indeed, even Max Independent Set on 3regular 3edgecolorable graphs is APXcomplete.^{[14]}
Independent sets in interval intersection graphs
An interval graph is a graph in which the nodes are 1dimensional intervals (e.g. time intervals) and there is an edge between two intervals iff they intersect. An independent set in an interval graph is just a set of nonoverlapping intervals. The problem of finding maximum independent sets in interval graphs has been studied, for example, in the context of job scheduling: given a set of jobs that has to be executed on a computer, find a maximum set of jobs that can be executed without interfering with each other. This problem can be solved exactly in polynomial time using earliest deadline first scheduling.
Independent sets in geometric intersection graphs
A geometric intersection graph is a graph in which the nodes are geometric shapes and there is an edge between two shapes iff they intersect. An independent set in a geometric intersection graph is just a set of disjoint (nonoverlapping) shapes. The problem of finding maximum independent sets in geometric intersection graphs has been studied, for example, in the context of Automatic label placement: given a set of locations in a map, find a maximum set of disjoint rectangular labels near these locations.
Finding a maximum independent set in intersection graphs is still NPcomplete, but it is easier to approximate than the general maximum independent set problem. A recent survey can be found in the introduction of Chan & HarPeled (2012).
Finding maximal independent sets
The problem of finding a maximal independent set can be solved in polynomial time by a trivial greedy algorithm.^{[15]} All maximal independent sets can be found in time O(3^{n/3}) = O(1.4423^{n}).
Software for searching maximum independent set
Name  License  API language  Brief info 

igraph  GPL  C, Python, R, Ruby  exact solution. "The current implementation was ported to igraph from the Very Nauty Graph Library by Keith Briggs and uses the algorithm from the paper S. Tsukiyama, M. Ide, H. Ariyoshi and I. Shirawaka. A new algorithm for generating all the maximal independent sets. SIAM J Computing, 6:505517, 1977". 
NetworkX  BSD  Python  approximate solution, see the routine maximum_independent_set 
OpenOpt  BSD  Python  exact and approximate solutions, possibility to specify nodes that have to be included / excluded; see STAB class for more details and examples 
See also
 An independent set of edges is a set of edges of which no two have a vertex in common. It is usually called a matching.
 A vertex coloring is a partition of the vertex set into independent sets.
Notes
 ↑ Korshunov (1974)
 ↑ Godsil & Royle (2001), p. 3.
 ↑ PROOF: A set V of vertices is an independent set IFF every edge in the graph is adjacent to at most one member of V IFF every edge in the graph is adjacent to at least one member not in V IFF the complement of V is a vertex cover.
 ↑ Moon & Moser (1965).
 ↑ Füredi (1987).
 ↑ Chiba & Nishizeki (1985).
 ↑ Berman & Fujito (1995).
 ↑ Bourgeois et al. (2010)
 ↑ Fomin, Grandoni & Kratsch (2009)
 ↑ For clawfree graphs, see Sbihi (1980). For perfect graphs, see Grötschel, Lovász & Schrijver (1988).
 ↑ Bazgan, Cristina; Escoffier, Bruno; Paschos, Vangelis Th. (2005). "Completeness in standard and differential approximation classes: Poly(D)APX and (D)PTAScompleteness". Theoretical Computer Science. 339 (23): 272–292. doi:10.1016/j.tcs.2005.03.007.
 ↑ Baker (1994); Grohe (2003).
 ↑ Halldórsson & Radhakrishnan (1997).
 ↑ Chlebík, Miroslav; Chlebíková, Janka (2003). "Approximation Hardness for Small Occurrence Instances of NPHard Problems". Proceedings of the 5th International Conference on Algorithms and Complexity.
 ↑ Luby (1986).
References
 Baker, Brenda S. (1994), "Approximation algorithms for NPcomplete problems on planar graphs", Journal of the ACM, 41 (1): 153–180, doi:10.1145/174644.174650.
 Berman, Piotr; Fujito, Toshihiro (1995), "On approximation properties of the Independent set problem for degree 3 graphs", Workshop on Algorithms and Data Structures, Lecture Notes in Computer Science, 955, SpringerVerlag, pp. 449–460, doi:10.1007/3540602208_84.
 Bourgeois, Nicolas; Escoffier, Bruno; Paschos, Vangelis Th.; van Rooij, Johan M. M. (2010), "A bottomup method and fast algorithms for MAX INDEPENDENT SET", Algorithm theory—SWAT 2010, Lecture Notes in Computer Science, 6139, Berlin: Springer, pp. 62–73, MR 2678485, doi:10.1007/9783642137310_7.
 Chan, T. M. (2003), "Polynomialtime approximation schemes for packing and piercing fat objects", Journal of Algorithms, 46 (2): 178–189, doi:10.1016/s01966774(02)002948
 Chan, T. M.; HarPeled, S. (2012), "Approximation algorithms for maximum independent set of pseudodisks", Discrete & Computational Geometry, 48 (2): 373, doi:10.1007/s0045401294175
 Chiba, N.; Nishizeki, T. (1985), "Arboricity and subgraph listing algorithms", SIAM Journal on Computing, 14 (1): 210–223, doi:10.1137/0214017.
 Erlebach, T.; Jansen, K.; Seidel, E. (2005), "PolynomialTime Approximation Schemes for Geometric Intersection Graphs", SIAM Journal on Computing, 34 (6): 1302, doi:10.1137/s0097539702402676
 Fomin, Fedor V.; Grandoni, Fabrizio; Kratsch, Dieter (2009), "A measure & conquer approach for the analysis of exact algorithms", Journal of ACM, 56 (5): 1–32, doi:10.1145/1552285.1552286, article no. 25.
 Füredi, Z. (1987), "The number of maximal independent sets in connected graphs", Journal of Graph Theory, 11 (4): 463–470, doi:10.1002/jgt.3190110403.
 Godsil, Chris; Royle, Gordon (2001), Algebraic Graph Theory, New York: Springer, ISBN 0387952209.
 Grohe, Martin (2003), "Local treewidth, excluded minors, and approximation algorithms", Combinatorica, 23 (4): 613–632, doi:10.1007/s0049300300379.
 Grötschel, M.; Lovász, L.; Schrijver, A. (1988), "9.4 Coloring Perfect Graphs", Geometric Algorithms and Combinatorial Optimization, Algorithms and Combinatorics, 2, Springer–Verlag, pp. 296–298, ISBN 038713624X.
 Halldórsson, M. M.; Radhakrishnan, J. (1997), "Greed is good: Approximating independent sets in sparse and boundeddegree graphs", Algorithmica, 18 (1): 145–163, doi:10.1007/BF02523693.
 Luby, Michael (1986), "A simple parallel algorithm for the maximal independent set problem", SIAM Journal on Computing, 15 (4): 1036–1053, MR 861369, doi:10.1137/0215074.
 Moon, J. W.; Moser, Leo (1965), "On cliques in graphs", Israel Journal of Mathematics, 3 (1): 23–28, MR 0182577, doi:10.1007/BF02760024.
 Robson, J. M. (1986), "Algorithms for maximum independent sets", Journal of Algorithms, 7 (3): 425–440, doi:10.1016/01966774(86)900325.
 Sbihi, Najiba (1980), "Algorithme de recherche d'un stable de cardinalité maximum dans un graphe sans étoile", Discrete Mathematics (in French), 29 (1): 53–76, MR 553650, doi:10.1016/0012365X(90)90287R .
 Korshunov, A.D. (1974), "Coefficient of Internal Stability", Kibernetika (in Ukrainian), 10 (1): 17–28, doi:10.1007/BF01069014 .