戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

応用情報技術者 2014年 春期 午前204


問題文

表は、入力記号の集合が{0, 1}、状態集合がである有限オートマトンの状態遷移表である。長さ3以上の任意のビット列を左(上位ビット)から順に読み込んで最後が110で終わっているものを受理するには、どの状態を受理状態とすればよいか。
応用情報技術者 2014年 春期 午前2 問04の問題画像

選択肢

a
b
c(正解)
d

🔒 解説は解答すると表示されます

末尾110の受理状態【午前2解説】

正解の理由

与えられた状態遷移表は有限オートマトンとして「直近のビット列の末尾の情報」を保持するようになっています。遷移を辿ると、長さ3以上の入力を左から順に読み終えたときに最後の3ビットが110であれば必ず状態(選択肢)にいる構造になっているため、受理状態としてを指定すれば「末尾が110である」文字列だけを受理できます。
具体的には、入力列が ...110 で終わるとき、遷移は a → b → d → c と進み、最終的に状態 c に到達します。よって状態を受理状態にすれば条件を満たします。

解法ステップ

  1. 状態ごとの遷移動作を確認する(表から各状態の 0・1 に対する遷移先を読む)。
    • a: 0→a、1→b
    • b: 0→c、1→d
    • c: 0→a、1→b
    • d: 0→c、1→d
  2. 末尾3ビットが110となる典型的な遷移を追う(左から読む)。
    • …1 → …11 → …110 に対応する遷移は a → b → d → c
  3. 任意に長い文字列でも「最後の3ビットが110である」場合は最後の3入力だけを見れば上の遷移に従い状態に到達することを確認する。
  4. よって受理状態として状態(選択肢)を選べば良い。
(実務的には「末尾 m ビットを検出するオートマトンは m+1 個の状態を持つ」ことを念頭に、ここでは m=3 に対応する 4 状態のうち該当状態がであると判断します。)

選択肢別の誤答解説

  • ア: a
    a は 0 を読み続けると自己ループするなど「直近が0寄り」の状態であり、末尾が110 のときに常に到達する状態ではありません。例えば 110 を読むと a → b → d → c となり a では終わりません。
  • イ: b
    b は「最後に1を読んだ直後」を表す役割を持つ遷移先で、末尾が110 の最終状態ではありません(110 の最後では 0 を読んで c に移るため)。
  • ウ: c
    末尾が …110 となると最終的に c に到達するため正解です。したがって受理状態はになります。
  • エ: d
    d は「直近が11 となっている」ことを示す状態で、110 の最後には d → 0 によって c に遷移するため、最終受理状態としては不適切です。

よくある誤解

  • 「最後の2ビットが10であれば良いから c は正しいが、10 の場合も受理されるのではないか」
    末尾3ビットの判定では「最後に 0 を読んだ直前の状態」が重要です。設問のオートマトンの遷移構造では、…110 の場合に限って最終的に c に到達するようになっているため、単純に「最後の2ビットだけを見ればよい」という短絡は危険です。
  • 「d を受理状態にすればよいのではないか」
    d は 11 を保持する状態であり、110 のときは d から 0 を受けて c に移るため、d を受理にすると 111 など 11 で終わる文字列を誤って受理する可能性があります。

補足コラム

  • この種の問題は「接尾辞(suffix)検出」を行う有限オートマトンの理解に直結します。固定長 m の末尾パターンを検出する最小の DFA は通常 m+1 個の状態を持ち、各状態は「現在までに一致しているパターンの最長接頭辞の長さ」に対応します。今回のパターン「110」(長さ 3)に対して 4 状態を用意している点はその典型です。
  • KMP(Knuth–Morris–Pratt)法の部分一致の考え方と同様に、各状態は「どれだけパターン先頭に一致しているか」を表現しており、それを遷移表で実装したのが今回の表の考え方と整合します。

FAQ

Q. 初期状態はどれですか?
A. 問題文の表では明示されていないことがありますが、通常は左上の行ラベルで最初に挙げられた状態(ここでは a)が初期状態と想定して解析します。初期状態から読み進めて末尾が110のときに最終状態がとなるため、が正答です。
Q. 受理状態が1つで十分なのはなぜですか?
A. 設問は「最後が110で終わるもの」を受理するオートマトンを想定しており、その言語は状態 c に到達することと同値になるように設計されているため、受理状態は c の一つで足ります。

関連キーワード: オートマトン、状態遷移、接尾辞検出、DFA、部分一致検索
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について