In graph theory, an **independent set**, **stable set**, **coclique** or **anticlique ** is a set of vertices in a graph, no two of which are adjacent. That is, it is a set of vertices such that for every two vertices in , there is no edge connecting the two. Equivalently, each edge in the graph has at most one endpoint in . The size of an independent set is the number of vertices it contains. Independent sets have also been called internally stable sets.^{ [1] }

- Properties
- Relationship to other graph parameters
- Maximal independent set
- Finding independent sets
- Maximum independent sets and maximum cliques
- Finding maximum independent sets
- Finding maximal independent sets
- Software for searching maximum independent set
- Applications
- See also
- Notes
- References
- External links

A maximal independent set is an independent set that is not a proper subset of any other independent set.

A **maximum independent set** is an independent set of largest possible size for a given graph . This size is called the **independence number** of *, and denoted .*^{ [2] } The problem of finding such a set is called the **maximum independent set problem** and is an NP-hard 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.

Covering/packing-problem pairs | ||||||||
---|---|---|---|---|---|---|---|---|

| ||||||||

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 and the size of a minimum vertex cover is equal to the number of vertices in the graph.

A vertex coloring of a graph 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*, is at least the quotient of the number of vertices in and the independent number .

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.

An independent set that is not a proper 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 *n*-vertex cycle graphs is given by the Perrin numbers, and the number of maximal independent sets in *n*-vertex path graphs is given by the Padovan sequence.^{ [5] } Therefore, both numbers are proportional to powers of 1.324718..., the plastic number.

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
**maximum-weight 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 NP-completeness to problems related to independent sets.

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 NP-complete, and hence it is not believed that there is an efficient algorithm for solving it.
- The maximum independent set problem is NP-hard 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 MAXSNP-complete, implying that, for some constant *c* (depending on the degree) it is NP-hard to find an approximate solution that comes within a factor of *c* of the optimum.^{ [7] }

The maximum independent set problem is NP-hard. 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.

As of 2017 it can be solved in time O(1.1996^{n}) using polynomial space.^{ [8] } When restricted to graphs with maximum degree 3, it can be solved in time O(1.0836^{n}).^{ [9] }

For many classes of graphs, a maximum weight independent set may be found in polynomial time. Famous examples are claw-free graphs,^{ [10] }*P*_{5}-free graphs^{ [11] } and perfect graphs.^{ [12] } For chordal graphs, a maximum weight independent set can be found in linear time.^{ [13] }

Modular decomposition is a good tool for solving the maximum weight independent set problem; the linear time algorithm on cographs is the basic example for that. Another important tool are clique separators as described by Tarjan.^{ [14] }

Kőnig's theorem implies that in a bipartite graph the maximum independent set can be found in polynomial time using a bipartite matching algorithm.

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 Poly-APX-complete, meaning it is as hard as any problem that can be approximated to a polynomial factor.^{ [15] } 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 polynomial-time approximation schemes exist in any family of graphs closed under taking minors.^{ [16] }

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 Δ.^{ [17] } Approximation hardness bounds for such instances were proven in Berman & Karpinski (1999). Indeed, even Max Independent Set on 3-regular 3-edge-colorable graphs is APX-complete.^{ [18] }

An interval graph is a graph in which the nodes are 1-dimensional 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 non-overlapping 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.

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 (non-overlapping) 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 NP-complete, but it is easier to approximate than the general maximum independent set problem. A recent survey can be found in the introduction of Chan & Har-Peled (2012).

The problem of finding a maximal independent set can be solved in polynomial time by a trivial greedy algorithm.^{ [19] } All maximal independent sets can be found in time O(3^{n/3}) = O(1.4423^{n}).

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:505–517, 1977". |

LightGraphs | MIT | Julia | exact solution. See the documentation for more details. |

NetworkX | BSD | Python | approximate solution, see the routine maximum_independent_set |

mis | Open | Rust (binaries) | approximate solution by random sampling of maximal independent set space, see web page for more details |

The maximum independent set and its dual, the minimum vertex cover problem, is involved in proving the computational complexity of many theoretical problems.^{ [20] } They also serve as useful models for real world optimization problems, for example minimum independent set is a useful model for discovering stable genetic components for designing engineered genetic systems.^{ [21] }

- 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.

