complexity 7-1 complexity andrei bulatov the class np
TRANSCRIPT
![Page 1: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/1.jpg)
Complexity 7-1
ComplexityAndrei Bulatov
The Class NP
![Page 2: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/2.jpg)
Complexity 7-2
Beyond P
• We have seen that the class P provides a useful model of “easy” computation
• This includes 2-Satisfiability and
2-Colourability
• But what about 3-Satisfiability and
3-Colourability
• No polynomial time algorithms for these problems are known
• On the other hand …
![Page 3: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/3.jpg)
Complexity 7-3
Certificates
Every yes-instance of those problems has a short and easily checkablecertificate
• Satisfiability — a satisfying assignment
• k-Colourability — a k-colouring
• Hamiltonian Circuit — a Hamiltonian circuit
• Linear Programming — a solution to the system of inequalities
In all cases one can easily prove a positive answer
![Page 4: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/4.jpg)
Complexity 7-4
Verifiers
Definition A decider machine V is called a verifier for a language L if
L w V accepts “w;c” for some string c
Definition A decider machine V is called a verifier for a language L if
L w V accepts “w;c” for some string c
The string c is called a certificate (or witness) for w
A verifier is said to be polynomial time if it is a polynomial time Turing Machine, and there is a polynomial p(x) such that, for any w L, there is a certificate c with |c| p(|w|)
All problems from the previous slide have a polynomial time verifier
![Page 5: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/5.jpg)
Complexity 7-5
The Class NP
Definition The class of languages that have polynomial time verifiers is called NP
Definition The class of languages that have polynomial time verifiers is called NP
![Page 6: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/6.jpg)
Complexity 7-6
More Examples of Problems in NP
Instance: A graph G and a number k.
Question: Does G contain a clique of size k?
Clique
Instance: A sequence of positive integers and a target integer t.
Question: Is there a subset T S such that ?
SubsetSum
},,{ 1 naaS
taTi
i
![Page 7: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/7.jpg)
Instance: A positive integer k.
Question: Are there positive integers u, v >1 such that k = u·v?
Composite
Complexity 7-7
More Examples of Problems in NP
Instance: A graph G and two its vertices u and v.
Question: Is there a path connecting u and v?
Path
![Page 8: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/8.jpg)
Complexity 7-8
Problems not in NP
Instance: A graph G.
Question: Is it true that G has no Hamiltonian circuit?
No Hamiltonian Circuit
Instance: A positive integer k.
Question: Is k prime?
Prime (= Not Composite)
![Page 9: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/9.jpg)
Complexity 7-9
Problems not in NP
Instance: A positive integer n.
Question: Is there a winning strategy for whites in a checker game on n n board?
Checkers
![Page 10: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/10.jpg)
Complexity 7-10
Non-deterministic Machines
We can get an alternative definition of the class NP by considering non-deterministic machines
Recall that if NT is a non-deterministic Turing Machine, then NT(x) denotes the tree of configurations which can be entered with input x, and NT accepts x if there is some accepting path in NT(x)
Definition The time complexity of a non-deterministic Turing Machine NT is the function such that is the number of steps in the shortest accepting path of NT(x) if there is one, otherwise it is the number of steps in the shortest rejecting path
Definition The time complexity of a non-deterministic Turing Machine NT is the function such that is the number of steps in the shortest accepting path of NT(x) if there is one, otherwise it is the number of steps in the shortest rejecting path
NTNTime )(NTime xNT
(If not all paths of NT(x) halt, then is undefined))(NTime xNT
![Page 11: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/11.jpg)
Complexity 7-11
Nondeterministic Time Complexity
Definition For any function f, we say that the nondeterministic time complexity of a decidable language L is in O(f) if there exists a nondeterministic Turing Machine NT which decides L, and constants and c such that for all inputs x with
Definition For any function f, we say that the nondeterministic time complexity of a decidable language L is in O(f) if there exists a nondeterministic Turing Machine NT which decides L, and constants and c such that for all inputs x with
|)(|)(NTime xcfxNT
0n 0|| nx
Definition The nondeterministic time complexity class NTIME[f] is defined to be the class of all languages with nondeterministic time complexity in O(f)
Definition The nondeterministic time complexity class NTIME[f] is defined to be the class of all languages with nondeterministic time complexity in O(f)
![Page 12: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/12.jpg)
Complexity 7-12
An Alternative Definition of NP
Definition Definition
0
]NTIME[
k
knNP
This was the original form of the definition of NP, and was first formulatedby Karp in 1972
It explains the name — NP Nondeterministic Polynomial-time
![Page 13: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/13.jpg)
Complexity 7-13
Equivalence
Theorem The two definitions of NP are equivalent
Theorem The two definitions of NP are equivalent
Proof:
• If , then there is a nondeterministic machine NT such that x L if and only if there is an accepting computation path in NT(x). Furthermore, the length of these paths is in
Using (some encoding of) these computation paths as the certificates, we can construct a polynomial time verifier for L which simply checks that each step of the computation path is valid
]NTIME[ knL
)|(| kxO
![Page 14: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/14.jpg)
Complexity 7-14
• Conversely, if L has a polynomial-time verifier V, then we can construct a non-deterministic Turing Machine that first “guesses” the value of the certificate (by making a series of non-deterministic choices), and then simulates V with that certificate. Since the length of the certificate is polynomial in the length of the input, this machine is a nondeterministic polynomial-time decision procedure for L.
guessing a certificate
chec
king
certi
ficat
e
![Page 15: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/15.jpg)
Complexity 7-15
P and NP
All Languages
DecidableLanguages
P NP
![Page 16: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/16.jpg)
Complexity 7-16
P NP?
The question of whether or not P NP is one of the biggest open problems in computer science
The question of whether or not P NP is one of the biggest open problems in computer science
• It is equivalent to determining whether or not the existence of a short solution guarantees an efficient way to find that solution
• Virtually everyone is convinced that P NP, but after 30 years of effort there is still no proof
• Resolving this question (either way) would win a prize of $1 million — see http://www.claymath.org/prize_problems
![Page 17: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/17.jpg)
Complexity 7-17
Reducibility and Completeness
• Any complexity class can be partitioned into equivalence classes via polynomial-time reduction — each class contains problems that are reducible to each other• These equivalence classes are partially ordered by reduction• Problems in the maximal class are called complete
![Page 18: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/18.jpg)
Complexity 7-18
NP-Completeness
Definition A language L is said to be NP-complete if, for any A NP, A L
Definition A language L is said to be NP-complete if, for any A NP, A L
• NP-complete problems are the hardest problems in NP
• They are all equally difficult — an efficient solution to one would solve them all
![Page 19: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/19.jpg)
Complexity 7-19
Proving NP-completeness
• To show that L is NP-complete we must show that every language in NP can be reduced to L in polynomial time
• This would appear to be hard!
• However, once we have one NP-complete language we can show any other language L is NP-complete just by showing
• Hence the most difficult part is finding the first one …
0L
LL 0
![Page 20: Complexity 7-1 Complexity Andrei Bulatov The Class NP](https://reader036.vdocuments.mx/reader036/viewer/2022083009/5697c01d1a28abf838cd0936/html5/thumbnails/20.jpg)
Complexity 7-20
Cook – Levin Theorem
This problem was solved by Cook in 1970 (and independently byLevin in the USSR)
Theorem (Cook – Levin)
Satisfiability is NP-complete
Theorem (Cook – Levin)
Satisfiability is NP-complete