background preloader

Automata

Facebook Twitter

Cook–Levin theorem. The theorem is named after Stephen Cook and Leonid Levin.

Cook–Levin theorem

The question of whether such an algorithm exists is called the P versus NP problem and it is widely considered the most important unsolved problem in theoretical computer science. Contributions[edit] The concept of NP-completeness was developed in the late 1960s and early 1970s in parallel by researchers in the US and the USSR. In the US in 1971, Stephen Cook published his paper "The complexity of theorem proving procedures"[1] in conference proceedings of the newly founded ACM Symposium on Theory of Computing. Richard Karp's subsequent paper, "Reducibility among combinatorial problems",[2] generated renewed interest in Cook's paper by providing a list of 21 NP-complete problems.

The theoretical interest in NP-completeness was also enhanced by the work of Theodore P. In the USSR, a result equivalent to Baker, Gill, and Solovay's was published in 1969 by M. Definitions[edit] Idea[edit] Boolean satisfiability problem. SAT was the first known example of an NP-complete problem.

Boolean satisfiability problem

That briefly means that there is no known algorithm that efficiently solves all instances of SAT, and it is generally believed (but not proven, see P versus NP problem) that no such algorithm can exist. Further, a wide range of other naturally occurring decision and optimization problems can be transformed into instances of SAT. A class of algorithms called SAT solvers can efficiently solve a large enough subset of SAT instances to be useful in various practical areas such as circuit design and automatic theorem proving, by solving SAT instances made by transforming problems that arise in those areas.

Extending the capabilities of SAT solving algorithms is an ongoing area of research. However, no current such methods can efficiently solve all SAT instances. Basic definitions and terminology[edit] Complexity and restricted versions[edit] Unrestricted satisfiability (SAT)[edit] 3-satisfiability[edit] Exactly-1 3-satisfiability[edit] NP-complete. Although any given solution to an NP-complete problem can be verified quickly (in polynomial time), there is no known efficient way to locate a solution in the first place; indeed, the most notable characteristic of NP-complete problems is that no fast solution to them is known.

NP-complete

That is, the time required to solve the problem using any currently known algorithm increases very quickly as the size of the problem grows. As a consequence, determining whether or not it is possible to solve these problems quickly, called the P versus NP problem, is one of the principal unsolved problems in computer science today. Overview[edit] Formal definition of NP-completeness[edit] A decision problem is NP-complete if: is in NP, andEvery problem in NP is reducible to in polynomial time.[1] can be shown to be in NP by demonstrating that a candidate solution to can be verified in polynomial time. Note that a problem satisfying condition 2 is said to be NP-hard, whether or not it satisfies condition 1.[2]

Boolean algebra. Boolean algebra was introduced by George Boole in his first book The Mathematical Analysis of Logic (1847), and set forth more fully in his An Investigation of the Laws of Thought (1854).[1] According to Huntington the term "Boolean algebra" was first suggested by Sheffer in 1913.[2] Boolean algebra has been fundamental in the development of digital electronics, and is provided for in all modern programming languages.

Boolean algebra

It is also used in set theory and statistics.[3] History[edit] In the 1930s, while studying switching circuits, Claude Shannon observed that one could also apply the rules of Boole's algebra in this setting, and he introduced switching algebra as a way to analyze and design circuits by algebraic means in terms of logic gates.