5. 以下關於電腦演算法中所討論的P、NP、NP-Complete(NPC)以及NP-Hard(NPH)等問題的關係,就目前計算理論的研究結果而論,何者正確?
(A) P=NP
(B) P≠NP
(C) NP⊂NPC
(D) NPC⊂NPH
答案:登入後查看
統計: A(9), B(15), C(35), D(26), E(0) #3131022
統計: A(9), B(15), C(35), D(26), E(0) #3131022
詳解 (共 1 筆)
#6424388
在電腦演算法理論中,P、NP、NP-Complete (NPC) 和 NP-Hard (NPH) 是用於分類計算問題複雜度的重要概念。根據目前的計算理論研究結果:
-
P (Polynomial Time, 多項式時間): 指那些可以在多項式時間內被解決的決定問題(decision problem),即存在一個多項式時間演算法能找到解。
-
NP (Nondeterministic Polynomial Time, 非確定性多項式時間): 指那些在多項式時間內可以被驗證的決定問題。也就是說,如果有人給出一個可能的解,我們可以在多項式時間內驗證這個解是否正確。目前尚未證明所有 NP 問題都可以在多項式時間內解決(P=NP?或 P≠NP?這是計算機科學中一個懸而未決的千年大獎問題)。
-
NP-Hard (NPH, NP 困難): 如果所有 NP 中的問題都可以在多項式時間內歸約(reduce)到某個問題 H,那麼問題 H 就被稱為 NP 困難。NP-Hard 問題不一定屬於 NP 類別(即它們的解不一定能在多項式時間內被驗證)。一個典型的例子是「停機問題」(Halting Problem),它是 NP-Hard 但不可計算(因此不在 NP 中)。
-
NP-Complete (NPC, NP 完全): 指那些同時滿足兩個條件的決定問題:
- 該問題本身屬於 NP。
- 該問題是 NP-Hard。 簡單來說,NP-Complete 問題是 NP 類別中最「難」的問題。如果我們能找到一個多項式時間的演算法來解決任何一個 NP-Complete 問題,那麼就證明了 P=NP。
根據這些定義,我們來分析各選項:
- (A) P=NP:這是一個未解決的開放問題。目前沒有證明 P 等於 NP。
- (B) P≠NP:這也是一個未解決的開放問題。儘管大多數計算機科學家傾向於相信 P 不等於 NP,但這尚未被證明。
- (C) NP⊂NPC:這表示 NP 是 NPC 的真子集,也就是說所有 NP 問題都是 NPC 問題。這是不正確的。實際上,NPC 是 NP 的一個子集(即 NPC ⊆ NP),因為 NP-Complete 問題必須首先是 NP 問題。
- (D) NPC⊂NPH:這表示 NP-Complete 是 NP-Hard 的真子集。這是正確的。所有 NP-Complete 問題都屬於 NP-Hard(根據定義)。然而,存在一些 NP-Hard 問題不屬於 NP 類別(例如,停機問題就屬於 NP-Hard 但不屬於 NP),因此 NP-Hard 集合比 NP-Complete 集合更大,NP-Complete 是 NP-Hard 的一個真子集。
The final answer is D
0
0