Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
またね、サンタさん / Goodbye, Santa
Search
remeta
December 20, 2022
Science
0
290
またね、サンタさん / Goodbye, Santa
サンタさんがくれたチューリングマシンで遊んでみよう。
remeta
December 20, 2022
Tweet
Share
More Decks by remeta
See All by remeta
サンタさんからのすてきなプレゼント / Lovely Christmas Present from Santa
000meta
0
170
素朴に計算可能性を考える / An Introduction to Computability
000meta
0
490
Other Decks in Science
See All in Science
サイコロで理解する原子核崩壊と拡散現象 〜単純化されたモデルで本質を理解する〜
syotasasaki593876
0
140
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
170
20251212_LT忘年会_データサイエンス枠_新川.pdf
shinpsan
0
200
Optimization of the Tournament Format for the Nationwide High School Kyudo Competition in Japan
konakalab
0
140
HDC tutorial
michielstock
0
280
データベース05: SQL(2/3) 結合質問
trycycle
PRO
0
860
次代のデータサイエンティストへ~スキルチェックリスト、タスクリスト更新~
datascientistsociety
PRO
2
22k
データマイニング - ノードの中心性
trycycle
PRO
0
320
データベース12: 正規化(2/2) - データ従属性に基づく正規化
trycycle
PRO
0
1.1k
Ignite の1年間の軌跡
ktombow
0
200
Distributional Regression
tackyas
0
240
イロレーティングを活用した関東大学サッカーの定量的実力評価 / A quantitative performance evaluation of Kanto University Football Association using Elo rating
konakalab
0
160
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
31
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
760
Being A Developer After 40
akosma
91
590k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
200
The Invisible Side of Design
smashingmag
302
51k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.8k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
61
44k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
170
Paper Plane
katiecoart
PRO
0
44k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Transcript
チューリングマシンで 計算ができるようになるスライド remeta これは RICORA Advent Calendar 2022 20 日目の記事です.
1
これまでのあらすじ 少年のもとに現れたサンタ.チューリングマシンの定義 を並べ立てると,無責任にもそのままその場を後にした. 少年「まじかよあの赤服野郎 · · · 」 果たして少年は 謎めいた計算機械で
計算ができるのか!? 前回のおはなし: https://speakerdeck.com/000meta/lovely-christmas-present-from-santa 2
復習: 記号 チューリングマシンの定義では,次の記号を用います. S0 , S1 , S2 , .
. . , SN ; q1 , q2 , . . . , qM ; R, L これらの記号の有限列を表現といい,S0 , . . . , SN をアル ファベット,q1 , . . . , qM を内部状態といいます.特に,S0 は B,S1 は 1 と書き,それぞれ空白と数字の 1 を表すこ とにします. 3
復習: チューリングマシンの機能 チューリングマシンは有限の長さの紙テープ,例えば 1B111B1111BB1111BB111 の上を動きながら,その文字を書き換えていく機械です. 紙テープ上にはヘッドと呼ばれる装置が置かれていて, 1 つずつ文字を読みながら左右に動いたり文字を書き換え たりします. 4
復習: 4 項系列 次のいずれかの形をした 4 つの記号から成る表現を 4 項 系列といいます. qi
Sj Sk ql qi Sj Rql qi Sj Lql チューリングマシンとは, 「4 項系列の集合 Z で,その中 のどの 2 つの 4 項系列に対しても最初の 2 文字が一致する ことのないもの」のことです.4 項系列はヘッドに対する 司令を表していました. 5
復習: 時点表示 ただ 1 つ内部状態を含み,それ以外が全てアルファベッ トであるような表現を時点表示といいました. 1q3 B111B1 記号 qi
は内部状態とともに,チューリングマシンのヘッ ドのテープ上の位置を表しています. qi はすぐ右の文字を見て,4 項系列にしたがって移動・ テープ上の文字の書き換えを行います. 6
復習: 文字の書き換え 4 項系列の最初の 2 文字がその司令を実行する条件を,3 文字目がヘッドに与える司令,4 文字目が司令の実行後の 内部状態です.例えば q3
1Bq4 という 4 項系列は, 「内部状態 q3,ヘッドが読んでいる文 字が 1 なら,1 を B に書き換え,内部状態 q4 に移行せよ」 という意味の司令です. 7
復習: ヘッドの移動, あと終点表示 3 文字目が R または L のときは,これらはそれぞれ 「ヘッドを右
/ 左へ移動せよ」という意味の司令です. また,チューリングマシン Z に含まれるどのような 4 項 系列に対しても実行できる司令がないような時点表示を, 終点表示といいました. 8
復習: 数字の表し方 n を,1 を n + 1 個並べて書いた表現 11
· · · 1 とし,(n1 , . . . , nk ) を ni を B を挟んで並べた表現 n1 Bn2 B · · · Bnk とします. また,時点表示 α に現れる 1 の個数を α とします. n = n + 1 です. 9
復習: 計算可能な関数 k 変数関数 f : Nk → N が計算可能であるとは,ある
チューリングマシン Z が存在して,任意の (n1 , . . . , nk ) ∈ Nk に対して,時点表示 q1 (n1 , . . . , nk ) が有限のステップで終 点表示 α に移行し, α = f(n1 , . . . , nk ) となることをい いました. 部分的に計算可能(後述)と区別して,全域的に計算可能ともいいます. 10
部分的に計算可能な関数 前回の記事では触れませんでしたが,関数 f が部分的に 計算可能であるとは,あるチューリングマシン Z が存在し て,ある D ⊂
Nk と時点表示 q1 (n1 , . . . , nk ) に対して次が 成り立つことをいいます. 1. (n1 , . . . , nk ) ∈ D のとき,Z はやがて終点表示 α に 移行し, α = f(n1 , . . . , nk ) となる. 2. (n1 , . . . , nk ) / ∈ D で Z は停止しない. 11
復習長いぞこの野郎! ごめんなさい. ここからはいろいろな関数が計算可能であることを見て いくよ.ぶっちゃけ全然おもしろくないよ. 12
さて,計算するか · · · 表記を簡単にするため,記号 S が n 個連なった表現を Sn
と表すことにします.例えば n は 1n+1 になります. まずは 1 を足す後者関数 S(x) = x+1 を計算するチュー リングマシンを構成してみましょう. 13
後者関数 S(x) = x + 1 時点表示 α = q1
1m1+1 から始まって,終点表示に含ま れる 1 が m + 1 個になればいいですね.って,最初の時点 で α = m + 1 になってるじゃん! そうです.だから 4 項系列の集合 ZS として ZS = {q1 BBq1 } とおけば,α はそのまま終点表示 β になります.めでたく β = m です.なんだか計算した気がしませんね. 14
足し算 f(x, y) = x + y 次は f(x, y)
= x+y を計算するチューリングマシンを構 成してみましょう.時点表示 q1 m1 Bm2 = q1 11m1B11m2 から始まって,終点表示 β について, β = m1 + m2 個に なればいいですね.1 を 2 つ除去するチューリングマシン を構成しましょう. Z+ を,次の 4 項系列からなる集合とします. Z+ = {q1 1B11 , q1 BRq2 , q2 1Rq2 , q2 BRq3 , q3 1Bq3 } 15
足し算の実行 このチューリングマシン Z+ は次のように動きます. q1 11m1B11m2 → q1 B1m1B11m2 →
Bq2 1m1B11m2 · · · → B1m1q2 B11m2 → B1m1Bq3 11m2 → B1m1Bq3 B1m2 q3 B で始まる 4 項系列は Z+ に含まれないので,これが終 点表示 β です.見事, β = m1 + m2 になりました. 16
引き算 f(x, y) = x − y ここまで,なんだか文字を消すばかりであまりおもしろ い操作がありませんでした.でも減算は結構面倒です. 動作が少し複雑なので,各
4 項系列の意味に相当するも のを書き加えておきます. 17
チューリングマシン Z− を次で定義します. Z− = {q1 1Bq1 , q1 BRq2
, (左端の 1 を消せ) q2 1Rq2 , q2 BRq3 , (まんなかの B を探せ) q3 1Rq3 , q3 BLq4 , (右端へ行け) q4 1Bq4 , q4 BLq5 , (右端の 1 を消せ) q5 1Lq6 , (m2 が残っていれば続行せよ) q6 1Lq6 , q6 BLq7 , (まんなかの B を探せ) q7 1Lq8 , q7 BRq9 , (m1 の有無を調べよ) q8 1Lq8 , q8 BRq1 , (左端に行き q1 に戻れ) q9 BRq9 , q9 1Lq9 (無限に同じことを繰り返せ) } 18
お,おえ · · · ざっくり動作を言うと,こんな感じ. 1. 左端からスタート.まずは左端の 1 を消す. 2.
真ん中を飛び越え,右端へ.右端の 1 を消す. 3. 真ん中を飛び越え,左端へ.左端の 1 を消す. 4. これを繰り返すうちに,m1 か m2 のどちらかが無 くなる.m1 が無くなっていたら,q9 に飛んで無限 ループ.m2 がなくなればそこで終了. 19
これ,全域的に計算可能じゃない m1 ≥ m2 のときはうまくいきますが,m1 < m2 のとき は q9
に飛んで無限ループに陥ります.不適切な入力に対し て Z− は停止しないのです. そこで,q9 のところに適当な 4 項系列を追加して, f(x, y) = x − y (x ≥ y) 0 (x < y) としてみましょう. 20
減算・改 先程の Z− に含まれていた q9 BRq9 , q9 1Lq9 (無限に同じことを繰り返せ)
を取り除いて,代わりに q9 BRq10 , q10 1Bq9 を追加します.すると,m1 < m2 のとき全ての 1 が消去さ れて停止し,終点表示 β では β = 0 が実現します.やっ たね. 21
射影 (x1 , . . . , xn ) →
xi 続いて,n 個の変数の入力に対して,i 番目の変数をその まま返す射影関数 f(x1 , . . . , xn ) = xi を計算するチューリングマシンを構成してみましょう. 22
次のように Zpn i を定義すると,Zpn i は,i 番目の 1 のブ ロック以外,全て空白に置き換えるように動作します.
Zpn i = {qj 1Bq2n+j , qj BRqj+1 , q2n+j BRqj , (1 のブロックを消し,次の番号へ) qi 1Bqi , qi BRq2n+i , q2n+i 1Rq2n+i , q2n+i BRqi+1 (先頭以外の 1 を残し,次の番号へ) | 1 ≤ j ≤ k ∧ j = i} 23
つかれた · · · あれ,サンタさん? ホーッホッホッ,心配だから様子を見に来たわい.なに, まだ掛け算も関数の合成も定義できておらんのか.哀れ じゃのう.来年のプレゼントは M. Davis
の「計算の理論」 にしてやろう.ま,しばらくは自力で頑張りたまえ. シャンシャンシャン.... ちょ,おいサンターーー! 24
果たして少年は 2023 年を乗り切れるのか!? つづく (?) 25
補足 ここまでの計算以外にも,掛け算,関数の合成,関数の 最小化を行うチューリングマシンが構成できます. このような演算を繰り返して構成される関数は帰納的な 関数と呼ばれ,チューリングマシンによって定義される計 算可能な関数と一致することが知られています. 26
参考文献 M. Davis. 計算の理論. 岩波書店, 1966. みんな,神保町には行ったかい? 行かないとサンタが襲い に来るよ! 27