Home
Archaeology
Astronomy
Biology
Books
Business
Chemistry
Coins
Computers
Conservation
Cooking
Earth Science
Farming
Economics
Finance
Games
Geography
Health Science
History by Date
Hobbies
Law
Mathematics
Medicine
Military Technology
Movies
Music
People
Pharmacology
Philosophy
Physics
Psychology
Religion
Science History
Technology
Sports
Television
Video
Visual Art
Privacy
Contact Us



Sharp-P

#P, pronounced "sharp P", is a complexity class in complexity theory. It is the set of counting problems associated with the decision problems in the set NP.

An NP problem is often of the form:

  • Are there any solutions that satisfy certain constraints?
For example: The corresponding #P problems ask "how many" rather than "are there any". For example:
  • How many subsets of a list of integers add up to zero?
  • How many Hamiltonian cycles in a given graph have cost less than 100?
  • How many variable assignments satisfy a given DNF formula?

More formally, a problem is in #P if there is a non-deterministic, polynomial-time Turing machine that, for each instance I of the problem, has a number of accepting computations that is exactly equal to the number of distinct solutions for instance I.

Clearly, a #P problem must be at least as hard as the corresponding NP problem. If it's easy to count answers, then it must be easy to tell whether there are any answers. Just count them, and see if the count is greater than zero. Therefore, the #P problem corresponding to any NP-Complete problem, must be NP-Hard.

Surprisingly, some #P problems that are believed to be difficult correspond to easy P problems. For more information on this, see Sharp-P-Complete.


Copyright 2004. All rights reserved.