授業展開#11 コンピュータは 何ができるか、できないか.

Slides:



Advertisements
Similar presentations
小テスト解説 問1 次の中置記法で書かれた数式を、前置記法、後 置記法に直せ。 12 × 23 +( 34 + 45 ) × ( 56 + 67 ) × 78 + × 23 +( 34 + 45 ) × ( 56 + 67 ) × 78 + 89  前置記法 12 x 23 + (+ 34.
Advertisements

第12回 順序回路の解析方法 瀬戸 順序回路から,以下を導き、解析を行えるようにする タイムチャート 状態遷移関数・出力関数 状態遷移表
コンパイラ 2011年10月17日
チューリングマシン 2011/6/6.
計算機システムⅡ 主記憶装置とALU,レジスタの制御
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
5.チューリングマシンと計算.
テープ(メモリ)と状態で何をするか決める
5.チューリングマシンと計算.
計算の理論 I ー DFAとNFAの等価性 ー 月曜3校時 大月 美佳.
4. 順序回路 五島 正裕.
東京工科大学 コンピュータサイエンス学部 亀田弘之
情 報 技 術 基 礎 処理装置の構成と動作 D17kog706pr101 始.
プログラミング言語論 第1回 導入 情報工学科 篠埜 功.
情報工学通論 プログラミング言語について 2015年 6月 16日 情報工学科 篠埜 功.
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
Semantics with Applications
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
Ibaraki Univ. Dept of Electrical & Electronic Eng.
9.NP完全問題とNP困難問題.
データ構造と アルゴリズム 知能情報学部 新田直也.
プログラミング言語論 第1回 導入 情報工学科 篠埜 功.
プログラムはなぜ動くのか.
コンパイラ 2012年10月15日
7. 順序回路 五島 正裕.
コンパイラ(9) 情報工学科5年 担当 河田 進.
7.時間限定チューリングマシンと   クラスP.
コンピュータの原理 1E17M053-9 奈良 皐佑 1E17M070-7 師尾 直希        1E17M078-6 渡邊 惇.
チューリング機械 状態の有限集合 ヘッドの方向を表す。 L:1コマ左へ R:1コマ右へ テープ記号の有限集合 入力記号の有限集合 動作関数
アルゴリズムとチューリングマシン 「もの」(商品)としてのコンピュータ 「こと」(思想)としてのコンピュータ アルゴリズム
1.コンピュータと情報処理 p.18 第1章第1節 2.コンピュータの動作のしくみ CPUと論理回路
形式言語の理論 5. 文脈依存言語.
東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 II Turing機械 月曜4校時 大月美佳.
オートマトンとチューリング機械.
アドバンスドトピック 計算できるものと計算できないもの 2008年4月9日 神林 靖.
計算の理論 II 時間量と領域量 月曜5校時 大月美佳 2019/4/10 佐賀大学理工学部知能情報システム学科.
計算の理論 II 計算量 月曜5校時 大月美佳 2019/4/10 佐賀大学理工学部知能情報システム学科.
平成20年10月5日(月) 東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 I ε-動作を含むNFA 月曜3校時 大月 美佳.
2007年度 情報数理学.
2010年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
チューリングマシン 0n1nを受理するチューリングマシン 入力テープ b b b b 状態遷移機械.
平成26年4月22日(火) 東京工科大学 コンピュータサイエンス学部 亀田弘之
計算の理論 I 決定性有限オートマトン(DFA) と 非決定性有限オートマトン(NFA)
第5回 メモリ管理(2) オーバレイ方式 論理アドレスとプログラムの再配置 静的再配置と動的再配置 仮想記憶とメモリ階層 セグメンテーション
第6章-2 計算のモデル オートマトン Turing 機械 計算可能性 1.
アルゴリズムとデータ構造 --- 理論編 --- 山本 真基
コンピュータアーキテクチャ 第 4 回.
計算の理論 I 非決定性有限オートマトン(NFA)
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
2013年度 プログラミングⅠ ~ 内部構造と動作の仕組み(2) ~.
5.チューリングマシンと計算.
計算の理論 I -プッシュダウンオートマトン-
計算の理論 I プッシュダウンオートマトン 火曜3校時 大月 美佳 平成16年7月6日 佐賀大学知能情報システム学科.
形式言語とオートマトン 第14回 プッシュダウンオートマトンと全体のまとめ
コンピュータアーキテクチャ 第 4 回.
4.プッシュダウンオートマトンと 文脈自由文法の等価性
計算の理論 I NFAとDFAの等価性 火曜3校時 大月 美佳 平成16年5月18日 佐賀大学理工学部知能情報システム学科.
Copyright 2002 守屋悦朗 オートマトンって? (Turing machine) (アニメーションで実行のこと)
コンパイラ 2012年10月11日
オートマトンって? (Turing machine).
非決定性有限オートマトン 状態の有限集合 入力記号の有限集合 注意 動作関数 初期状態 受理状態の有限集合.
情報数理Ⅱ 第10章 オートマトン 平成28年12月21日.
2008年度 情報科学序論 ~ 内部構造と動作の仕組み(2) ~.
計算の理論 I プッシュダウンオートマトン 月曜3校時 大月 美佳 平成15年7月7日 佐賀大学知能情報システム学科.
計算の理論 II 多テープTuring機械 月曜4校時 大月美佳 平成16年11月29日 佐賀大学知能情報システム学科.
アルゴリズム ~すべてのプログラムの基礎~.
Presentation transcript:

授業展開#11 コンピュータは 何ができるか、できないか

コンピュータのモデル化 コンピュータは、記号的にアルゴリズムとして定義できる内容は、基本的に何でも実行することができる。 コンピュータを抽象的にモデル化し、計算ができる・処理ができるということはどういったことか、コンピュータは何ができるのかという課題について検討する。

処理 コンピュータでは、全ての情報、データ、プログラムも記号列で表している。情報処理はこの記号列に対しておこなう。この処理には2種類がある。   コンピュータでは、全ての情報、データ、プログラムも記号列で表している。情報処理はこの記号列に対しておこなう。この処理には2種類がある。 組み合わせ的処理  入力が確定すると出力も確定する処理。   → 数学の関数計算 順序的処理  過去の入力の順序に依存して出力が確定する関係を「順序」的という。   → 自動販売機の入金

記憶と内部状態 コンピュータは、全体として、内部状態としてメモリがあり、順序的な機械である。 メモリは有限であるため、状態数も有限である。  コンピュータは、全体として、内部状態としてメモリがあり、順序的な機械である。  メモリは有限であるため、状態数も有限である。  入力によって「記憶」=「状態」が変化するが、状態が変化することを「状態遷移」という。

オートマトン(automaton) オートマトン(automaton) 自動人形、自動機械、ロボット  自動人形、自動機械、ロボット  入力記号列の受理機能を備えた抽象的な機械のこと。  複数形は、オートマタ(automata)。  例:自動販売機   ジュース代金:110円   入力として許される(受理される)内容    100円、10円     50円、10円、50円     50円、50円、10円   入力として許されない(受理されない)内容     100円、1円      50円、10円       1円、100円

有限オートマトン 最も簡単なオートマトンの一つ。 構成 ・入力テープ 入力文字列が書き込まれたマス目からなる   ・入力テープ 入力文字列が書き込まれたマス目からなる   ・読み取りヘッド 入力テープを読み取り、有限状態部に送る   ・有限状態部 初期状態から入力文字列に従い、内部状態を次の状態に遷移させる。状態には、受理状態(最終状態)と   非受理状態がある。 入力テープ 入力文字列を読み取り、状態遷移を繰り返し、入力情報が終了すると停止する。 終了したときの内部状態が最終状態になっていれば、受理したという。 状態と入力文字の組み合わせに、次の状態を対応させた表を動作表(状態遷移関数)という。 a b a b b 読み取りヘッド 有限状態部

動作表(状態遷移関数)の例 状態 入力 0 1 q0 q1 q2 - 状態q0の時に入力0があると状態はq0になる。

状態遷移図 受理される言語は、「1つ以上のbが続いた後、1つ以上のaが続く形の語」からなる言語 b A a B 有限オートマトンの例 初期状態 最終状態 b a b a S1 S2 S3 入力 bbaaa:受理される。 初期状態 最終状態 受理される言語は、「1つ以上のbが続いた後、1つ以上のaが続く形の語」からなる言語

プッシュダウンオートマトン 有限オートマトンにプッシュダウンテープという外部記憶装置をつけたもの。 入力テープ  有限オートマトンにプッシュダウンテープという外部記憶装置をつけたもの。  プッシュダウンテープは、書き込みは一番上に追加し、読み出しは一番上から取り出す外部記憶装置。  入力語=文字列を読み終わったときに、プッシュダウンテープが空ならば入力語を受理する。 a b a b b 読み取りヘッド A B Z 有限状態部 プッシュダウンテープ 読み書きヘッド

チューリングマシン(Turing Machine) 有限オートマトンの入力テープの代わりに、入出力テープ(読み書きテープ)を付けて、それを補助の外部記憶としても使えるようにしたオートマトン ヘッドは左端から左へ出ない限り、右、左に1マス移動できる。 有限状態部の動作(次の状態、書き込む文字、左右どちらに動くか)は、そのときの内部状態とテープから読み取った文字の組み合わせから、決められる。 最終状態が定義されており、最終状態に遷移すると停止し、入力語を受理する。 読み書きテープ 0 1 1 0 0 1 b b b b b 読み書きヘッド b : 空白記号 有限状態部

チューリングマシンの動作表の例 状態 テープ記号 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 )