- ↑ 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).
- ↑ Xiao & Nagamochi (2017)
- ↑ Xiao & Nagamochi (2013)
- ↑ Minty (1980),Sbihi (1980),Nakamura & Tamura (2001),Faenza, Oriolo & Stauffer (2014),Nobili & Sassano (2015)
- ↑ Lokshtanov, Vatshelle & Villanger (2014)
- ↑ Grötschel, Lovász & Schrijver (1988)
- ↑ Frank (1976)
- ↑ Tarjan (1985)
- ↑ Bazgan, Cristina; Escoffier, Bruno; Paschos, Vangelis Th. (2005). "Completeness in standard and differential approximation classes: Poly-(D)APX- and (D)PTAS-completeness".
*Theoretical Computer Science*.**339**(2–3): 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 NP-Hard Problems".
*Proceedings of the 5th International Conference on Algorithms and Complexity*. Lecture Notes in Computer Science.**2653**: 152–164. doi:10.1007/3-540-44849-7_21. ISBN 978-3-540-40176-6. - ↑ Luby (1986).
- ↑ Skiena, Steven S. (2012).
*The algorithm design manual*. Springer. ISBN 978-1-84800-069-8. OCLC 820425142. - ↑ Hossain, Ayaan; Lopez, Eriberto; Halper, Sean M.; Cetnar, Daniel P.; Reis, Alexander C.; Strickland, Devin; Klavins, Eric; Salis, Howard M. (2020-07-13). "Automated design of thousands of nonrepetitive parts for engineering stable genetic systems".
*Nature Biotechnology*: 1–10. doi:10.1038/s41587-020-0584-2. ISSN 1546-1696. PMID 32661437. S2CID 220506228.

In computer science, the **clique problem** is the computational problem of finding cliques in a graph. It has several different formulations depending on which cliques, and what information about the cliques, should be found. Common formulations of the clique problem include finding a maximum clique, finding a maximum weight clique in a weighted graph, listing all maximal cliques, and solving the decision problem of testing whether a graph contains a clique larger than a given size.

In graph theory, **graph coloring** is a special case of graph labeling; it is an assignment of labels traditionally called "colors" to elements of a graph subject to certain constraints. In its simplest form, it is a way of coloring the vertices of a graph such that no two adjacent vertices are of the same color; this is called a **vertex coloring**. Similarly, an edge coloring assigns a color to each edge so that no two adjacent edges are of the same color, and a **face coloring** of a planar graph assigns a color to each face or region so that no two faces that share a boundary have the same color.

In the mathematical area of graph theory, a **clique** is a subset of vertices of an undirected graph such that every two distinct vertices in the clique are adjacent; that is, its induced subgraph is complete. Cliques are one of the basic concepts of graph theory and are used in many other mathematical problems and constructions on graphs. Cliques have also been studied in computer science: the task of finding whether there is a clique of a given size in a graph is NP-complete, but despite this hardness result, many algorithms for finding cliques have been studied.

In the mathematical discipline of graph theory, a **vertex cover** of a graph is a set of vertices that includes at least one endpoint of every edge of the graph. The problem of finding a **minimum vertex cover** is a classical optimization problem in computer science and is a typical example of an NP-hard optimization problem that has an approximation algorithm. Its decision version, the **vertex cover problem**, was one of Karp's 21 NP-complete problems and is therefore a classical NP-complete problem in computational complexity theory. Furthermore, the vertex cover problem is fixed-parameter tractable and a central problem in parameterized complexity theory.

In the mathematical discipline of graph theory, a **matching** or **independent edge set** in a graph is a set of edges without common vertices. Finding a matching in a bipartite graph can be treated as a network flow problem.

In the mathematical area of graph theory, a **chordal graph** is one in which all cycles of four or more vertices have a *chord*, which is an edge that is not part of the cycle but connects two vertices of the cycle. Equivalently, every induced cycle in the graph should have exactly three vertices. The chordal graphs may also be characterized as the graphs that have perfect elimination orderings, as the graphs in which each minimal separator is a clique, and as the intersection graphs of subtrees of a tree. They are sometimes also called **rigid circuit graphs** or **triangulated graphs**.

In graph theory, a **cograph**, or **complement-reducible graph**, or ** P_{4}-free graph**, is a graph that can be generated from the single-vertex graph

In graph theory, a **dominating set** for a graph *G* = (*V*, *E*) is a subset *D* of *V* such that every vertex not in *D* is adjacent to at least one member of *D*. The **domination number** γ(*G*) is the number of vertices in a smallest dominating set for *G*.

In graph theory, a **domatic partition** of a graph is a partition of into disjoint sets , ,..., such that each *V _{i}* is a dominating set for

In graph theory, a **maximal independent set** (MIS) or **maximal stable set** is an independent set that is not a subset of any other independent set. In other words, there is no vertex outside the independent set that may join it because it is maximal with respect to the independent set property.

