院試hub

東大 情報理工学系研究科 コンピュータ科学専攻 専門科目(コンピュータ科学) 2024年度 院試 過去問 解答例・解説(全4問)

全4問です。計算量理論、オートマトン理論、グラフ探索が出ています。解説はすべて、途中式と最終答は大問1問ぶんを公開しています。残りは解答PDFに収録しています。問題本文は含みません。

最終更新:

第1問 — 形式言語と状態数

NFAとDFAの差

NFAでは「この位置が後ろから kk 番目だ」と非決定的に推測できるため, k+1k+1 個程度の状態で足りる。一方,DFAでは最後の kk 文字を区別できなければならない。 そのため全ての長さ kk の接尾辞に対応する 2k2^k 通りの情報が必要になる。

平方数位置の非正規性

正規言語は,十分後ろでは周期的な判定しかできない。平方数の間隔は 2k+12k+1 ずつ広がるので,固定周期では表せない。この性質を ab∗ab^* との共通部分に落とすと,非正規性が見えやすくなる。

解答

  1. L3L_3 は,後ろから3文字目が aa である語の集合である。 非決定性有限オートマトンは,「この aa が後ろから3文字目である」と推測して, その後にちょうど2文字を読むように作ればよい。 状態を q0,q1,q2,q3q_0,q_1,q_2,q_3 とし,初期状態を q0q_0,受理状態を q3q_3 とする。 遷移は q0→a,bq0,q0→aq1,q1→a,bq2,q2→a,bq3 \begin{aligned} &q_0 \xrightarrow{a,b} q_0,\qquad q_0\xrightarrow{a}q_1,\\ &q_1\xrightarrow{a,b}q_2,\qquad q_2\xrightarrow{a,b}q_3 \end{aligned} である。q3q_3 からの遷移は不要である。
  2. r=(a+b)r=(a+b) とおくと,LkL_k は任意の接頭辞の後に aa があり, その後ろにちょうど k−1k-1 文字が続く語の集合である。したがって Lk=r∗ark−1 \boxed{L_k=r^*ar^{k-1}} である。
  3. L′=⋃k=1∞Lk2 L'=\bigcup_{k=1}^{\infty}L_{k^2} は正規言語ではない。 もし L′L' が正規なら,正規言語 ab∗ab^* との共通部分も正規である。 ところが L′∩ab∗={abk2−1∣k≥1} L'\cap ab^*=\{ab^{k^2-1}\mid k\ge 1\} である。これは,語 abtab^t において先頭の aa が後ろから t+1t+1 番目に あるためである。 集合 {k2−1∣k≥1}\{k^2-1\mid k\ge 1\} は最終的周期的ではない。実際,平方数の間隔 (k+1)2−k2=2k+1 (k+1)^2-k^2=2k+1 は無限に大きくなる。したがって一文字アルファベット上の正規言語に必要な 最終周期性を満たさない。よって L′L' は正規言語ではない。
  4. 長さ kk のすべての語 u∈{a,b}k u\in\{a,b\}^k を考える。異なる2語 u,vu,v を取ると,ある位置 ii で ui≠viu_i\ne v_i である。 ここで接尾辞 z=bi−1 z=b^{i-1} を付けると,語 uzuz の後ろから kk 番目の文字は uiu_i になり, 同様に vzvz の後ろから kk 番目の文字は viv_i になる。 したがって一方だけが LkL_k に属する。 よって長さ kk の 2k2^k 個の語はすべてMyhill--Nerode同値で区別される。 したがって LkL_k を受理する任意のDFAは少なくとも 2k \boxed{2^k} 状態を持つ。

最終答

Lk=(a+b)∗a(a+b)k−1. L_k=(a+b)^*a(a+b)^{k-1}. L′L' は正規ではない。任意のDFAで LkL_k を受理するには少なくとも 2k2^k 状態が必要である。

第2問 — キャッシュとIPC

競合ミスが支配的になる理由

配列 AA と BB の開始アドレスは 0x10000x1000 だけ離れている。 これはキャッシュ容量256バイトの整数倍なので,ダイレクトマップでは同じインデックスに 対応する。したがって,AA を読んだ直後に BB へ書くと,同じ場所を取り合う。

IPC計算の注意点

IPCは命令数をサイクル数で割る。キャッシュヒット率だけからIPCは直接出ない。 `div' の4サイクル,メモリアクセスのヒット・ミス時のサイクル,ループ回数をすべて足し合わせる。

キャッシュとIPCの途中式・最終答をPDFで見る

第3問 — 連結性と全域木

全域木の基本

探索で初めて頂点を発見した辺だけを集めると,すべての頂点に到達し,かつ各頂点は一度だけ 親を持つ。したがって閉路は生じず,全域木になる。

辺交換の考え方

木から1辺を抜くと必ず2成分に分かれる。そこに別の横断辺を1本戻すと,再び連結になり, 辺数も n−1n-1 のままなので木である。全域木の交換性を使う典型的な議論である。

連結性と全域木の途中式・最終答をPDFで見る

第4問 — 評価戦略と再帰

値呼びと名前呼びの違い

値呼びでは関数に入る前に引数を一度だけ評価する。名前呼びでは,引数式を本体に そのまま代入し,必要になった時点で評価する。そのため,同じ式が複数回現れると, 同じ計算が繰り返される。

呼び出し回数が増える理由

この関数では条件判定で xx を使い,さらに返り値側でも xx を含む式が現れる。 名前呼びではそれぞれの出現箇所で引数式が再評価されるため,呼び出し回数が指数的に増える。

評価戦略と再帰の途中式・最終答をPDFで見る

年度別の解答例(5年度)

  • 2026年度(全4問)

    形式言語とオートマトン / ページングとTLB / パイプラインと論理回路

  • 2025年度(全4問)

    形式言語とオートマトン / パイプラインとキャッシュ / スケジューリングとセマフォ

  • 2024年度(このページ・全4問)

    形式言語と状態数 / キャッシュとIPC / 連結性と全域木

  • 2023年度(全4問)

    半分接頭辞と言語クラス / 集合分割の近似アルゴリズム / ページ置換

  • 2022年度(全4問)

    CPUスケジューリング / 再帰的ソート / 部分語位置の写像と言語クラス

2024年度の出題内容

全4問
大問主題解説の小見出し最終答
第1問形式言語と状態数NFAとDFAの差 / 平方数位置の非正規性あり
第2問キャッシュとIPC競合ミスが支配的になる理由 / IPC計算の注意点あり
第3問連結性と全域木全域木の基本 / 辺交換の考え方あり
第4問評価戦略と再帰値呼びと名前呼びの違い / 呼び出し回数が増える理由あり

同じテーマを出した他大学・他年度

3テーマ

前年度(2023年度)との違い

大問数
2023年度 4問 → 2024年度 4問
2024年度で新しく出たテーマ
計算量理論・オートマトン理論・グラフ探索
2023年度の解答例

東京大学の公式過去問

公開年度範囲
2022〜2026
公式の解答例
非公開(問題冊子のみ)
院試hubの最終確認
2026-08-13
東京大学の公式過去問PDF