STUDY GUIDE · 計算理論

期末試験対策 · 第10–14回本線

計算理論
期末 教科書ノート

入門で用語を固めてから本編。過去問は問題文フル+答案型。中間専用サイトとはURL分離。

出題範囲 · 入門 · 期末過去問

出題範囲・試験地図

範囲の扱い
第10–14回本線。可算/対角、ATM、帰着、Rice、LBA、計算履歴、階層・文法
第2–9回入門用語の土台のみ(FA/PDA/TM/δ)。中間専用の厚い本編は別URL
過去問2025中間・2025期末を全文収録(学習用。個人情報なし)
出題形式想定選択(複数可)/TM空欄/作文/基本情報トレース
冊の道順
  1. 入門(用語カード) — 必須グループを音読してから本編へ
  2. 試験ハブ → 形式定義 → 例題(途中式つき)
  3. 期末過去問中間過去問
  4. 練習確認クイズ直前

今日のモード

0

ゼロ起点 — 期末で使う言葉を、納得できるまで

使い方

必須を先に読む → 試験ハブへ。任意は時間があるとき開く。一気スクロールしなくてよい。

各カードは「なぜ必要か → 噛み砕き → 図/例 → 誤解 → 試験の答え方」の順。一文定義だけで飛ばさない。

第10–14回が本線。第2–8回の FA/TM/文法は用語の土台。中間の厚いTMノートは theory-calculation-h1(過去問特化は past)。

ショートカット: 必須用語 · 任意用語 · 試験ハブ(本編へ) · 期末過去問

必須用語(20) — 期末の選択・TM・作文・FEの土台。開いた中身まで読む。

チューリング機械(ちゅーりんぐきかい)とは、

無限テープと読み書きヘッドと有限状態で、計算の手順を機械的に実行するモデル。

別名: 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-0)≈ TM認識可能 文脈依存(Type-1)≈ LBA 文脈自由(Type-2)≈ PDA 正規(Type-3)≈ FA

内側の言語は外側にも含まれる。外側にしかない言語もある(=真の包含)。

正規 文脈自由 文脈依存 句構造
規則の形(講義イメージ)対応機械具体言語の例
Type-3 正規右辺は終端高々1つ+非終端0/1個
(例: A→aB, A→a, A→ε)
FAa*, 偶数個の0
Type-2 文脈自由左辺が非終端ちょうど1つ
(例: A→aAb, S→(S)|ε)
PDA{aⁿbⁿ | n≥0}(正規ではない)
Type-1 文脈依存文脈付き・長さ非減少など(講義の定義に従う)LBA{aⁿbⁿcⁿ | n≥0}(文脈自由ではない)
Type-0 句構造制限ほぼなし(左右とも任意の文字列)TMRE言語全般。ATMに対応する言語など
具体例
  • 正規に入る: { w ∈ {0,1}* | w は0で終わる } — FAで終端状態を見ればよい。
  • 正規に入らないが文脈自由: { aⁿbⁿ | n≥0 } — 「aの個数=bの個数」を数えるにはスタックが要る。
  • 文脈自由に入らない例(外側): { aⁿbⁿcⁿ | n≥0 } — 3つを同時に合わせる必要があり、古典的な反例。
  • 包含の使い方(期末問1(2)): 「句構造は正規を包含する」「文脈自由は正規を包含する」「文脈自由に入らず句構造に入る言語がある」はいずれも正しい。
よくある誤解
  • 「決定不能問題 ⊂ 句構造言語」のように、問題言語クラスを混ぜる(期末問1(2)d のひっかけ)。
  • 「文脈自由」と「文脈依存」の字面だけ見て逆にする。
  • A→aaa のような規則を『終端だけだから正規』と誤判定(Type-3は終端が高々1つ)。
  • 入れ子円を『外側ほど弱い』と読む(逆。外側ほど広い=より多くの言語を含む)。

試験での答え方(完成文): 「チョムスキー階層では正規言語⊂文脈自由言語⊂文脈依存言語⊂句構造言語である。文脈自由に入らないが句構造には入る言語が存在し、決定不能問題を『句構造言語に含まれる』とカテゴリ混同して答えてはいけない。」

形式文法(けいしきぶんぽう)とは、

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 は形として正規文法ではない。」

文脈自由文法 CFG(ぶんみゃくじゆうぶんぽう)とは、

左辺が単一の非終端だけの文法。文脈自由言語を生成する。

別名: 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(じゅりもんだい)とは、

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(ていしもんだい)とは、

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も判定不可能である。」

Riceの定理(らいすのていり)とは、

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手ずつ表に書き、最終状態と選択肢記号を答える。」

個数の剰余を書くTM(こすうのじょうよをかくTM)とは、

入力記号の個数を 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)(めーりーきかい)とは、

遷移するときに入力だけでなく出力記号も出すオートマトン。辺ラベルは入力/出力。

別名: 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。」

必須が終わったら → 試験ハブ(本編へ)

任意用語(10) — 補強・周辺。時間があるとき開く(中身は必須と同じ密度)。

有限オートマトン(ゆうげんおーとまとん)とは、

有限個の状態だけで入力を左から読む機械。正規言語を認識する。

別名: 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感覚。

試験での答え方(完成文): 「プッシュダウンオートマトンはスタック付きのオートマトンであり、文脈自由言語を認識する。」

Turing認識可能(ちゅーりんぐにんしきかのう)とは、

受理すべき入力では必ず停止受理するTMがあること。拒否側はループしてよい。

別名: RE / Turing-recognizable / 半判定可能。

なぜ出るか: ATMは認識可能だが判定不可能。補認識可能とのセットが第11回。

[前] 受理なら止まる
  -->
[後] 非受理は拒否停止でもループでもよい

仕組み(言葉): 『見つかったら受理』型。見つからないことを証明して停止する義務はない。

よくある誤解

認識可能=判定可能、と潰さない。差は非受理時の停止義務。

試験での答え方(完成文): 「Turing認識可能とは、受理すべき入力では必ず停止して受理するTMが存在することである(非受理側の停止は要求しない)。」

補Turing認識可能(ほちゅーりんぐにんしきかのう)とは、

補集合が 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を構成。

試験での答え方(完成文): 「対応を仮定し、対角成分をずらした要素を構成すると対応に現れないため矛盾する。」

線形境界付きオートマトン LBA(せんけいきょうかいつきおーとまとん)とは、

テープ使用量が入力長の定数倍までに制限された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(くうげんごもんだい)とは、

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の空性を調べると受理判定ができてしまう)。」

ビットローテートTM(びっとろーてーとTM)とは、

列を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とは別)。」

試験項目ハブ

用語が不安なら先に 入門・必須。準備できたら上のリンクで本編へ。

目次

  1. 出題範囲
  2. 入門(用語)
  3. 試験ハブ
  4. 本編 判定不能
  5. 本編 LBA
  6. 本編 選択
  7. 本編 TM
  8. 期末過去問
  9. 中間過去問
  10. 練習
  11. 確認クイズ
  12. 直前
