交替性チューリング機械のソースを表示
←
交替性チューリング機械
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''交替性チューリング機械'''(こうたいせいチューリングきかい、{{lang-en-short|Alternating Turing Machine, ATM}})は、[[非決定性チューリング機械]] (NTM) の一種であり、[[複雑性クラス]] '''[[NP]]''' および [[Co-NP|co-'''NP''']] の定義で使われる規則を一般化した計算受理規則を持つ。1976年、Chandra と Stockmeyer が ATM の概念を定式化した。 == 定義 == === 概要 === '''NP''' の定義では、計算の「存在的様式 (existential mode)」が使われる。すなわち、任意の選択が受理状態に到達すれば、計算全体が受理されたことになる。co-'''NP''' の定義では、計算の「全称的様式 (universal mode)」が使われる。すなわち、全ての選択が受理状態に到達すれば、計算状態が受理されたことになる。交替性チューリング機械(より正確に言えばそのような機械における受理の定義)はこれら2つの様式を混在して利用する。 交替性チューリング機械は[[非決定性チューリング機械]]の一種であり、その状態は2つの集合、「存在的状態 (existential states)」と「全称的状態 (universal states)」に分けられる。存在的状態では、受理状態となる遷移が1つでもあれば受理される。全称的状態では、全ての遷移が受理状態となる場合にのみ受理される。従って、遷移のない全称状態は無条件で受理され、遷移のない存在状態は無条件で拒絶される。機械全体としては、初期状態が受理される場合に受理する。 === 形式的定義 === 形式的には(テープが一本の)交替性チューリング機械は、5-[[タプル]] <math>M=(Q,\Gamma,\delta,q_0,g)</math> で表され、それぞれは以下のような意味を持つ。 * <math>Q</math> は、状態の[[有限集合]] * <math>\Gamma</math> は、テープ上の[[アルファベット (計算機科学)|アルファベット]]の有限集合 * <math>\delta:Q\times\Gamma\rightarrow\mathcal{P}(Q\times\Gamma\times\{L,R\})</math> は、遷移関数(''L'' はヘッドを左に移動させ、''R'' はヘッドを右に移動させる) * <math>q_0\in Q</math> は、初期状態 * <math>g:Q\rightarrow\{\wedge,\vee,accept,reject\}</math> は、各状態の種類を指定する関数 ''M'' が状態 <math>q\in Q</math> にあり、<math>g(q)=accept</math> なら、受理状態であることを示している。また <math>g(q)=reject</math> なら、拒絶状態であることを示している。<math>g(q)=\wedge</math> なら、1ステップで到達可能な全ての構成が受理状態であれば、受理状態であるし、1ステップで到達可能な状態の中に拒絶状態のものがあれば、拒絶状態である。<math>g(q)=\vee</math> なら、1ステップで到達可能な状態の中に受理状態のものがあれば、受理状態であるし、1ステップで到達可能な全ての構成が拒絶状態であれば、拒絶状態である(通常の NTM は全てこの状態)。''M'' が入力文字列 ''w'' を受理するとは、''M'' の初期構成(''M''の状態が <math>q_0</math> で、ヘッドはテープの左端にあり、テープには ''w'' がある)が受理状態であることを意味し、初期構成が拒絶状態なら拒絶する。 === ''k''回の交替のある機械 === ''k''回の交替のある交替性チューリング機械とは、存在的状態から全称的状態への切り替え、あるいはその逆の切り替えが ''k'' 回以上発生しない交替性チューリング機械である。この場合、状態は ''k'' 個の集合に分割される。状態が偶数個の集合に分割されるなら、全体として全称的であり、奇数個なら存在的となる(あるいは逆。初期状態がどちらであるかに依存する)。集合 ''i'' に含まれる状態と、''j'' < ''i'' であるような集合 ''j'' に含まれる状態との間に遷移は存在しない。 例として[[回路最小化問題]]を考える。ある[[ブール関数]] ''f'' を計算する回路 ''A'' と数 ''n'' があるとき、最大 ''n'' 個の論理ゲートで同じ関数 ''f'' を計算する回路が存在するかどうかを決定する問題である。1回の交替のある交替性チューリング機械で存在的状態から動作を開始する場合、この問題を多項式時間で解くことができる。最大 ''n'' ゲートの回路 ''B'' を想定し、全称状態に交替し、入力を想定し、''B'' にその入力を与えたときの出力と ''A'' に同じ入力を与えたときの出力を比較する。 ''k''回の交替のある交替性チューリング機械が存在的状態から動作開始する場合、クラス <math>\Sigma_k\rm{P}</math> に属する問題を多項式時間で解くことができる(あるいは、全称的状態から動作開始する場合は、<math>\Pi_k\rm{P}</math>)。詳しくは[[多項式階層]]を参照されたい。 === 計算資源 === 上述の定義を使って、ある ATM の構成が受理状態なのか拒絶状態なのかを決定する場合、現在の構成から到達可能なあらゆる構成を全て調べる必要はない。特に存在的構成は、そこから遷移する構成に受理状態のものが1つでもあれば、受理状態であると言えるし、全称構成は、そこから遷移する構成に拒絶状態のものが1つでもあれば、拒絶状態であると言える。 ATM は、長さ <math>n</math> の任意の入力が特定の[[形式言語]]に属するかを時間 <math>t(n)</math> で決定する。すなわち、初期構成が受理状態か拒絶状態かを決定するのに、高々 <math>t(n)</math> ステップまで構成を調べればよい。また、必要な領域は <math>s(n)</math> で十分である。 ATM で、時間 <math>c\cdot t(n)</math>(<math>c>0</math> は定数)で決定される言語は、クラス <math>{\rm ATIME}(t(n))</math> に属し、領域 <math>c\cdot s(n)</math> で決定される言語は、クラス <math>{\rm ASPACE}(s(n))</math> に属する。 == 例 == 交替性チューリング機械で解ける最も単純な問題として[[TQBF問題|限量記号付きブール式問題]]がある。これは[[充足可能性問題]]を拡張して、各変数が存在量化子か全称量化子で制限されるようにした問題である。交替性チューリング機械は、存在量化された変数については存在的に分岐して考えられる全ての値を試し、全称量化された変数については全称的に分岐して考えられる全ての値を試す。これを量化される順に左から右に見ていくのである。全ての量化変数の値を決定した後、論理式にそれらの値を適用して、その真理値によって受理か拒絶かを決定する。 このような機械は限量記号付きブール式を、時間 <math>n^2</math> と領域 <math>n</math> で決定する。 充足可能性問題は、全ての変数が存在量化された特殊ケースと見ることもでき、存在的様式だけで効率的に解ける。 == 複雑性クラスと決定性チューリング機械との比較 == 以下の[[複雑性クラス]]は ATM の定義に利用される。 * <math>{\rm AP}=\bigcup_{k>0}{\rm ATIME}(n^k)</math> は多項式時間で決定可能な言語である。 * <math>{\rm APSPACE}=\bigcup_{k>0}{\rm ASPACE}(n^k)</math> は多項式領域で決定可能な言語である。 * <math>{\rm AEXPTIME}=\bigcup_{k>0}{\rm ATIME}(k^n)</math> は指数関数時間で決定可能な言語である。 これらは決定性チューリング機械よりも ATMでの[[計算資源]]を考慮したときの '''[[P (計算複雑性理論)|P]]'''、'''[[PSPACE]]'''、'''[[EXPTIME]]''' の定義に似ている。Chandra、Kozen、Stockmeyer は以下の定理を証明した。 * AP = PSPACE * APSPACE = EXPTIME * AEXPTIME = [[EXPSPACE]] これを[[並列計算原理]]と呼ぶ。 == 参考文献 == * [http://portal.acm.org/citation.cfm?id=322243&coll=Portal&dl=ACM&CFID=60283170&CFTOKEN=44928981 Chandra, A.K. and Kozen, D.C. and Stockmeyer, L.J., 'Alternation'], Journal of the ACM, Volume 28, Issue 1, pp. 114-133, 1981. * {{cite book|author = Michael Sipser | date = 1997年 | title = Introduction to the Theory of Computation | publisher = PWS Publishing | id = ISBN 0-534-94728-X}} Section 10.3: Alternation, pp.348–354. * {{cite book|author = Michael Sipser | date = 2006年 | title = Introduction to the Theory of Computation, 2nd ed. | publisher = PWS Publishing | id = ISBN 0-534-95097-3}} Section 10.3: Alternation, pp.380–386. * {{cite book|author = Christos Papadimitriou | date = 1993年 | title = Computational Complexity | publisher = Addison Wesley | edition = 1st edition | id = ISBN 0-201-53082-1}} Section 16.2: Alternation, pp.399–401. {{DEFAULTSORT:こうたいせいちゆりんくきかい}} [[Category:計算モデル]] [[Category:チューリングマシン]] [[Category:数学に関する記事]]
このページで使用されているテンプレート:
テンプレート:Cite book
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
交替性チューリング機械
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報