形式A
選択(複数可)
階層・文法・決定不能の定義。
STUDY GUIDE · 計算理論
期末試験対策 · 第10–14回本線
入門で用語を固めてから本編。過去問は問題文フル+答案型。中間専用サイトとはURL分離。
期末本線 = 第10–14回 + 過去問同型(選択・TM・作文・FE)
| 第10–14回 | 本線。可算/対角、ATM、帰着、Rice、LBA、計算履歴、階層・文法 |
|---|---|
| 第2–9回 | 入門用語の土台のみ(FA/PDA/TM/δ)。中間専用の厚い本編は別URL |
| 過去問 | 2025中間・2025期末を全文収録(学習用。個人情報なし) |
| 出題形式想定 | 選択(複数可)/TM空欄/作文/基本情報トレース |
初見は「学ぶ」から(いきなりドリルしなくてよい)
入門編 · 用語を先に固める
無限テープと読み書きヘッドと有限状態で、計算の手順を機械的に実行するモデル。
別名: TM / Turing machine。本稿では TM と併記。
なぜ出るか: 期末の選択・記述・作文の共通土台。『コンピュータで解ける』の上限を測る物差し。
[前] 人間がメモ用紙で手順を進める --> [後] 同じ手順を δ の規則だけで自動実行(状態・書く・動く)
仕組み(言葉): 今の状態とヘッド下の記号だけを見て、『何を書く・どちらへ1マス動く・次の状態』を決める。これを繰り返す。ジャンプや同時2マス読みはできない。
計算理論では『プログラム』を直接扱わず、まず一番強い理想機械を置く。それがTM。期末で『判定できる/できない』を議論するときの共通の土俵になる。
入力 XXXXX を読んで、個数 mod 3 を左端に書く機械(期末問2型)もTM。認識(yes/no)にも変換(テープ書き換え)にも使える。
『TM=現実のPCそのもの』ではない。PCの計算力の上限を理想化したモデル。また『何でも解ける』わけではなく、ATMなど判定不可能な問題がある。
試験での答え方(完成文): 「チューリング機械は、無限テープ・読み書きヘッド・有限状態からなる計算モデルであり、有限オートマトンやプッシュダウンオートマトンより言語認識能力が高い。」
「今の状態と読んだ記号」から「次状態・書く記号・ヘッドの動き」を決める規則表。
別名: 遷移関数 / transition function。
なぜ出るか: 期末問2の空欄はすべて δ の穴埋め。暗記より『保持している情報は状態に載る』が鍵。
[前] δ(q, a) = (p, b, R) --> [後] 状態qでaを見たら → bを書き → 状態pへ → 右へ1マス
仕組み(言葉): 1行が1命令。『今持っているビット』や『今の余り』など、テープに書ききれない一時情報は状態名に載せる(q0=余り0、q1=余り1 …)。
空欄問題は『どの記号が入るか』の暗記競技に見えるが、本質はアルゴリズムの途中メモを状態に割り当てること。割り当てが分かれば空欄は導ける。
保持ビットが1のとき状態を q1、0のとき q0、と決める。そうすると δ(q1,0)=(q0,1,R) のように『1を書いて0を保持』が自然に出る(中間ローテート型)。
δ の第3成分を『次の記号』と読む誤り。第2が書く記号、第3がヘッド方向。
試験での答え方(完成文): 「δ(q,a)=(p,b,D) は、状態qで記号aを読んだとき、bを書き、状態をpに更新し、ヘッドを方向D(L/R/S)へ動かす、という意味である。」
FA ⊂ PDA ⊂ TM(認識能力)。正規 ⊂ 文脈自由 ⊂ … ⊂ 句構造、と同じ向きの包含。
別名: 計算モデルの階層 / チョムスキー階層と対応。
なぜ出るか: 期末問1(1)(2)の直撃。『下位ができれば上位の機械も存在する』。
[弱い] FA(正規) ⊂ PDA(文脈自由) ⊂ TM(句構造/認識可能) [強い]
仕組み(言葉): 弱い機械で認識できる言語は、強い機械でも認識できる(シミュレーション)。逆は成り立たない——PDAにしかできない言語がある。
期末問1(1)はここだけ見れば解ける。『FAがある ⇒ もっと強い道具もある』。包含は言語の集合の話で、機械そのものが入れ子になっているイメージでもよい。
正規言語 {a}* は FA でも TM でも認識できる。一方 {aⁿbⁿ | n≥0} は FA では無理だが PDA ならできる。
『TMがあるからFAもある』は逆向きで誤り。強い側にあっても弱い側にあるとは限らない。
試験での答え方(完成文): 「有限オートマトンが存在する言語には、必ず正規文法・文脈自由文法・チューリング機械(およびプログラム)も存在する。包含の向きは FA⊂PDA⊂TM である。」
文法の種類で言語を層分けした図。正規 ⊂ 文脈自由 ⊂ 文脈依存 ⊂ 句構造。
別名: Chomsky hierarchy。機械側では FA / PDA / LBA / TM とだいたい対応。
なぜ出るか: 期末問1(2)。『文脈自由は正規を包含』『句構造にしか入らない言語がある』を選ばせる。
入れ子: 正規 ⊂ 文脈自由 ⊂ 文脈依存 ⊂ 句構造 規則が厳しくなるほど扱える言語は減る(内側の円が小さくなる)。
仕組み(言葉): 生成規則の形を制限すると、作れる言語の集合が小さくなる。制限を緩めると外側の円に広がる。機械の能力の階段と同じ向き。
「言語が強い/弱い」を感覚で言わず、まずどの形の規則まで許すかで棚分けしたのがチョムスキー階層。試験では円の入れ子(包含)と、各層の規則の違いをセットで聞く。
覚え方の物語: いちばん内側は『ほぼ状態遷移と同じ規則』=正規。少し緩めて『左辺が記号1つ』=文脈自由。さらに緩めると文脈依存・句構造へ。
内側の言語は外側にも含まれる。外側にしかない言語もある(=真の包含)。
| 層 | 規則の形(講義イメージ) | 対応機械 | 具体言語の例 |
|---|---|---|---|
| Type-3 正規 | 右辺は終端高々1つ+非終端0/1個 (例: A→aB, A→a, A→ε) | FA | a*, 偶数個の0 |
| Type-2 文脈自由 | 左辺が非終端ちょうど1つ (例: A→aAb, S→(S)|ε) | PDA | {aⁿbⁿ | n≥0}(正規ではない) |
| Type-1 文脈依存 | 文脈付き・長さ非減少など(講義の定義に従う) | LBA | {aⁿbⁿcⁿ | n≥0}(文脈自由ではない) |
| Type-0 句構造 | 制限ほぼなし(左右とも任意の文字列) | TM | RE言語全般。ATMに対応する言語など |
{ w ∈ {0,1}* | w は0で終わる } — FAで終端状態を見ればよい。{ aⁿbⁿ | n≥0 } — 「aの個数=bの個数」を数えるにはスタックが要る。{ aⁿbⁿcⁿ | n≥0 } — 3つを同時に合わせる必要があり、古典的な反例。試験での答え方(完成文): 「チョムスキー階層では正規言語⊂文脈自由言語⊂文脈依存言語⊂句構造言語である。文脈自由に入らないが句構造には入る言語が存在し、決定不能問題を『句構造言語に含まれる』とカテゴリ混同して答えてはいけない。」
G=(N,T,P,S)。非終端・終端・生成規則・開始記号の4つ組で言語を生成する装置。
別名: 文法 / formal grammar。開始記号は S や A(期末では四つ組の第4成分)。
なぜ出るか: 期末問1(4)。記号の役割(εは非終端ではない等)と規則形を正確に言えるか。
[前] 開始記号 A --> 規則で書き換え [後] 終端だけが残った文字列 = 生成された語
仕組み(言葉): 左辺にマッチした部分を右辺に置き換える。最終的に終端記号だけになったら『その語を生成した』。ε(空列)は『何も残さない』という意味で、NにもTにも属さない。
機械が『読む』なら、文法は『書き下ろす』側。同じ言語を両方で語れるのがチョムスキー階層の要点。
N={A,B}, T={a,b}, P={A→aaa, A→ε, B→bb}, 開始=A のとき: A∈Nかつ開始なので(a)正しい。ε∉Nなので(b)誤り。A→aaa は終端3つでType-3形ではないので正規ではない(c)。左辺が単一非終端なので文脈自由の形→選択肢『文脈文法』は講義の文脈自由側として(d)正しい。
εを『特別な非終端』と思い込む。εは空列。
試験での答え方(完成文): 「形式文法は G=(N,T,P,開始記号) の四つ組である。εは空列であり非終端ではない。規則形を見て正規か文脈自由かを判定する。2025期末問1(4)は a,d。」
生成規則が右線形(または左線形)だけに制限された文法。正規言語を生成する。
別名: regular grammar / Type-3。FAと対。
なぜ出るか: 『FAがある⇔正規文法がある』系の選択。文脈自由との区別。期末問1(4)のc判定。
OK: A → aB / A → a / A → ε NG: A → aaa / B → bb (終端が2つ以上)
仕組み(言葉): 右辺に並べてよい終端は高々1つ。状態遷移図の『辺ラベル1文字』と同じ厳しさ。だからFAと同じクラスになる。
A→0A | 1A | ε は『任意の0/1列』を生成する正規文法の典型。
『全部終端だから簡単=正規』は誤り。終端の個数が2以上ならType-3形ではない。
試験での答え方(完成文): 「正規文法(Type-3)の右辺は終端高々1つ+非終端0/1個に限られる。A→aaa や B→bb は形として正規文法ではない。」
左辺が単一の非終端だけの文法。文脈自由言語を生成する。
別名: context-free grammar / CFG / Type-2。
なぜ出るか: 階層問題と、期末文法記号問題の『これは正規か文脈自由か』。
OK: A → aAb | ε (左辺は A だけ) NG: aA → … (左辺に終端がある=文脈自由ではない)
仕組み(言葉): 書き換えたい非終端の左右に何があっても、その非終端だけを見て書き換えられる——だから『文脈(自由)』。正規より緩いので aⁿbⁿ も書ける。
S → aSb | ε は {aⁿbⁿ | n≥0} を生成。正規文法では(この言語は)生成できない。
『文脈自由』を『文脈に依存する』と逆訳しない。文脈を見ないから自由。
試験での答え方(完成文): 「文脈自由文法とは、どの生成規則も左辺が非終端記号ちょうど1つである文法である。」
どんな入力でも必ず停止して yes/no を返すアルゴリズム(判定装置)が存在する性質。
別名: decidable / recursive。
なぜ出るか: 第10–12回の本線。ATM・HALTTM・ETM は判定不可能。
[前] yes/no 問題 --> [後] いつも止まって答える機械がある = 判定可能
仕組み(言葉): 受理すべき入力でも拒否すべき入力でも必ず停止する。認識可能より強い条件。
『与えられた2つのDFAが同じ言語か』は判定可能(講義前半の技法)。一方 ATM は判定不可能。
『難しいが人間なら解ける』と混同しない。定義は『常停止アルゴリズムの有無』だけ。
試験での答え方(完成文): 「判定可能であるとは、任意の入力に対して必ず停止し yes または no を返す判定装置(アルゴリズム)が存在することである。」
それを解く(常に停止する)手順が存在しない問題。
別名: 判定不可能問題 / undecidable problem。
なぜ出るか: 期末問1(3)の定義そのもの。『答えられない』ではなく『手順が無い』。
[前] 解き方を探す --> [後] どんな手順を書いても、必ず失敗する入力が残る
仕組み(言葉): 『今の自分には分からない』ではない。数学的に、常停止アルゴリズムが存在しないことが証明できる問題。
ATM(受理問題)、HALTTM(停止問題)、ETM(空言語問題)は代表例。
a『yes/noで答えられない』は定義ずれ(問題自体はyes/no型でも決定不能になりうる)。c『何が問題かわからない』は論外。
試験での答え方(完成文): 「決定不能問題とは、その問題を解く手順(常に停止するアルゴリズム)が存在しない問題である。」(選択肢なら d)
ATM={〈M,w〉| MはTMで w を受理する}。判定不可能の代表例。
別名: acceptance problem / A_TM。
なぜ出るか: 第10回。他の判定不可能性はだいたいここから帰着する。
[前] 〈M,w〉を渡す --> [後] 『受理する?』に常停止で答える機械は作れない
仕組み(言葉): 判定器Hがあると仮定 → 『Hの答えをひっくり返す』対角機械Dを作る → Dに自分自身を入力すると矛盾。
『万能シミュレータがあれば全部わかるのでは?』という直感を壊すのがATM。シミュレートはできるが、止まらない場合に備えて常停止の判定器は作れない。
ATMは認識可能(受理するときだけシミュレートして止めればよい)だが判定不可能。『認識できない』と混同しない。
試験での答え方(完成文): 「ATMはチューリング機械Mと入力wの組のうちMがwを受理するもの全体であり、対角線論法により判定不可能である。」
HALTTM={〈M,w〉| Mは入力wで停止する}。これも判定不可能。
別名: halting problem。講義では ATM を受理問題、こちらを真の停止問題と呼ぶ流れ。
なぜ出るか: 第11回。ATM→HALTTM の帰着が定番答案。
[前] 動かし続ける?止まる? --> [後] 一般には判定できない
仕組み(言葉): 停止判定器Rがあれば、(1)Rで停止するか聞き (2)停止するときだけMをシミュレート、というATM判定器Sが作れてしまい矛盾。
答案は講義どおり4手順: Rを呼ぶ → 拒否なら拒否 → 受理ならMをシミュレート → 受理/拒否をそのまま返す。
帰着の向きを逆に書く(『HALTTMをATMに帰着』と書くと意味が崩れる)。覚えるなら『すでに難しいAを、未知のBに帰着 ⇒ Bも難しい』。
試験での答え方(完成文): 「ATMをHALTTMに帰着できる。HALTTM判定器があればATM判定器が作れてしまうため、HALTTMも判定不可能である。」
問題Aを解くために問題Bの解法を部品として使う変換。判定不可能性の伝播に使う。
別名: reduction / 還元。
なぜ出るか: 『Aが判定不可能で A≤B なら Bも判定不可能』が第11–12回の型。
[前] Aの入力 --> 変換 [後] Bの入力 → Bの答え → Aの答えに翻訳
仕組み(言葉): Bが解けると仮定するとAも解けてしまう、を示す。Aが解けないと分かっているなら、Bも解けない。
日常例(講義): 道順を知る問題は地図を入手する問題に帰着できる。計算では ATM ≤ HALTTM、ATM ≤ ETM など。
『帰着できた=簡単になった』ではない。判定不可能性証明では『難しさがうつる』方向で使う。
試験での答え方(完成文): 「問題Aを問題Bに帰着するとは、Bの解法を部品としてAを解く変換を与えることである。Aが判定不可能でA≤BならBも判定不可能である。」
TMが認識する言語についての、非自明な性質はすべて判定不可能、という一般定理。
別名: Rice’s theorem。
なぜ出るか: 第12回。『正規言語か?』などを個別に帰着しなくても一括で説明できる。
[前] 『L(M)は性質Pを持つ?』 --> [後] Pが非自明なら判定不可能
仕組み(言葉): 非自明=いくつかのTMでは成り立ち、すべてでは成り立たない。しかも性質は『言語が同じなら答えも同じ』こと。
『L(M)は正規か』『L(M)は空か』『L(M)=Σ*か』はいずれも非自明な言語性質 → 判定不可能。
機械の構文的な性質(状態数が3以下か等)にはそのまま適用しない。定理の対象は言語の性質。
試験での答え方(完成文): 「Turing機械の言語に関する非自明な性質は、Riceの定理によりすべて判定不可能である。」
テープ上の『何も書いていない』を表す特別な記号。入力アルファベットには通常含めない。
別名: blank / 空白記号。
なぜ出るか: TM問題で入力の右端検出や消去に必ず出る。
[前] … X X X ⊔ ⊔ …
↑ヘッド
[後] ⊔ を読んだら『入力終わり』と解釈できる
仕組み(言葉): 入力の右端・左端の目印、消去(Xを⊔に書き換え)、答えを書いたあとの掃除に使う。Γの要素で、Σには通常入れない。
受理状態で必ず⊔を指す、とは限らない(中間問1のひっかけ)。
試験での答え方(完成文): 「⊔は空テープ記号でありテープ・アルファベットΓの要素である。入力アルファベットΣには通常含めない。」
文献の一文を素材に、著者の考え・自分の賛否・根拠・引用意図を1000字前後で書く問題。
別名: 論述 / 生成AI利用指定がある年もある。
なぜ出るか: 中間・期末とも出る。選択・TMと並ぶ配点ブロック。
[前] 引用文 --> 要約 → 賛否 → 根拠 → 文献接続 [後] 採点者が追跡できる答案
仕組み(言葉): 『感想文』ではなく『主張と根拠の対応』が本体。文献は飾りではなく、自分のどの文を支えるかを明示する。
5段: (1)著者要約 (2)賛否 (3)根拠A(TM/アルゴリズム) (4)根拠B+文献意図 (5)結論。見本段落は過去問章にある(丸写し提出禁止)。
ChatGPT見本の文献を意図説明なしでコピペ。課題PDFが『引用意図が不明』と警告している。
試験での答え方(完成文): 「著者の主張を要約したうえで賛否を明示し、計算モデルや文献のどの記述が自分の根拠を支えるかを示して結論づける。」(字数目安を守る)
オートマトン・スタック・リストなど、状態を1手ずつ更新して選択肢を選ぶ問題。
別名: FE過去問枠(期末問4)。
なぜ出るか: 計算理論の用語と直結する外部問題がそのまま出る想定。
[前] 初期状態 --> 入力1つ処理 [後] 次状態・出力・スタック頂を更新
仕組み(言葉): 飛ばさず表を書く。途中省略が最大の失点源。図が読めなくても、操作列が文章化されていれば同じ手順で解ける。
Mealy: 入力0011001110→出力0001000110(ア)。スタック: 底1・中7・頂3(ウ)。リスト: next[8]=7(ウ)。
スタックの上下を画面の見た目だけで逆に読む。底と頂を答案で明示する。
試験での答え方(完成文): 「初期状態から入力(または操作)を1手ずつ表に書き、最終状態と選択肢記号を答える。」
入力記号の個数を mod 3 で数え、余りを左端に書いて他を空白にする変換機械。
別名: 期末2025問2型。
なぜ出るか: 期末の記述本線。状態=余り、終了時に左へ掃除して書く。
[前] XXXXX(5個) --> 数えながら右へ [後] 左端に 2、他は ⊔(5≡2 mod 3)
仕組み(言葉): 右進で余りを状態に保持→空白で折り返し→左進でXを消去→左端に 0/1/2 を書いて停止。空欄①〜⑩はこの物語の各ステップ。
X=1→1、X=2→2、X=3→0、X=4→1。トレース表は過去問章にあり。
中間のローテート空欄と番号が同じでも別問題・別δ。混同しない。
試験での答え方(完成文): 「状態に余りを載せ、右端空白で折り返して掃除し、左端に余り数字を書いて受理停止する。期末問2の空欄は過去問章の解答表を正とする(R, q2, X, q3L, L, S, q2L, 2, L, qf)。」
遷移するときに入力だけでなく出力記号も出すオートマトン。辺ラベルは入力/出力。
別名: Mealy machine。FE問で頻出。
なぜ出るか: 期末過去問のFE枠。計算理論の遷移図読解と同一スキル。
[前] 状態 S —1/0→ 状態 T --> [後] 入力1を読んだら出力0を出しTへ
仕組み(言葉): 1入力ごとに1出力。出力列の長さ=入力長。初期状態から辺をたどるだけ。
期末図: S1で0/0自己ループ、1/0でS2へ。S2で1/1→S3、0/0→S1。S3で1/1自己、0/0→S1。入力0011001110→0001000110。
試験での答え方(完成文): 「初期状態から入力を1記号ずつたどり、各辺の出力を並べて出力列とする。」
後から入れたデータから出す(LIFO)データ構造。PDAのメモリ。
別名: 積み重ね / LIFO。
なぜ出るか: FEのPUSH/POP追跡。PDA理解の具体物。
[前] PUSH 1, PUSH 5, POP --> [後] 残るのは [1](5が取り出された)
仕組み(言葉): いじれるのは常に一番上(頂)だけ。途中の要素には触れない。
PUSH1→PUSH5→POP→PUSH7→PUSH6→PUSH4→POP→POP→PUSH3 の最終は底1・中7・頂3(ウ)。
図の『上』が頂か底かを問題文の慣習で確認。本サイトは底→頂で書く。
試験での答え方(完成文): 「各PUSH/POPのあと底から頂までの列を書き、最終状態を選択肢と照合する。」
値配列とnext配列の対で連結リストを表す実装。挿入はポインタ(添字)書き換え。
別名: カーソル実装 / FEリスト問題。
なぜ出るか: 期末FE枠。『何番を差し込むと next[i] は幾つ』。
[前] A→E→C→G→B --> CとGの間にH [後] C→H→G→B(next[8]=旧の次=7)
仕組み(言葉): 新要素の next を『もともと次だった添字』にし、前要素の next を新要素へ向ける。
聞かれているのが next[8] なのか next[3] なのかを取り違えない。
試験での答え方(完成文): 「リストを辿って挿入位置の前後を特定し、新要素のnextに旧の次の添字を入れる。期末問では next[8]=7。」
必須が終わったら → 試験ハブ(本編へ)
有限個の状態だけで入力を左から読む機械。正規言語を認識する。
別名: FA / DFA / NFA(本稿では FA)。
なぜ出るか: 階層比較と『FAがあれば正規文法・TMもある』型の選択問題の土台。
[前] メモリ無しの自動ドア --> [後] 今の状態と次の記号だけで次状態が決まる
仕組み(言葉): スタックもテープ書き換えもない。だから aⁿbⁿ のように『個数を覚えて後で合わせる』ができない。
『0で終わる二進列』はFAで認識できる。『aの数=bの数』はFAではできない(正規でない)。
NFAとDFAは表現力(認識できる言語クラス)は同じ。状態数が違うだけ、と試験では割り切ってよい場面が多い。
試験での答え方(完成文): 「有限オートマトンは有限状態のみで入力を読む機械であり、正規言語を認識する。」
有限状態にスタック(後入れ先出し)を足した機械。文脈自由言語を認識する。
別名: PDA。
なぜ出るか: FA<PDA<TM の階段と、基本情報のスタック操作問題の橋渡し。
[前] FA(メモ無し) --> [後] PDA(積み上げた記号を上から使う)
仕組み(言葉): aを読むたびにスタックへ積み、bを読むたびに下ろす、のように『個数合わせ』ができる。途中のスタック要素には触れない。
{aⁿbⁿ | n≥0} はPDAの定番。FEのPUSH/POPトレースは同じLIFO感覚。
試験での答え方(完成文): 「プッシュダウンオートマトンはスタック付きのオートマトンであり、文脈自由言語を認識する。」
受理すべき入力では必ず停止受理するTMがあること。拒否側はループしてよい。
別名: RE / Turing-recognizable / 半判定可能。
なぜ出るか: ATMは認識可能だが判定不可能。補認識可能とのセットが第11回。
[前] 受理なら止まる --> [後] 非受理は拒否停止でもループでもよい
仕組み(言葉): 『見つかったら受理』型。見つからないことを証明して停止する義務はない。
認識可能=判定可能、と潰さない。差は非受理時の停止義務。
試験での答え方(完成文): 「Turing認識可能とは、受理すべき入力では必ず停止して受理するTMが存在することである(非受理側の停止は要求しない)。」
補集合が Turing認識可能である言語のクラス。
別名: co-RE / co-Turing-recognizable。
なぜ出るか: 『認識可能かつ補認識可能⇔判定可能』。ATMの補は認識不可能。
[前] A を認識する機械 --> [後] A̅ も認識 ⇒ 並列に回せば判定できる
仕組み(言葉): 2台を交互に1ステップずつ動かし、先に受理した方で yes/no を決める。どちらかは必ず受理するので判定装置になる。
系: ATM̅ は認識不可能(ATMは認識可能だが判定不可能だから)。
試験での答え方(完成文): 「言語がTuring認識可能かつ補Turing認識可能であるとき、かつそのときに限り、その言語は判定可能である。」
可算=自然数と1対1対応できる。非可算=それができない(実数・全言語集合など)。
別名: countable / uncountable。
なぜ出るか: 『TMは可算、言語は非可算⇒認識できない言語がある』の前提。
[前] 1,2,3,… と並べられる --> [後] 並べ切れない(実数・全言語)
仕組み(言葉): 符号化できれば可算(TM全体)。特性列で全言語と無限二進列を対応させ、対角化で非可算を示す。
偶数全体は可算(n↔2n)。実数全体は非可算(対角)。
試験での答え方(完成文): 「集合が可算であるとは自然数と1対1対応できること。TM全体は可算、全言語の集合は非可算なので、認識されない言語が存在する。」
可算と仮定した表の対角成分をずらして、表に無い要素を作り矛盾する証明技法。
別名: diagonal argument / Cantor の対角化。
なぜ出るか: 第10回。実数の非可算→言語の非可算→認識不能言語の存在。ATMの対角機械も同型。
[前] 行=番号, 列=桁の表 --> [後] 対角と全部違う x を作る → 対応漏れ
仕組み(言葉): 『全部並べたつもり』のリストから、必ず漏れる1つを構成する。桁ずらしでは0と9を避ける(0.1999…=0.2000…問題)。
実数: 第n桁を f(n) の第n桁と違う値にする。ATM: Hの答えをひっくり返すDを構成。
試験での答え方(完成文): 「対応を仮定し、対角成分をずらした要素を構成すると対応に現れないため矛盾する。」
テープ使用量が入力長の定数倍までに制限されたTM。
別名: linear bounded automaton / 線形拘束オートマトン。
なぜ出るか: 第13–14回。A_LBAは判定可能(状況数が有限でループ検出)。E_LBAは判定不可能。
[前] 普通のTM(テープ無限) --> [後] LBA(使えるマスが入力長のO(1)倍)
仕組み(言葉): 使えるマスが有限⇒計算状況(状態×ヘッド位置×テープ内容)が有限⇒十分回せば停止かループが分かる。だから受理問題は判定可能。
『LBA関連は全部判定可能』ではない。空性 E_LBA は計算履歴帰着で判定不可能。
試験での答え方(完成文): 「LBAはテープ使用量が入力長の定数倍に制限されたTMである。計算状況が有限個なのでA_LBAは判定可能である。」
入力に対する計算状況の列。受理計算履歴は開始から受理まで正当につながる列。
別名: computation history / 受理計算履歴。
なぜ出るか: 第13–14回の帰着技法。『存在を問う問題』を履歴の存在に翻訳する。
[前] C0 → C1 → C2 → … → 受理 --> [後] この列全体が『受理した証拠』
仕組み(言葉): 各 Ci から Ci+1 へはδの1ステップで正当につながる。停止しない計算には受理/拒否履歴は存在しない。
E_LBAの判定不可能性証明では、『Mがwを受理 ⇔ 受理履歴を受理するLBAの言語が空でない』と翻訳する。
試験での答え方(完成文): 「受理計算履歴とは、開始状況から受理状況まで、各ステップが遷移規則に従う計算状況の有限列である。」
ETM={〈M〉| L(M)=∅}。TMが何も受理しないかの判定。判定不可能。
別名: emptiness problem for TM。
なぜ出るか: 第12回の帰着例。ATMから変形機械を作る定番。
[前] 〈M,w〉 --> M1 を作る(w以外拒否など) [後] L(M1)=∅? の答え → 受理判定に翻訳
仕組み(言葉): M1を『w以外は拒否、wならMを真似る』と作る。L(M1)が空⇔Mがwを受理しない。空性判定ができればATMが解けてしまう。
『空かどうか』と『正規かどうか』は別問題。どちらも判定不可能だが帰着の作り方が違う。
試験での答え方(完成文): 「ETMはATMからの帰着により判定不可能である(変形機械M1の空性を調べると受理判定ができてしまう)。」
列を1ビット右に回し、はみ出しを左端へ戻す変換を行うTM(中間2025問2型)。
別名: 1ビット右ローテート。
なぜ出るか: 中間過去問。期末も同型の『保持ビットを状態に載せる』が出る想定。
[前] 01011 --> [後] 10101(右端1が左端へ)
仕組み(言葉): 先頭を状態に覚え、右へシフトし、右端で折り返して左端に書く。保持0→戻りq2、保持1→戻りq3。
01011→10101、00001→10000。空欄4=q0・空欄6=q3を取り違えるとトレースが破綻する。
左ローテート(01011→10110)と混同しない。期末mod3の①〜⑩とも別。
試験での答え方(完成文): 「右ローテートは保持ビットを状態q0/q1に載せ、戻りはq2(0)/q3(1)で分岐する。答えは (1)1 (2)0 (3)L (4)q0 (5)R (6)q3 (7)0 (8)L (9)q3 (10)1(番号は課題の①〜⑩に対応。期末mod3とは別)。」
本編入口
形式A
階層・文法・決定不能の定義。
形式B
mod3数え/ローテート。δを埋める。
形式C
文献+賛否+根拠+引用意図。
形式D
Mealy・スタック・リスト。
理論本線
対角・ATM・帰着・Rice・LBA。
用語が不安なら先に 入門・必須。準備できたら上のリンクで本編へ。
第10–12回 · 本編
ここから記号が並ぶが、物語は3行で足りる。
不安なら先に入門の 可算・対角・ATM・帰着 を読む。
集合 \(A\) が有限、または自然数 \(\mathbb{N}\) と1対1対応できるとき 可算。
アルファベット \(\Sigma\) 上の全言語の集合 \(\mathcal{L}\) は、無限二進列の集合 \(\mathcal{B}\) と対応する(言語 \(A\) の特性列 \(\chi_A\))。\(\mathcal{B}\) は対角化で非可算 ⇒ \(\mathcal{L}\) も非可算。
一方、各TMは文字列に符号化できるのでTM全体は可算。よって どのTMでも認識されない言語が存在する。
与え: \(\mathbb{N}\) と実数全体 \(\mathbb{R}\) の間に対応 \(f\) があると仮定する。求めよ: 矛盾の導き方(対角実数 \(x\) の構成方針)。
なぜ今この計算か: 非可算を示さないと『認識不能言語の存在』へ進めない。試験では構成手順を書く。
答案文: 仮定した対応の対角をずらした実数を構成すると、どの自然数とも対にならないため矛盾する。よって実数全体は非可算である。
部分点: 仮定の明示 / 対角桁のずらし方 / 0と9を避ける注意 / 矛盾の結論 で配点されやすい
考察: 数値のどこを見るか: 『第n桁だけ』を変えれば、その行の実数全体と不一致になる点が本質。
日常語: 『プログラムMと入力wを渡して、Mがwを受理するか』をいつも止めて答える審判は作れない——それがATMの判定不可能性。証明は『審判がいると仮定すると、自分で自分をいじって矛盾する機械が作れる』。
\(A_{\mathrm{TM}}=\{\langle M,w\rangle\mid M\text{ はTM,}M\text{ は }w\text{ を受理}\}\)。
判定装置 \(H\) があると仮定すると、対角機械 \(D\) を『\(H(\langle M,\langle M\rangle)\) が受理なら拒否、拒否なら受理』と作れ、\(D(\langle D\rangle)\) で矛盾する。
与え: ATM に対する判定装置 H が存在すると仮定する。求めよ: 矛盾を導く対角機械 D の動作と、結論。
なぜ今この計算か: 期末の選択でも『決定不能』の意味を聞かれ、記述でも帰着の出発点になる。
答案文: 判定装置を仮定すると自分自身の記述で矛盾する対角機械が構成できるため、ATMは判定不可能である。
部分点: 仮定 / Dの定義 / D〈D〉の矛盾 / 結論 の4点が部分点の柱
考察: 数値というより記号 〈D〉 を『自分で自分を入力』に使う場所が採点ポイント。
与え: HALTTM={〈M,w〉| Mは入力wで停止する} が判定可能と仮定する。求めよ: その仮定から ATM 判定器 S を具体的に構成し、矛盾を述べよ。
なぜ今この計算か: 第11回は『スライド参照』ではなく、判定器Rから受理判定器Sを番号付きで書くのが答案。
答案文: HALTTM判定器Rがあれば、停止するときだけMをシミュレートするATM判定器Sが作れてしまいATMの判定不可能性に矛盾する。よってHALTTMも判定不可能である。
部分点: 仮定R / Sの4手順(R呼び出し→拒否なら拒否→受理ならシミュレート→受理/拒否) / 矛盾の一文
考察: 『Mをそのままシミュレート』だけではループしうる。先にRで停止を確認するのが第11回の核心(講義PDF p18–22)。
与え: ETM={〈M〉| L(M)=∅}。求めよ: ATM からの帰着で判定不可能であることを示す答案の骨格。
なぜ今この計算か: Rice に行く前の『個別帰着』練習。空言語判定が解けたら受理判定も解けてしまう。
答案文: ATMをETMへ帰着できるため、ETMは判定不可能である。
部分点: M1の仕様 / 空⇔非受理の対応 / 結論
考察: 対応関係『L(M1)=∅ ⇔ 非受理』を答案に明示すると点が安定する。
与え: 『与えられたTMの言語が正規言語か?』を判定する問題。求めよ: Riceの定理を用いた結論と、非自明性の確認方針。
なぜ今この計算か: 個別帰着を全部書く時間がないときの一般定理。
答案文: 『L(M)が正規か』は非自明な言語性質なので、Riceの定理より判定不可能である。
部分点: 性質の記述 / 非自明の例 / 定理名
考察: 『機械の見た目』ではなく『言語の性質』であることが適用条件。
第13–14回 · 本編
TMの受理は判定できない。ではテープを『入力の長さくらい』に制限したら? 使えるメモが有限なら、取りうる『スナップショット』(計算状況)も有限。だからループを検出でき、受理問題は判定可能になる——それが LBA。
用語が不安なら LBA・計算履歴(任意グループ)を先に。
LBA はテープ長が入力長 n の定数倍に抑えられたTM。状態数 q、テープ記号種 g のとき、長さ n 入力に対する異なる計算状況は高々 \(q\cdot n\cdot g^{O(n)}\) 個(講義の補題5.8の形)。
よって十分長いステップ走らせて停止しなければ状況の繰り返し=ループと判定できる ⇒ ALBA は判定可能。
与え: LBA M と入力 w(|w|=n)。求めよ: M が w を受理するか判定するアルゴリズムの骨格と、停止する根拠。
なぜ今この計算か: TMの受理は判定不可能、LBAは可能な対比が試験で問われやすい。
答案文: LBAの計算状況は入力長に対し有限個しかないので、十分なステップのシミュレーションで受理の可否を判定できる。
部分点: 状況有限 / シミュレーション / ループ⇒非受理
考察: 数 N を暗記するより『有限だから鳩の巣でループが分かる』が答案の核。
与え: TM M と入力 w。求めよ: 『w に対する受理計算履歴』を定義し、M が停止しない場合にそれが存在するか答えよ。
なぜ今この計算か: 第13–14回の帰着は履歴の存在命題への翻訳が多い。
答案文: 受理計算履歴とは開始から受理までの正当な計算状況列であり、停止しない計算には存在しない。
部分点: 列の条件3つ / 非停止⇒非存在
考察: 『履歴=証拠』と覚えると帰着問題で使いやすい。
形式A · 本編
正規言語 ⊂ 文脈自由言語 ⊂ … ⊂ 句構造言語。計算モデルでは FA ⊂ PDA ⊂ TM(認識能力)。
言語 L を認識する FA がある ⇒ L は正規 ⇒ 正規文法が存在し、TM(やプログラム)でも認識できる。
与え: 言語Lを認識する有限オートマトンが存在する。求めよ: 次のうち必ず存在するものをすべて選べ。
a. Lを生成する文脈自由文法 b. Lを生成する正規文法 c. Lを認識するコンピュータのプログラム d. Lを認識するチューリング機械
なぜ今この計算か: 2025期末問1(1)と同型。包含の向きを一回でも手で使う。
答案文: FAが存在する言語は正規なので正規文法・文脈自由文法・TM・プログラムがいずれも存在する。
部分点: 正規の指摘 / 各選択肢の根拠1行
考察: 『複数正解は全部』を見落とすと一気に失点する。
与え: G=(N,T,P,A), N={A,B}, T={a,b}, P={A→aaa, A→ε, B→bb}。求めよ: 正しい記述をすべて選べ。
a. Aは非終端かつ開始記号 b. εは非終端記号 c. Gは正規文法 d. Gは文脈文法
なぜ今この計算か: 2025期末問1(4)。四つ組の読みと規則形を講義の階層定義で切る。
答案文: Aは非終端かつ開始記号である。εは非終端ではない。規則形は正規ではなく、左辺が単一非終端なので文脈(自由)文法である。
部分点: aの根拠 / b否定 / cを規則形で切る / dを左辺条件で取る
考察: 『言語としては正規に見える』でも、与えられた規則の形がType-3かどうかで c を判定する。aaa や bb を一発で書く規則は正規文法の標準形ではない。
与え: 『決定不能問題とは』の選択肢。求めよ: 正しいものを選べ。
a. yes/noで答えられない b. この世に一つしかない c. 何が問題かわからない d. 問題を解く手順が存在しない
なぜ今この計算か: 期末問1(3)。感覚語に引っ張られない。
答案文: 決定不能問題とは、問題を解く手順が存在しない問題である。
部分点: 定義の言い換え一致
考察: 『わからない』ではなく『手順が無い』がキーワード。
形式B · 本編
入力は X の列。出力は |X| mod 3 ∈ {0,1,2} を左端に書き、他セルは ⊔、ヘッドは左端、受理停止。
状態 q0,q1,q2,q3 で右進カウント(q3≃ちょうど3の倍数を読み終えた)、q1L/q2L/q3L で左進掃除。
与え: テープ XXXX(左端から)。求めよ: 最終テープ(左端の記号)と、余りに対応する左進状態。
なぜ今この計算か: 空欄を埋める前に『4≡1 (mod 3) → 左端に1』をトレースで固定する。
答案文: Xが4個のとき 4≡1 (mod 3) なので左端に1を書き受理停止する。
部分点: mod計算 / 対応するL状態 / 最終テープ形
考察: 数値4を見て『1を書く』と即決できるかが部分点の入口。
Γ={0,1,⊔}, Σ={0,1}。入力を1ビット右ローテートし、ヘッドを左端、受理停止。
例: 01011→10101。保持ビットを状態 q0/q1 に載せ、戻りは q2/q3。
与え: 入力 01011。求めよ: 出力列と、『右端で保持1のとき戻る状態』。
なぜ今この計算か: 中間問2の公式例。保持と戻り状態の対応を身体で覚える。
答案文: 01011 を1ビット右ローテートすると 10101 になる。
部分点: 出力例 / 保持と状態の対応
考察: 例の数値 01011→10101 を暗記するより、保持ビットの更新規則を書く。
形式C · 本編
与え: 『コンピュータは自分で考えることはできない』(高岡)。求めよ: 950字以上を想定した段落見出しと、各段落で書く一文メモ。
なぜ今この計算か: 本文をいきなり書くと引用意図が消える。先に骨組み。
答案文: 著者の主張を要約したうえで賛否を明示し、計算モデルと文献を根拠に結論づける。
部分点: 賛否の明示 / 文献の意図 / 字数
考察: 採点者が追うのは『文献のどの文が自分のどの文を支えているか』。見本段落は期末過去問の問3解説にもある(丸写し提出は禁止)。
形式D · 本編
与え: 初期状態S1。遷移は 0/0,1/0(S1)、0/0,1/1(S2)、0/0,1/1(S3)型(期末FE図)。入力 0011001110。求めよ: 出力列。
なぜ今この計算か: 辺ラベル『入力/出力』を1手ずつ確定する練習。
答案文: 入力0011001110に対する出力は0001000110である。
部分点: 途中状態表 / 最終列
考察: 出力の4ビット目が1になる位置(連続1の2つ目)を見ると検算しやすい。
与え: 空スタックに PUSH1→PUSH5→POP→PUSH7→PUSH6→PUSH4→POP→POP→PUSH3。求めよ: 底から頂の並び。
なぜ今この計算か: LIFOを飛ばさず書く。FE図選択肢と照合。
答案文: 最終的に底から1,7,3となる。
部分点: 各POP後の頂 / 最終3つ
考察: 頂が3、その下が7かを図で確認する。
与え: next[0]=1 で A→E→C→G→B。Hは添字8にあり未連結。3番目と4番目の間にHを挿入。求めよ: next[8]。
なぜ今この計算か: ポインタ更新は『新next←旧next、前next←新』。
答案文: 挿入後、next[8] は元の4番目である7を指す。
部分点: 3/4番目の特定 / next[8]の値
考察: 聞かれているのが next[8] であり next[3] ではない点に注意。
2025年度 期末課題 · フル収録
出典: 計算理論_期末課題_2025年度(福井隆雄)。学習用に問題文を収録。答案はAI整理の模範。
以下の(1)~(4)について,a, b, c, d のうち正しい記号を選び解答せよ。正しい記号が複数存在する場合はすべて列挙すること。
(1) 言語 L を認識する有限オートマトンが存在するとき,この言語 L を{a. 生成する文脈自由文法,b. 生成する正規文法,c. 認識するコンピュータのプログラム,d. 認識するチューリング機械}は必ず存在する。
(2) チョムスキーの言語階層において,{a. 句構造言語は正規言語を包含する,b. 文脈自由言語は正規言語を包含する,c. 文脈自由言語には含まれないが句構造言語に含まれる言語が存在する,d. 決定不能問題は句構造言語に含まれる}。
(3) 決定不能問題とは,{a. 「yes」または「no」で答えられない,b. この世に一つしかない,c. 何が問題かわからない,d. 問題を解く手順が存在しない}問題である。
(4) 形式文法 G=(N,T,P,A) について,N={A,B}, T={a,b}, P={A→aaa, A→ε, B→bb} のとき,{a. Aは非終端記号かつ開始記号,b. εは非終端記号,c. Gは正規文法,d. Gは文脈文法}である。
入門カードの 階層・文法・決定不能 を先に読む。(1)は包含の向き、(3)は定義語のひっかけ、(4)はεと規則形(正規か文脈自由か)。
与え: 上記(1)~(4)。求めよ: 各小問の正解記号(複数は列挙)。
なぜ今この計算か: 本番同型。根拠を1行ずつ残す。
答案文: 各小問について包含関係または定義・規則形に照らして正しい記号を列挙する。
部分点: 小問ごと。複数正解の取りこぼしに注意
考察: (4)でεを非終端にする、または『正規に見えそう』でcを入れるのが典型失点。規則の形で切る。
条件を満たすチューリング機械 M=(Q,Γ,Σ,δ,qs,⊔,{qf}) を作成し、状態集合と状態遷移関数を示す問題(空欄①~⑩)。
Q={q0,q1,q2,q3,q1L,q2L,q3L,qf} および
δ(q0,X)=(q1,⊔,①), δ(q1,X)=(q2,X,R), δ(q1,⊔)=(q1L,⊔,L), δ(②,X)=(q3,X,R), δ(q2,⊔)=(q2L,⊔,L), δ(q3,X)=(q1,③,R), δ(q3,⊔)=(④,⊔,L), δ(q1L,X)=(q1L,⊔,⑤), δ(q1L,⊔)=(qf,1,⑥), δ(⑦,X)=(q2L,⊔,L), δ(q2L,⊔)=(qf,⑧,S), δ(q3L,X)=(q3L,⊔,⑨), δ(q3L,⊔)=(⑩,0,S)
状態=いまの余り(mod 3)。右端空白で折り返し、*L で掃除して左端に 0/1/2 を書く。下のトレース表で X=1,2,3 を手で追ってから空欄を埋める。
X=1(余り1 → 左端に 1)
| ステップ | 状態 | テープ(ヘッド下を[]) | 遷移の要点 |
|---|---|---|---|
| 0 | q0 | [X] | 開始 |
| 1 | q1 | ⊔ [] | Xを消し右へ(空欄1はR)。余りカウント開始 |
| 2 | q1L | [⊔] | 空白→折り返し L。余り1系 |
| 3 | qf | [1] | 左端に1を書き停止(⑥=S) |
X=2(余り2 → 左端に 2)
| ステップ | 状態 | テープ | 要点 |
|---|---|---|---|
| 0 | q0 | [X] X | |
| 1 | q1 | ⊔ [X] | 空欄1はR |
| 2 | q2 | ⊔ X [] | q1でX→q2(余り2) |
| 3 | q2L | ⊔ [X] ⊔ | 空白で折り返し |
| … | q2L | [⊔] … | ⑦=q2L でXを消し左へ |
| 終 | qf | [2] | ⑧=2 を書いて停止 |
X=3(余り0 → 左端に 0)
| ステップ | 状態 | 要点 |
|---|---|---|
| 右進 | q0→q1→q2→q3 | Xを3つ数え、③はカウント中 X のまま |
| 空白 | q3→q3L(④) | ちょうど3の倍数で掃除系へ |
| 左進掃除 | q3L | 空欄9はL。Xを⊔に |
| 終 | qf | 空欄10はqf。左端に数字0を書いて停止 |
検算口訣: 個数 mod 3 が書く数字。1→1、2→2、3→0、4→1、…
与え: 上記δの空欄。求めよ: ①~⑩に入る記号。
なぜ今この計算か: 期末記述の本線。上表で X=1,2,3 を追ったあと、空欄を定義から埋める。
答案文: 余りを状態に載せ、空白で折り返して左端に 0/1/2 を書く遷移で空欄を埋める。
部分点: ①④⑧⑩など定義直結 / ②⑦の状態対応 / トレース検算
考察: 答えだけ暗記せず、X=1とX=3で『どの*Lに入るか』が分かれるかを見る。
高岡詠子『チューリングの計算理論入門』の「コンピュータは自分で考えることはできない」という記述について、著者の考えの背景と、自身の賛否(根拠つき)を、必要なら参考文献を示して1000字以内で記述せよ(参考文献リストの字数は含めない)。
ChatGPTを用いても構わないが、利用時の脳活動低下を指摘する研究(arXiv:2506.08872)に留意すること。参考にChatGPT回答例が課題PDFに掲載されている(字数不足・引用意図不明の注意あり)。
作文の本編 の5段構成で骨組みを先に作る。文献は『どの記述が自分のどの文を支えるか』まで書く。下の見本段落は丸写し提出禁止(型だけ借りて自分の言葉で書け)。
高岡は、コンピュータの判断や予測が人間に似て見えても、それは設計された計算過程の産物であり、自発的・意識的な思考ではない、と述べている。私はこの主張におおむね賛成する。チューリング機械は状態遷移の規則を機械的に適用するモデルであり、現在の生成AIも最適化された出力を返す点では同じ型に見える。ただし賛成の根拠を『AIは役に立たない』にすり替えると論点がずれる。Searle(1980)の中国語の部屋が示すのは、記号操作の上手さと意味理解は別だという区別であり、私の賛否はこの区別に接続する(したがって文献は感想の飾りではなく、賛否のどの文を支えるかを明示する)。
※字数・文献の選び方は自分の答案で満たすこと。この段落は構成の見本。
与え: 上記作文課題。求めよ: 採点に耐える段落構成と、各段落の要旨(実際の提出文は自分の言葉で950字以上を目安に書く)。
なぜ今この計算か: 模範全文の丸写しは学習効果が薄い。型を固定する。
答案文: 著者の主張を要約し賛否と根拠を示し、文献の意図が読める形で結論づける。
部分点: 賛否明示 / 根拠の具体 / 引用意図
考察: 課題PDFが指摘する『引用の意図不明』を避けるのが最大の加点ポイント。
課題PDFの図を学習用に転記。画像は assets/ を参照。
問4(Mealy) 入力/出力アルファベット{0,1}。入力 0011001110 の出力は?