10

可算・対角・ATM・帰着・Rice

記号に入る前に

ここから記号が並ぶが、物語は3行で足りる。

  1. 並べられるもの(可算)と並べ切れないもの(非可算)がある。
  2. TMの記述は文字列にできるので『並べられる』。全言語は並べ切れない → 認識できない言語がある。
  3. その代表が ATM。他の判定不能は『ATMが解けてしまう』帰着で示す。

不安なら先に入門の 可算・対角・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\) の構成方針)。

なぜ今この計算か: 非可算を示さないと『認識不能言語の存在』へ進めない。試験では構成手順を書く。

求めるもの: 仮定した対応に載らない実数 \(x\) を構成し、対応が存在しないことを示すこと
使う式 / 使う定義: 背理法 + 小数展開の対角ずらし(桁に0と9を使わない)
  1. 対応 \(f:\mathbb{N}\to\mathbb{R}\) が全単射だと仮定する。
  2. \(x\in(0,1)\) を小数で作る。第 \(n\) 桁は \(f(n)\) の小数第 \(n\) 桁と異なる値にする(0,9以外)。
  3. 任意の \(n\) で \(x\neq f(n)\)(第 \(n\) 桁が違う)。よって \(x\) は対応に現れない。
  4. 全射であることに矛盾。ゆえに \(\mathbb{R}\) は非可算。
対角ずらしで作った \(x\) が対応漏れ → \(\mathbb{R}\) は非可算

答案文: 仮定した対応の対角をずらした実数を構成すると、どの自然数とも対にならないため矛盾する。よって実数全体は非可算である。

部分点: 仮定の明示 / 対角桁のずらし方 / 0と9を避ける注意 / 矛盾の結論 で配点されやすい

考察: 数値のどこを見るか: 『第n桁だけ』を変えれば、その行の実数全体と不一致になる点が本質。

形式定義 — ATM と判定不可能性

記号に入る前に

日常語: 『プログラム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 が判定不可能であることの骨格

与え: ATM に対する判定装置 H が存在すると仮定する。求めよ: 矛盾を導く対角機械 D の動作と、結論。

なぜ今この計算か: 期末の選択でも『決定不能』の意味を聞かれ、記述でも帰着の出発点になる。

求めるもの: H の存在仮定から矛盾を導き、ATM が判定不可能であると示すこと
使う式 / 使う定義: 対角機械 D〈M〉: H〈M,〈M〉〉が受理なら拒否、拒否なら受理
  1. H は任意の 〈M,w〉 に対し停止して受理/拒否を返すと仮定。
  2. D を構成: 入力 〈M〉 に対し H〈M,〈M〉〉 を実行し、受理なら拒否、拒否なら受理。
  3. D〈D〉 を考える。H〈D,〈D〉〉 が受理 ⇔ D が 〈D〉 を受理、だが D の定義よりこのとき拒否する → 矛盾。
  4. 拒否側も同様に矛盾。ゆえに H は存在しない。ATM は判定不可能。
ATM は判定不可能(対角機械による矛盾)

答案文: 判定装置を仮定すると自分自身の記述で矛盾する対角機械が構成できるため、ATMは判定不可能である。

部分点: 仮定 / Dの定義 / D〈D〉の矛盾 / 結論 の4点が部分点の柱

考察: 数値というより記号 〈D〉 を『自分で自分を入力』に使う場所が採点ポイント。

例題【問】ATM から HALTTM への帰着(第11回どおり)

与え: HALTTM={〈M,w〉| Mは入力wで停止する} が判定可能と仮定する。求めよ: その仮定から ATM 判定器 S を具体的に構成し、矛盾を述べよ。

なぜ今この計算か: 第11回は『スライド参照』ではなく、判定器Rから受理判定器Sを番号付きで書くのが答案。

求めるもの: HALTTM 判定器 R を部品にして ATM を判定する TM S の手順を書き、Rの不存在を結論すること
使う式 / 使う定義: 帰着の向き: ATM ≤ HALTTM(ATMを解くためにHALTTM判定器を使う)。背理法。
  1. 背理法: HALTTM を判定する TM R が存在すると仮定する。
  2. ATM を判定する TM S を次のように構成する。入力は 〈M,w〉(MはTM、wは文字列)。
  3. S の手順1: 同じ入力 〈M,w〉 に対して R を動かす(『Mはwで停止するか』を聞く)。
  4. S の手順2: R が拒否する(=Mはwで停止しない)ならば、S も拒否する。このとき 〈M,w〉∉ATM なので正しい。
  5. S の手順3: R が受理する(=Mはwで必ず停止する)ならば、ループの心配なしに入力 w 上で M をシミュレートする。
  6. S の手順4: シミュレーションの結果、M が受理すれば S も受理し、M が拒否すれば S も拒否する。
  7. R が HALTTM を正しく判定するなら、上記の S は常に停止して ATM を判定する。しかし ATM は判定不可能なので矛盾。
  8. ゆえに仮定は誤りで、HALTTM を判定する R は存在しない。HALTTM は判定不可能。
HALTTM は判定不可能(ATM を HALTTM に帰着:S が R を呼んでから必要なら M をシミュレート)

答案文: HALTTM判定器Rがあれば、停止するときだけMをシミュレートするATM判定器Sが作れてしまいATMの判定不可能性に矛盾する。よってHALTTMも判定不可能である。

部分点: 仮定R / Sの4手順(R呼び出し→拒否なら拒否→受理ならシミュレート→受理/拒否) / 矛盾の一文

考察: 『Mをそのままシミュレート』だけではループしうる。先にRで停止を確認するのが第11回の核心(講義PDF p18–22)。

例題【問】ETM の判定不可能性(骨格)

与え: ETM={〈M〉| L(M)=∅}。求めよ: ATM からの帰着で判定不可能であることを示す答案の骨格。

なぜ今この計算か: Rice に行く前の『個別帰着』練習。空言語判定が解けたら受理判定も解けてしまう。

求めるもの: ETM 判定器があると ATM が解けて矛盾することを示す
使う式 / 使う定義: 〈M,w〉 ↦ 〈M1〉(M1 は w 以外を拒否し、w では M をシミュレート、など)
  1. ETM 判定器 R を仮定。
  2. 〈M,w〉 から M1 を作る: 『入力 x が w と異なるなら拒否。等しいなら M(w) をシミュレート』。
  3. すると L(M1)=∅ ⇔ M が w を受理しない。
  4. R〈M1〉 の答で ATM が判定できる → 矛盾。ETM は判定不可能。
ETM は判定不可能

答案文: ATMをETMへ帰着できるため、ETMは判定不可能である。

部分点: M1の仕様 / 空⇔非受理の対応 / 結論

考察: 対応関係『L(M1)=∅ ⇔ 非受理』を答案に明示すると点が安定する。

例題【問】Rice の定理の使い方

