交替式圖靈機
交替式圖靈機(英語:Alternating Turing Machine, ATM)是計算複雜度理論中定義的一種非確定型圖靈機(NTM)。與一般非確定型圖靈機不同,交替式圖靈機將接受語言的規則一般化到NP和反NP。交替式圖靈機的概念由Chandra和Stockmeyer於1976年提出。
定義
編輯直觀描述
編輯NP的定義中使用了語言的存在形式,亦即如果存在一個選擇都能夠使得圖靈機達到接受狀態,那麼整個語言就能夠被接受。與此對應,反NP的定義中使用了語言的全稱形式,亦即整個語言被接受,若且唯若每一個選擇都達到一個接受狀態。結合這兩個定義,可以給出一個語言被交替式圖靈機接受的定義。
對一台交替式圖靈機而言,狀態集被劃分為兩部分:存在狀態(existential state)和全稱狀態(universal state)。存在狀態的接受條件為如果該狀態存在一種轉移序列到達接受狀態,而全稱狀態的接受條件為對該狀態而言,任何一種轉移序列都能夠到達接受狀態。(因而,一個不包含任何轉移的全稱狀態無條件接受,而一個不包含任何轉移的存在狀態無條件拒絕。)互動式圖靈機接受此語言,若且唯若初始狀態得到接受。
形式化描述
編輯形式地,一台(單帶)交替式圖靈機是一個5元組 ,其中
- 是一個有限大小的狀態集
- 是一個有限大小的字母表
- 被稱為轉移函數( 代表帶頭左移, 代表帶頭右移)
- 是初始狀態
- 定義每個狀態的類型,其中 代表全稱狀態, 代表存在狀態。
如果 的格局在狀態 中,且 ,那麼,格局為接受格局。如果格局滿足 ,那麼,格局為拒絕格局。對于格局滿足 ,該格局接受若且唯若所有一步之內能夠到達的格局是接受格局。反之,如果這些格局中存在一個格局拒絕,那麼拒絕。對于格局滿足 ,該格局接受若且唯若存在一個一步之內能夠到達的格局是接受格局。反之,如果所有一步之內可達的格局拒絕,那麼拒絕。 接受輸入串 ,如果 的初始格局(即 的狀態為 ,帶頭在帶的最左端,帶中包含 )被接受。否則, 拒絕 。
k次交替圖靈機
編輯k次交替圖靈機是一種將存在狀態和全稱狀態互相轉移次數限定在 次的交替式圖靈機。亦即,定義狀態集 ,其中,狀態集 為存在狀態,狀態集 為全稱狀態(或者相反)。並且,不存在從 到 的狀態轉移滿足 。
例如,考慮以下電路最小化問題:給定一個能夠計算布林函數 的電路 和一個整數 ,確定是否存在一個最多包含 個門的電路 可以計算 。一台2次交替圖靈機從一個存在狀態出發可以在多項式時間內解決這個問題(在存在狀態通過猜測電路 的 個門,此後進入全稱狀態,猜測輸入並檢查輸出是否和 相同)。
一台從存在狀態(或者全稱狀態)出發的 次交替圖靈機可以在多項式時間內解決 (或者 )的問題。參見多項式時間分層。
資源上界
編輯在利用上面的定義確定一台交替式圖靈機是否接受或拒絕某一格局時,並不需要檢查當前格局可以到達的所有格局。具體來說,對於存在格局,如果某一將來格局被接受即可標記為接受。對全稱格局,如果某一將來格局被拒絕,則可被標記為拒絕。
對於執行時間,規定一台ATM在 時間內判定一個形式語言,如果對於任意長度為 的輸入,通過 步檢查(必要的)格局即可接受或拒絕初始格局。對於執行空間,規定一台ATM在 空間內判定一個形式語言,如果至多修改圖靈機帶上從左端起 位即可完成對必要格局的檢查。
如果一個語言在 時間內( 為正常數)被某個ATM判定,那麼,該語言屬於 。類似地,一個語言在 空間內被某個ATM判定,那麼,該語言屬於 。
例子
編輯也許交替式圖靈機解決的最簡單的問題是量詞布林公式問題。這一問題是布林可滿足性問題的擴充,即每個變數可以被一個全稱量詞或存在量詞所約束。交替式圖靈機依照約束的次序對每一個存在量詞尋找一個可能的賦值,對每一個全稱量詞尋找所有的賦值。在對所有約束變數確定值之後,交替式圖靈機根據剩餘的布林公式確定接受還是拒絕。因此,接受一個存在量詞意味着存在一個賦值,使得賦值後的量詞布林公式可滿足。類似地,接受一個全稱量詞意味着對任何一個賦值,賦值後的量詞布林公式可滿足。
在ATM中,解決量詞布林公式問題需要 時間和 空間。
布林可滿足性問題可被視為量詞布林公式問題將所有變數約束為存在量詞的特例。從而普通的非確定型圖靈機可以有效地解決這一問題。
相關複雜度類別
編輯下面的複雜度類別由ATM確定:
- 是ATM在多項式時間內判定的語言集合
- 是ATM在多項式空間內判定的語言集合
- 是ATM在指數時間內判定的語言集合
這些定義與確定性圖靈機給定的P、PSPACE和EXPTIME在空間上類似。對於兩種計算模型匯出的兩類複雜度類別,Chandra、Kozen和Stockmeyer證明了以下定理:
- AP = PSPACE
- APSPACE = EXPTIME
- AEXPTIME = EXPSPACE
這些結論在平行計算理論中闡釋。
參見
編輯參考資料
編輯- (英文)Chandra, A.K. and Kozen, D.C. and Stockmeyer, L.J., 'Alternation', Journal of the ACM, Volume 28, Issue 1, pp. 114-133, 1981.
- (英文)Michael Sipser. Introduction to the Theory of Computation. PWS Publishing. 1997. ISBN 0-534-94728-X. Section 10.3: Alternation, pp.348–354.
- (英文)Michael Sipser. Introduction to the Theory of Computation, 2nd ed.. PWS Publishing. 2006. ISBN 0-534-95097-3. Section 10.3: Alternation, pp.380–386.
- (英文)Christos Papadimitriou. Computational Complexity 1st edition. Addison Wesley. 1993. ISBN 0-201-53082-1. Section 16.2: Alternation, pp.399–401.