P. 1
CS502_all

# CS502_all

|Views: 6,655|Likes:

### Availability:

See more
See less

06/07/2013

pdf

text

original

Before giving all the technical deﬁnitions, let us say a bit about what the general classes look like at an
intuitive level.

Class P: This is the set of all decision problems that can be solved in polynomial time. We will
generally refer to these problems as being “easy” or “efﬁciently solvable”.

Class NP: This is the set of all decision problems that can be veriﬁed in polynomial time. This class
contains P as a subset. It also contains a number of problems that are believed to be very “ hard” to
solve.

Class NP: The term “NP” does not mean “not polynomial”. Originally, the term meant “
non-deterministic polynomial” but it is a bit more intuitive to explain the concept from the
perspective of veriﬁcation.

Class NP-hard: In spite of its name, to say that a problem is NP-hard does not mean that it is hard to
solve. Rather, it means that if we could solve this problem in polynomial time, then we could solve
all NP problems in polynomial time. Note that for a problem to NP-hard, it does not have to be in
the class NP.

9.3. POLYNOMIAL TIME VERIFICATION

171

Class NP-complete: A problem is NP-complete if (1) it is in NP and (2) it is NP-hard.

The Figure 9.1 illustrates one way that the sets P, NP, NP-hard, and NP-complete (NPC) might look. We
say might because we do not know whether all of these complexity classes are distinct or whether they
are all solvable in polynomial time. The Graph Isomorphism, which asks whether two graphs are
identical up to a renaming of their vertices. It is known that this problem is in NP, but it is not known to
be in P. The other is QBF, which stands for Quantiﬁed Boolean Formulas. In this problem you are given a
boolean formula and you want to know whether the formula is true or false.

NPC

P

NP

NP-hard

Quantified Boolean

Formulas

No Hamiltonian cycle

0/1 knapsack

Hamiltonian cycle

Satisfiability

Graph Isomorphism

MST
Strong connectivity

Figure 9.1: Complexity Classes

scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->