Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
素朴に計算可能性を考える / An Introduction to Computability
Search
remeta
November 30, 2022
Science
580
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
素朴に計算可能性を考える / An Introduction to Computability
計算不可能な関数の具体例から計算可能性について考えてみよう、という話です。
remeta
November 30, 2022
More Decks by remeta
See All by remeta
またね、サンタさん / Goodbye, Santa
000meta
0
340
サンタさんからのすてきなプレゼント / Lovely Christmas Present from Santa
000meta
0
210
Other Decks in Science
See All in Science
20260820_アウトカムが二値のデータに対するCausal Impact@LINEヤフー Data Science Share #2 / Causal Impact for Binary Outcomes
brainpadpr
3
1.5k
Anomalies de terrain remontées à l'ONAB
institutdelelevage
PRO
0
260
Path integral polarons for real semiconductors
jarvist
0
110
データベース05: SQL(2/3) 結合質問
trycycle
PRO
0
1.4k
Biohub - Cell Tracking During Development - 3rd Place Solution
yu4u
2
110
白金鉱業Meetup Vol.25 【初学者向け発表枠】「で、この施策って効いてるの」に答える効果検証の基礎 ~ATE / ATT / CATE / LATEを現場の問いに翻訳する~
brainpadpr
1
360
Wet Active Matter
rajeshrinet
0
260
Cognitive Debt - What AI will do to us
martinlippert
1
120
データベース09: 実体関連モデル上の一貫性制約
trycycle
PRO
0
1.9k
CVPR2026_VGGTとその仲間たち
mickey_0226
0
1.2k
自社のレビュー履歴からAIコードレビュアーをつくる方法
estie
5
1.8k
医療 LLM ベンチマークの現在地:多面的評価 と日本ローカライズ
analokmaus
1
750
Featured
See All Featured
Abbi's Birthday
coloredviolet
4
10k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Practical Orchestrator
shlominoach
192
12k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
My Coaching Mixtape
mlcsv
0
360
Unsuck your backbone
ammeep
672
58k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
630
Embracing the Ebb and Flow
colly
88
5.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
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