4. 別のオートマトンを作る

もう1つ別のオートマトンを作成し, 自動テストで検証してみましょう.

電子錠の改良

「3. オートマトンのテストをする」で完成させたオートマトンは, 一度でも誤った入力をすると失敗状態に落ち込んで, 二度と開けることができなくなってしまいます. そこで,誤った入力をした際には振り出しに戻ることにします. つまり,失敗状態である「F」を初期状態の「A」に重ねます.

検証用自動テストの実行

2番目のテストである「Rollback automaton」を選択して「テスト」を押しましょう. 残念ながら,失敗作であることが判ります.

「●失敗● <文字列:'aabac', 期待:終了状態, 結果:非終了状態>」 とあるので, 初期状態から「aabac」を入力したときには終了状態になっているはずなのに, 実際には非終了状態になっていたので「失敗」したということです.

オートマトンの修正

失敗した際には,実際に自分で1つずつ入力してみるのが良いでしょう. 緑色の三角ボタンをクリックして,「a」「a」「b」「a」「c」と 順にタイプしてみましょう. すると,誤った入力をした際に, 常に振り出しに戻るという方策に間違いがあったことが判ります. 状態「B」で「a」が入力された際には,状態「B」に留まるべきでした.

上の修正だけでは,まだ完全とは言えません. 入力に応じて適当な状態に移るようにオートマトンを修正しましょう. ここでは,これ以上細かな説明はしません. 1文字ずつ入力しながら,修正方法を検討してみてください. 修正が完成すれば,次のようにテストに成功するはずです.