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

詳解 (共 1 筆)

#6424388

在電腦演算法理論中,P、NP、NP-Complete (NPC) 和 NP-Hard (NPH) 是用於分類計算問題複雜度的重要概念。根據目前的計算理論研究結果:

  1. P (Polynomial Time, 多項式時間): 指那些可以在多項式時間內被解決的決定問題(decision problem),即存在一個多項式時間演算法能找到解。

  2. NP (Nondeterministic Polynomial Time, 非確定性多項式時間): 指那些在多項式時間內可以被驗證的決定問題。也就是說,如果有人給出一個可能的解,我們可以在多項式時間內驗證這個解是否正確。目前尚未證明所有 NP 問題都可以在多項式時間內解決(P=NP?或 P≠NP?這是計算機科學中一個懸而未決的千年大獎問題)。

  3. NP-Hard (NPH, NP 困難): 如果所有 NP 中的問題都可以在多項式時間內歸約(reduce)到某個問題 H,那麼問題 H 就被稱為 NP 困難。NP-Hard 問題不一定屬於 NP 類別(即它們的解不一定能在多項式時間內被驗證)。一個典型的例子是「停機問題」(Halting Problem),它是 NP-Hard 但不可計算(因此不在 NP 中)。

  4. 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