|
|
Line 1: |
Line 1: |
| [[File:Brute force Clique algorithm.svg|thumb|240px|The [[Brute-force search|brute force algorithm]] finds a 4-clique in this 7-vertex graph (the complement of the 7-vertex [[path graph]]) by systematically checking all [[Combination|C]](7,4)=35 4-vertex subgraphs for completeness.]]
| |
|
| |
|
| In [[computer science]], the '''clique problem''' refers to any of the problems related to finding particular [[complete graph|complete]] [[Glossary of graph theory#Subgraphs|subgraphs]] ("[[clique (graph theory)|clique]]s") in a [[Graph (mathematics)|graph]], i.e., sets of elements where each pair of elements is connected.
| |
|
| |
|
| For example, the '''maximum clique problem''' arises in the following real-world setting. Consider a [[social network]], where the graph’s [[vertex (graph theory)|vertices]] represent people, and the graph’s [[edge (graph theory)|edges]] represent mutual acquaintance. To find a largest subset of people who all know each other, one can systematically inspect all subsets, a process that is too time-consuming to be practical for social networks comprising more than a few dozen people. Although this [[brute-force search]] can be improved by more efficient [[algorithm]]s, all of these algorithms take [[exponential time]] to solve the problem. Therefore, much of the theory about the clique problem is devoted to identifying special types of graph that admit more efficient algorithms, or to establishing the computational difficulty of the general problem in various models of computation.<ref name="bbpp"/> Along with its applications in social networks, the clique problem also has many applications in [[bioinformatics]] and [[computational chemistry]].<ref>For more details and references, see [[clique (graph theory)]].</ref>
| | Online games can give you a universe of experience, relaxation and exhilaration. It's possible to learn, get a good notiion of success or since enjoy beating down specific bad-guy. No challenege show up form of video egaming you are into, add some helpful tips in the foregoing post to give for yourself more fun whenever a play your next electriconic game Website.<br><br>Altering from band blueprint toward a besprinkle blueprint induces some sort of supplied authentic picture. Unquestionably the accumbent time arbor is actually scaled evenly. But it's adamantine turn out to be able to acquaint what really is activity now [http://Www.Alexa.com/search?q=inside+bottom-left&r=topsites_index&p=bigtop inside bottom-left] bend now. An ethics are so bunched up you simply could not [https://www.flickr.com/search/?q=acquaint acquaint] them afar any longer.<br><br>If you have any sort of inquiries concerning where and the best ways to make use of [http://prometeu.net clash of clans hack no survey mac], you could contact us at the website. Small business inside your games when you find yourself ready playing them. A variety of retailers provide discount rates or credit score on to your next buy when ever you business your clash of clans sur pc tlcharger in. You can hit upon the next online title you would like for the affordable price now that you try this. All things considered, most people don't need the graphics games as soon since you defeat them.<br><br>When the system that your toddler is enjoying on possibly can connect with the Net, be sure that you actually fix the settings for the family before he performs utilizing. You're going to be ready to safeguard your kid brought on by vulnerability to unsavory information utilizing these filter configuration settings. There are also options to certain the amount of chat they can participate folks when online.<br><br>Unquestionably the aboriginal phase, Alertness Day time is back your group prepares their own defenses, gathers admonition about your enemy, and starts creating extramarital liasons of confront. During this appearance there is not any attacking. Instead, there are three massive activities during alertness day time: rearranging your battle starting, altruistic accretion soldiers in your association mates, and aloof adversary confrontation bases.<br><br>Gambling is infiltrating houses all around us. Some play these games for work, rather others play them intended for enjoyment. This business is booming and won't go away completely anytime soon. Keep reading for some fantastic advice on gaming.<br><br>Basically, it would alone acquiesce all of us with tune 2 volume considerations. If you appetite for you to zone added than in which probably - as Supercell intensely acquainted t had actually been all-important - you claims assorted beeline segments. Theoretically they could create a record of alike added bulk articles. If they capital to help allegation put in or beneath for a couple day skip, they may well calmly familiarize 1 included in segment. |
| | |
| Clique problems include:
| |
| *finding the [[maximum clique]] (a clique with the largest number of vertices),
| |
| *finding a maximum weight clique in a weighted graph,
| |
| *listing all [[maximal clique]]s (cliques that cannot be enlarged)
| |
| *solving the [[decision problem]] of testing whether a graph contains a clique larger than a given size.
| |
| These problems are all hard: the clique decision problem is [[NP-complete]] (one of [[Karp's 21 NP-complete problems]]), the problem of finding the maximum clique is both [[parameterized complexity|fixed-parameter intractable]] and [[hardness of approximation|hard to approximate]], and listing all maximal cliques may require [[exponential time]] as there exist graphs with exponentially many maximal cliques. Nevertheless, there are algorithms for these problems that run in exponential time or that handle certain more specialized input graphs in polynomial time.<ref name="bbpp">For surveys of these algorithms, and basic definitions used in this article, see {{harvtxt|Bomze|Budinich|Pardalos|Pelillo|1999}} and {{harvtxt|Gutin|2004}}.</ref>
| |
| | |
| ==History==
| |
| Although complete subgraphs have been studied for longer in mathematics,<ref>Complete subgraphs make an early appearance in the mathematical literature in the graph-theoretic reformulation of [[Ramsey theory]] by {{harvtxt|Erdős|Szekeres|1935}}.</ref> the term "clique" and the problem of algorithmically listing cliques both come from the social sciences, where complete subgraphs are used to model [[clique|social cliques]], groups of people who all know each other. The "clique" terminology comes from {{harvtxt|Luce|Perry|1949}}, and the first algorithm for solving the clique problem is that of {{harvtxt|Harary|Ross|1957}},<ref name="bbpp"/> who were motivated by the sociological application.
| |
| | |
| Since the work of Harary and Ross, many others have devised algorithms for various versions of the clique problem.<ref name="bbpp"/> In the 1970s, researchers began studying these algorithms from the point of view of [[worst-case analysis]]; see, for instance, {{harvtxt|Tarjan|Trojanowski|1977}}, an early work on the worst-case complexity of the maximum clique problem. Also in the 1970s, beginning with the work of {{harvtxt|Cook|1971}} and {{harvtxt|Karp|1972}}, researchers began finding mathematical justification for the perceived difficulty of the clique problem in the theory of [[NP-complete]]ness and related intractability results. In the 1990s, a breakthrough series of papers beginning with {{harvtxt|Feige|Goldwasser|Lovász|Safra|1991}} and reported at the time in major newspapers,<ref name="nyt"/> showed that it is not even possible to approximate the problem accurately and efficiently.
| |
| | |
| ==Definitions==
| |
| {{Main|Clique (graph theory)}}
| |
| [[File:6n-graf-clique.svg|thumb|The graph shown has one maximum clique, the triangle {1,2,5}, and four more maximal cliques, the pairs {2,3}, {3,4}, {4,5}, and {4,6}.]]
| |
| An [[undirected graph]] is formed by a [[finite set]] of [[vertex (graph theory)|vertices]] and a set of [[unordered pair]]s of vertices, which are called [[edge (graph theory)|edges]]. By convention, in algorithm analysis, the number of vertices in the graph is denoted by ''n'' and the number of edges is denoted by ''m''. A [[clique (graph theory)|clique]] in a graph ''G'' is a [[complete graph|complete]] [[Glossary of graph theory#Subgraphs|subgraph]] of ''G''; that is, it is a subset ''S'' of the vertices such that every two vertices in ''S'' are connected by an edge in ''G''. A [[maximal clique]] is a clique to which no more vertices can be added; a [[maximum clique]] is a clique that includes the largest possible number of vertices, and the clique number ω(''G'') is the number of vertices in a maximum clique of ''G''.<ref name="bbpp"/>
| |
| | |
| Several closely related clique-finding problems have been studied.
| |
| *In the maximum clique problem, the input is an undirected graph, and the output is a maximum clique in the graph. If there are multiple maximum cliques, only one need be output.
| |
| *In the weighted maximum clique problem, the input is an undirected graph with weights on its vertices (or, less frequently, edges) and the output is a clique with maximum total weight. The maximum clique problem is the special case in which all weights are one.
| |
| *In the maximal clique listing problem, the input is an undirected graph, and the output is a list of all its maximal cliques. The maximum clique problem may be solved using as a subroutine an algorithm for the maximal clique listing problem, because the maximum clique must be included among all the maximal cliques.
| |
| *In the ''k''-clique problem, the input is an undirected graph and a number ''k'', and the output is a clique of size ''k'' if one exists (or, sometimes, all cliques of size ''k'').
| |
| *In the clique decision problem, the input is an undirected graph and a number ''k'', and the output is a [[truth value|Boolean value]]: true if the graph contains a ''k''-clique, and false otherwise.
| |
| The first four of these problems are all important in practical applications; the clique decision problem is not, but is necessary in order to apply the theory of [[NP-completeness]] to clique-finding problems.
| |
| | |
| The clique problem and the [[independent set 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, and some research papers do not clearly distinguish between the two problems. However, the two problems have different properties when applied to restricted families of graphs; for instance, the clique problem may be solved in polynomial time for [[planar graph]]s<ref name="CN85">{{harvtxt|Chiba|Nishizeki|1985}}.</ref> while the independent set problem remains NP-hard on planar graphs.
| |
| | |
| ==Algorithms==
| |
| ===Maximal versus maximum===
| |
| A [[maximal element|maximal]] clique, sometimes called inclusion-maximal, is a clique that is not included in a larger clique. Note, therefore, that every clique is contained in a maximal clique.
| |
| | |
| Maximal cliques can be very small. A graph may contain a non-maximal clique with many vertices and a separate clique of size 2 which is maximal. While a maximum (i.e., largest) clique is necessarily maximal, the converse does not hold. There are some types of graphs in which every maximal clique is maximum (the [[complement (graph theory)|complements]] of [[well-covered graph]]s, notably including [[complete graph]]s, [[triangle-free graph]]s without [[isolated vertex|isolated vertices]], [[Turán graph|complete multipartite graphs]], and [[k-tree]]s) but other graphs have maximal cliques that are not maximum.
| |
| | |
| Finding a maximal clique is straightforward: Starting with an arbitrary clique (for instance, a single vertex), grow the current clique one vertex at a time by iterating over the graph’s remaining vertices, adding a vertex if it is connected to each vertex in the current clique, and discarding it otherwise. This algorithm runs in [[linear time]]. Because of the ease of finding maximal cliques, and their potential small size, more attention has been given to the much harder algorithmic problem of finding a maximum or otherwise large clique than has been given to the problem of finding a single maximal clique.
| |
| | |
| ===Cliques of fixed size===
| |
| A [[brute-force search|brute force algorithm]] to test whether a graph ''G'' contains a ''k''-vertex clique, and to find any such clique that it contains, is to examine each subgraph with at least ''k'' vertices and check to see whether it forms a clique. This algorithm takes time O(''n''<sup>''k''</sup> ''k''<sup>2</sup>): there are O(''n''<sup>''k''</sup>) subgraphs to check, each of which has O(''k''<sup>2</sup>) edges whose presence in ''G'' needs to be checked. Thus, the problem may be solved in [[polynomial time]] whenever ''k'' is a fixed constant. When ''k'' is part of the input to the problem, however, the time is exponential.<ref>E.g., see {{harvtxt|Downey|Fellows|1995}}.</ref>
| |
| | |
| The simplest nontrivial case of the clique-finding problem is finding a triangle in a graph, or equivalently determining whether the graph is [[triangle-free graph|triangle-free]].
| |
| In a graph with ''m'' edges, there may be at most Θ(''m''<sup>3/2</sup>) triangles; the worst case occurs when ''G'' is itself a clique. Therefore, algorithms for listing all triangles must take at least Ω(''m''<sup>3/2</sup>) time in the worst case, and algorithms are known that match this time bound.<ref>{{harvtxt|Itai|Rodeh|1978}} provide an algorithm with O(''m''<sup>3/2</sup>) running time that finds a triangle if one exists but does not list all triangles; {{harvtxt|Chiba|Nishizeki|1985}} list all triangles in time O(''m''<sup>3/2</sup>).</ref> For instance, {{harvtxt|Chiba|Nishizeki|1985}} describe an algorithm that sorts the vertices in order from highest degree to lowest and then iterates through each vertex ''v'' in the sorted list, looking for triangles that include ''v'' and do not include any previous vertex in the list. To do so the algorithm marks all neighbors of ''v'', searches through all edges incident to a neighbor of ''v'' outputting a triangle for every edge that has two marked endpoints, and then removes the marks and deletes ''v'' from the graph. As the authors show, the time for this algorithm is proportional to the [[arboricity]] of the graph (''a''(''G'')) times the number of edges, which is O(''m'' ''a''(''G'')). Since the arboricity is at most O(''m''<sup>1/2</sup>), this algorithm runs in time O(''m''<sup>3/2</sup>). More generally, all ''k''-vertex cliques can be listed by a similar algorithm that takes time proportional to the number of edges times the (''k'' − 2)nd power of the arboricity.<ref name="CN85"/> For graphs of constant arboricity, such as planar graphs (or in general graphs from any non-trivial [[minor-closed graph family]]), this algorithm takes O(''m'') time, which is optimal since it is linear in the size of the input.
| |
| | |
| If one desires only a single triangle, or an assurance that the graph is triangle-free, faster algorithms are possible. As {{harvtxt|Itai|Rodeh|1978}} observe, the graph contains a triangle if and only if its [[adjacency matrix]] and the square of the adjacency matrix contain nonzero entries in the same cell; therefore, fast matrix multiplication techniques such as the [[Coppersmith–Winograd algorithm]] can be applied to find triangles in time O(''n''<sup>2.376</sup>), which may be faster than O(''m''<sup>3/2</sup>) for sufficiently [[dense graph]]s. {{harvtxt|Alon|Yuster|Zwick|1994}} have improved the O(''m''<sup>3/2</sup>) algorithm for finding triangles to O(''m''<sup>1.41</sup>) by using fast matrix multiplication. This idea of using fast matrix multiplication to find triangles has also been extended to problems of finding ''k''-cliques for larger values of ''k''.<ref>{{harvtxt|Eisenbrand|Grandoni|2004}}; {{harvtxt|Kloks|Kratsch|Müller|2000}}; {{harvtxt|Nešetřil|Poljak|1985}}; {{harvtxt|Vassilevska|Williams|2009}}; {{harvtxt|Yuster|2006}}.</ref>
| |
| | |
| ===Listing all maximal cliques===
| |
| By a result of {{harvtxt|Moon|Moser|1965}}, any ''n''-vertex graph has at most 3<sup>''n''/3</sup> maximal cliques. The [[Bron–Kerbosch algorithm]] is a recursive [[backtracking]] procedure of {{harvtxt|Bron|Kerbosch|1973}} that augments a candidate clique by considering one vertex at a time, either adding it to the candidate clique or to a set of excluded vertices that cannot be in the clique but must have some non-neighbor in the eventual clique; variants of this algorithm can be shown to have worst-case running time O(3<sup>''n''/3</sup>).<ref>{{harvtxt|Tomita|Tanaka|Takahashi|2006}}.</ref> Therefore, this provides a worst-case-optimal solution to the problem of listing all maximal independent sets; further, the Bron–Kerbosch algorithm has been widely reported as being faster in practice than its alternatives.<ref>{{harvtxt|Cazals|Karande|2008}}; {{harvtxt|Eppstein|Strash|2011}}.</ref>
| |
| | |
| As {{harvtxt|Tsukiyama|Ide|Ariyoshi|Shirakawa|1977}} showed, it is also possible to list all maximal cliques in a graph in an amount of time that is polynomial per generated clique. An algorithm such as theirs in which the running time depends on the output size is known as an [[output-sensitive algorithm]]. Their algorithm is based on the following two observations, relating the maximal cliques of the given graph ''G'' to the maximal cliques of a graph ''G'' \ ''v'' formed by removing an arbitrary vertex ''v'' from ''G'':
| |
| *For every maximal clique ''C'' of ''G'' \ ''v'', either ''C'' continues to form a maximal clique in ''G'', or ''C'' ⋃ {v} forms a maximal clique in ''G''. Therefore, ''G'' has at least as many maximal cliques as ''G'' \ ''v'' does.
| |
| *Each maximal clique in ''G'' that does not contain ''v'' is a maximal clique in ''G'' \ ''v'', and each maximal clique in ''G'' that does contain ''v'' can be formed from a maximal clique ''C'' in ''G'' \ ''v'' by adding ''v'' and removing the non-neighbors of ''v'' from ''C''.
| |
| Using these observations they can generate all maximal cliques in ''G'' by a recursive algorithm that, for each maximal clique ''C'' in ''G'' \ ''v'', outputs ''C'' and the clique formed by adding ''v'' to ''C'' and removing the non-neighbors of ''v''. However, some cliques of ''G'' may be generated in this way from more than one parent clique of ''G'' \ ''v'', so they eliminate duplicates by outputting a clique in ''G'' only when its parent in ''G'' \ ''v'' is lexicographically maximum among all possible parent cliques. On the basis of this principle, they show that all maximal cliques in ''G'' may be generated in time O(''mn'') per clique, where ''m'' is the number of edges in ''G'' and ''n'' is the number of vertices; {{harvtxt|Chiba|Nishizeki|1985}} improve this to O(''ma'') per clique, where ''a'' is the [[arboricity]] of the given graph. {{harvtxt|Makino|Uno|2004}} provide an alternative output-sensitive algorithm based on fast matrix multiplication, and {{harvtxt|Johnson|Yannakakis|1988}} show that it is even possible to list all maximal cliques in [[lexicographic order]] with polynomial delay per clique, although the reverse of this order is [[NP-hard]] to generate.
| |
| | |
| On the basis of this result, it is possible to list all maximal cliques in polynomial time, for families of graphs in which the number of cliques is polynomially bounded. These families include [[chordal graph]]s, [[complete graph]]s, [[triangle-free graph]]s, [[interval graph]]s, graphs of bounded [[boxicity]], and [[planar graph]]s.<ref>{{harvtxt|Rosgen|Stewart|2007}}.</ref> In particular, the planar graphs, and more generally, any family of graphs that is both [[dense graph|sparse]] (having a number of edges at most a constant times the number of vertices) and [[Closure (mathematics)|closed]] under the operation of taking subgraphs, have O(''n'') cliques, of at most constant size, that can be listed in linear time.<ref name="CN85"/><ref name="ELS10"/>
| |
| | |
| ===Finding maximum cliques in arbitrary graphs===
| |
| It is possible to find the maximum clique, or the clique number, of an arbitrary ''n''-vertex graph in time O(3<sup>''n''/3</sup>) = O(1.4422<sup>''n''</sup>) by using one of the algorithms described above to list all maximal cliques in the graph and returning the largest one. However, for this variant of the clique problem better worst-case time bounds are possible. The algorithm of {{harvtxt|Tarjan|Trojanowski|1977}} solves this problem in time O(2<sup>''n''/3</sup>) = O(1.2599<sup>''n''</sup>); it is a recursive backtracking scheme similar to that of the [[Bron–Kerbosch algorithm]], but is able to eliminate some recursive calls when it can be shown that some other combination of vertices not used in the call is guaranteed to lead to a solution at least as good. {{harvtxt|Jian|1986}} improved this to O(2<sup>0.304''n''</sup>) = O(1.2346<sup>''n''</sup>). {{harvtxt|Robson|1986}} improved this to O(2<sup>0.276''n''</sup>) = O(1.2108<sup>''n''</sup>) time, at the expense of greater space usage, by a similar backtracking scheme with a more complicated case analysis, together with a [[dynamic programming]] technique in which the optimal solution is precomputed for all small connected subgraphs of the [[complement graph]] and these partials solutions are used to shortcut the backtracking recursion. The fastest algorithm known today is due to {{harvtxt|Robson|2001}} which runs in time O(2<sup>0.249''n''</sup>) = O(1.1888<sup>''n''</sup>).
| |
| | |
| There has also been extensive research on [[heuristic algorithm]]s for solving maximum clique problems without worst-case runtime guarantees, based on methods including [[branch and bound]],<ref>{{harvtxt|Balas|Yu|1986}}; {{harvtxt|Carraghan|Pardalos|1990}}; {{harvtxt|Pardalos|Rogers|1992}}; {{harvtxt|Östergård|2002}}; {{harvtxt|Fahle|2002}}; {{harvtxt|Tomita|Seki|2003}}; {{harvtxt|Tomita|Kameda|2007}}; {{harvtxt|Konc|Janežič|2007}}.</ref> [[Local search (optimization)|local search]],<ref>{{harvtxt|Battiti|Protasi|2001}}; {{harvtxt|Katayama|Hamamoto|Narihisa|2005}}.</ref> [[greedy algorithm]]s,<ref>{{harvtxt|Abello|Pardalos|Resende|1999}}; {{harvtxt|Grosso|Locatelli|Della Croce|2004}}.</ref> and [[constraint programming]].<ref>{{harvtxt|Régin|2003}}.</ref> Non-standard computing methodologies for finding cliques include [[DNA computing]]<ref>{{harvtxt|Ouyang|Kaplan|Liu|Libchaber|1997}}. Although the title refers to maximal cliques, the problem this paper solves is actually the maximum clique problem.</ref> and [[adiabatic quantum computation]].<ref>{{harvtxt|Childs|Farhi|Goldstone|Gutmann|2002}}.</ref> The maximum clique problem was the subject of an implementation challenge sponsored by [[DIMACS]] in 1992–1993,<ref>{{harvtxt|Johnson|Trick|1996}}.</ref> and a collection of graphs used as benchmarks for the challenge is publicly available.<ref>[ftp://dimacs.rutgers.edu/pub/challenge/graph/benchmarks/clique/ DIMACS challenge graphs for the clique problem], accessed 2009-12-17.</ref>
| |
| | |
| ===Special classes of graphs===
| |
| [[File:Permutation graph.svg|thumb|In this [[permutation graph]], the maximum cliques correspond to the [[Longest increasing subsequence|longest decreasing subsequences]] (4,3,1) and (4,3,2) of the defining permutation.]]
| |
| [[Planar graph]]s, and other families of sparse graphs, have been discussed above: they have linearly many maximal cliques, of bounded size, that can be listed in linear time.<ref name="CN85"/> In particular, for planar graphs, any clique can have at most four vertices, by [[Kuratowski's theorem]].
| |
| | |
| [[Perfect graph]]s are defined by the properties that their clique number equals their chromatic number, and that this equality holds also in each of their [[induced subgraph]]s. For perfect graphs, it is possible to find a maximum clique in polynomial time, using an algorithm based on [[semidefinite programming]].<ref>{{harvtxt|Grötschel|Lovász|Schrijver|1988}}.</ref>
| |
| However, this method is complex and non-combinatorial, and specialized clique-finding algorithms have been developed for many subclasses of perfect graphs.<ref>{{harvtxt|Golumbic|1980}}.</ref> In the [[complement graph]]s of [[bipartite graph]]s, [[König's theorem (graph theory)|König's theorem]] allows the maximum clique problem to be solved using techniques for [[Matching (graph theory)|matching]]. In another class of perfect graphs, the [[permutation graph]]s, a maximum clique is a [[Longest increasing subsequence|longest decreasing subsequence]] of the permutation defining the graph and can be found using known algorithms for the longest decreasing subsequence problem.<ref>{{harvtxt|Golumbic|1980}}, p. 159. {{harvtxt|Even|Pnueli|Lempel|1972}} provide an alternative quadratic-time algorithm for maximum cliques in [[comparability graph]]s, a broader class of perfect graphs that includes the permutation graphs as a special case.</ref> In [[chordal graph]]s, the maximal cliques are a subset of the ''n'' cliques formed as part of an elimination ordering.
| |
| | |
| In some cases, these algorithms can be extended to other, non-perfect, classes of graphs as well: for instance, in a [[circle graph]], the [[neighborhood (graph theory)|neighborhood]] of each vertex is a permutation graph, so a maximum clique in a circle graph can be found by applying the permutation graph algorithm to each neighborhood.<ref>{{harvtxt|Gavril|1973}}; {{harvtxt|Golumbic|1980}}, p. 247.</ref> Similarly, in a [[unit disk graph]] (with a known geometric representation), there is a polynomial time algorithm for maximum cliques based on applying the algorithm for complements of bipartite graphs to shared neighborhoods of pairs of vertices.<ref>{{harvtxt|Clark|Colbourn|Johnson|1990}}.</ref>
| |
| | |
| The algorithmic problem of finding a maximum clique in a [[random graph]] drawn from the [[Erdős–Rényi model]] (in which each edge appears with probability 1/2, independently from the other edges) was suggested by {{harvtxt|Karp|1976}}. Although the clique number of such graphs is very close to 2 log<sub>2</sub>''n'', simple [[greedy algorithm]]s as well as more sophisticated randomized approximation techniques<ref>{{harvtxt|Jerrum|1992}}.</ref> only find cliques with size log<sub>2</sub>''n'', and the number of maximal cliques in such graphs is with high probability exponential in log<sup>2</sup>''n'' preventing a polynomial time solution that lists all of them. Because of the difficulty of this problem, several authors have investigated variants of the problem in which the random graph is augmented by adding a large clique, of size proportional to √''n''. It is possible to find this hidden clique with high probability in polynomial time, using either [[Spectral graph theory|spectral methods]]<ref>{{harvtxt|Alon|Krivelevich|Sudakov|1998}}.</ref> or [[semidefinite programming]].<ref>{{harvtxt|Feige|Krauthgamer|2000}}.</ref>
| |
| | |
| ===Approximation algorithms===
| |
| Several authors have considered [[approximation algorithm]]s that attempt to find a clique or independent set that, although not maximum, has size as close to the maximum as can be found in polynomial time.
| |
| Although much of this work has focused on independent sets in sparse graphs, a case that does not make sense for the complementary clique problem, there has also been work on approximation algorithms that do not use such sparsity assumptions.<ref>{{harvtxt|Boppana|Halldórsson|1992}}; {{harvtxt|Feige|2004}}; {{harvtxt|Halldórsson|2000}}.</ref>
| |
| | |
| {{harvtxt|Feige|2004}} describes a polynomial time algorithm that finds a clique of size Ω((log ''n''/log log ''n'')<sup>2</sup>) in any graph that has clique number Ω(''n''/log<sup>''k''</sup>''n'') for any constant ''k''. By combining this algorithm to find cliques in graphs with clique numbers between ''n''/log ''n'' and ''n''/log<sup>3</sup>''n'' with a different algorithm of {{harvtxt|Boppana|Halldórsson|1992}} to find cliques in graphs with higher clique numbers, and choosing a two-vertex clique if both algorithms fail to find anything, [[Uriel Feige|Feige]] provides an approximation algorithm that finds a clique with a number of vertices within a factor of O(''n''(log log ''n'')<sup>2</sup>/log<sup>3</sup>''n'') of the maximum. Although the [[approximation ratio]] of this algorithm is weak, it is the best known to date, and the results on [[hardness of approximation]] described below suggest that there can be no approximation algorithm with an approximation ratio significantly less than linear.
| |
| | |
| ==Lower bounds==
| |
| ===NP-completeness===
| |
| [[File:Sat reduced to Clique from Sipser.svg|thumb|The 3-CNF Satisfiability instance (x ∨ x ∨ y) ∧ (~x ∨ ~y ∨ ~y) ∧ (~x ∨ y ∨ y) reduced to Clique. The green vertices form a 3-clique and correspond to a satisfying assignment.<ref>Adapted from {{harvtxt|Sipser|1996}}</ref>]]
| |
| The clique decision problem is [[NP-complete]]. It was one of [[Karp's 21 NP-complete problems|Richard Karp's original 21 problems]] shown NP-complete in his 1972 paper "Reducibility Among Combinatorial Problems". This problem was also mentioned in [[Stephen Cook]]'s paper introducing the theory of NP-complete problems. Thus, the problem of finding a maximum clique is NP-hard: if one could solve it, one could also solve the decision problem, by comparing the size of the maximum clique to the size parameter given as input in the decision problem.
| |
| | |
| Karp's NP-completeness proof is a [[many-one reduction]] from the [[Boolean satisfiability problem]] for formulas in [[conjunctive normal form]], which was proved NP-complete in the [[Cook–Levin theorem]].<ref>{{harvtxt|Cook|1971}} gives essentially the same reduction, from [[3-SAT]] instead of Satisfiability, to show that [[subgraph isomorphism]] is NP-complete.</ref> From a given CNF formula, Karp forms a graph that has a vertex for every pair (''v'',''c''), where ''v'' is a variable or its negation and ''c'' is a clause in the formula that contains ''v''. Vertices are connected by an edge if they represent compatible variable assignments for different clauses: that is, there is an edge from (''v'',''c'') to (''u'',''d'') whenever ''c'' ≠ ''d'' and ''u'' and ''v'' are not each others' negations. If ''k'' denotes the number of clauses in the CNF formula, then the ''k''-vertex cliques in this graph represent ways of assigning [[truth values]] to some of its variables in order to satisfy the formula; therefore, the formula is satisfiable if and only if a ''k''-vertex clique exists.
| |
| | |
| Some NP-complete problems (such as the [[travelling salesman problem]] in [[planar graph]]s) may be solved in time that is exponential in a sublinear function of the input size parameter ''n''.<ref>{{harvtxt|Lipton|Tarjan|1980}}.</ref>
| |
| However, as {{harvtxt|Impagliazzo|Paturi|Zane|2001}} describe, it is unlikely that such bounds exist for the clique problem in arbitrary graphs, as they would imply similarly subexponential bounds for many other standard NP-complete problems.
| |
| | |
| ===Circuit complexity===
| |
| [[File:Monotone circuit for 3-clique.svg|thumb|A monotone circuit to detect a ''k''-clique in an ''n''-vertex graph for ''k'' = 3 and ''n'' = 4. Each of the 6 inputs encodes the presence or absence of a particular (red) edge in the input graph. The circuit uses one internal and-gate to detect each potential ''k''-clique.]]
| |
| The computational difficulty of the clique problem has led it to be used to prove several lower bounds in [[circuit complexity]]. Because the existence of a clique of a given size is a [[Hereditary property|monotone graph property]] (if a clique exists in a given graph, it will exist in any supergraph) there must exist a monotone circuit, using only [[and gate]]s and [[or gate]]s, to solve the clique decision problem for a given fixed clique size. However, the size of these circuits can be proven to be a super-polynomial function of the number of vertices and the clique size, exponential in the cube root of the number of vertices.<ref>{{harvtxt|Alon|Boppana|1987}}. For earlier and weaker bounds on monotone circuits for the clique problem, see {{harvtxt|Valiant|1983}} and {{harvtxt|Razborov|1985}}.</ref> Even if a small number of [[NOT gate]]s are allowed, the complexity remains superpolynomial.<ref>{{harvtxt|Amano|Maruoka|1998}}.</ref> Additionally, the depth of a monotone circuit for the clique problem using gates of bounded [[fan-in]] must be at least a polynomial in the clique size.<ref>{{harvtxt|Goldmann|Håstad|1992}} used [[communication complexity]] to prove this result.</ref>
| |
| | |
| ===Decision tree complexity===
| |
| | |
| [[File:Decision tree for 3-clique no arrowheads.svg|thumb|A simple decision tree to detect the presence of a 3-clique in a 4-vertex graph. It uses up to 6 questions of the form “Does the red edge exist?”, matching the optimal bound ''n''(''n'' − 1)/2.]]
| |
| The (deterministic) [[decision tree complexity]] of determining a [[graph property]] is the number of questions of the form "Is there an edge between vertex ''u'' and vertex ''v''?" that have to be answered in the worst case to determine whether a graph has a particular property. That is, it is the minimum height of a boolean [[Decision tree model|decision tree]] for the problem. Since there are at most ''n''(''n'' − 1)/2 possible questions to be asked, any graph property can be determined with ''n''(''n'' − 1)/2 questions. It is also possible to define random and quantum decision tree complexity of a property, the expected number of questions (for a worst case input) that a randomized or quantum algorithm needs to have answered in order to correctly determine whether the given graph has the property.
| |
| | |
| Because the property of containing a clique is a monotone property (adding an edge can only cause more cliques to exist within the graph, not fewer), it is covered by the [[Aanderaa–Karp–Rosenberg conjecture]], which states that the deterministic decision tree complexity of determining any non-trivial monotone graph property is exactly ''n''(''n'' − 1)/2. For deterministic decision trees, the property of containing a ''k''-clique (2 ≤ ''k'' ≤ ''n'') was shown to have decision tree complexity exactly ''n''(''n'' − 1)/2 by {{Harvtxt|Bollobás|1976}}. Deterministic decision trees also require exponential size to detect cliques, or large polynomial size to detect cliques of bounded size.<ref>{{harvtxt|Wegener|1988}}.</ref>
| |
| | |
| The Aanderaa–Karp–Rosenberg conjecture also states that the randomized decision tree complexity of non-trivial monotone functions is Θ(n<sup>2</sup>). The conjecture is resolved for the property of containing a ''k''-clique (2 ≤ ''k'' ≤ ''n''), since it is known to have randomized decision tree complexity Θ(n<sup>2</sup>).<ref>For instance, this follows from {{Harvtxt|Gröger|1992}}.</ref> For quantum decision trees, the best known lower bound is Ω(n), but no matching algorithm is known for the case of ''k'' ≥ 3.<ref>{{harvtxt|Childs|Eisenberg|2005}}; {{harvtxt|Magniez|Santha|Szegedy|2007}}.</ref>
| |
| | |
| ===Fixed-parameter intractability===
| |
| [[Parameterized complexity]]<ref>{{harvtxt|Downey|Fellows|1999}}.</ref> is the [[computational complexity theory|complexity-theoretic]] study of problems that are naturally equipped with a small integer parameter ''k'', and for which the problem becomes more difficult as ''k'' increases, such as finding ''k''-cliques in graphs. A problem is said to be fixed-parameter tractable if there is an algorithm for solving it on inputs of size ''n'' in time ''f''(''k'') ''n''<sup>O(1)</sup>; that is, if it can be solved in polynomial time for any fixed value of ''k'' and moreover if the exponent of the polynomial does not depend on ''k''.
| |
| | |
| For the clique problem, the brute force search algorithm has running time O(''n''<sup>''k''</sup>''k''<sup>2</sup>), and although it can be improved by fast matrix multiplication the running time still has an exponent that is linear in ''k''. Thus, although the running time of known algorithms for the clique problem is polynomial for any fixed ''k'', these algorithms do not suffice for fixed-parameter tractability. {{harvtxt|Downey|Fellows|1995}} defined a hierarchy of parametrized problems, the W hierarchy, that they conjectured did not have fixed-parameter tractable algorithms; they proved that independent set (or, equivalently, clique) is hard for the first level of this hierarchy, [[W(1)|W[1]]]. Thus, according to their conjecture, clique is not fixed-parameter tractable. Moreover, this result provides the basis for proofs of [[W(1)|W[1]]]-hardness of many other problems, and thus serves as an analogue of the [[Cook–Levin theorem]] for parameterized complexity.
| |
| | |
| {{harvtxt|Chen|Huang|Kanj|Xia|2006}} showed that the clique problem cannot be solved in time <math>n^{o(k)}</math> unless the [[exponential time hypothesis]] fails.
| |
| | |
| Although the problems of listing maximal cliques or finding maximum cliques are unlikely to be fixed-parameter tractable with the parameter ''k'', they may be fixed-parameter tractable for other parameters of instance complexity. For instance, both problems are known to be fixed-parameter tractable when parametrized by the [[degeneracy (graph theory)|degeneracy]] of the input graph.<ref name="ELS10">{{harvtxt|Eppstein|Löffler|Strash|2010}}.</ref>
| |
| | |
| ===Hardness of approximation===
| |
| [[File:Cube-face-intersection-graph.svg|thumb|A graph of compatibility relations among 2-bit samples of 3-bit proof strings. Each maximal clique (triangle) in this graph represents all ways of sampling a single 3-bit string. The proof of inapproximability of the clique problem involves [[induced subgraph]]s of analogously defined graphs for larger numbers of bits.]]
| |
| The computational complexity of approximating the clique problem has been studied for a long time; for instance, {{harvtxt|Garey|Johnson|1978}} observed that, because of the fact that the clique number takes on small integer values and is NP-hard to compute, it cannot have a [[Polynomial-time approximation scheme|fully polynomial-time approximation scheme]]. However, little more was known until the early 1990s, when several authors began to make connections between the approximation of maximum cliques and [[probabilistically checkable proof]]s, and used these connections to prove [[hardness of approximation]] results for the maximum clique problem.<ref name="nyt">{{citation |title=In a Frenzy, Math Enters Age of Electronic Mail |first=Gina |last=Kolata |journal=[[New York Times]] |url=http://www.nytimes.com/1990/06/26/science/in-a-frenzy-math-enters-age-of-electronic-mail.html |date=June 26, 1990}}.</ref><ref>{{harvtxt|Feige|Goldwasser|Lovász|Safra|1991}}; {{harvtxt|Arora|Safra|1998}}; {{harvtxt|Arora|Lund|Motwani|Sudan|1998}}.</ref>
| |
| After many improvements to these results it is now known that, unless [[P versus NP problem|P = NP]], there can be no polynomial time algorithm that approximates the maximum clique to within a factor better than O(''n''<sup>1 − ε</sup>), for any ε > 0.<ref>{{harvtxt|Håstad|1999}} showed inapproximability for this ratio using a stronger complexity theoretic assumption, the inequality of [[NP (complexity)|NP]] and [[ZPP (complexity)|ZPP]]; {{harvtxt|Khot|2001}} described more precisely the inapproximation ratio, and {{harvtxt|Zuckerman|2006}} [[derandomization|derandomized]] the construction weakening its assumption to P ≠ NP.</ref>
| |
| | |
| The rough idea of these inapproximability results<ref>This reduction is originally due to {{harvtxt|Feige|Goldwasser|Lovász|Safra|1991}} and used in all subsequent inapproximability proofs; the proofs differ in the strengths and details of the probabilistically checkable proof systems that they rely on.</ref> is to form a graph that represents a probabilistically checkable proof system for an NP-complete problem such as Satisfiability. A proof system of this type is defined by a family of proof strings (sequences of bits) and proof checkers: algorithms that, after a polynomial amount of computation over a given Satisfiability instance, examine a small number of randomly chosen bits of the proof string and on the basis of that examination either declare it to be a valid proof or declare it to be invalid. False negatives are not allowed: a valid proof must always be declared to be valid, but an invalid proof may be declared to be valid as long as the probability that a checker makes a mistake of this type is low. To transform a probabilistically checkable proof system into a clique problem, one forms a graph in which the vertices represent all the possible ways that a proof checker could read a sequence of proof string bits and end up accepting the proof. Two vertices are connected by an edge whenever the two proof checker runs that they describe agree on the values of the proof string bits that they both examine. The maximal cliques in this graph consist of the accepting proof checker runs for a single proof string, and one of these cliques is large if and only if there exists a proof string that many proof checkers accept. If the original Satisfiability instance is satisfiable, there will be a large clique defined by a valid proof string for that instance, but if the original instance is not satisfiable, then all proof strings are invalid, any proof string has only a small number of checkers that mistakenly accept it, and all cliques are small. Therefore, if one could distinguish in polynomial time between graphs that have large cliques and graphs in which all cliques are small, one could use this ability to distinguish the graphs generated from satisfiable and unsatisfiable instances of the Satisfiability problem, not possible unless P = NP. An accurate polynomial-time approximation to the clique problem would allow these two sets of graphs to be distinguished from each other, and is therefore also impossible.
| |
| {{-}}
| |
| | |
| {{Free_software_for_searching_maximum_clique}}
| |
| | |
| ==Notes==
| |
| {{reflist|colwidth=40em}}
| |
| | |
| ==References==
| |
| {{refbegin|colwidth=40em}}
| |
| *{{citation |last1=Abello |first1=J. |last2=Pardalos |first2=P. M. |last3=Resende |first3=M. G. C. |contribution=On maximum clique problems in very large graphs |title=External Memory Algorithms |editor1-first=J. |editor1-last=Abello |editor2-first=J. |editor2-last=Vitter |editor2-link=Jeffrey Vitter |series=DIMACS Series on Discrete Mathematics and Theoretical Computer Science |volume=50 |pages=119–130 |year=1999 |publisher=[[American Mathematical Society]] |url=http://www2.research.att.com/~mgcr/abstracts/vlclq.html |isbn=0-8218-1184-3}}.
| |
| *{{citation |first1=N. |last1=Alon |author1-link=Noga Alon |first2=R. |last2=Boppana |title=The monotone circuit complexity of boolean functions |journal=[[Combinatorica]] |volume=7 |issue=1 |year=1987 |pages=1–22 |doi=10.1007/BF02579196}}.
| |
| *{{citation |first1=N. |last1=Alon |author1-link=Noga Alon |first2=M. |last2=Krivelevich |first3=B. |last3=Sudakov |title=Finding a large hidden clique in a random graph |journal=Random Structures & Algorithms |volume=13 |issue=3–4 |year=1998 |pages=457–466 |doi=10.1002/(SICI)1098-2418(199810/12)13:3/4<457::AID-RSA14>3.0.CO;2-W}}.
| |
| *{{citation | last1 = Alon | first1 = N. | author1-link = Noga Alon | last2 = Yuster | first2 = R. | last3 = Zwick | first3 = U. | contribution = Finding and counting given length cycles | pages = 354–364 | title = Proceedings of the 2nd [[European Symposium on Algorithms]], Utrecht, The Netherlands | year = 1994}}.
| |
| *{{citation |first1=K. |last1=Amano |first2=A. |last2=Maruoka |contribution=A superpolynomial lower bound for a circuit computing the clique function with at most (1/6)log log ''n'' negation gates |title=Proc. Symp. Mathematical Foundations of Computer Science |series=Lecture Notes in Computer Science |year=1998 |publisher=[[Springer-Verlag]] |volume=1450 |pages=399–408 |url=http://www.springerlink.com/content/m64ju7clmqhqmv9g/}}.
| |
| *{{citation |title=Proof verification and the hardness of approximation problems |first1=Sanjeev |last1=Arora |author1-link=Sanjeev Arora |first2=Carsten |last2=Lund |author2-link=Carsten Lund |first3=Rajeev |last3=Motwani |author3-link=Rajeev Motwani |first4=Madhu |last4=Sudan |author4-link=Madhu Sudan |first5=Mario |last5=Szegedy |author5-link=Mario Szegedy |journal=[[Journal of the ACM]] |volume=45 |issue=3 |year=1998 |pages=501–555 |doi=10.1145/278298.278306 |id={{ECCC|1998|98|008}}}}. Originally presented at the 1992 [[Symposium on Foundations of Computer Science]], {{doi|10.1109/SFCS.1992.267823}}.
| |
| *{{citation |first1=S. |last1=Arora |author1-link=Sanjeev Arora |first2=S. |last2=Safra |author2-link=Shmuel Safra |title=Probabilistic checking of proofs: A new characterization of NP |journal=[[Journal of the ACM]] |volume=45 |issue=1 |year=1998 |pages=70–122 |doi=10.1145/273865.273901}}. Originally presented at the 1992 [[Symposium on Foundations of Computer Science]], {{doi|10.1109/SFCS.1992.267824}}.
| |
| *{{citation |last1=Balas |first1=E. |last2=Yu |first2=C. S. |title=Finding a maximum clique in an arbitrary graph |journal=[[SIAM Journal on Computing]] |volume=15 |issue=4 |year=1986 |pages=1054–1068 |doi=10.1137/0215075}}.
| |
| *{{citation |last1=Battiti |first1=R. |last2=Protasi |first2=M. |title=Reactive local search for the maximum clique problem |journal=[[Algorithmica]] |volume=29 |issue=4 |year=2001 |pages=610–637 |doi=10.1007/s004530010074}}.
| |
| *{{Citation | last1=Bollobás | first1=Béla | author1-link=Béla Bollobás | title=Complete subgraphs are elusive | year=1976 | journal=Journal of Combinatorial Theory, Series B | issn=0095-8956 | volume=21 | issue=1 | pages=1–7 | doi=10.1016/0095-8956(76)90021-6}}.
| |
| *{{citation |first1=I. M. |last1=Bomze |first2=M. |last2=Budinich |first3=P. M. |last3=Pardalos |first4=M. |last4=Pelillo |contribution=The maximum clique problem |title=Handbook of Combinatorial Optimization |volume=4 |pages=1–74 |publisher=Kluwer Academic Publishers |year=1999 |id={{citeseerx|10.1.1.48.4074}} }}.
| |
| *{{citation |first1=R. |last1=Boppana |first2=M. M. |last2=Halldórsson |title=Approximating maximum independent sets by excluding subgraphs |journal=BIT |volume=32 |year=1992 |pages=180–196 |doi=10.1007/BF01994876 |issue=2}}.
| |
| *{{citation | last1=Bron | first1=C. | last2=Kerbosch | first2=J. | title=Algorithm 457: finding all cliques of an undirected graph | year=1973 | journal=[[Communications of the ACM]] | doi=10.1145/362342.362367 | volume=16 | issue=9 | pages=575–577}}.
| |
| *{{citation |last1=Carraghan |first1=R. |last2=Pardalos |first2=P. M. |title=An exact algorithm for the maximum clique problem |journal=Operations Research Letters |volume=9 |year=1990 |pages=375–382 |url=http://www.inf.ufpr.br/renato/download/An_Exact_Algorithm_for_the_Maximum_Clique_Problem.pdf |issue=6 |doi=10.1016/0167-6377(90)90057-C}}.
| |
| *{{citation | last1=Cazals | first1=F. | last2=Karande | first2=C. | title=A note on the problem of reporting maximal cliques | url=ftp://ftp-sop.inria.fr/geometrica/fcazals/papers/ncliques.pdf | year=2008 | journal=[[Theoretical Computer Science (journal)|Theoretical Computer Science]] | volume=407 | issue=1 | pages=564–568 |doi=10.1016/j.tcs.2008.05.010}}.
| |
| *{{citation |first1=Jianer | last1=Chen |first2=Xiuzhen | last2=Huang |first3=Iyad A. | last3=Kanj |first4=Ge | last4=Xia | title=Strong computational lower bounds via parameterized complexity | journal=J. Comput. Syst. Sci. | volume=72 | year=2006 | pages=1346–1367 | doi=10.1016/j.jcss.2006.04.007 | issue=8}}
| |
| *{{citation |first1=N. |last1=Chiba |first2=T. |last2=Nishizeki |title=Arboricity and subgraph listing algorithms |journal=[[SIAM Journal on Computing]] |volume=14 |issue=1 |pages=210–223 |year=1985 |doi=10.1137/0214017}}.
| |
| *{{citation |last1=Childs |first1=A. M. |last2=Farhi |first2=E. |last3=Goldstone |first3=J. |author3-link=Jeffrey Goldstone |last4=Gutmann |first4=S. |title=Finding cliques by quantum adiabatic evolution |journal=Quantum Information and Computation |volume=2 |issue=3 |pages=181–191 |year=2002 |arxiv=quant-ph/0012104}}.
| |
| *{{citation |last1=Childs |first1=A. M. |last2=Eisenberg |first2=J. M. |title=Quantum algorithms for subset finding |journal=Quantum Information and computation |volume=5 |issue=7 |pages=593–604 |year=2005 |arxiv=quant-ph/0311038}}.
| |
| *{{citation | last1 = Clark | first1 = Brent N. | last2 = Colbourn | first2 = Charles J. | author2-link= Charles Colbourn | author3-link = David S. Johnson | last3 = Johnson | first3 = David S. | title = Unit disk graphs | journal = [[Discrete Mathematics (journal)|Discrete Mathematics]] | volume = 86 | issue = 1–3 | year = 1990 | pages = 165–177 | doi = 10.1016/0012-365X(90)90358-O}}
| |
| *{{citation |first=S. A. |last=Cook |authorlink=Stephen Cook |year=1971 |title=[[Symposium on Theory of Computing|Proc. 3rd ACM Symposium on Theory of Computing]] |pages=151–158 |url=http://4mhz.de/cook.html |doi=10.1145/800157.805047 |chapter=The complexity of theorem-proving procedures}}.
| |
| *{{citation |first1=R. G. |last1=Downey |author2-link=Michael Fellows |first2=M. R. |last2=Fellows |title=Fixed-parameter tractability and completeness. II. On completeness for W[1] |journal=[[Theoretical Computer Science (journal)|Theoretical Computer Science]] |volume=141 |issue=1–2 |year=1995 |pages=109–131 |doi=10.1016/0304-3975(94)00097-3}}.
| |
| *{{citation |first1=R. G. |last1=Downey |author2-link=Michael Fellows |first2=M. R. |last2=Fellows |title=Parameterized complexity | publisher=[[Springer-Verlag]] | year=1999 |isbn = 0-387-94883-X}}.
| |
| *{{citation |first1=F. |last1=Eisenbrand |first2=F. |last2=Grandoni |title=On the complexity of fixed parameter clique and dominating set |journal=[[Theoretical Computer Science (journal)|Theoretical Computer Science]] |volume=326 |issue=1–3 |pages=57–67 |year=2004 |doi=10.1016/j.tcs.2004.05.009}}.
| |
| *{{citation |first1=David |last1=Eppstein |author1-link=David Eppstein |first2=Maarten |last2=Löffler |first3=Darren |last3=Strash |editor1-last=Cheong |editor1-first=Otfried |editor2-first=Kyung-Yong |editor2-last=Chwa |editor3-first=Kunsoo |editor3-last=Park |title=21st International Symposium on Algorithms and Computation (ISAAC 2010), Jeju, Korea |series=Lecture Notes in Computer Science |volume=6506 |pages=403–414 |publisher=Springer-Verlag |doi=10.1007/978-3-642-17517-6_36 |arxiv=1006.5440 |year=2010 |chapter=Listing All Maximal Cliques in Sparse Graphs in Near-Optimal Time |isbn=978-3-642-17516-9}}.
| |
| *{{citation |first1=David |last1=Eppstein |author1-link=David Eppstein |first2=Darren |last2=Strash |contribution=Listing all maximal cliques in large sparse real-world graphs |title=10th International Symposium on Experimental Algorithms |year=2011 |arxiv=1103.0318}}.
| |
| *{{citation |first1=Paul |last1=Erdős |author1-link=Paul Erdős |first2=George |last2=Szekeres |author2-link=George Szekeres |title=A combinatorial problem in geometry |journal=Compositio Mathematica |volume=2 |year=1935 |pages=463–470 |url=http://www.renyi.hu/~p_erdos/1935-01.pdf}}.
| |
| *{{citation |first1=S. |last1=Even |author1-link=Shimon Even |first2=A. |last2=Pnueli |author2-link=Amir Pnueli |first3=A. |last3=Lempel |author3-link=Abraham Lempel |title=Permutation graphs and transitive graphs |journal=[[Journal of the ACM]] |volume=19 |issue=3 |pages=400–410 |year=1972 |doi=10.1145/321707.321710}}.
| |
| *{{citation |first=T. |last=Fahle |title=[[European Symposium on Algorithms|Proc. 10th European Symposium on Algorithms]] |series=Lecture Notes in Computer Science |publisher=Springer-Verlag |volume=2461 |year=2002 |pages=47–86 |doi=10.1007/3-540-45749-6_44 |chapter=Simple and Fast: Improving a Branch-And-Bound Algorithm for Maximum Clique |isbn=978-3-540-44180-9}}.
| |
| *{{citation |first=U. |last=Feige |authorlink=Uriel Feige |title=Approximating maximum clique by removing subgraphs |journal=SIAM Journal on Discrete Mathematics |volume=18 |issue=2 |pages=219–225 |year=2004 |doi=10.1137/S089548010240415X}}.
| |
| *{{citation |first1=U. |last1=Feige |author1-link=Uriel Feige |first2=S. |last2=Goldwasser |author2-link=Shafi Goldwasser |first3=L. |last3=Lovász |author3-link=László Lovász |first4=S |last4=Safra |author4-link=Shmuel Safra |first5=M. |last5=Szegedy |author5-link=Mario Szegedy |title=[[Symposium on Foundations of Computer Science|Proc. 32nd IEEE Symp. on Foundations of Computer Science]] |pages=2–12 |year=1991 |doi=10.1109/SFCS.1991.185341 |chapter=Approximating clique is almost NP-complete |isbn=0-8186-2445-0}}.
| |
| *{{citation |first1=U. |last1=Feige |author1-link=Uriel Feige |first2=R. |last2=Krauthgamer |title=Finding and certifying a large hidden clique in a semirandom graph |journal=Random Structures and Algorithms |volume=16 |issue=2 |pages=195–208 |year=2000 |doi=10.1002/(SICI)1098-2418(200003)16:2<195::AID-RSA5>3.0.CO;2-A}}.
| |
| *{{citation |first1=M. R. |last1=Garey |author1-link=Michael R. Garey |first2=D. S. |last2=Johnson |author2-link=David S. Johnson |title="Strong" NP-completeness results: motivation, examples and implications |journal=[[Journal of the ACM]] |volume=25 |pages=499–508 |year=1978 |doi=10.1145/322077.322090 |issue=3}}.
| |
| *{{citation | last = Gavril | first = F. | doi = 10.1002/net.3230030305 | issue = 3 | journal = Networks | pages = 261–273 | title = Algorithms for a maximum clique and a maximum independent set of a circle graph | volume = 3 | year = 1973}}.
| |
| *{{citation |first1=M. |last1=Goldmann |first2=J. |last2=Håstad |author2-link=Johan Håstad |title=A simple lower bound for monotone clique using a communication game |journal=Information Processing Letters |volume=41 |issue=4 |year=1992 |pages=221–226 |doi=10.1016/0020-0190(92)90184-W}}.
| |
| *{{citation |first=M. C. |last=Golumbic |authorlink=Martin Charles Golumbic |title=Algorithmic Graph Theory and Perfect Graphs |series=Computer Science and Applied Mathematics |publisher=[[Academic Press]] |year=1980 |isbn=0-444-51530-5}}.
| |
| *{{Citation | volume = 10 | issue = 3 | pages = 119–127 | last = Gröger | first = Hans Dietmar | title = On the randomized complexity of monotone graph properties | journal = Acta Cybernetica | accessdate = 2009-10-02 | year = 1992 | url = http://www.inf.u-szeged.hu/actacybernetica/edb/vol10n3/pdf/Groger_1992_ActaCybernetica.pdf}}
| |
| *{{citation |first1=A. |last1=Grosso |first2=M. |last2=Locatelli |first3=F. |last3=Della Croce |title=Combining swaps and node weights in an adaptive greedy approach for the maximum clique problem |journal=Journal of Heuristics |volume=10 |issue=2 |year=2004 |pages=135–152 |doi=10.1023/B:HEUR.0000026264.51747.7f}}.
| |
| *{{citation |first1=M. |last1=Grötschel |first2=L. |last2=Lovász |author2-link=László Lovász |first3=A. |last3=Schrijver|author3-link=Alexander Schrijver |title=Geometric Algorithms and Combinatorial Optimization |series=Algorithms and Combinatorics |volume=2 |publisher=[[Springer–Verlag]] |year=1988 |contribution=9.4 Coloring Perfect Graphs |pages=296–298 |isbn=0-387-13624-X}}.
| |
| *{{citation |first=G. |last=Gutin |contribution=5.3 Independent sets and cliques |title=Handbook of graph theory |editor1-first=J. L. |editor1-last=Gross |editor2-first=J. |editor2-last=Yellen |publisher=CRC Press |year=2004 |isbn=978-1-58488-090-5 |pages=389–402 |series=Discrete Mathematics & Its Applications}}.
| |
| *{{citation |title=Approximations of Weighted Independent Set and Hereditary Subset Problems |first=M. M. |last=Halldórsson |journal=[[Journal of Graph Algorithms and Applications]] |volume=4 |issue=1 |pages=1–16 |year=2000 |url=http://jgaa.info/accepted/00/Halldorsson00.4.1.pdf}}.
| |
| *{{citation |last1=Harary |first1=F. |author1-link=Frank Harary |last2=Ross |first2=I. C. |title=A procedure for clique detection using the group matrix |journal=Sociometry |volume=20 |year=1957 |pages=205–215 |doi=10.2307/2785673 |issue=3 |publisher=American Sociological Association |mr=0110590 |jstor=2785673}}.
| |
| *{{citation |first=J. |last=Håstad |authorlink=Johan Håstad |title=Clique is hard to approximate within n<sup>1 − ε</sup> |journal=[[Acta Mathematica]] |volume=182 |issue=1 |pages=105–142 |year=1999 |doi=10.1007/BF02392825}}.
| |
| *{{citation |first1=R. |last1=Impagliazzo |author1-link=Russell Impagliazzo |first2=R. |last2=Paturi |first3=F. |last3=Zane |title=Which problems have strongly exponential complexity? |journal=[[Journal of Computer and System Sciences]] |volume=63 |issue=4 |year=2001 |pages=512–530 |doi=10.1006/jcss.2001.1774}}.
| |
| *{{citation |first1=A. |last1=Itai |first2=M. |last2=Rodeh |title=Finding a minimum circuit in a graph |journal=[[SIAM Journal on Computing]] |volume=7 |issue=4 |pages=413–423 |year=1978 |doi=10.1137/0207033}}.
| |
| *{{citation |first=M. |last=Jerrum |title=Large cliques elude the Metropolis process |journal=Random Structures and Algorithms |volume=3 |pages=347–359 |year=1992 |doi=10.1002/rsa.3240030402 |issue=4}}.
| |
| *{{Citation | last1=Jian | first1=T | title=An O(2<sup>0.304''n''</sup>) Algorithm for Solving Maximum Independent Set Problem | publisher=IEEE Computer Society | year=1986 | journal=IEEE Transactions on Computers | issn=0018-9340 | volume=35 | issue=9 | pages=847–851 | doi=10.1109/TC.1986.1676847}}.
| |
| *{{citation |editor1-first=D. S. |editor1-last=Johnson |editor1-link=David S. Johnson |editor2-first=M. A. |editor2-last=Trick |title=Cliques, Coloring, and Satisfiability: Second DIMACS Implementation Challenge, October 11–13, 1993 |series=DIMACS Series in Discrete Mathematics and Theoretical Computer Science |volume=26 |publisher=[[American Mathematical Society]] |url=http://dimacs.rutgers.edu/Volumes/Vol26.html |year=1996 |isbn=0-8218-6609-5 |author=<!-- this comment stops Citation bot adding incorrect info here-->}}.
| |
| *{{citation |first1=D. S. |last1=Johnson |author1-link=David S. Johnson |first2=M. |last2=Yannakakis |author2-link=Mihalis Yannakakis |title=On generating all maximal independent sets |journal=Information Processing Letters |volume=27 |year=1988 |pages=119–123 |issue=3 |doi=10.1016/0020-0190(88)90065-8}}.
| |
| *{{citation | last=Karp |first=Richard M. |authorlink=Richard M. Karp |url=http://www.cs.berkeley.edu/~luca/cs172/karp.pdf |contribution= Reducibility among combinatorial problems |title=Complexity of Computer Computations |editor1-first=R. E. |editor1-last=Miller |editor2-first=J. W. |editor2-last=Thatcher |publisher=[[Plenum Publishing Corporation|Plenum]] |location=New York |pages=85–103 |year=1972}}.
| |
| *{{citation | last=Karp |first=Richard M. |authorlink=Richard M. Karp |contribution=Probabilistic analysis of some combinatorial search problems |title=Algorithms and Complexity: New Directions and Recent Results |editor-first=J. F. |editor-last=Traub |publisher=[[Academic Press]] |location=New York |year=1976 |pages=1–19}}.
| |
| *{{citation |first1=K. |last1=Katayama |first2=A. |last2=Hamamoto |first3=H. |last3=Narihisa |title=An effective local search for the maximum clique problem |journal=Information Processing Letters |volume=95 |issue=5 |year=2005 |pages=503–511 |doi=10.1016/j.ipl.2005.05.010}}.
| |
| *{{citation |first=S. |last=Khot |title=[[Symposium on Foundations of Computer Science|Proc. 42nd IEEE Symp. Foundations of Computer Science]] |pages=600–609 |year=2001 |doi=10.1109/SFCS.2001.959936 |chapter=Improved inapproximability results for MaxClique, chromatic number and approximate graph coloring |isbn=0-7695-1116-3}}.
| |
| *{{citation |first1=T. |last1=Kloks |first2=D. |last2=Kratsch |first3=H. |last3=Müller |title=Finding and counting small induced subgraphs efficiently |journal=Information Processing Letters |volume=74 |issue=3–4 |pages=115–121 |year=2000 |doi=10.1016/S0020-0190(00)00047-8}}.
| |
| *{{citation |first1=J. |last1=Konc |first2=D. |last2=Janežič |title=An improved branch and bound algorithm for the maximum clique problem |journal=MATCH Communications in Mathematical and in Computer Chemistry |volume=58 |issue=3 |pages=569–590 |year=2007 | url =http://www.sicmm.org/~konc/articles/match2007.pdf}}. [http://www.sicmm.org/~konc/maxclique Source code]
| |
| *{{citation |last1=Lipton |first1=R. J. |author1-link=Richard J. Lipton |last2=Tarjan |first2=R. E. |author2-link=Robert Tarjan |title=Applications of a planar separator theorem |journal=[[SIAM Journal on Computing]] |volume=9 |issue=3 |pages=615–627 |year=1980 |doi=10.1137/0209046}}.
| |
| *{{citation | last1 = Luce | first1 = R. Duncan | author1-link = R. Duncan Luce | last2 = Perry | first2 = Albert D. | title = A method of matrix analysis of group structure | journal = Psychometrika | volume = 14 | issue = 2 | year = 1949 | pages = 95–116 | doi = 10.1007/BF02289146 | pmid = 18152948}}.
| |
| *{{citation | last1 = Magniez | first1 = Frédéric | last2 = Santha | first2 = Miklos | last3 = Szegedy | first3 = Mario | authorlink3 = Mario Szegedy | title = Quantum algorithms for the triangle problem | year = 2007 | arxiv = quant-ph/0310134 | journal = [[SIAM Journal on Computing]] | volume = 37 | issue = 2 | pages = 413–424 | doi = 10.1137/050643684}}.
| |
| *{{citation |first=K. |last1=Makino |first2=T. |last2=Uno |contribution=New algorithms for enumerating all maximal cliques |title=Algorithm Theory: SWAT 2004 |series=Lecture Notes in Computer Science |publisher=[[Springer-Verlag]] |volume=3111 |year=2004 |pages=260–272 |url=http://www.springerlink.com/content/p9qbl6y1v5t3xc1w/}}.
| |
| *{{citation | last1 = Moon | first1 = J. W. | author2-link = Leo Moser | last2 = Moser | first2 = L. | title = On cliques in graphs | journal = Israel Journal of Mathematics | volume = 3 | year = 1965 | pages = 23–28 | mr = 0182577 | doi = 10.1007/BF02760024}}.
| |
| *{{citation |author1-link=Jaroslav Nešetřil |first1=J. |last1=Nešetřil |first2=S. |last2=Poljak |title=On the complexity of the subgraph problem |journal=Commentationes Mathematicae Universitatis Carolinae |volume=26 |issue=2 |pages=415–419 |year=1985}}.
| |
| *{{citation |first=P. R. J. |last=Östergård |title=A fast algorithm for the maximum clique problem |journal=Discrete Applied Mathematics |volume=120 |issue=1–3 |year=2002 |pages=197–207 |doi=10.1016/S0166-218X(01)00290-6}}.
| |
| *{{citation |last1=Ouyang |first1=Q. |last2=Kaplan |first2=P. D. |last3=Liu |first3=S. |last4=Libchaber |first4=A. |title=DNA solution of the maximal clique problem |journal=[[Science (journal)|Science]] |volume=278 |issue=5337 |pages=446–449 |pmid=9334300 |doi=10.1126/science.278.5337.446 |year=1997}}.
| |
| *{{citation |last1=Pardalos |first1=P. M. |last2=Rogers |first2=G. P. |title=A branch and bound algorithm for the maximum clique problem |journal=Computers & Operations Research |year=1992 |volume=19 |issue=5 |pages=363–375 |doi=10.1016/0305-0548(92)90067-F}}.
| |
| *{{citation |first=A. A. |last=Razborov |authorlink=Alexander Razborov |title=Lower bounds for the monotone complexity of some Boolean functions |language=Russian |journal=[[Proceedings of the USSR Academy of Sciences]] |volume=281 |year=1985 |pages=798–801 |postscript=. English translation in ''Sov. Math. Dokl.'' '''31''' (1985): 354–357}}.
| |
| *{{citation |first=J.-C. |last=Régin |contribution=Using constraint programming to solve the maximum clique problem |title=Proc. 9th Int. Conf. Principles and Practice of Constraint Programming – CP 2003 |year=2003 |url=http://www.springerlink.com/content/8p1980dfmrt3agyp/ |series=Lecture Notes in Computer Science |publisher=[[Springer-Verlag]] |volume=2833 |pages=634–648}}.
| |
| *{{citation |first=J. M. |last=Robson |title=Algorithms for maximum independent sets |journal=Journal of Algorithms |volume=7 |year=1986 |pages=425–440 |issue=3 |doi=10.1016/0196-6774(86)90032-5}}.
| |
| *{{Citation | last1=Robson | first1=J. M. | title=Finding a maximum independent set in time O(2<sup>''n''/4</sup>) |year=2001 |url=http://www.labri.fr/perso/robson/mis/techrep.html}}.
| |
| *{{citation |last1=Rosgen |first1=B |last2=Stewart |first2=L |year=2007 |title=Complexity results on graphs with few cliques |journal=Discrete Mathematics and Theoretical Computer Science |volume=9 |issue=1 |pages=127–136 |url=http://www.dmtcs.org/dmtcs-ojs/index.php/dmtcs/article/view/707/1817}}.
| |
| *{{citation |first=M. |last=Sipser |authorlink=Michael Sipser |title=[[Introduction to the Theory of Computation]] |publisher=[[The Thomson Corporation|International Thompson Publishing]] |year=1996 |isbn=0-534-94728-X}}.
| |
| *{{citation |first1=R. E. |last1=Tarjan |author1-link=Robert Tarjan |first2=A. E. |last2=Trojanowski |title=Finding a maximum independent set |journal=[[SIAM Journal on Computing]] |volume=6 |year=1977 |pages=537–546 |url=ftp://db.stanford.edu/pub/cstr.old/reports/cs/tr/76/550/CS-TR-76-550.pdf |doi=10.1137/0206038 |issue=3}}.
| |
| *{{citation |first1=E. |last1=Tomita |first2=T. |last2=Kameda |title=An efficient branch-and-bound algorithm for finding a maximum clique with computational experiments |journal=Journal of Global Optimization |volume=37 |issue=1 |year=2007 |pages=95–111 |doi=10.1007/s10898-006-9039-7}}.
| |
| *{{citation |first1=E. |last1=Tomita |first2=T. |last2=Seki |title=Discrete Mathematics and Theoretical Computer Science |series=Lecture Notes in Computer Science |publisher=Springer-Verlag |volume=2731 |year=2003 |pages=278–289 |doi=10.1007/3-540-45066-1_22 |chapter=An Efficient Branch-and-Bound Algorithm for Finding a Maximum Clique |isbn=978-3-540-40505-4}}.
| |
| *{{citation |first1=E. |last1=Tomita |first2=A. |last2=Tanaka |first3=H. |last3=Takahashi |title=The worst-case time complexity for generating all maximal cliques and computational experiments |journal=[[Theoretical Computer Science (journal)|Theoretical Computer Science]] |volume=363 |issue=1 |pages=28–42 |year=2006 |doi=10.1016/j.tcs.2006.06.015}}.
| |
| *{{citation |first1=S. |last1=Tsukiyama |first2=M. |last2=Ide |first3=I. |last3=Ariyoshi |first4=I. |last4=Shirakawa |title=A new algorithm for generating all the maximal independent sets |journal=[[SIAM Journal on Computing]] |volume=6 |year=1977 |pages=505–517 |doi=10.1137/0206036 |issue=3}}.
| |
| *{{citation |last=Valiant |first=L. G. |title=[[Symposium on Theory of Computing|Proc. 15th ACM Symposium on Theory of Computing]] |year=1983 |pages=110–117 |doi=10.1145/800061.808739 |chapter=Exponential lower bounds for restricted monotone circuits |isbn=0-89791-099-0}}.
| |
| *{{citation |first1=V. |last1=Vassilevska |first2=R. |last2=Williams |author2-link=Ryan Williams (computer scientist) |title=[[Symposium on Theory of Computing|Proc. 41st ACM Symposium on Theory of Computing]] |year=2009 |pages=455–464 |doi=10.1145/1536414.1536477 |chapter=Finding, minimizing, and counting weighted subgraphs |isbn=978-1-60558-506-2}}.
| |
| *{{citation |last=Wegener |first=I. |title=On the complexity of branching programs and decision trees for clique functions |journal=[[Journal of the ACM]] |volume=35 |issue=2 |pages=461–472 |year=1988 |doi=10.1145/42282.46161}}.
| |
| *{{citation |first=R. |last=Yuster |title=Finding and counting cliques and independent sets in ''r''-uniform hypergraphs |journal=Information Processing Letters |volume=99 |issue=4 |pages=130–134 |year=2006 |doi=10.1016/j.ipl.2006.04.005}}.
| |
| *{{citation |first=D. |last=Zuckerman |title=[[Symposium on Theory of Computing|Proc. 38th ACM Symp. Theory of Computing]] |pages=681–690 |year=2006 |doi=10.1145/1132516.1132612 |id={{ECCC|2005|05|100}}|chapter=Linear degree extractors and the inapproximability of max clique and chromatic number |isbn=1-59593-134-1}}.
| |
| {{refend}}
| |
| | |
| [[Category:NP-complete problems]]
| |
| [[Category:Computational problems in graph theory]]
| |
| | |
| [[fr:Clique (théorie des graphes)#Problème de la clique]]
| |