チューリングマシンとコンピュータ コンピュータは、データ(入力文字列)を受け取ると、プログラムの命令に従って、メモリ(状態)を書き換えたりしながら、最後に入力に対応した文字列を出力して停止する。 チューリングマシンの動作表はコンピュータのプログラムに相当し、状態はメモリに、有限状態部はコンピュータの本体(CPU)に相当する。 コンピュータは何ができるかを抽象的な機械でもあるチューリングマシンを使って考える。

チューリングマシンの全域性と部分性 動作表の未定義動作による異常停止はしないと考える(異常停止状態も最終状態の一つとしておく)と、どんなチューリングマシンもある入力データに対して結果を出力して停止するか、停止しないかとなる。  ・任意の入力データに対して停止して結果を出力する動作表をもつチューリングマシンを全域的であるという。  ・全域的でないチューリングマシンは部分的であるという。(無限ループしたり、ハングアップしたりするチューリングマシン)

チューリングマシンとアルゴリズム チューリングマシンが全域的であれば任意の入力に対して停止して結果を出力する。部分的であれば、入力値によっては停止しないことになる。 全域的チューリングマシンが計算する関数は全域的であるという。部分的チューリングマシンが計算する関数は部分的であるという。

チューリングマシンとアルゴリズム 全域的関数 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、・・・の時以外は関数が存在せず未定義となる。 ある関数を計算するチューリングマシンが全域的であるとき、その計算手続きはアルゴリズムであるという。停止性が保障されている計算手続きがアルゴリズムである。

