Jennya
2013/10/31
P 決
�
(
��)
, ��� �����NP
NPC
這些問題可以在 polynomial time 內被
verify certificat hamiltonian cycle problem e
directed graph G = (V,E)
+ 〈 v1, v2, v3, … v|V| 〉
=> check if correct NP-complete
� (3�) ,�(2�)
NP-Complete
一個問題是 NP, 而且跟 NP 裡面的其他問題至少
”一樣難”
( 一樣難 : 所有 NP 裡面的問題可以在 polynomia l time 裡面轉換成 NP-complete 的問題 )
因為以上 , 所以”一解則全解”
NP-Complete
1. 這些問題目前尚未找到可以在 polynomial time 內解決的 algorithm.
2. 這些問題目前尚未被證明無法在 polynomial time 內解決 .
NP
P=NP???
P
NP-Complete
NPP
NP-Complete
學這個有什麼用 ?
雖然還沒有人證明出 NP-complete problems 無 法在 polynomial time 裡面解出來
但是經過了 40 年了 , 沒有任何 NP-complete problem 被解出來 (polynomial time)
因此證明某問題為 NP-complete 某種程度上也 證明了它非常難解 ( 或甚至無法解 )
近似演算法 / 針對特別 condition
key concepts in
showing a problem to be NP-complete
Decision problems
Reductions
A first NP-complete problem
v.s.
optimization problem
Decision problem:
輸出是 yes/no (1/0) ( 可不可以找到答案 )
Optimization problem:
輸出是最好的解 ( 可以的答案中找出最好的那 個 )
Decision problem
NP-Complete 只適用於 decision problems
怎麼將 optimization problem 轉換成 decisio n problem 呢 ?
對要 optimize 的值設定一個 bound
將 Shortest path 轉換成 decision problem:
例子 : Shortest path v.s. Path
給定 graph G, vertices u & v, integer k, 有沒有從 u 到 v 的路徑使用少於 k 個 edge?
存在 instances of A instances of B
的 polynomial-time reduction algorithm
假設 A 沒有 polynomial-time algorithm exis t
則 B 也沒有 polynomial-time algorithm 可以 解
使用反證法 , 假設 B 有 矛盾 . 所以 B 也沒有 . 則 A 也有