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

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

電子錠の改良

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

検証用自動テストの実行

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

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

オートマトンの修正

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

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