CSharp  Java  Python  Swift  GO  WPF  Ruby  Scala  F#  JavaScript  SQL  PHP  Angular  HTML
Polynomial Time VerificationBefore talking about the class of NPcomplete problems, it is essential to introduce the notion of a verification algorithm. Many problems are hard to solve, but they have the property that it easy to authenticate the solution if one is provided. Hamiltonian cycle problem:Consider the Hamiltonian cycle problem. Given an undirected graph G, does G have a cycle that visits each vertex exactly once? There is no known polynomial time algorithm for this dispute. Note:  It means you can't build a Hamiltonian cycle in a graph with a polynomial time even if there is no specific path is given for the Hamiltonian cycle with the particular vertex, yet you can't verify the Hamiltonian cycle within the polynomial timeFig: Hamiltonian Cycle Let us understand that a graph did have a Hamiltonian cycle. It would be easy for someone to convince of this. They would similarly say: "the period is hv3, v7, v1....v13i. We could then inspect the graph and check that this is indeed a legal cycle and that it visits all of the vertices of the graph exactly once. Thus, even though we know of no efficient way to solve the Hamiltonian cycle problem, there is a beneficial way to verify that a given cycle is indeed a Hamiltonian cycle. Note:For the verification in the Polynomialtime of an undirected Hamiltonian cycle graph G. There must be exact/specific/definite path must be given of Hamiltonian cycle then you can verify in the polynomial time.Definition of Certificate:  A piece of information which contains in the given path of a vertex is known as certificate Relation of P and NP classes
Reductions:The class NPcomplete (NPC) problems consist of a set of decision problems (a subset of class NP) that no one knows how to solve efficiently. But if there were a polynomial solution for even a single NPcomplete problem, then every problem in NPC will be solvable in polynomial time. For this, we need the concept of reductions. Suppose there are two problems, A and B. You know that it is impossible to solve problem A in polynomial time. You want to prove that B cannot be explained in polynomial time. We want to show that (A ∉ P) => (B ∉ P) Consider an example to illustrate reduction: The following problem is wellknown to be NPC: 3color: Given a graph G, can each of its vertices be labeled with one of 3 different colors such that two adjacent vertices do not have the same label (color). Coloring arises in various partitioning issues where there is a constraint that two objects cannot be assigned to the same set of partitions. The phrase "coloring" comes from the original application which was in map drawing. Two countries that contribute a common border should be colored with different colors. It is well known that planar graphs can be colored (maps) with four colors. There exists a polynomial time algorithm for this. But deciding whether this can be done with 3 colors is hard, and there is no polynomial time algorithm for it. Fig: Example of 3colorable and non3colorable graphs. Polynomial Time Reduction:We say that Decision Problem L_{1} is Polynomial time Reducible to decision Problem L_{2} (L_{1≤p} L_{2}) if there is a polynomial time computation function f such that of all x, xϵL_{1} if and only if xϵL_{2}.
Next TopicNPCompleteness
