オートマトン・状態遷移図の読み方

前回、誤差の種類を整理しました。今回は、少し毛色の変わったテーマ「オートマトン・状態遷移図」の読み方を整理します。

目次

オートマトンとは

オートマトンとは、いくつかの「状態」と、状態と状態を結ぶ「遷移(移り変わり)」の組み合わせで、ものごとの動きを表現するモデルのことです。

例えば、自動販売機や信号機のように、「今どの状態にいるか」によって、次に何が起きるかが決まる仕組みを考えるときに使われます。基本情報技術者試験では、この考え方を図で表した「状態遷移図」を読み解く問題が出題されます。

状態遷移図の見方

状態遷移図では、状態を丸(円)で表し、ある状態から別の状態への移り変わりを、矢印で表します。矢印には、その移り変わりが起こる条件(入力)が書かれています。

読み方のポイントは、次の2つです。

  • 今、どの状態(丸)にいるかを常に意識する
  • 矢印に書かれた条件が発生したときだけ、次の状態に移る

複数の矢印が入り乱れていると混乱しやすいのですが、「今いる状態」から出ている矢印だけに注目すれば、迷わず追えるようになります。

トレースしてみる練習

状態遷移図の問題は、疑似言語のトレースと同じように、実際に手を動かして追ってみるのが近道だと感じています。

自分は、「状態:○○」という形でメモを取りながら、入力が与えられるたびに、どの矢印をたどって次の状態に移ったかを、1つずつノートに書き出す練習をしています。頭の中だけで図を目で追おうとすると、途中でどこにいたか分からなくなることが多いためです。

出題されやすいパターン

科目Aでは、次のようなパターンで出題されることが多いようです。

  • ある一連の入力が与えられたとき、最終的にどの状態にたどり着くかを問う
  • 特定の状態に到達するために、どのような入力の並びが必要かを問う

どちらのパターンでも、状態と矢印の対応を正確に読み取ることが前提になるので、慌てずに1つずつ確認する姿勢が大切だと感じています。

学習してみた感想

オートマトンという言葉自体は難しそうに聞こえますが、実際の中身は「今の状態」と「矢印の条件」を丁寧に追うだけのシンプルな作業でした。科目Bのアルゴリズムのトレース練習にも近い感覚があり、早めにこの「手を動かして追う」習慣をつけておいてよかったと感じています。

次回は、科目Bの疑似言語に戻り、条件分岐(if・else)の疑似言語表現を整理します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次