問5(スタック) PUSH/POP列の結果のスタック図は?

問6(リスト) 3番目と4番目の間にHを挿入したとき next[8] は?

追加FE(文章だけで追える)



与え: 図のオートマトン(文章化: S1:0/0自己・1/0→S2、S2:0/0→S1・1/1→S3、S3:1/1自己・0/0→S1)と入力0011001110。求めよ: 出力列と選択肢。
なぜ今この計算か: 図が読めなくても遷移を文章で追えるようにする。
答案文: 出力記号列は0001000110である。
部分点: 途中表 / 選択肢
考察: 4ビット目が1になる位置で検算。
与え: PUSH1→PUSH5→POP→PUSH7→PUSH6→PUSH4→POP→POP→PUSH3。求めよ: 最終スタック図の選択肢。
なぜ今この計算か: LIFOの手計算(図なしでも列で追える)。
答案文: 最終状態は底から1,7,3である。
部分点: 最終3要素
考察: 頂が3かで選択肢が分かれる。
与え: next[0]=1 で A→E→C→G→B。Hは添字8。3番目と4番目の間に挿入。求めよ: next[8]。
なぜ今この計算か: ポインタ更新(図の添字を文章化)。
答案文: next[8]の値は7である。
部分点: 3/4番目特定 / 数値7
考察: next[3]の更新と取り違えない。
与え: 到着順A,B,C,D。1スタックだけで出力可能な列を選べ。
なぜ今この計算か: LIFO制約の可否判定(図なし)。
答案文: C,B,D,A は1スタックで出力可能である。
部分点: 可能操作列 / 他選択肢の破綻点
考察: 『後から来たものを先に出す』ことだけが許される。
与え: 再帰呼出しの説明の選択肢。求めよ: 正しいもの。
なぜ今この計算か: 用語定義(トレース不要)。
答案文: 再帰呼出しとは、関数の中で自分自身を用いた処理を行うことである。
部分点: 定義の一致
考察: 計算理論の再帰的定義とも語感は近いが、ここではFEの定義問題。
与え: メモリリークの説明の選択肢。求めよ: 適切なもの。
なぜ今この計算か: 用語定義。イウエは別現象の説明。
答案文: メモリリークとは、確保した主記憶が解放されず利用可能領域が減ることである。
部分点: 定義の一致
考察: 名前のイメージだけで選ばず、選択肢全文を読む。
2025年度 中間課題 · フル収録(期末も同型想定)
中間専用の厚い解説サイト: theory-calculation-h1-past。ここには期末対策用に問題文と答案型を収録。
(1) TMの読み書きヘッドは{a.1ステップで任意セルへ移動可能 b.同時に最大2セルを指す c.初期状態では必ずテープ左端を指す d.受理状態では必ず空テープ記号セルを指す}。
(2) TMは{a.認識機械 b.変換機械 c.FAより認識能力が高い d.PDAより認識能力が高い}。
(3) Q={p0,p1,p2,pf}, Γ={a,b,⊔}, Σ={a,b} で δ(p0,a)=(p1,a,R), δ(p0,⊔)=(p2,⊔,S), δ(p1,a)=(p0,a,R), δ(p1,⊔)=(pf,a,S) のとき、認識する言語は{a. L={ai|i≥1かつiは奇数} b. L={ai|i≥2かつiは偶数} c. L={ai|i≥1} d. L={ai|i≥2}}。
(4) TMのテープは現在のコンピュータの{a.CPU b.ディスプレイ c.メモリ d.キーボード}に相当。
与え: 上記(1)~(4)。求めよ: 正解記号。
なぜ今この計算か: 定義の正確さチェック。期末選択のウォームアップ。
答案文: TMの定義とδトレースに照らして正しい記述を列挙する。
部分点: 小問ごと
考察: (3)は『空白に来たときの状態』が奇偶の判定器になっている。
Γ={0,1,⊔}, Σ={0,1}。長さ1以上の0/1列を1ビット右ローテートし、左端ヘッド・受理停止。例: 01011→10101, 00001→10000, 11011101→11101110。
Q={qs,q0,q1,q2,q3,qf} および次のδの空欄①~⑩を埋めよ(期末問2の①〜⑩とは別問題)。
δ(qs,0)=(q0,⊔,R) δ(qs,①)=(q1,⊔,R) δ(q0,0)=(q0,②,R) δ(q0,1)=(q1,0,R) δ(q0,⊔)=(q2,⊔,③) δ(q1,0)=(④,1,R) δ(q1,1)=(q1,1,⑤) δ(q1,⊔)=(⑥,⊔,L) δ(q2,⑦)=(q2,0,L) δ(q2,1)=(q2,1,⑧) δ(q2,⊔)=(qf,0,S) δ(⑨,0)=(q3,0,L) δ(q3,1)=(q3,1,L) δ(q3,⊔)=(qf,⑩,S)
物語: 先頭ビットを状態に覚え(q0=保持0、q1=保持1)→右へシフト →右端で戻り状態へ(保持0ならq2、保持1ならq3)→左端に書いたら停止。
| 要点 | 何が起きるか |
|---|---|
| qsで先頭0 | ⊔にして q0(保持0)へ右進 |
| シフト中 | 読んだビットを書き、新しいビットを状態に載せ替え |
| 空欄4→q0 | q1(保持1)で0を読んだら1を書き、保持を0へ更新 |
| 空欄6→q3 | q1で右端⊔=はみ出し1を左端へ運ぶ戻り |
| 終了 | 左端に1を書いて qf(空欄10→1) |
与え: 上記右ローテートTMの空欄。求めよ: ①~⑩。
なぜ今この計算か: 保持ビットの更新が空欄の本体。期末mod3と番号が同じでも別δ。
答案文: 保持ビットを状態に載せ、右端ではみ出しを戻り状態で左端へ書く遷移で空欄を埋める。
部分点: 1・2・3・5・7・8の定義直結 / 4・6・9の保持更新 / トレース検算
考察: 期末問2(mod3)の空欄答えと暗記を共有しない。別問題。監査上も答え表記を(1)…形式に分離している。
ペゾルド『チューリングを読む』序文の一節を素材に、(3-1)生成AI出力1000字程度、(3-2)ツールとプロンプト、(3-3)一致/新規/自分だけの視点各200字、(3-4)AI無しで文献引用つき1000字、を作成せよ。
与え: 上記3-1~3-4。求めよ: 提出物チェックリスト。
なぜ今この計算か: 期末作文より手順が多い。抜けを防ぐ。
答案文: 指定の小問を欠けなくそろえる。
部分点: 小問ごと
考察: 3-3(c)が3-4の核になる。
計算理論と関連するFE過去問1~6(図は課題PDF頁4–6 / assets/mid_p*.png)。トレース手順は期末問4と同じ型。

