チューリングマシン
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "チューリングマシン" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2011年12月)
チューリングマシン

チューリングマシン (: Turing machine) は、アラン・チューリングが「計算可能性」に関する議論のために提示した抽象機械である[1]
歴史

チューリングの「計算可能数について──決定問題への応用」(1936年)において提示された[2]。同様なものを同年にエミール・ポスト (Emil Post) も独立に発表している[3]。構想の理由、動機についてはポストの論文が明確だが、機械自体に関する記述はチューリングの論文が詳細である。次いで、同時代に提示された他の計算モデル計算可能性の理論からは同等であることが確認され、チューリング=チャーチのテーゼはそれらを「計算可能」の定義とすることを提唱した。
概要

ここでは非形式的(直感的)に述べる。理論的には形式的に述べる必要がある。

チューリングマシンには、いわゆるハードウェアに相当するものとして、
その表面に記号を読み書きできるテープ。長さは無制限(必要になれば順番にいくらでも先にシークできる
[注 1])とする

テープに記号を読み書きするヘッド

ヘッドによる読み書きと、テープの左右へのシークを制御する機能を持つ、有限オートマトン

がある。

また、ソフトウェアに相当するものとして、以下がある。
テープに読み書きされる有限個の種類の記号

最初から(初期状態において)テープにあらかじめ書かれている記号列

有限オートマトンの状態遷移規則群。詳細は次で述べる

この有限オートマトンの状態遷移規則は、その有限オートマトンの「現在の状態」(内部状態)と、ヘッドがテープの「現在の場所」から読み出した記号の組み合わせに応じて、次のような動作を実行する。

テープの「現在の場所」に新しい記号を書き込む(あるいは、現在の記号をそのままにしてもよい)

ヘッドを右か左に一つシークする(あるいは、移動しなくてもよい)

有限オートマトンを次の状態に状態遷移させる(同じ状態に遷移してもよい)

さらに、この有限オートマトンには(一般的な有限オートマトンの「受理状態」と同様な)「受理状態」がある。計算可能性理論的には、決定問題の2種類の答えに対応する、2種類の受理状態が必要である[注 2]
現実の計算との関係

実際の計算機の基本的動作も、突き詰めて考えれば、このチューリング機械の原理に従っているといえる。実用上の電子計算機はチューリング機械よりも遥かに複雑であり、また有限の記憶領域しか持たないが、「計算機で原理上解ける問題」は「チューリング機械で解ける問題」と同じであるといわれている。このため計算理論では、アルゴリズムをチューリング機械上の手続きと同一視して議論することができる(チャーチ=チューリングのテーゼ)。

数学の形式体系はすべてこの仮想機械の動作に還元できるといわれている。この機械で決定できない命題も存在する。例えば与えられたチューリング機械が停止するかどうかをチューリング機械で決定することはできない(停止性問題)。これはゲーデルの不完全性定理の別の表現の形とみなすことができる。
形式的な定義

この節では、チューリングマシンを形式的(formal)に記述する。
チューリングマシン
チューリングマシン M は次の7つ組で定義される: M = ⟨ Q , Γ , b , Σ , δ , q i n i t , q a c c ⟩ . {\displaystyle M=\langle Q,{\mathit {\Gamma }},b,{\mathit {\Sigma }},\delta ,q_{\mathrm {init} },q_{\mathrm {acc} }\rangle \,.}
状態
有限集合 Q の q ∈ Q を状態 (state) という。
字母・記号・文字列
状態集合 Q と交わらない有限集合 Γ を字母(alphabet)といい、字母の元 a ∈ Γ を記号 (symbol) という。重複を許した有限個の記号の列全体からなる集合を Γ* と表し、その元 x ∈ Γ* を字母 Γ の文字列(string)または文(statement)という。
空白記号
字母 Γ のある元を空白記号 (blank) と定め、b で表す。
入力字母・入力記号
字母から空白文字を除いた Γ − {b} の部分集合 Σ を入力字母(input alphabet)といい、入力字母の元を入力記号(input symbol)という。
遷移函数
写像 δ: Q × Γ → Q × Γ × {left, right} を遷移函数という。δ(q, a) = (q′, a′, m) は、「現在の状態が q であり、着目位置の記号が a であれば、状態を q′ に移し、着目位置に記号 a′ を書き込んでから、着目位置を m ∈ {left, right} 方向に1つずらす」と読む。
初期状態
状態集合 Q のある元 qinit を初期状態(initial state)と定める。
受理状態
状態集合 Q のある元 qacc を受理状態(accepting state)と定める。
状況
Γ ∪ Q {\textstyle {\mathit {\Gamma }}\cup Q} 上の(片側)無限列のうち、状態集合 Q の元がちょうど1度現れ、また空白 b 以外の記号が有限回しか現れないものをチューリングマシン M の状況(configuration)という。遷移函数 δ は、状況から状況への写像を自然に定める。
受理
「チューリングマシン M が入力文字列 x ∈ Σ ∗ {\textstyle x\in \Sigma ^{*}} を受理(accept)する」とは、チューリングマシン M が初期状態 qinit で入力文字列 x が与えられた状況 q i n i t x b b ⋯ {\textstyle q_{\mathrm {init} }xbb\cdots } に対し、遷移函数 δ を有限回作用させ受理状態 qacc へ遷移した状況 q a c c b b ⋯ {\textstyle q_{\mathrm {acc} }bb\cdots } が得られることをいう。
実行時間・記憶領域量
チューリングマシン M が入力文字列 x ∈ Σ* を受理するまで遷移函数を作用させる最小の回数をチューリングマシン M の入力文字列 x に対する実行時間とよぶ。その過程における状況中の q の最右位置を、M が x に対して使用する記憶領域量という。

M が言語 L ⊆ Σ ∗ {\displaystyle L\subseteq {\mathit {\Sigma }}^{*}} を認識するとは、M が L の元のみをみな受理することをいう。そのようなチューリング機械 M が存在するとき、L は帰納可枚挙(recursively enumerable)あるいは計算可枚挙(computably enumerable)であるという。L と Σ ∗ ∖ L {\displaystyle {\mathit {\Sigma }}^{*}\setminus L} がともに帰納可枚挙であるとき、Lは帰納的(recursive)あるいは決定可能(decidable)であるという。

より精細に、自然数から自然数への写像 t に対し、M が L を時間計算量[ないし空間計算量]t で認識するとは、M が L を認識し、かつ各 x ∈ L {\displaystyle x\in L} に対する M {\displaystyle M} の実行時間[ないし記憶領域量]が t ( 。 x 。 ) {\displaystyle t(\left|x\right|)} 以下であることをいう。ここで 。 x 。 {\displaystyle \left|x\right|} は文字列 x の長さを表す。
変種
細かい相違

次の各項目について上記の定義に変更を施しても、帰納可枚挙な言語は変わらず、また時間計算量や空間計算量に対する影響も小さい。このため、チューリング機械の定義の詳細は文献によって異なっている。

字母 Γ {\displaystyle {\mathit {\Gamma }}} の大きさ(それが Σ {\displaystyle {\mathit {\Sigma }}} を含む有限集合であるかぎり)。

遷移函数が着目位置を左右に必ず動かすか、同じ位置に留まる事を許すか。

文字列を受理するさい、テープ上の記号をすべて b {\displaystyle b} にする必要があるか、受理状態へ移るだけでよいか。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:29 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef