計算複雜性理論中,多項式時間歸約是指假設已有解決一個問題的子程式,利用它在多項式時間內(不考慮子程式執行所用時間)解決另一個問題的歸約方法。如果將第一個問題轉換成第二個的時間,且子程式被呼叫的次數都是多項式級別的,那麼第一個問題可以多項式時間規約到第二個問題。[1]

多項式時間規約證明了第一個問題不比第二個問題難。因為當第二個問題存在高效率演算法時,第一個也存在。因為逆否命題,如果第一個問題沒有高效率演算法時,第二個也沒有。[1]計算複雜性理論中經常使用多項式時間規約來定義複雜性類別完全問題

規約的類型

多項式時間歸約有幾種不同類型,取決於具體如何使用子程式。

三種最常見的多項式時間規約類型,從最多限制到最少限制的,是多項式時間多一規約英語Many-one reduction真值表規約英語Truth-table reductions圖靈規約[2]最常用的是多一規約,在某些情況下短語「多項式時間規約」可能僅指多項式時間多一規約。[3]

多一規約

從問題A到問題B(兩個通常都需要是決定性問題)的多項式時間多一規約英語Many-one reduction,是將問題A的輸入轉換成問題B的輸入的多項式演算法,使得轉換後的問題與原問題有相同的輸出。問題A的實例x,可以通過此轉換為問題B的實例y,將y輸入解決問題B的演算法,然後返回它的輸出。多項式時間多一規約也被稱為Karp規約,以理查德·卡普命名。這種類型的規約被表示為[4][5]

真值表歸約

從問題A到問題B(兩個都是決定性問題)的多項式時間真值表規約英語Truth-table reductions,是將問題A的輸入轉換成固定數量個問題B的輸入的多項式演算法,使得原問題的輸出可以被表示為問題B輸出的函數。將 B 的輸出對映到 A 的輸出的函數對於所有輸入必須相同,所以它可以用真值表表示。 這種類型的歸約可以用表達式來表示。[6]

圖靈規約

從問題 A 到問題 B 的多項式時間圖靈規約是一種演算法,它需要呼叫問題 B 的子程式多項式次,以及這些子程式呼叫之外的多項式時間來解決問題 A。 多項式時間圖靈規約也稱為庫克規約,以史蒂芬·庫克命名。 這種類型的歸約可以用表達式來表示。[4]多一歸約可以被視為圖靈歸約的受限變體,其中對問題 B 的子程式的呼叫次數恰好為 1,且歸約返回的值與子程式返回的值相同。

參考文獻

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.