計算理論 チューリングマシン:自然数xを入力して、自然数yを出力する関数f(x)=yを計算する機械とする。 チューリングマシンは何ができるか?  → チューリングマシンはどのような関数を計算できるか。 コンピュータは何ができるか?   → 計算できる関数とは何か。 このような立場から、アルゴリズム、計算手続きを検討する理論を計算理論という。

コンピュータとチューリングマシン 入力に対して出力を返す処理能力においてコンピュータとチューリングマシンは同等である。 チューリングマシンの動作表は、チューリングマシンの動作中、変化しない。チューリングマシンは、外部プログラム式コンピュータもしくは固定式プログラムコンピュータに相当する。 チューリン グマシン コンピュータ CPU 入力装置 出力装置 入力データ 入力データ 出力 出力 動作表 固定プ ログラム 作業領域 作業領域 入出力テープ メモリ(主記憶)

処理不能について どのように構成しても処理できないことを証明できるか? 構成方法、工夫は無限のため直接証明することは不可能である。 万能なチューリングマシンに不可能であることを示せばよい。

万能チューリングマシン 他のあらゆるチューリングマシンの動作を模倣できるチューリングマシン プログラム内蔵式コンピュータに相当する。 CPU プログラム・入力データ 動作表・入力データ 入力装置 出力装置 出力 出力 動作表 アルゴリズム 作業領域 作業領域 入出力テープ メモリ(主記憶)

コンピュータによるコンピュータの模倣 コンピュータAの上で、コンピュータBのシミュレーションをすることができる。 新製品の開発など現在は不可欠な技術

コンピュータは何ができないか チューリングマシンの停止問題  任意のチューリングマシンに任意のデータを入力したとき、それが停止するかどうか、事前に判断するアルゴリズムがあるか?。

停止問題の判定アルゴリズム <Aw>:チューリングマシンAの動作表と入力データwを記号化して一つにしたもの。 万能チューリングマシンをTとする。 Tに<Aw>を入力すると、wを入力されたAを模倣する。 <Aw>に対してTが停止するならば、0を出力して停止する。 <Aw>に対してTが停止しない(暴走する)ならば、1を出力して停止するチューリングマシンMを考える。 すなわち、Mは、 T<Aw>→停止=M→0 T<Aw>→暴走=M→1

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→停止

いま、<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を代入する。

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>に対して停止するを意味する。・・・・・・矛盾

矛盾の原因 Cは容易に構成できるから、M2はM1が構成できれば、問題ない。M1はMから簡単につくれる。 すなわち、最初の仮定、Mが存在するということが矛盾の原因である。つまり、Mは存在しない。 Mが存在しないということは、Aがwに対して停止するときは、0を出力し、停止しないときは1を出力するというチューリングマシンは存在しないということになる。 チューリングマシンの停止問題をとくアルゴリズムは無い。

次週小テスト(12/18) 範囲:9-11回目 電卓、筆記用具、直筆ノート