与え: 『与えられたTMの言語が正規言語か?』を判定する問題。求めよ: Riceの定理を用いた結論と、非自明性の確認方針。

なぜ今この計算か: 個別帰着を全部書く時間がないときの一般定理。

求めるもの: 当該性質が非自明な言語性質であることを確認し、判定不可能と結論すること
使う式 / 使う定義: Rice: TM言語の非自明な性質は判定不可能
  1. 性質P: 『L(M) は正規』。これは言語の性質(同じ言語なら同じ真偽)。
  2. 非自明: 正規言語を認識するTMも、非正規を認識するTMもある。
  3. よって Rice より P は判定不可能。
  4. (必要なら)正規の例 Σ*、非正規の例 {0^n1^n} を一文添える。
判定不可能(Rice)

答案文: 『L(M)が正規か』は非自明な言語性質なので、Riceの定理より判定不可能である。

部分点: 性質の記述 / 非自明の例 / 定理名

考察: 『機械の見た目』ではなく『言語の性質』であることが適用条件。

13

計算履歴と LBA

記号に入る前に

TMの受理は判定できない。ではテープを『入力の長さくらい』に制限したら? 使えるメモが有限なら、取りうる『スナップショット』(計算状況)も有限。だからループを検出でき、受理問題は判定可能になる——それが LBA。

用語が不安なら LBA・計算履歴(任意グループ)を先に。

形式定義 — LBA と状況数

LBA はテープ長が入力長 n の定数倍に抑えられたTM。状態数 q、テープ記号種 g のとき、長さ n 入力に対する異なる計算状況は高々 \(q\cdot n\cdot g^{O(n)}\) 個(講義の補題5.8の形)。

よって十分長いステップ走らせて停止しなければ状況の繰り返し=ループと判定できる ⇒ ALBA は判定可能

例題【問】A_LBA が判定可能な理由

与え: LBA M と入力 w(|w|=n)。求めよ: M が w を受理するか判定するアルゴリズムの骨格と、停止する根拠。

なぜ今この計算か: TMの受理は判定不可能、LBAは可能な対比が試験で問われやすい。

求めるもの: 受理/拒否/ループを有限時間で区別する手順を書くこと
使う式 / 使う定義: 補題: 異なる計算状況は有限個(≤ q·n·g^{cn})
  1. 状況数の上界 N を補題から取る。
  2. M を w 上で最大 N ステップまでシミュレートする。
  3. その前に受理停止 → 受理。拒否停止 → 拒否。
  4. N ステップ超えても停止しない → 状況繰り返しが不可避 → ループとみなし拒否(非受理)。
A_LBA は判定可能(有限状況+ループ検出)

答案文: LBAの計算状況は入力長に対し有限個しかないので、十分なステップのシミュレーションで受理の可否を判定できる。

部分点: 状況有限 / シミュレーション / ループ⇒非受理

考察: 数 N を暗記するより『有限だから鳩の巣でループが分かる』が答案の核。

例題【問】受理計算履歴の定義確認

与え: TM M と入力 w。求めよ: 『w に対する受理計算履歴』を定義し、M が停止しない場合にそれが存在するか答えよ。

なぜ今この計算か: 第13–14回の帰着は履歴の存在命題への翻訳が多い。

求めるもの: 定義を正確に書き、非停止時の存在について述べること
使う式 / 使う定義: 計算状況の列 C0,C1,…,Ck(開始→各ステップ正当→受理)
  1. C0 は初期状況(開始状態・ヘッド位置・テープ内容)。
  2. 各 Ci から Ci+1 は遷移関数に従う正当な1ステップ。
  3. Ck は受理状況。
  4. M が w で停止しないなら受理/拒否履歴は存在しない。
受理計算履歴は有限の正当列。非停止なら存在しない

答案文: 受理計算履歴とは開始から受理までの正当な計算状況列であり、停止しない計算には存在しない。

部分点: 列の条件3つ / 非停止⇒非存在

考察: 『履歴=証拠』と覚えると帰着問題で使いやすい。

選択問題の型(階層・文法・決定不能)

形式定義 — 包含と『必ず存在する』

正規言語 ⊂ 文脈自由言語 ⊂ … ⊂ 句構造言語。計算モデルでは FA ⊂ PDA ⊂ TM(認識能力)。

言語 L を認識する FA がある ⇒ L は正規 ⇒ 正規文法が存在し、TM(やプログラム)でも認識できる。

例題【問】期末型選択(階層)

与え: 言語Lを認識する有限オートマトンが存在する。求めよ: 次のうち必ず存在するものをすべて選べ。
a. Lを生成する文脈自由文法 b. Lを生成する正規文法 c. Lを認識するコンピュータのプログラム d. Lを認識するチューリング機械

なぜ今この計算か: 2025期末問1(1)と同型。包含の向きを一回でも手で使う。

求めるもの: 必ず存在するものの記号をすべて列挙すること
使う式 / 使う定義: FAあり ⇒ 正規 ⇒ 正規文法あり、かつ TM/プログラムでも認識可能。CFGも(正規⊂CFL)存在しうるが『文脈自由文法』は正規を含むので a も正しい
  1. FAがある ⇒ L は正規言語。
  2. 正規言語 ⇒ 正規文法が存在する → b。
  3. 正規 ⊂ 文脈自由 ⇒ 文脈自由文法も存在する → a。
  4. TMはFAをシミュレート可能 → d。プログラムも同様 → c。
  5. よって a,b,c,d すべて。
a, b, c, d

答案文: FAが存在する言語は正規なので正規文法・文脈自由文法・TM・プログラムがいずれも存在する。

部分点: 正規の指摘 / 各選択肢の根拠1行

考察: 『複数正解は全部』を見落とすと一気に失点する。

