決定性問題
決定性問題
在可計算性理論與計算複雜性理論中,所謂的決定性問題(Decision problem)是一個在某些形式系統回答是或否的問題。例如:“給兩個數字x與y,x是否可以整除y?”便是決定性問題,此問題可回答是或否,且依據其x與y的值。
決定性問題在數學問題是否“可決定”中出現,即是否存在有效方法判定一個性質的存在性。數學中許多重要的問題都是不可決定的。
決定性問題只有是-否兩種輸出
另一個與上述兩類問題相關的是最佳化問題,此問題關心的是尋找特定問題的最佳答案。
解決決定性問題的方法稱為 決策程式或演演算法。一個針對決定性問題的演演算法將說明給予參數x和y的情況下如何決定x是否整除y(就是小學學的長除法)。若是某些決定性問題可以被一些演演算法所解決,則稱此問題 可決定。
計算複雜度的領域中,分類可決定問題的依據在於 此問題有多難被解決。在此標準下,所謂的 難是以解決某問題最有效率的演演算法所花費的計算資源為依據。在遞歸理論中,非決定性問題由圖靈度(不可解度)決定,指的是一種在任何解答中隱含的不可計算性量詞。
計算性理論的研究集中在決定性問題上。在與功能性問題的等值問題中,並沒有失去其普遍性。
一個判斷決定性的重要手段是萊斯定理(Rice's Theorem)。
決定性問題指的是在一個數量為無限大的輸入集合中,可產出任何是或非解答的問題之集合。因此傳統上定義決定性問題,乃依其解答為 是的輸入之集合。在此情形下,一決定性問題亦等於一形式語言。
形式上,決定性問題是一自然數子集 A。藉由使用哥德爾數,也可學習諸如形式語言的其他集合。非正規的定義決定性問題,就是判別一個給予的數字是否在此集合內。
一個經典可決定的決定性問題是質數問題。藉由測試每一個可能的因子,有可能 有效決定一個自然數是否為質數。儘管存在很多效能更佳的質數判定方法,任何有效方法的存在就已足夠建立可決定性。
在計算複雜性理論中,完備的決定性問題通常用來判別其他決定性問題的複雜度類別。重要的實例包括SAT問題與其數變種,還有無向與有向圖可達性問題。
一決定性問題 A,若 A是一個遞歸集合,則稱做 可決定的(decidable)或 有效可解(effectively solvable)。若其 A是一遞歸可枚舉集合則稱為 部分可決定的(partially decidable)、半可決定的(semidecidable)、可解的(solvable)或 可證明(provable)。除此之外,此問題稱為 不可決定的。
重要的不可決定的決定性問題包括停機問題。
決定性問題可以利用 多至一簡化(Many-one reduction)以及其他相關的簡化如多項式時間簡化(Polynomial-time reduction)來分類。一個決定性問題P被稱為 完備的,只要有一個集合包含一組決定性問題S,集合里所有問題都可以簡化為P。完備的決定性問題一般用於計算複雜性理論來分決定性問題於複雜性類。例如布爾可滿足性問題對於決定性問題中的NP問題在多項式時間簡化下是完備的。
德語“Entscheidungsproblem”,亦即“判定性問題”(Decision-problem),最早出自於大衛·希爾伯特的話:“在1928年的會議上,希爾伯特精確地描述了他的問題。首先,數學是否具有完備性?……其次,數學是否具有相容性?……再次,數學是否具有判定性?這些問題的意思是,是否存在這樣一種確定的方法,在理論上可適用於任何假設,並且能夠保證對無論是否正確的假設都能給出一個正確的結果”(Hodeges,p. 91)。希爾伯特相信“在數學上沒有‘ignorabimus’”,亦即“我們將無從得之”。
一個功能性問題是由一個局部函數f組成的,這個非正式的“問題”是計算f在它定義下的值。
所有功能性問題可以轉化成決定性問題;這個決定性問題是這個函數的圖(函數f的圖是指數對(x,y)有f(x)=y),如果這個決定性問題是可解的,那麼這個功能性問題同樣可解。這個簡化沒有考慮計算複雜性,比如劃歸后在多項式時間可決定的函數(運算時間是根據函數(x,y)計算的)不一定在多項式時間內可計算(這時只對x計算),函數f=2^x就有這種性質。
所有決定性問題也能轉換成功能性問題,就是計算決定性問題集合的特徵函數。如果函數是可計算的,那麼這個問題就是可決定的。然而,這種轉化比在計算複雜性理論里的轉化(一般叫多至一多項式時間轉化)更加自由。