Download presentation
Presentation is loading. Please wait.
1
授業展開#11 コンピュータは 何ができるか、できないか
2
コンピュータのモデル化 コンピュータは、記号的にアルゴリズムとして定義できる内容は、基本的に何でも実行することができる。
コンピュータを抽象的にモデル化し、計算ができる・処理ができるということはどういったことか、コンピュータは何ができるのかという課題について検討する。
3
処理 コンピュータでは、全ての情報、データ、プログラムも記号列で表している。情報処理はこの記号列に対しておこなう。この処理には2種類がある。
コンピュータでは、全ての情報、データ、プログラムも記号列で表している。情報処理はこの記号列に対しておこなう。この処理には2種類がある。 組み合わせ的処理 入力が確定すると出力も確定する処理。 → 数学の関数計算 順序的処理 過去の入力の順序に依存して出力が確定する関係を「順序」的という。 → 自動販売機の入金
4
記憶と内部状態 コンピュータは、全体として、内部状態としてメモリがあり、順序的な機械である。 メモリは有限であるため、状態数も有限である。
コンピュータは、全体として、内部状態としてメモリがあり、順序的な機械である。 メモリは有限であるため、状態数も有限である。 入力によって「記憶」=「状態」が変化するが、状態が変化することを「状態遷移」という。
5
オートマトン(automaton) オートマトン(automaton) 自動人形、自動機械、ロボット
自動人形、自動機械、ロボット 入力記号列の受理機能を備えた抽象的な機械のこと。 複数形は、オートマタ(automata)。 例:自動販売機 ジュース代金:110円 入力として許される(受理される)内容 100円、10円 50円、10円、50円 50円、50円、10円 入力として許されない(受理されない)内容 100円、1円 50円、10円 1円、100円
6
有限オートマトン 最も簡単なオートマトンの一つ。 構成 ・入力テープ 入力文字列が書き込まれたマス目からなる
・入力テープ 入力文字列が書き込まれたマス目からなる ・読み取りヘッド 入力テープを読み取り、有限状態部に送る ・有限状態部 初期状態から入力文字列に従い、内部状態を次の状態に遷移させる。状態には、受理状態(最終状態)と 非受理状態がある。 入力テープ 入力文字列を読み取り、状態遷移を繰り返し、入力情報が終了すると停止する。 終了したときの内部状態が最終状態になっていれば、受理したという。 状態と入力文字の組み合わせに、次の状態を対応させた表を動作表(状態遷移関数)という。 a b a b b 読み取りヘッド 有限状態部
7
動作表(状態遷移関数)の例 状態 入力 0 1 q0 q1 q2 - 状態q0の時に入力0があると状態はq0になる。
8
状態遷移図 受理される言語は、「1つ以上のbが続いた後、1つ以上のaが続く形の語」からなる言語 b A a B 有限オートマトンの例
初期状態 最終状態 b a b a S1 S2 S3 入力 bbaaa:受理される。 初期状態 最終状態 受理される言語は、「1つ以上のbが続いた後、1つ以上のaが続く形の語」からなる言語
9
プッシュダウンオートマトン 有限オートマトンにプッシュダウンテープという外部記憶装置をつけたもの。
入力テープ 有限オートマトンにプッシュダウンテープという外部記憶装置をつけたもの。 プッシュダウンテープは、書き込みは一番上に追加し、読み出しは一番上から取り出す外部記憶装置。 入力語=文字列を読み終わったときに、プッシュダウンテープが空ならば入力語を受理する。 a b a b b 読み取りヘッド A B Z 有限状態部 プッシュダウンテープ 読み書きヘッド
10
チューリングマシン(Turing Machine)
有限オートマトンの入力テープの代わりに、入出力テープ(読み書きテープ)を付けて、それを補助の外部記憶としても使えるようにしたオートマトン ヘッドは左端から左へ出ない限り、右、左に1マス移動できる。 有限状態部の動作(次の状態、書き込む文字、左右どちらに動くか)は、そのときの内部状態とテープから読み取った文字の組み合わせから、決められる。 最終状態が定義されており、最終状態に遷移すると停止し、入力語を受理する。 読み書きテープ 0 1 1 0 0 1 b b b b b 読み書きヘッド b : 空白記号 有限状態部
11
チューリングマシンの動作表の例 状態 テープ記号 0 1 b q0 ( q0, b, R ) ( q1, b, R )
動作は3つ組(A,B,C) A:状態、 B:テープへの書き込み、 C:ヘッドの動作 状態:q0、q1、qf、 qfは最終状態 テープ記号:0、1、 b 、 bは空白記号 ヘッドの動き:R、L、S R:右へ1マス、 L:左へ1マス、 S:動かない たとえば、状態q0の時、ヘッド位置のテープ記号が1であると、動作は( q1, b, R )であるから、状態がq1に遷移し、テープのヘッド位置に空白( b )を書き込んで(1からbに書き換える)、ヘッドが右(R)に1マス動く。 状態 テープ記号 0 1 b q0 ( q0, b, R ) ( q1, b, R ) (qf, 0, S ) q1 ( qf, 1, S )
12
チューリングマシンとコンピュータ コンピュータは、データ(入力文字列)を受け取ると、プログラムの命令に従って、メモリ(状態)を書き換えたりしながら、最後に入力に対応した文字列を出力して停止する。 チューリングマシンの動作表はコンピュータのプログラムに相当し、状態はメモリに、有限状態部はコンピュータの本体(CPU)に相当する。 コンピュータは何ができるかを抽象的な機械でもあるチューリングマシンを使って考える。
13
チューリングマシンの全域性と部分性 動作表の未定義動作による異常停止はしないと考える(異常停止状態も最終状態の一つとしておく)と、どんなチューリングマシンもある入力データに対して結果を出力して停止するか、停止しないかとなる。 ・任意の入力データに対して停止して結果を出力する動作表をもつチューリングマシンを全域的であるという。 ・全域的でないチューリングマシンは部分的であるという。(無限ループしたり、ハングアップしたりするチューリングマシン)
14
チューリングマシンとアルゴリズム チューリングマシンが全域的であれば任意の入力に対して停止して結果を出力する。部分的であれば、入力値によっては停止しないことになる。 全域的チューリングマシンが計算する関数は全域的であるという。部分的チューリングマシンが計算する関数は部分的であるという。
15
チューリングマシンとアルゴリズム 全域的関数 m(x,y)=x×y 任意の(x,y)に対して計算結果を与える。 部分的関数
m(x,y)=x×y 任意の(x,y)に対して計算結果を与える。 部分的関数 f(x)=√x:但し、f(x)もxも0を含めた自然数 x=0、1、4、9、・・・の時以外は関数が存在せず未定義となる。 ある関数を計算するチューリングマシンが全域的であるとき、その計算手続きはアルゴリズムであるという。停止性が保障されている計算手続きがアルゴリズムである。
16
計算理論 チューリングマシン:自然数xを入力して、自然数yを出力する関数f(x)=yを計算する機械とする。
チューリングマシンは何ができるか? → チューリングマシンはどのような関数を計算できるか。 コンピュータは何ができるか? → 計算できる関数とは何か。 このような立場から、アルゴリズム、計算手続きを検討する理論を計算理論という。
17
コンピュータとチューリングマシン 入力に対して出力を返す処理能力においてコンピュータとチューリングマシンは同等である。
チューリングマシンの動作表は、チューリングマシンの動作中、変化しない。チューリングマシンは、外部プログラム式コンピュータもしくは固定式プログラムコンピュータに相当する。 チューリン グマシン コンピュータ CPU 入力装置 出力装置 入力データ 入力データ 出力 出力 動作表 固定プ ログラム 作業領域 作業領域 入出力テープ メモリ(主記憶)
18
処理不能について どのように構成しても処理できないことを証明できるか? 構成方法、工夫は無限のため直接証明することは不可能である。
万能なチューリングマシンに不可能であることを示せばよい。
19
万能チューリングマシン 他のあらゆるチューリングマシンの動作を模倣できるチューリングマシン プログラム内蔵式コンピュータに相当する。 CPU
プログラム・入力データ 動作表・入力データ 入力装置 出力装置 出力 出力 動作表 アルゴリズム 作業領域 作業領域 入出力テープ メモリ(主記憶)
20
コンピュータによるコンピュータの模倣 コンピュータAの上で、コンピュータBのシミュレーションをすることができる。
新製品の開発など現在は不可欠な技術
21
コンピュータは何ができないか チューリングマシンの停止問題
任意のチューリングマシンに任意のデータを入力したとき、それが停止するかどうか、事前に判断するアルゴリズムがあるか?。
22
停止問題の判定アルゴリズム <Aw>:チューリングマシンAの動作表と入力データwを記号化して一つにしたもの。
万能チューリングマシンをTとする。 Tに<Aw>を入力すると、wを入力されたAを模倣する。 <Aw>に対してTが停止するならば、0を出力して停止する。 <Aw>に対してTが停止しない(暴走する)ならば、1を出力して停止するチューリングマシンMを考える。 すなわち、Mは、 T<Aw>→停止=M→0 T<Aw>→暴走=M→1
23
Mは、 T<Aw>→停止=M→0 T<Aw>→暴走=M→1 Aはwに対して停止するかしないかどちらかであるから、<Aw>に0か1を対応させる関数fは全域的である。従って、Mは全域的チューリングマシンである。 Mの代わりに、 <Aw>が停止するとき暴走し、<Aw>が暴走するときに停止するチューリングマシンM1を考える。 M1は、 T<Aw>→停止=M1→暴走 T<Aw>→暴走=M1→停止
24
いま、<A>を入力すると、<AA>を出力するチューリングマシンCを構成しておく。M1の前にCをくっつけて合成したチューリングマシンM2をつくる。
M2に<A>を入力すると、M1に<AA>が入力される。<AA>を入力されたTは、<A>を入力されたAの模倣をする。 Aは、A自身の動作表を入力データとするが、このときもAは停止するかしないかどちらか。 T<AA>→停止=M2<A>→暴走 T<AA>→暴走=M2<A>→停止 Aは任意のチューリングマシンだから、AとしてM2を代入する。
25
T<AA>→停止=M2<A>→暴走 T<AA>→暴走=M2<A>→停止 Aは任意のチューリングマシンだから、AとしてM2を代入する。 T<M2M2>→停止=M2<M2>→暴走 T<M2M2>→暴走=M2<M2>→停止 これは、<M2>に対してM2が停止するならば、M2は<M2>に対して暴走する。<M2>に対してM2が暴走するならば、M2は<M2>に対して停止するを意味する。・・・・・・矛盾
26
矛盾の原因 Cは容易に構成できるから、M2はM1が構成できれば、問題ない。M1はMから簡単につくれる。
すなわち、最初の仮定、Mが存在するということが矛盾の原因である。つまり、Mは存在しない。 Mが存在しないということは、Aがwに対して停止するときは、0を出力し、停止しないときは1を出力するというチューリングマシンは存在しないということになる。 チューリングマシンの停止問題をとくアルゴリズムは無い。
27
次週小テスト(12/18) 範囲:9-11回目 電卓、筆記用具、直筆ノート
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.