過去問との対応表(途中式のない『covered』は置かない)
| 試験形式ID | 参照 | 判定 | 手数の根拠(このサイト内) |
|---|---|---|---|
| final-2025-q1-mcq | 期末問1 | covered | #past-final-q1 + 解答例(途中根拠つき) |
| final-2025-q2-tm | 期末問2 | covered | #past-final-q2 + X=1,2,3トレース表 + 空欄解答 |
| final-2025-q3-essay | 期末問3 | covered | #past-final-q3 + 骨組み(全文は自筆)+見本段落 |
| final-2025-q4-fe | 期末問4 | covered | 図+文章化トレース(Mealy/stack/list)+追加FE解答 |
| mid-2025-q1-mcq | 中間問1 | covered | #past-mid-q1((3)はδトレースで a) |
| mid-2025-q2-tm | 中間問2 | covered | #past-mid-q2 空欄①〜⑩フル+01011トレース |
| mid-2025-q3-essay | 中間問3 | covered | #past-mid-q3 チェックリスト |
| mid-2025-q4-fe | 中間問4 | covered | 図収録+同一トレース型 |
| lec10-14-undec | 第10–12回 | covered | #core-undec の例題群(HALTTMは手順フル) |
| lec13-14-lba | 第13–14回 | covered | #core-lba の例題群 |
thin/gap は残していない。各行に途中式またはトレース手数がある。
練習編 · 完成例 → ヒント付き → 自力
紙で先に解け。数値は本編の例題と変えてある。
①完成例(worked) → ②フェード(faded) → ③自力(solo) の順。ヒントは開いてよい。自力は答えを隠したまま解く。
与え: XXXX(4個)。求めよ: 左端に書く記号(期末問2と同型)。
なぜ今この計算か: 余りと書く数字の対応を、本編の空欄問題より短い数値で固定する。
答案文: Xが4個のとき左端に書く記号は1である。
部分点: 余り計算 / 対応表
考察: 4と7はどちらも余り1。商を書かない。
与え: XXXXX(5個)。求めよ: 左端に書く記号。完成例の4個・自力の7個とは別数値。
5=1×3+2 → 余りは? 余り2のとき書く数字は?
答え: 2
よくある落とし穴: 5を書いてしまう/余り1の答えと混同
与え: XXXXXXX(7個)。求めよ: 左端に書く記号。完成例・ヒント付きとは別数値。
7=2×3+1 → 余りは?
答え: 1
よくある落とし穴: 7を3で割った商を書いてしまう/5個の答えと混同
与え: 1010。求めよ: 1ビット右ローテート後の列。
なぜ今この計算か: はみ出しビットを左端へ戻す操作を短い列で確認する。
答案文: 1010 を1ビット右ローテートすると 0101 になる。
部分点: はみ出しビット / 最終列
考察: 左ローテート(1100)と取り違えない。
与え: 1101。求めよ: 1ビット右ローテート後の列(完成例1010・本編01011とは別)。
はみ出す右端は1。左端へ回すと?
答え: 1110
よくある落とし穴: 左ローテートや単純右シフト(埋め0)と混同
与え: 本編と同じ遷移図。入力 010。求めよ: 出力3ビット。
なぜ今この計算か: 短い入力で辺ラベルの読み方を固定してから長い列へ。
答案文: 入力010に対する出力は000である。
部分点: 途中状態 / 最終列
考察: 出力の長さ=入力の長さ。
与え: 本編と同じ遷移図。入力 11010(本編0011001110・完成例010とは別)。求めよ: 出力5ビット。
S1-1→S2/0, 1→S3/1, 0→S1/0, 1→S2/0, 0→S1/0
答え: 01000
よくある落とし穴: 出力を状態名と取り違える
与え: 空から PUSH2→PUSH9→POP→PUSH4→PUSH8→POP→PUSH5。求めよ: 底→頂(本編の1,7,3とは別)。
各POPで何が消えるかを書く
答え: 底2, 中4, 頂5
よくある落とし穴: 頂と底を逆に読む
与え: 『正規言語は文脈自由言語を包含する』は真か偽か。
なぜ今この計算か: 円の大小を一回でも言語化してから、ヒント付きの別文へ。
答案文: 正規言語は文脈自由言語に含まれるため、当該命題は偽である。
部分点: 包含の向き
考察: 『小さい円が大きいに含まれる』を矢印で書く。
与え: 『文脈自由言語は句構造言語を包含する』は真か偽か。完成例とは別サーフェス。
円の大小を思い出す
答え: 偽(逆。句構造が文脈自由を包含)
よくある落とし穴: 包含の矢印を逆に書く
与え: HがATM判定器と仮定。求めよ: D〈M〉の動作を2文で述べよ(本編の長文証明とは別表現)。
H〈M,〈M〉〉の結果を反転
答え: Hが受理なら拒否、拒否なら受理。D〈D〉で矛盾。
よくある落とし穴: HALTTMの話と混線
初出の本体は入門カード。ここは検索用の短縮表。
| 用語 | 定義 | 試験接点 |
|---|---|---|
| チューリング機械 (TM) | テープ+ヘッド+状態で計算する最も強い計算モデル | 期末問2の機械 |
| 有限オートマトン (FA) | 有限状態だけで入力を読む機械。正規言語を認識 | 階層の最下段 |
| プッシュダウンオートマトン (PDA) | スタック付き。文脈自由言語を認識 | 括弧対応など |
| 正規言語 | 正規文法/FA で扱える言語のクラス | チョムスキー階層 |
| 文脈自由言語 (CFL) | CFG/PDA で扱える言語のクラス | 終端・非終端の書き換え |
| 句構造言語 | 最も一般的な文法で生成できる言語(TM認識可能言語と対応) | 階層の最上段 |
| チョムスキー階層 | 正規⊂文脈自由⊂文脈依存⊂句構造 の包含関係 | 期末問1(2) |
| 判定可能 | 必ず停止して yes/no を返すアルゴリズム(判定装置)が存在する | ATM は判定不可能 |
| Turing認識可能 | 受理するときは必ず停止受理。拒否側はループしうる | ATM は認識可能 |
| 補Turing認識可能 | 補集合が Turing 認識可能 | 両方なら判定可能 |
| 決定不能問題 | それを解く(常に停止する)手順が存在しない問題 | 期末問1(3) |
| 停止問題 / HALTTM | TM が入力で停止するか判定する問題。判定不可能 | 第11回 |
| 受理問題 ATM | 〈M,w〉で M が w を受理するか。判定不可能の代表例 | 第10回 |
| 帰着 (reduction) | 問題Aを解くために問題Bの判定器を使う変換 | 判定不可能性の証明道具 |
| Riceの定理 | TM言語の非自明な性質は判定不可能 | 第12回 |
| 対角線論法 | 可算と仮定して表の対角と違う要素を作り矛盾 | 実数の非可算 |
| 可算 / 非可算 | 自然数と1対1対応できる/できない | 言語の個数 vs TMの個数 |
| 計算履歴 | 計算状況の列。受理計算履歴は受理で終わる正当な列 | LBA・帰着 |
| 線形境界付きオートマトン (LBA) | テープ長が入力長の定数倍に制限されたTM | ALBAは判定可能 |
| 形式文法 G=(N,T,P,S) | 非終端・終端・生成規則・開始記号の四つ組 | 期末問1(4) |
| 非終端記号 | さらに書き換えられる記号(変数) | N の要素 |
| 終端記号 | これ以上書き換えない記号(アルファベット) | T の要素 |
| ε(空列) | 長さ0の文字列。終端でも非終端でもない特別な列 | A→ε は消える規則 |
| 状態遷移関数 δ | δ(q,a)=(p,b,D)。読む・書く・動く・状態更新 | TMの核心 |
| 空テープ記号 ⊔ | テープの「何も書かれていない」記号 | 入力の外側 |
| 受理状態 | 計算が成功して止まる状態の集合 | qf など |
| 正規文法 | Type-3。右辺は終端1つ+非終端0/1(A→aB / A→a)。A→aaaは形として正規でない | 期末問1(4)のc |
| 文脈自由文法 (CFG) | 左辺が単一非終端の文法 | A→文字列。期末の『文脈文法』選択肢 |
| 文脈文法(期末選択肢) | 左辺が非終端1つの文法(文脈自由の形)を指す語として扱う | 期末問1(4)のd |
| 特性列 | 言語の所属を0/1無限列で表したもの | 言語集合の非可算証明 |
| 基本情報 FE | 計算モデルと関連する選択問題が出る外部過去問枠 | 期末問4 |
確認クイズ · 18問
直前編 · 1枚まとめ(初見は学ぶ側へ)
| 形式 | 一言 | 弱点リンク |
|---|---|---|
| 選択 | 包含の向き・εは非終端でない・決定不能=手順無し・問1(4)は a,d | 選択の本編 / 用語 |
| TM | 状態=余りor保持。折り返しで掃除して書く。X=1,2,3で検算 | 期末問2 |
| 作文 | 主張→賛否→根拠→文献意図→結論 | 作文の本編 |
| FE | 1手ずつ表。飛ばさない | FEの本編 |
| 理論 | ATM判定不可能/HALTTMはR→Sの4手順/Rice/ALBAは可能 | 判定不能 |
この端末に保存(localStorage)