例題【問】文法記号の所属(期末問1(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は文脈文法

なぜ今この計算か: 2025期末問1(4)。四つ組の読みと規則形を講義の階層定義で切る。

求めるもの: 正しい選択肢の列挙(複数可)
使う式 / 使う定義: 講義の階層: 正規文法<文脈自由文法<文脈依存文法<句構造文法。Type-3(正規)は A→aB または A→a(終端は高々1つ)+必要なら開始→ε。Type-2(文脈自由)は左辺が非終端1つ。
  1. 四つ組の第4成分が開始記号。A∈N={A,B} かつ開始記号 → a は正しい。
  2. ε は空列。NにもTにも入らない → b は誤り。
  3. 正規(Type-3): 右辺は『終端1つ+非終端0/1個』。A→aaa は終端が3つ、B→bb は終端が2つなので Type-3 の形ではない → c は誤り。
  4. 一方、どの規則も左辺が非終端1つ(AまたはB)なので文脈自由(Type-2)の形。選択肢の『文脈文法』は講義階層の文脈自由側(左辺単一非終端)として正しい → d は正しい。
  5. よって正解は a, d。
a, d

答案文: Aは非終端かつ開始記号である。εは非終端ではない。規則形は正規ではなく、左辺が単一非終端なので文脈(自由)文法である。

部分点: aの根拠 / b否定 / cを規則形で切る / dを左辺条件で取る

考察: 『言語としては正規に見える』でも、与えられた規則の形がType-3かどうかで c を判定する。aaa や bb を一発で書く規則は正規文法の標準形ではない。

例題【問】決定不能の定義

与え: 『決定不能問題とは』の選択肢。求めよ: 正しいものを選べ。
a. yes/noで答えられない b. この世に一つしかない c. 何が問題かわからない d. 問題を解く手順が存在しない

なぜ今この計算か: 期末問1(3)。感覚語に引っ張られない。

求めるもの: 正しい定義の記号
使う式 / 使う定義: 決定不能 = 解くアルゴリズム(常停止手順)が存在しない
  1. a は『主観で答えられない』に読め誤解。決定問題は yes/no 問題だが不能とは別。
  2. b,c は定義でない。
  3. d が定義に一致。
d

答案文: 決定不能問題とは、問題を解く手順が存在しない問題である。

部分点: 定義の言い換え一致

考察: 『わからない』ではなく『手順が無い』がキーワード。

TM

TM空欄 — mod3 とローテート

形式定義 — 余りを状態に載せる

入力は X の列。出力は |X| mod 3 ∈ {0,1,2} を左端に書き、他セルは ⊔、ヘッドは左端、受理停止。

状態 q0,q1,q2,q3 で右進カウント(q3≃ちょうど3の倍数を読み終えた)、q1L/q2L/q3L で左進掃除。

例題【問】Xが4個のときのトレース

与え: テープ XXXX(左端から)。求めよ: 最終テープ(左端の記号)と、余りに対応する左進状態。

なぜ今この計算か: 空欄を埋める前に『4≡1 (mod 3) → 左端に1』をトレースで固定する。

求めるもの: 最終左端記号と使用する *L 状態
使う式 / 使う定義: 個数 mod 3 → {0,1,2}。4=3+1 → 1、状態 q1L 系
  1. 右進で X を数え、空白に当たったときの余り状態を見る(4個目の後は余り1)。
  2. 余り1なら q1L で左へ戻り、途中の X を ⊔ に消す。
  3. 左端の ⊔ で 1 を書いて qf,S。
  4. 検算: 3個なら0、5個なら2。
左端 1(q1L 系)。他は ⊔

答案文: Xが4個のとき 4≡1 (mod 3) なので左端に1を書き受理停止する。

部分点: mod計算 / 対応するL状態 / 最終テープ形

考察: 数値4を見て『1を書く』と即決できるかが部分点の入口。

形式定義 — 右ローテート

Γ={0,1,⊔}, Σ={0,1}。入力を1ビット右ローテートし、ヘッドを左端、受理停止。

例: 01011→10101。保持ビットを状態 q0/q1 に載せ、戻りは q2/q3。

例題【問】01011 のローテートトレース要点

与え: 入力 01011。求めよ: 出力列と、『右端で保持1のとき戻る状態』。

なぜ今この計算か: 中間問2の公式例。保持と戻り状態の対応を身体で覚える。

求めるもの: 出力と戻り状態
使う式 / 使う定義: 右シフト+はみ出しを左端へ
  1. 先頭ビットを状態に保持しつつ右へコピーシフト。
  2. 右端 ⊔ で折り返し。保持が1なら q3 系で戻る。
  3. 左端 ⊔ に保持ビットを書いて受理。
  4. 出力は 10101。
10101(戻りは保持1なら q3 系)

答案文: 01011 を1ビット右ローテートすると 10101 になる。

部分点: 出力例 / 保持と状態の対応

考察: 例の数値 01011→10101 を暗記するより、保持ビットの更新規則を書く。

作文の型

形式 — 採点される段落構成

  1. 著者の主張を自分の言葉で1–2文
  2. 賛否を明示
  3. 根拠(計算モデル/AI/経験のどれか)を具体的に
  4. 文献は『どの記述とどうつながるか』まで書く
  5. 字数目安(期末は1000字以内など)を守る

例題【問】賛否アウトラインを作れ

与え: 『コンピュータは自分で考えることはできない』(高岡)。求めよ: 950字以上を想定した段落見出しと、各段落で書く一文メモ。

なぜ今この計算か: 本文をいきなり書くと引用意図が消える。先に骨組み。

求めるもの: 5段落構成の見出し+各1文
使う式 / 使う定義: 主張要約 → 賛否 → 根拠2つ → 文献接続 → 結論
  1. 段落1 主張: 判断に見えても規則に従う処理にすぎない、と要約。
  2. 段落2 賛否: おおむね賛成、と宣言。
  3. 段落3 根拠A: TMは遷移の機械的適用である点。
  4. 段落4 根拠B: 中国語の部屋など『操作≠理解』(文献接続を明記)。
  5. 段落5 結論: 予測はできても主体的思考ではない、と締める。
5段アウトライン(主張/賛否/根拠A/根拠B+文献/結論)

答案文: 著者の主張を要約したうえで賛否を明示し、計算モデルと文献を根拠に結論づける。

部分点: 賛否の明示 / 文献の意図 / 字数

考察: 採点者が追うのは『文献のどの文が自分のどの文を支えているか』。見本段落は期末過去問の問3解説にもある(丸写し提出は禁止)。

FE

基本情報トレースの型

例題【問】Mealy 出力トレース

与え: 初期状態S1。遷移は 0/0,1/0(S1)、0/0,1/1(S2)、0/0,1/1(S3)型(期末FE図)。入力 0011001110。求めよ: 出力列。

なぜ今この計算か: 辺ラベル『入力/出力』を1手ずつ確定する練習。

求めるもの: 出力10ビット
使う式 / 使う定義: 各入力で遷移し、ラベルの出力を並べる
  1. S1で0→出力0のままS1。同様にもう一度0→0。
  2. 1→S2/出力0。次の1→S3/出力1。
  3. 0→S1/0。0→S1/0。
  4. 1→S2/0。1→S3/1。1→S3/1。0→S1/0。
  5. 出力列 0001000110。
0001000110(選択肢ア)

答案文: 入力0011001110に対する出力は0001000110である。

部分点: 途中状態表 / 最終列

考察: 出力の4ビット目が1になる位置(連続1の2つ目)を見ると検算しやすい。

例題【問】スタック操作後の状態

与え: 空スタックに PUSH1→PUSH5→POP→PUSH7→PUSH6→PUSH4→POP→POP→PUSH3。求めよ: 底から頂の並び。

なぜ今この計算か: LIFOを飛ばさず書く。FE図選択肢と照合。

求めるもの: 最終スタック(底→頂)
使う式 / 使う定義: PUSHは頂に積む、POPは頂を除く
  1. [] →[1]→[1,5]→[1]→[1,7]→[1,7,6]→[1,7,6,4]
  2. POP→[1,7,6] / POP→[1,7] / PUSH3→[1,7,3]
  3. 底が1、中が7、頂が3。
底1・中7・頂3(選択肢ウ)

答案文: 最終的に底から1,7,3となる。

部分点: 各POP後の頂 / 最終3つ

考察: 頂が3、その下が7かを図で確認する。

例題【問】リスト挿入後の next[8]

与え: next[0]=1 で A→E→C→G→B。Hは添字8にあり未連結。3番目と4番目の間にHを挿入。求めよ: next[8]。

なぜ今この計算か: ポインタ更新は『新next←旧next、前next←新』。

求めるもの: next[8] の値
使う式 / 使う定義: 3番目=C(index3) の次は7(G)。挿入後 3→8→7
  1. リストを辿り3番目が index3(C)、4番目が index7(G)と確認。
  2. Hは index8。挿入後は C の次が8、8の次が旧4番目7。
  3. よって next[8]=7。
7(選択肢ウ)

答案文: 挿入後、next[8] は元の4番目である7を指す。

部分点: 3/4番目の特定 / next[8]の値

考察: 聞かれているのが next[8] であり next[3] ではない点に注意。

過去問:期末(2025)

出典: 計算理論_期末課題_2025年度(福井隆雄)。学習用に問題文を収録。答案はAI整理の模範。

期末 問1 — 選択(複数可)

問題文(学習用収録)

以下の(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】選択

与え: 上記(1)~(4)。求めよ: 各小問の正解記号(複数は列挙)。

なぜ今この計算か: 本番同型。根拠を1行ずつ残す。

求めるもの: (1)〜(4)の正解セット
使う式 / 使う定義: 正規⊂CFL⊂…⊂句構造、FA⇒正規、決定不能=手順無し。正規文法=Type-3(終端高々1つ)、文脈自由=左辺が非終端1つ
  1. (1) FAあり⇒正規⇒正規文法・CFG・TM・プログラムすべて存在 → a,b,c,d
  2. (2) a,b,c が階層として正しい。d(決定不能問題∈句構造言語)はカテゴリ混同で不適切 → a,b,c
  3. (3) 定義は d(問題を解く手順が存在しない)
  4. (4) a 正しい(A∈Nかつ開始記号)。b 誤り(εは空列)。c 誤り(A→aaa, B→bb は Type-3 の『終端1つ』形ではない)。d 正しい(左辺が単一非終端=文脈自由の形。選択肢『文脈文法』) → a,d
(1)a,b,c,d (2)a,b,c (3)d (4)a,d

答案文: 各小問について包含関係または定義・規則形に照らして正しい記号を列挙する。

部分点: 小問ごと。複数正解の取りこぼしに注意

考察: (4)でεを非終端にする、または『正規に見えそう』でcを入れるのが典型失点。規則の形で切る。

期末 問2 — TM(Xの個数 mod 3)

問題文(学習用収録)

条件を満たすチューリング機械 M=(Q,Γ,Σ,δ,qs,⊔,{qf}) を作成し、状態集合と状態遷移関数を示す問題(空欄①~⑩)。

  • Γ={0,1,2,X,⊔}, Σ={X}
  • 入力: 1個以上の X(例: XXXXX, 12個のX)
  • 出力: |X| が 3の倍数なら左端に 0、3k+1 なら 1、3k+2 なら 2。他セルは ⊔。ヘッドは左端。受理停止。

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)

ステップ状態テープ(ヘッド下を[])遷移の要点
0q0[X]開始
1q1⊔ []Xを消し右へ(空欄1はR)。余りカウント開始
2q1L[⊔]空白→折り返し L。余り1系
3qf[1]左端に1を書き停止(⑥=S)

X=2(余り2 → 左端に 2)

ステップ状態テープ要点
0q0[X] X
1q1⊔ [X]空欄1はR
2q2⊔ X []q1でX→q2(余り2)
3q2L⊔ [X] ⊔空白で折り返し
q2L[⊔] …⑦=q2L でXを消し左へ
qf[2]⑧=2 を書いて停止

X=3(余り0 → 左端に 0)

ステップ状態要点
右進q0→q1→q2→q3Xを3つ数え、③はカウント中 X のまま
空白q3→q3L(④)ちょうど3の倍数で掃除系へ
左進掃除q3L空欄9はL。Xを⊔に
qf空欄10はqf。左端に数字0を書いて停止

検算口訣: 個数 mod 3 が書く数字。1→1、2→2、3→0、4→1、…

解答例【問2】空欄①~⑩

与え: 上記δの空欄。求めよ: ①~⑩に入る記号。

なぜ今この計算か: 期末記述の本線。上表で X=1,2,3 を追ったあと、空欄を定義から埋める。

求めるもの: ①~⑩
使う式 / 使う定義: 右進カウント(状態=余り)+左進消去+左端に余り数字
  1. 空欄1: 開始状態で X を消したあと入力の残りを右へ読む → R
  2. 空欄2: δ(□,X)=(q3,X,R) の前状態。余りカウント q1→q2→q3 より □=q2
  3. 空欄3: カウント中は記号を残し、掃除は *L に任せる → X
  4. 空欄4: 余り3相当で空白に当たったら掃除して数字0を書く系 → q3L
  5. 空欄5: 余り1の掃除状態で X を消しながら左へ → L
  6. 空欄6: 余り1の掃除が左端空白に達し、数字1を書いて停止 → S
  7. 空欄7: 余り2の掃除状態から X を消す遷移の状態名 → q2L
  8. 空欄8: 余り2なので書く数字 → 2
  9. 空欄9: 余り0系の掃除も左方向 → L
  10. 空欄10: 数字0を書いて受理停止する状態 → qf
  11. 検算: Xが1個→1、2個→2、3個→0(上表どおり)。
①R ②q2 ③X ④q3L ⑤L ⑥S ⑦q2L ⑧2 ⑨L ⑩qf

答案文: 余りを状態に載せ、空白で折り返して左端に 0/1/2 を書く遷移で空欄を埋める。

部分点: ①④⑧⑩など定義直結 / ②⑦の状態対応 / トレース検算

考察: 答えだけ暗記せず、X=1とX=3で『どの*Lに入るか』が分かれるかを見る。

期末 問3 — 作文

問題文(学習用収録)

高岡詠子『チューリングの計算理論入門』の「コンピュータは自分で考えることはできない」という記述について、著者の考えの背景と、自身の賛否(根拠つき)を、必要なら参考文献を示して1000字以内で記述せよ(参考文献リストの字数は含めない)。

ChatGPTを用いても構わないが、利用時の脳活動低下を指摘する研究(arXiv:2506.08872)に留意すること。参考にChatGPT回答例が課題PDFに掲載されている(字数不足・引用意図不明の注意あり)。

初学者向け解説

作文の本編 の5段構成で骨組みを先に作る。文献は『どの記述が自分のどの文を支えるか』まで書く。下の見本段落は丸写し提出禁止(型だけ借りて自分の言葉で書け)。

見本段落1つ(型の参考・転載提出は不可)

高岡は、コンピュータの判断や予測が人間に似て見えても、それは設計された計算過程の産物であり、自発的・意識的な思考ではない、と述べている。私はこの主張におおむね賛成する。チューリング機械は状態遷移の規則を機械的に適用するモデルであり、現在の生成AIも最適化された出力を返す点では同じ型に見える。ただし賛成の根拠を『AIは役に立たない』にすり替えると論点がずれる。Searle(1980)の中国語の部屋が示すのは、記号操作の上手さと意味理解は別だという区別であり、私の賛否はこの区別に接続する(したがって文献は感想の飾りではなく、賛否のどの文を支えるかを明示する)。

※字数・文献の選び方は自分の答案で満たすこと。この段落は構成の見本。

解答例【問3】答案の骨組み(全文は自筆)

与え: 上記作文課題。求めよ: 採点に耐える段落構成と、各段落の要旨(実際の提出文は自分の言葉で950字以上を目安に書く)。

なぜ今この計算か: 模範全文の丸写しは学習効果が薄い。型を固定する。

求めるもの: 5段落の要旨
使う式 / 使う定義: 主張要約→賛否→根拠→文献接続→結論
  1. 著者: 判断に見えてもプログラムされた計算であり自発的思考ではない、と要約。
  2. 賛否: 賛成(または条件付き賛成)を明示。
  3. 根拠: TM/アルゴリズムは規則適用であること。生成AIも最適化であり『意味の理解』とは別、と具体化。
  4. 文献: Searle 1980 等を用いるなら『シンボル操作≠理解』のどの論点が自分の賛否を支えるかを1文で接続。
  5. 結論: 予測・判断はできても主体的思考とは言えない、と字数内で締める。
骨組み5段+字数チェック(本文は自筆)

答案文: 著者の主張を要約し賛否と根拠を示し、文献の意図が読める形で結論づける。

部分点: 賛否明示 / 根拠の具体 / 引用意図

考察: 課題PDFが指摘する『引用の意図不明』を避けるのが最大の加点ポイント。

期末 問4 — 基本情報過去問(図つき)

課題PDFの図を学習用に転記。画像は assets/ を参照。

問題文(学習用収録)

問4(Mealy) 入力/出力アルファベット{0,1}。入力 0011001110 の出力は?

期末FE Mealy問題

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

期末FE スタック問題

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

期末FE リスト問題

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

  • 到着順 A,B,C,D を1つのスタックだけで並べ替え可能か: ア A,D,B,C / イ B,D,A,C / ウ C,B,D,A / エ D,C,A,B
  • 再帰呼出しの説明: ア 事象駆動 / イ 関数内で自分自身を用いる / ウ 終了関数を残す / エ 失敗時ロールバック
  • メモリリークの説明: ア 確保した主記憶が解放されない / イ スラッシング / ウ オーバレイ / エ 断片化

期末FE スタック並べ替え期末FE 再帰期末FE メモリリーク

解答例【FE問4】Mealy

与え: 図のオートマトン(文章化: S1:0/0自己・1/0→S2、S2:0/0→S1・1/1→S3、S3:1/1自己・0/0→S1)と入力0011001110。求めよ: 出力列と選択肢。

なぜ今この計算か: 図が読めなくても遷移を文章で追えるようにする。

求めるもの: 出力とア~エ
使う式 / 使う定義: 辺ラベル 入力/出力
  1. S1: 0→0(S1), 0→0(S1), 1→0(S2), 1→1(S3), 0→0(S1), 0→0(S1), 1→0(S2), 1→1(S3), 1→1(S3), 0→0(S1)
  2. 出力 0001000110 → ア
ア 0001000110

答案文: 出力記号列は0001000110である。

部分点: 途中表 / 選択肢

考察: 4ビット目が1になる位置で検算。

解答例【FE問5】スタック

与え: PUSH1→PUSH5→POP→PUSH7→PUSH6→PUSH4→POP→POP→PUSH3。求めよ: 最終スタック図の選択肢。

なぜ今この計算か: LIFOの手計算(図なしでも列で追える)。

求めるもの: 選択肢
使う式 / 使う定義: PUSH/POP
  1. []→[1]→[1,5]→[1]→[1,7]→[1,7,6]→[1,7,6,4]→[1,7,6]→[1,7]→[1,7,3]
  2. 底1・中7・頂3 → ウ

答案文: 最終状態は底から1,7,3である。

部分点: 最終3要素

考察: 頂が3かで選択肢が分かれる。

解答例【FE問6】リスト挿入

与え: next[0]=1 で A→E→C→G→B。Hは添字8。3番目と4番目の間に挿入。求めよ: next[8]。

なぜ今この計算か: ポインタ更新(図の添字を文章化)。

求めるもの: next[8]
使う式 / 使う定義: 新next←旧next(=7)
  1. 3番目C(index3), 4番目G(index7)
  2. 挿入後 3→8→7 なので next[8]=7 → ウ
ウ 7

答案文: next[8]の値は7である。

部分点: 3/4番目特定 / 数値7

考察: next[3]の更新と取り違えない。

解答例【FE】スタック並べ替え

与え: 到着順A,B,C,D。1スタックだけで出力可能な列を選べ。

なぜ今この計算か: LIFO制約の可否判定(図なし)。

求めるもの: 選択肢
使う式 / 使う定義: 出力したい次の記号がスタック頂か、まだ来ていない入力の先頭か
  1. ウ C,B,D,A: push A,B,C → pop C,B → push D → pop D,A で可能
  2. アは D のあと B が要るが頂は C。イ・エも途中で頂と不一致

答案文: C,B,D,A は1スタックで出力可能である。

部分点: 可能操作列 / 他選択肢の破綻点

考察: 『後から来たものを先に出す』ことだけが許される。

解答例【FE】再帰呼出し

与え: 再帰呼出しの説明の選択肢。求めよ: 正しいもの。

なぜ今この計算か: 用語定義(トレース不要)。

求めるもの: 選択肢
使う式 / 使う定義: 再帰=自分自身を呼び出す
  1. イが定義そのもの。アは事象駆動、ウはキャッシュ的、エはロールバック

答案文: 再帰呼出しとは、関数の中で自分自身を用いた処理を行うことである。

部分点: 定義の一致

考察: 計算理論の再帰的定義とも語感は近いが、ここではFEの定義問題。

解答例【FE】メモリリーク

与え: メモリリークの説明の選択肢。求めよ: 適切なもの。

なぜ今この計算か: 用語定義。イウエは別現象の説明。

求めるもの: 選択肢
使う式 / 使う定義: 確保した主記憶が解放されない
  1. アが定義。イ=スラッシング、ウ=オーバレイ、エ=断片化

答案文: メモリリークとは、確保した主記憶が解放されず利用可能領域が減ることである。

部分点: 定義の一致

考察: 名前のイメージだけで選ばず、選択肢全文を読む。

過去問:中間(2025)

中間専用の厚い解説サイト: theory-calculation-h1-past。ここには期末対策用に問題文と答案型を収録。

中間 問1 — 選択

問題文(学習用収録)

(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】

与え: 上記(1)~(4)。求めよ: 正解記号。

なぜ今この計算か: 定義の正確さチェック。期末選択のウォームアップ。

求めるもの: 各小問の正解
使う式 / 使う定義: ヘッドは隣接1マス、TMは認識+変換、テープ≒メモリ、状態交互=奇偶
  1. (1) c(初期ヘッドは左端。aは1マスずつ、bはヘッドは1つ、dは受理時に必ず⊔とは限らない)
  2. (2) a,b,c,d(認識にも変換にも使え、FA/PDAより強い)
  3. (3) a を読むたびに p0↔p1。空白到達時、p1(奇数個)なら pf で受理、p0(偶数個)なら p2 で非受理。よって a(i≥1かつ奇数)
  4. (4) c メモリ
(1)c (2)a,b,c,d (3)a (4)c

答案文: TMの定義とδトレースに照らして正しい記述を列挙する。

部分点: 小問ごと

考察: (3)は『空白に来たときの状態』が奇偶の判定器になっている。

中間 問2 — TM(1ビット右ローテート)

問題文(学習用収録)

Γ={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)→左端に書いたら停止。

トレース検算(01011→10101)
要点何が起きるか
qsで先頭0⊔にして q0(保持0)へ右進
シフト中読んだビットを書き、新しいビットを状態に載せ替え
空欄4→q0q1(保持1)で0を読んだら1を書き、保持を0へ更新
空欄6→q3q1で右端⊔=はみ出し1を左端へ運ぶ戻り
終了左端に1を書いて qf(空欄10→1)

解答例【中間問2】空欄①~⑩

与え: 上記右ローテートTMの空欄。求めよ: ①~⑩。

なぜ今この計算か: 保持ビットの更新が空欄の本体。期末mod3と番号が同じでも別δ。

求めるもの: ①~⑩
使う式 / 使う定義: 保持0→状態q0/戻りq2、保持1→状態q1/戻りq3。シフト中は『書いて載せ替え』
  1. 空欄1(課題①)は qsで1を読む対称遷移 → 値 1
  2. 空欄2(課題②)は 保持0のまま0を右シフト → 書く記号 0
  3. 空欄3(課題③)は 右端空白で戻り開始 → 方向 L
  4. 空欄4(課題④)は q1で0を読んだら保持1を書き、新しい保持は0 → 状態 q0
  5. 空欄5(課題⑤)は 保持1のまま1を右へ → 方向 R
  6. 空欄6(課題⑥)は q1で右端=はみ出し1を運ぶ → 状態 q3
  7. 空欄7(課題⑦)は q2が戻りながら読む記号 → 0
  8. 空欄8(課題⑧)は q2も左へ → 方向 L
  9. 空欄9(課題⑨)は δ(□,0)=(q3,0,L) の状態名 → q3
  10. 空欄10(課題⑩)は q3が左端に書くはみ出しビット → 1
  11. 検算: 01011→10101。空欄4をq1や空欄6をq2にすると破綻する。
(1)1 (2)0 (3)L (4)q0 (5)R (6)q3 (7)0 (8)L (9)q3 (10)1 ※番号は課題の①〜⑩

答案文: 保持ビットを状態に載せ、右端ではみ出しを戻り状態で左端へ書く遷移で空欄を埋める。

部分点: 1・2・3・5・7・8の定義直結 / 4・6・9の保持更新 / トレース検算

考察: 期末問2(mod3)の空欄答えと暗記を共有しない。別問題。監査上も答え表記を(1)…形式に分離している。

中間 問3 — 作文(生成AI利用指定)

問題文(学習用収録)

ペゾルド『チューリングを読む』序文の一節を素材に、(3-1)生成AI出力1000字程度、(3-2)ツールとプロンプト、(3-3)一致/新規/自分だけの視点各200字、(3-4)AI無しで文献引用つき1000字、を作成せよ。

解答例【中間問3】進め方

与え: 上記3-1~3-4。求めよ: 提出物チェックリスト。

なぜ今この計算か: 期末作文より手順が多い。抜けを防ぐ。

求めるもの: 提出4点の充足
使う式 / 使う定義: AI出力→メタ情報→比較→自力本文
  1. 3-1: AI本文を貼る(字数)
  2. 3-2: ツール名とプロンプト全文
  3. 3-3: (a)(b)(c)を別々に200字
  4. 3-4: 文献1つ以上+自分の経験を入れて1000字
4点そろって提出

答案文: 指定の小問を欠けなくそろえる。

部分点: 小問ごと

考察: 3-3(c)が3-4の核になる。

中間 問4 — 基本情報過去問

問題文(学習用収録)

計算理論と関連するFE過去問1~6(図は課題PDF頁4–6 / assets/mid_p*.png)。トレース手順は期末問4と同じ型。

中間FE頁4

収録状況(covered / thin / gap)

試験形式ID参照判定手数の根拠(このサイト内)
final-2025-q1-mcq期末問1covered#past-final-q1 + 解答例(途中根拠つき)
final-2025-q2-tm期末問2covered#past-final-q2 + X=1,2,3トレース表 + 空欄解答
final-2025-q3-essay期末問3covered#past-final-q3 + 骨組み(全文は自筆)+見本段落
final-2025-q4-fe期末問4covered図+文章化トレース(Mealy/stack/list)+追加FE解答
mid-2025-q1-mcq中間問1covered#past-mid-q1((3)はδトレースで a)
mid-2025-q2-tm中間問2covered#past-mid-q2 空欄①〜⑩フル+01011トレース
mid-2025-q3-essay中間問3covered#past-mid-q3 チェックリスト
mid-2025-q4-fe中間問4covered図収録+同一トレース型
lec10-14-undec第10–12回covered#core-undec の例題群(HALTTMは手順フル)
lec13-14-lba第13–14回covered#core-lba の例題群

thin/gap は残していない。各行に途中式またはトレース手数がある。

足場かけ(完成例 / ヒント / 自力)

紙で先に解け。数値は本編の例題と変えてある。

①完成例(worked)②フェード(faded)③自力(solo) の順。ヒントは開いてよい。自力は答えを隠したまま解く。

完成例【問】Xが4個のとき左端に書く数字

与え: XXXX(4個)。求めよ: 左端に書く記号(期末問2と同型)。

なぜ今この計算か: 余りと書く数字の対応を、本編の空欄問題より短い数値で固定する。

求めるもの: 左端の記号
使う式 / 使う定義: 個数 mod 3。余り0→0、1→1、2→2
  1. 4 = 1×3 + 1 なので余りは 1。
  2. 仕様より余り1のとき左端に 1 を書く。
  3. (機械の動きは q0→…→q1L→qf で1を書いて停止、と追える。)
1

答案文: Xが4個のとき左端に書く記号は1である。

部分点: 余り計算 / 対応表

考察: 4と7はどちらも余り1。商を書かない。

ヒント付き【問】Xが5個のとき左端に書く数字

与え: XXXXX(5個)。求めよ: 左端に書く記号。完成例の4個・自力の7個とは別数値。

ヒント(フェード)

5=1×3+2 → 余りは? 余り2のとき書く数字は?

解答・誤答パターン

答え: 2

よくある落とし穴: 5を書いてしまう/余り1の答えと混同

自力【問】Xが7個のとき左端に書く数字

与え: XXXXXXX(7個)。求めよ: 左端に書く記号。完成例・ヒント付きとは別数値。

ヒント(フェード)

7=2×3+1 → 余りは?

解答・誤答パターン

答え: 1

よくある落とし穴: 7を3で割った商を書いてしまう/5個の答えと混同

完成例【問】1010 の1ビット右ローテート

与え: 1010。求めよ: 1ビット右ローテート後の列。

なぜ今この計算か: はみ出しビットを左端へ戻す操作を短い列で確認する。

求めるもの: ローテート後の4ビット
使う式 / 使う定義: 右シフト+はみ出しを左端へ
  1. 右端の0がはみ出す。残りは 101。
  2. はみ出し0を左端へ → 0101。
0101

答案文: 1010 を1ビット右ローテートすると 0101 になる。

部分点: はみ出しビット / 最終列

考察: 左ローテート(1100)と取り違えない。

ヒント付き【問】1101 の右ローテート

与え: 1101。求めよ: 1ビット右ローテート後の列(完成例1010・本編01011とは別)。

ヒント(フェード)

はみ出す右端は1。左端へ回すと?

解答・誤答パターン

答え: 1110

よくある落とし穴: 左ローテートや単純右シフト(埋め0)と混同

完成例【問】Mealy 入力 010

与え: 本編と同じ遷移図。入力 010。求めよ: 出力3ビット。

なぜ今この計算か: 短い入力で辺ラベルの読み方を固定してから長い列へ。

求めるもの: 出力3ビット
使う式 / 使う定義: 各入力で遷移し、ラベルの出力を並べる
  1. S1で0→出力0のままS1。
  2. 1→S2 / 出力0。
  3. 0→S1 / 出力0。
  4. 出力 000。
000

答案文: 入力010に対する出力は000である。

部分点: 途中状態 / 最終列

考察: 出力の長さ=入力の長さ。

自力【問】Mealy 入力 11010

与え: 本編と同じ遷移図。入力 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

よくある落とし穴: 頂と底を逆に読む

完成例【問】包含の向き(短い真偽)

与え: 『正規言語は文脈自由言語を包含する』は真か偽か。

なぜ今この計算か: 円の大小を一回でも言語化してから、ヒント付きの別文へ。

求めるもの: 真偽と一文理由
使う式 / 使う定義: 正規 ⊂ 文脈自由 ⊂ … ⊂ 句構造
  1. 正規は文脈自由に含まれる(逆ではない)。
  2. よって『正規が文脈自由を包含』は偽。
偽(包含が逆)

答案文: 正規言語は文脈自由言語に含まれるため、当該命題は偽である。

部分点: 包含の向き

考察: 『小さい円が大きいに含まれる』を矢印で書く。

ヒント付き【問】包含の向き

与え: 『文脈自由言語は句構造言語を包含する』は真か偽か。完成例とは別サーフェス。

ヒント(フェード)

円の大小を思い出す

解答・誤答パターン

答え: 偽(逆。句構造が文脈自由を包含)

よくある落とし穴: 包含の矢印を逆に書く

自力【問】対角機械の一言説明

与え: HがATM判定器と仮定。求めよ: D〈M〉の動作を2文で述べよ(本編の長文証明とは別表現)。

ヒント(フェード)

H〈M,〈M〉〉の結果を反転

解答・誤答パターン

答え: Hが受理なら拒否、拒否なら受理。D〈D〉で矛盾。

よくある落とし穴: HALTTMの話と混線

用語集(31語)

初出の本体は入門カード。ここは検索用の短縮表。

用語定義試験接点
チューリング機械 (TM)テープ+ヘッド+状態で計算する最も強い計算モデル期末問2の機械
有限オートマトン (FA)有限状態だけで入力を読む機械。正規言語を認識階層の最下段
プッシュダウンオートマトン (PDA)スタック付き。文脈自由言語を認識括弧対応など
正規言語正規文法/FA で扱える言語のクラスチョムスキー階層
文脈自由言語 (CFL)CFG/PDA で扱える言語のクラス終端・非終端の書き換え
句構造言語最も一般的な文法で生成できる言語(TM認識可能言語と対応)階層の最上段
チョムスキー階層正規⊂文脈自由⊂文脈依存⊂句構造 の包含関係期末問1(2)
判定可能必ず停止して yes/no を返すアルゴリズム(判定装置)が存在するATM は判定不可能
Turing認識可能受理するときは必ず停止受理。拒否側はループしうるATM は認識可能
補Turing認識可能補集合が Turing 認識可能両方なら判定可能
決定不能問題それを解く(常に停止する)手順が存在しない問題期末問1(3)
停止問題 / HALTTMTM が入力で停止するか判定する問題。判定不可能第11回
受理問題 ATM〈M,w〉で M が w を受理するか。判定不可能の代表例第10回
帰着 (reduction)問題Aを解くために問題Bの判定器を使う変換判定不可能性の証明道具
Riceの定理TM言語の非自明な性質は判定不可能第12回
対角線論法可算と仮定して表の対角と違う要素を作り矛盾実数の非可算
可算 / 非可算自然数と1対1対応できる/できない言語の個数 vs TMの個数
計算履歴計算状況の列。受理計算履歴は受理で終わる正当な列LBA・帰着
線形境界付きオートマトン (LBA)テープ長が入力長の定数倍に制限されたTMALBAは判定可能
形式文法 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
作文主張→賛否→根拠→文献意図→結論作文の本編
FE1手ずつ表。飛ばさないFEの本編
理論ATM判定不可能/HALTTMはR→Sの4手順/Rice/ALBAは可能判定不能

間違いノート

この端末に保存(localStorage)

まだありません。

    出典・品質

    • 講義PDF: 計算理論 第2–8,10–14回(第9回PDFなし/第1回なし)
    • 過去問: 参考資料_計算理論_中間課題_2025年度.pdf / 計算理論_期末課題_2025年度_20250722.pdf
    • 科目タイプ: 証明・手計算中心。中間専用URLと分離
    • 模範解答はAI整理。提出前に自分の言葉へ
    対応表は #parity

    直前チェック

    • 入門・必須カードを音読した
    • 期末問1–4を問題文→答案の順で1周
    • 問1(4)は a,d(εと正規の規則形)
    • TM空欄をトレースで検算(X=1,2,3)
    • HALTTMは R→S の4手順を書ける
    • 作文の文献意図文を用意
    • FEは表を書いてから選択肢