エンベデッドシステムスペシャリスト 2023年 午前2 問19
問題文
表の状態遷移に従って動作する組込みシステムがある。最初の状態がS0の場合に、a → b → c → d → aの順序でイベントが発生すると、最後の状態がS4になる。表の(*)には同じ状態名が入るが、その状態名はどれか。

選択肢
ア:S1
イ:S2
ウ:S3(正解)
エ:S4
🔒 解説は解答すると表示されます
状態遷移表の追跡【午前2解説】
正解の理由
最後のイベントは
a です。表を見ると、イベント a で状態 S4 に遷移するのは、直前の状態が S3 の場合だけです。したがって、イベント
d の後に S3 になっている必要があります。表の c の列には遷移先として S3 がないため、イベント c の後は S2 でなければなりません。状態 S2 でイベント d が発生すると、遷移先は(*)です。よって、(*)には S3 が入ります。この場合、状態の変化は次のとおりです。
S0 →a S1 →b S3 →c S2 →d S3 →a S4最後に
S4 となるため、(*)に入る状態名はウの S3 です。解法ステップ
- イベント列の最後が
aであることに注目します。 aによってS4へ遷移する状態を表から探すと、S3です。- その一つ前のイベントは
dなので、dの後の状態がS3になる経路を考えます。 - イベント
cの遷移先にS3はありません。イベントcの後をS2とすると、S2でイベントdが発生したときの遷移先(*)がS3である必要があります。 - よって、(*)は
S3です。イベント列全体をたどって、最後がS4になることを確認します。
選択肢別の誤答解説
- ア:S1
S0 →a S1 →b S1 →c S0 →d S0 →a S1となり、最後はS4になりません。 - イ:S2
S0 →a S1 →b S2 →c S2 →d S2 →a S2となり、最後はS4になりません。 - ウ:S3
S0 →a S1 →b S3 →c S2 →d S3 →a S4となるため、条件を満たします。 - エ:S4
S0 →a S1 →b S4 →c S4 →d S4 →a S0となり、最後はS4になりません。
よくある誤解
- イベントの順序を入れ替えてしまうこと
状態遷移は、指定されたイベントの順番どおりに一つずつ追います。 - (*)を2か所で別々の状態名として扱うこと
表の2か所の(*)には、同じ状態名が入ります。片方だけを個別に決めることはできません。 - 途中の状態だけで判断すること
途中でS3になったかだけでなく、最後のイベントまで適用してS4に到達するかを確認します。
補足コラム
状態遷移表は、「現在の状態」と「発生したイベント」の組合せから、次の状態を決める表です。今回のような問題では、遷移を順にたどる方法に加えて、最後の状態から逆向きに条件を絞ると、(*)を効率よく特定できます。
FAQ
Q. 状態遷移表を追うとき、どの情報を見ればよいですか?
A. 現在の状態に対応する行と、発生したイベントに対応する列を見ます。その交点が次の状態です。
A. 現在の状態に対応する行と、発生したイベントに対応する列を見ます。その交点が次の状態です。
Q. なぜ最後のイベントから考えるのですか?
A. 最終状態が指定されているため、そこへ到達する直前の状態を絞り込めます。今回のように候補が限られる場合、逆向きに考えると解きやすくなります。
A. 最終状態が指定されているため、そこへ到達する直前の状態を絞り込めます。今回のように候補が限られる場合、逆向きに考えると解きやすくなります。
関連キーワード: 状態遷移表、状態遷移、イベント、有限状態機械

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

