A Polynomial Time Algorithm For Solving Clique Problems

A Polynomial Time Algorithm For Solving Clique Problems

I present a single algorithm which solves the clique problems, “What is the largest size clique?”, “What are all the maximal cliques?” and the decision problem, “Does a clique of size k exist?” for any given graph in polynomial time. The existence of this algorithm proves that P = NP.


💡 Research Summary

The paper claims to have discovered a single algorithm that can solve three classic formulations of the clique problem in polynomial time: (1) determining the size of the largest clique, (2) enumerating all maximal cliques, and (3) answering the decision question “does a clique of size k exist?” The author argues that because these problems are NP‑complete, a polynomial‑time solution directly proves that P = NP.

The introduction briefly reviews the importance of cliques in graph theory, cites the NP‑completeness proofs of the maximum‑clique decision and optimization problems, and motivates the search for a unified algorithm. The related‑work section lists known exact exponential‑time algorithms, approximation schemes, and special‑case polynomial algorithms for restricted graph families (e.g., planar graphs, chordal graphs). The author then claims that none of these approaches address all three formulations simultaneously, leaving a gap that the new method fills.

The core of the paper is the description of a “clique‑search tree” algorithm. The algorithm proceeds by maintaining a current partial clique and a candidate set of vertices that can extend it. At each step it computes the intersection of the candidate set with the neighborhood of a chosen vertex, recursively explores the resulting subproblem, and records a clique whenever the candidate set becomes empty. The author introduces a “possibility‑pruning function” that supposedly eliminates branches that cannot lead to a maximal clique, thereby reducing the search space dramatically. Pseudocode is provided, and the main loop is said to run in O(n³) or O(n⁴) time, where n is the number of vertices.

To justify correctness, the paper offers a proof by contradiction: if the algorithm missed a maximal clique, that clique would have to be excluded from the candidate set at some recursion level, which would contradict the definition of the pruning function. The proof, however, glosses over the fact that the pruning function itself is defined in terms of the very property it is supposed to guarantee, creating a circular argument.

The complexity analysis claims that each vertex is considered a bounded number of times and that set‑intersection operations can be performed in polynomial time. Consequently, the total running time is asserted to be polynomial in the size of the input graph. The author also claims that the algorithm’s output size is polynomial because the number of maximal cliques is “effectively bounded” for any graph, a statement that directly contradicts known results: the number of maximal cliques can be exponential in n (e.g., in Moon–Moser graphs).

Experimental results are presented on randomly generated graphs and a few standard benchmark instances from the DIMACS suite. The reported runtimes are indeed lower than those of classic exponential algorithms for the tested instances, but the experiments are limited to relatively small graphs (up to a few hundred vertices) and to graphs with moderate edge densities. No worst‑case instances are examined, and the paper does not discuss the memory consumption required to store an exponential number of maximal cliques when they exist.

In the concluding section, the author extrapolates the significance of the result, stating that a polynomial‑time algorithm for cliques would immediately imply polynomial‑time solutions for a host of other NP‑complete problems (independent set, vertex cover, etc.) and that the long‑standing P versus NP question is finally resolved.

From a critical standpoint, the paper contains several serious deficiencies. First, the algorithm’s description lacks a rigorous definition of the pruning function, and the claimed polynomial bound on the number of maximal cliques is false for general graphs. Second, the correctness proof is incomplete and relies on assumptions that have not been justified. Third, the complexity analysis ignores the output size: enumerating all maximal cliques is inherently output‑sensitive, and any algorithm that truly lists them must run in time at least proportional to the number of cliques, which can be exponential. Fourth, the experimental evaluation is too narrow to support a claim of universal polynomial performance.

Given these issues, the paper does not provide a convincing polynomial‑time solution to the clique problem, nor does it constitute a valid proof that P = NP. Substantial additional work—particularly a complete, non‑circular correctness proof, a proper handling of exponential output, and rigorous worst‑case analysis—would be required before the community could accept the claimed breakthrough. As it stands, the manuscript is an interesting attempt but falls short of the standards needed to overturn a cornerstone result in computational complexity theory.