In the mathematical discipline of graph theory, a **feedback vertex set** of a graph is a set of vertices whose removal leaves a graph without cycles. In other words, each feedback vertex set contains at least one vertex of any cycle in the graph. The **feedback vertex set problem** is an NP-complete problem in computational complexity theory. It was among the first problems shown to be NP-complete. It has wide applications in operating systems, database systems, and VLSI chip design.

In graph theory, a **connected dominating set** and a **maximum leaf spanning tree** are two closely related structures defined on an undirected graph.

In graph theory and theoretical computer science, a **maximum common induced subgraph** of two graphs *G* and *H* is a graph that is an induced subgraph of both *G* and *H*, and that has as many vertices as possible.

In graph theory, a **path decomposition** of a graph *G* is, informally, a representation of *G* as a "thickened" path graph, and the **pathwidth** of *G* is a number that measures how much the path was thickened to form *G*. More formally, a path-decomposition is a sequence of subsets of vertices of *G* such that the endpoints of each edge appear in one of the subsets and such that each vertex appears in a contiguous subsequence of the subsets, and the pathwidth is one less than the size of the largest set in such a decomposition. Pathwidth is also known as **interval thickness**, **vertex separation number**, or **node searching number**.

In graph theory, **boxicity** is a graph invariant, introduced by Fred S. Roberts in 1969.

In graph theory, an area of mathematics, a **claw-free graph** is a graph that does not have a claw as an induced subgraph.

In graph theory, a **clique cover** or **partition into cliques** of a given undirected graph is a partition of the vertices of the graph into cliques, subsets of vertices within which every two vertices are adjacent. A **minimum clique cover** is a clique cover that uses as few cliques as possible. The minimum *k* for which a clique cover exists is called the **clique cover number** of the given graph.

In graph theory and theoretical computer science, the **longest path problem** is the problem of finding a simple path of maximum length in a given graph. A path is called simple if it does not have any repeated vertices; the length of a path may either be measured by its number of edges, or by the sum of the weights of its edges. In contrast to the shortest path problem, which can be solved in polynomial time in graphs without negative-weight cycles, the longest path problem is NP-hard and the decision version of the problem, which asks whether a path exists of at least some given length, is NP-complete. This means that the decision problem cannot be solved in polynomial time for arbitrary graphs unless P = NP. Stronger hardness results are also known showing that it is difficult to approximate. However, it has a linear time solution for directed acyclic graphs, which has important applications in finding the critical path in scheduling problems.

For a graph, a **maximum cut** is a cut whose size is at least the size of any other cut. That is, it is a partition of the graph's vertices into two complementary sets *S* and *T*, such that the number of edges between the set *S* and the set *T* is as large as possible. The problem of finding a maximum cut in a graph is known as the **Max-Cut Problem.**

In combinatorial optimization, the **matroid parity problem** is a problem of finding the largest independent set of paired elements in a matroid. The problem was formulated by Lawler (1976) as a common generalization of graph matching and matroid intersection. It is also known as polymatroid matching, or the **matchoid problem**.

