5 章 チューリングマシン 岡本吉央...
TRANSCRIPT
アンダースタンディング・コンピュテーション 第 5章チューリングマシン
岡本 吉央[email protected]
電気通信大学
2019年 7月 26日
最終更新:2019年 10月 11日 11:38
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 1 / 17
スケジュール
2 プログラム意味論 (5月)
3 有限オートマトン (6月)
4 プッシュダウン・オートマトン (7月)
5 チューリングマシン (7月)
6 ラムダ計算
7 万能性
8 決定可能性
9 抽象解釈/静的意味論
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 2 / 17
究極の機械
今からやること
「プログラムを実行できる機械」を設計する▶ ⇝ チューリングマシン
復習
前回まで:単純な計算モデル ⇝ できることに大きな制限がある▶ 有限オートマトン▶ プッシュダウン・オートマトン
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 3 / 17
アラン・チューリング
16歳のチューリング
https://en.wikipedia.org/wiki/Alan Turing
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 4 / 17
「コンピュータ」とは?
昔:コンピュータ = 計算手
https://en.wikipedia.org/wiki/Computer (job description)
今:コンピュータ = 計算機
チューリングの考えたこと
「計算手」の行うことを明らかにし,それを完全に機械で実行する
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 5 / 17
目次
1 チューリングマシン
2 チャーチ=チューリングのテーゼ
3 万能チューリングマシン
4 個人プロジェクト案の例
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 6 / 17
決定性チューリングマシン
1 2 3
1/0; L
/1; R
0/1; R
1/1; R
0/0; R
/ ; L
0 0 111
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 7 / 17
決定性チューリングマシン
1 2 3
1/0; L
/1; R
0/1; R
1/1; R
0/0; R
/ ; L
0 0 111
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 7 / 17
決定性チューリングマシン
1 2 3
1/0; L
/1; R
0/1; R
1/1; R
0/0; R
/ ; L
0 0 011
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 7 / 17
決定性チューリングマシン
1 2 3
1/0; L
/1; R
0/1; R
1/1; R
0/0; R
/ ; L
0 0 001
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 7 / 17
決定性チューリングマシン
1 2 3
1/0; L
/1; R
0/1; R
1/1; R
0/0; R
/ ; L
0 1 001
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 7 / 17
決定性チューリングマシン
1 2 3
1/0; L
/1; R
0/1; R
1/1; R
0/0; R
/ ; L
0 1 001
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 7 / 17
決定性チューリングマシン
1 2 3
1/0; L
/1; R
0/1; R
1/1; R
0/0; R
/ ; L
0 1 001
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 7 / 17
決定性チューリングマシン
1 2 3
1/0; L
/1; R
0/1; R
1/1; R
0/0; R
/ ; L
0 1 001
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 7 / 17
決定性チューリングマシン:注意
1 2 3
1/0; L
/1; R
0/1; R
1/1; R
0/0; R
/ ; L
0 1 001
▶ 受理状態に到達したら,停止する▶ 停止したとき,テープの内容を出力と見なす
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 8 / 17
目次
1 チューリングマシン
2 チャーチ=チューリングのテーゼ
3 万能チューリングマシン
4 個人プロジェクト案の例
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 9 / 17
最大の能力
決定性チューリングマシンの持つ計算能力は完全
決定性チューリングマシンを次のように拡張しても,計算能力は変わらない
▶ 「非決定性」を付け加える▶ 「内部ストレージ」を付け加える▶ テープの数を「複数」にする▶ テープを「多次元」にする
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 10 / 17
チャーチ=チューリングのテーゼ (Church-Turing thesis)
チャーチ=チューリングのテーゼ (定立,提唱)
計算可能 = チューリングマシンで実現可能
▶ チューリング: 「チューリングマシン」を通して「計算」を研究▶ チャーチ:
ング
「ラムダ計算」を通して「計算」を研究
「ラムダ計算」は第 6章の内容
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 11 / 17
目次
1 チューリングマシン
2 チャーチ=チューリングのテーゼ
3 万能チューリングマシン
4 個人プロジェクト案の例
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 12 / 17
万能チューリングマシン
次の性質は,チューリングマシンを有用にするものとして,本質的
万能チューリングマシンの存在
任意のチューリングマシンM と任意のテープ σを入力として与えて,M に σを入力としたときの出力を出力するチューリングマシンが存在
そのようなチューリングマシンを万能チューリングマシン (universal Turing machine) と呼ぶ
TM 1
TM 2
TM 3
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 13 / 17
万能チューリングマシン
次の性質は,チューリングマシンを有用にするものとして,本質的
万能チューリングマシンの存在
任意のチューリングマシンM と任意のテープ σを入力として与えて,M に σを入力としたときの出力を出力するチューリングマシンが存在
そのようなチューリングマシンを万能チューリングマシン (universal Turing machine) と呼ぶ
TM 1
TM 2
TM 3
in1 out1
in2
in3
out2
out3
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 13 / 17
万能チューリングマシン
次の性質は,チューリングマシンを有用にするものとして,本質的
万能チューリングマシンの存在
任意のチューリングマシンM と任意のテープ σを入力として与えて,M に σを入力としたときの出力を出力するチューリングマシンが存在
そのようなチューリングマシンを万能チューリングマシン (universal Turing machine) と呼ぶ
TM 1
TM 2
TM 3
in1 out1
in2
in3
out2
out3
UTM
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 13 / 17
万能チューリングマシン
次の性質は,チューリングマシンを有用にするものとして,本質的
万能チューリングマシンの存在
任意のチューリングマシンM と任意のテープ σを入力として与えて,M に σを入力としたときの出力を出力するチューリングマシンが存在
そのようなチューリングマシンを万能チューリングマシン (universal Turing machine) と呼ぶ
TM 1
TM 2
TM 3
in1 out1
in2
in3
out2
out3
UTMTM 1in1
out1
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 13 / 17
万能チューリングマシン
次の性質は,チューリングマシンを有用にするものとして,本質的
万能チューリングマシンの存在
任意のチューリングマシンM と任意のテープ σを入力として与えて,M に σを入力としたときの出力を出力するチューリングマシンが存在
そのようなチューリングマシンを万能チューリングマシン (universal Turing machine) と呼ぶ
TM 1
TM 2
TM 3
in1 out1
in2
in3
out2
out3
UTMTM 2in2
out2
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 13 / 17
万能チューリングマシン
次の性質は,チューリングマシンを有用にするものとして,本質的
万能チューリングマシンの存在
任意のチューリングマシンM と任意のテープ σを入力として与えて,M に σを入力としたときの出力を出力するチューリングマシンが存在
そのようなチューリングマシンを万能チューリングマシン (universal Turing machine) と呼ぶ
TM 1
TM 2
TM 3
in1 out1
in2
in3
out2
out3
UTMTM 3in3
out3
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 13 / 17
万能チューリングマシン
次の性質は,チューリングマシンを有用にするものとして,本質的
万能チューリングマシンの存在
任意のチューリングマシンM と任意のテープ σを入力として与えて,M に σを入力としたときの出力を出力するチューリングマシンが存在
そのようなチューリングマシンを万能チューリングマシン (universal Turing machine) と呼ぶ
TM 1
TM 2
TM 3
UTM
in4 out4
TM 3in4
out4
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 13 / 17
万能チューリングマシン:イメージ
UTMTM 1in1
out1
current state
and symbol
description of TM 1 in1
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 14 / 17
プログラム内蔵方式
チューリングの「万能チューリングマシン」はフォン・ノイマンらの「プログラム内蔵方式」を触発した
(と言われている)
prog 1
prog 2
prog 3
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 15 / 17
プログラム内蔵方式
チューリングの「万能チューリングマシン」はフォン・ノイマンらの「プログラム内蔵方式」を触発した
(と言われている)
prog 1
prog 2
prog 3
in1 out1
in2
in3
out2
out3
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 15 / 17
プログラム内蔵方式
チューリングの「万能チューリングマシン」はフォン・ノイマンらの「プログラム内蔵方式」を触発した
(と言われている)
prog 1
prog 2
prog 3
in1 out1
in2
in3
out2
out3
machine
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 15 / 17
プログラム内蔵方式
チューリングの「万能チューリングマシン」はフォン・ノイマンらの「プログラム内蔵方式」を触発した
(と言われている)
prog 1
prog 2
prog 3
in1 out1
in2
in3
out2
out3
machineprog 1
in1out1
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 15 / 17
プログラム内蔵方式
チューリングの「万能チューリングマシン」はフォン・ノイマンらの「プログラム内蔵方式」を触発した
(と言われている)
prog 1
prog 2
prog 3
in1 out1
in2
in3
out2
out3
machineprog 2
in2out2
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 15 / 17
プログラム内蔵方式
チューリングの「万能チューリングマシン」はフォン・ノイマンらの「プログラム内蔵方式」を触発した
(と言われている)
prog 1
prog 2
prog 3
in1 out1
in2
in3
out2
out3
machineprog 3
in3out3
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 15 / 17
プログラム内蔵方式
チューリングの「万能チューリングマシン」はフォン・ノイマンらの「プログラム内蔵方式」を触発した
(と言われている)
prog 1
prog 2
prog 3
machine
in4 out4
prog 3
in4out4
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 15 / 17
目次
1 チューリングマシン
2 チャーチ=チューリングのテーゼ
3 万能チューリングマシン
4 個人プロジェクト案の例
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 16 / 17
個人プロジェクト案の例
▶ 2進数で表された 1つの正の自然数を入力として,それをデクリメントした (1だけ減らした) 数を出力するようなチューリングマシンを設計する
▶ 入力に対して,状態とテープの変化を追い,到達した状態とテープの内容を画面に逐一出力するメソッド traceを実装する
▶ 2進数で表された 2つの正の自然数を入力として,それらの加算を行うチューリングマシンを設計する
▶ 非決定性チューリングマシンを実装してみる▶ 万能チューリングマシンを調べて,実装してみる
岡本 吉央 (電通大) アンダースタンディング・コンピュテーション (5) 2019 年 7 月 26 日 17 / 17