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
素朴に計算可能性を考える / An Introduction to Computability
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
remeta
November 30, 2022
Science
0
490
素朴に計算可能性を考える / An Introduction to Computability
計算不可能な関数の具体例から計算可能性について考えてみよう、という話です。
remeta
November 30, 2022
Tweet
Share
More Decks by remeta
See All by remeta
またね、サンタさん / Goodbye, Santa
000meta
0
300
サンタさんからのすてきなプレゼント / Lovely Christmas Present from Santa
000meta
0
180
Other Decks in Science
See All in Science
データベース14: B+木 & ハッシュ索引
trycycle
PRO
0
650
ド文系だった私が、 KaggleのNCAAコンペでソロ金取れるまで
wakamatsu_takumu
2
1.9k
データベース12: 正規化(2/2) - データ従属性に基づく正規化
trycycle
PRO
0
1.1k
コミュニティサイエンスの実践@日本認知科学会2025
hayataka88
0
120
LayerXにおける業務の完全自動運転化に向けたAI技術活用事例 / layerx-ai-jsai2025
shimacos
3
21k
主成分分析に基づく教師なし特徴抽出法を用いたコラーゲン-グリコサミノグリカンメッシュの遺伝子発現への影響
tagtag
PRO
0
180
Distributional Regression
tackyas
0
320
Performance Evaluation and Ranking of Drivers in Multiple Motorsports Using Massey’s Method
konakalab
0
140
蔵本モデルが解き明かす同期と相転移の秘密 〜拍手のリズムはなぜ揃うのか?〜
syotasasaki593876
1
200
デジタルアーカイブの教育利用促進を目指したメタデータLOD基盤に関する研究 / Research on a Metadata LOD Platform for Promoting Educational Uses of Digital Archives
masao
0
150
サイコロで理解する原子核崩壊と拡散現象 〜単純化されたモデルで本質を理解する〜
syotasasaki593876
0
150
データベース05: SQL(2/3) 結合質問
trycycle
PRO
0
880
Featured
See All Featured
Paper Plane (Part 1)
katiecoart
PRO
0
4k
Test your architecture with Archunit
thirion
1
2.1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
280
Mind Mapping
helmedeiros
PRO
0
75
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
88
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.2k
The Invisible Side of Design
smashingmag
302
51k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
1.8k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
89
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Crafting Experiences
bethany
1
46
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
Transcript
<計算可能>を素朴に考える 2022 年 11 月 16 日 1
なにをするか 計算可能でない関数を考えて,計算を試み, 「いや,やっぱり計算できないじゃん」と言う. 厳密な話はしません.なんとなく面白そうだなとか 思ってもらえると嬉しいです. 少しばかりスライドに詰め込みすぎました. 2
計算可能であるとは それを計算するための具体的な計算手順があること. 例えば以下はだめ. • 無限に計算を続ける • 気合でいい感じの数を思いつく • ラマヌジャンを用意する ちゃんとした定義は,
「それを有限のステップで計算する チューリング機械が存在すること」 . 3
計算可能じゃないって? (以下,自然数(0 含む)のみを考える. ) 「計算可能な関数」は,よく知ってるやつら. +, −, ×, π の
n 桁目の値, . . . などなど. 計算の仕方を示せば「確かに計算できますね」と言えそう. じゃあ「計算可能でない」ってどういうこと? たとえば? ためしに “計算可能でない関数” を作ってみよう. 4
“計算可能でない関数” を作る 計算可能な関数は,具体的な計算方法を備えている. 計算方法を記号列で表したとしよう(例えば英語で) . 例えば,f(x) = x + 1
の計算方法 E は E = “add one” 計算方法をアルファベット順に並べて,番号をつける. E0 , E1 , E2 , . . . これで計算可能な関数に自然数の番号がつく. f0 , f1 , f2 , . . . 5
“計算可能でない関数” を作る ここで新しい関数 g を(さっきの番号の付け方を用いて) g(x) = fx (x) +
1 とおいてみよう.何が起こるかな? 6
g は “計算可能” か? g が計算可能と仮定すると,g には番号が振られる. つまり,ある自然数 j について
g = fj. そのような自然数 j について g(j) を考えると...? g(j) = fj (j) + 1 = g(j) + 1 =⇒ 0 = 1 はい矛盾.g は計算可能ではありえない! 7
g は計算可能じゃない! わーい! 計算可能じゃなかった! 8
g は計算可能じゃない! わーい! 計算可能じゃなかった! なんかこれ 計算できそうじゃね? 9
g(x) を計算してみる 自然数 x が与えられたときに,この値を求めてみよう. 1. 有限の長さの (カンマ, ピリオド, 空白を含む)
アルファ ベット列を並べた表を作る.この表は途中まで作って, 必要に応じて適宜継ぎ足していけば OK. a, b, c, . . . , z, aa, ab, . . . , az, ba, bb, . . . , zz, aaa, aab, . . . 2. この表の頭から順に計算手順になっていないものを 除去して,x 番目の計算手順 fx を見つける. 10
g(x) を計算してみる 3. fx に x を代入して,g(x) = fx (x)
+ 1 が求まる. パッと見では計算できてそうだが...? アルファベットを使ったのが悪い? 代わりに C++ のコードでやっても同じことが起こる. 11
何がいけなかったか 1. 有限の長さのアルファベット列を並べる. a, b, c, . . . ,
z, aa, ab, . . . , az, ba, bb, . . . , zz, aaa, aab, . . . 2. 頭から順に,計算手順になっていないものを除去して x 番目の計算手順 fx を見つける. 3. x 番目の計算手順 fx に x を代入して 1 を足して, g(x) = fx (x) + 1 が計算できました. 12
何がいけなかったか 1. 有限の長さのアルファベット列を並べる. a, b, c, . . . ,
z, aa, ab, . . . , az, ba, bb, . . . , zz, aaa, aab, . . . 2. 頭から順に,計算手順になっていないものを除去して x 番目の計算手順 fx を見つける. 3. x 番目の計算手順 fx に x を代入して 1 を足して, g(x) = fx (x) + 1 が計算できました. 13
停止性問題 “計算可能である” なら,有限の手続きで答えが出る. しかし,ある計算手順が有限で終わるか機械的には 判定できない. ゆえに, 「計算可能か判定する関数」 は計算可能ではない! (有限の手順で終わることを証明するのは簡単. 有限な手順を具体的に示せばいい.
) 14
参考文献 M. Davis. 計算の理論. 岩波書店, 1966. 神保町で叩き売られてた(400 円) ,神保町サイコー. 15