- Baker, Brenda S. (1994), "Approximation algorithms for NP-complete problems on planar graphs",
*Journal of the ACM*,**41**(1): 153–180, doi:10.1145/174644.174650, S2CID 9706753 . - 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**, Springer-Verlag, pp. 449–460, doi:10.1007/3-540-60220-8_84, ISBN 978-3-540-60220-0 . - Berman, Piotr; Karpinski, Marek (1999), "On some tighter inapproximability results",
*Automata, Languages and Programming, 26th International Colloquium, ICALP'99 Prague*, Lecture Notes in Computer Science,**1644**, Prague: Springer-Verlag, pp. 200–209, doi:10.1007/3-540-48523-6, ISBN 978-3-540-66224-2, S2CID 23288736 - Bourgeois, Nicolas; Escoffier, Bruno; Paschos, Vangelis Th.; van Rooij, Johan M. M. (2010), "A bottom-up method and fast algorithms for MAX INDEPENDENT SET",
*Algorithm theory—SWAT 2010*, Lecture Notes in Computer Science,**6139**, Berlin: Springer, pp. 62–73, Bibcode:2010LNCS.6139...62B, doi:10.1007/978-3-642-13731-0_7, ISBN 978-3-642-13730-3, MR 2678485 . - Chan, T. M. (2003), "Polynomial-time approximation schemes for packing and piercing fat objects",
*Journal of Algorithms*,**46**(2): 178–189, CiteSeerX 10.1.1.21.5344 , doi:10.1016/s0196-6774(02)00294-8 . - Chan, T. M.; Har-Peled, S. (2012), "Approximation algorithms for maximum independent set of pseudo-disks",
*Discrete & Computational Geometry*,**48**(2): 373, arXiv: 1103.1431 , CiteSeerX 10.1.1.219.2131 , doi:10.1007/s00454-012-9417-5, S2CID 38183751 . - 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), "Polynomial-Time Approximation Schemes for Geometric Intersection Graphs",
*SIAM Journal on Computing*,**34**(6): 1302, doi:10.1137/s0097539702402676 . - Faenza, Y.; Oriolo, G.; Stauffer, G. (2014), "Solving the Weighted Stable Set Problem in Claw-Free Graphs",
*Journal of the ACM*,**61**(4): 1–41, doi:10.1145/2629600, S2CID 1995056 . - Fomin, Fedor V.; Grandoni, Fabrizio; Kratsch, Dieter (2009), "A measure & conquer approach for the analysis of exact algorithms",
*Journal of the ACM*,**56**(5): 1–32, doi:10.1145/1552285.1552286, S2CID 1186651, article no. 25. - Frank, Andras (1976), "Some polynomial algorithms for certain graphs and hypergraphs",
*Congressus Numerantium*,**XV**: 211–226. - 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 978-0-387-95220-8 . - Grohe, Martin (2003), "Local tree-width, excluded minors, and approximation algorithms",
*Combinatorica*,**23**(4): 613–632, arXiv: math/0001128 , doi:10.1007/s00493-003-0037-9, S2CID 11751235 . - 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 978-0-387-13624-0 . - Halldórsson, M. M.; Radhakrishnan, J. (1997), "Greed is good: Approximating independent sets in sparse and bounded-degree graphs",
*Algorithmica*,**18**(1): 145–163, CiteSeerX 10.1.1.145.4523 , doi:10.1007/BF02523693, S2CID 4661668 . - Korshunov, A.D. (1974), "Coefficient of Internal Stability",
*Kibernetika*(in Ukrainian),**10**(1): 17–28, doi:10.1007/BF01069014, S2CID 120343511 . - Lokshtanov, D.; Vatshelle, M.; Villanger, Y. (2014), "Independent sets in
*P*_{5}-free graphs in polynomial time",*SODA (Symposium on Discrete Algorithms)*: 570–581. - Luby, Michael (1986), "A simple parallel algorithm for the maximal independent set problem",
*SIAM Journal on Computing*,**15**(4): 1036–1053, CiteSeerX 10.1.1.225.5475 , doi:10.1137/0215074, MR 0861369 . - Minty, G.J. (1980), "On maximal independent sets of vertices in claw-free graphs",
*Journal of Combinatorial Theory, Series B*,**28**(3): 284–304, doi:10.1016/0095-8956(80)90074-x . - Moon, J.W.; Moser, Leo (1965), "On cliques in graphs",
*Israel Journal of Mathematics*,**3**(1): 23–28, doi:10.1007/BF02760024, MR 0182577, S2CID 9855414 . - Nakamura, D.; Tamura, A. (2001), "A revision of Minty's algorithm for finding a maximum weight stable set in a claw-free graph",
*Journal of Operations Research Society Japan*,**44**: 194–204, doi: 10.15807/jorsj.44.194 . - Nobili, P.; Sassano, A. (2015),
*An O(n^2 log n) algorithm for the weighted stable set problem in claw-free graphs*, arXiv: 1501.05775 , Bibcode:2015arXiv150105775N - Robson, J. M. (1986), "Algorithms for maximum independent sets",
*Journal of Algorithms*,**7**(3): 425–440, doi:10.1016/0196-6774(86)90032-5 . - 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, doi:10.1016/0012-365X(90)90287-R, MR 0553650 . - Xiao, Mingyu; Nagamochi, Hiroshi (2017), "Exact algorithms for maximum independent set",
*Information and Computation*,**255**: 126–146, arXiv: 1312.6260 , doi:10.1016/j.ic.2017.06.001, S2CID 1714739 . - Xiao, Mingyu; Nagamochi, Hiroshi (2013), "Confining sets and avoiding bottleneck cases: A simple maximum independent set algorithm in degree-3 graphs",
*Theoretical Computer Science*,**469**: 92–104, doi: 10.1016/j.tcs.2012.09.022 . - Tarjan, R.E. (1985), "Decomposition by clique separators",
*Discrete Mathematics*,**55**(2): 221–232, doi:10.1016/0012-365x(85)90051-2 .

This page is based on this Wikipedia article

Text is available under the CC BY-SA 4.0 license; additional terms may apply.

Images, videos and audio are available under their respective licenses.

Text is available under the CC BY-SA 4.0 license; additional terms may apply.

Images, videos and audio are available under their respective licenses.