練習用に簡単なオートマトンを作成し,オートマトンを動かしてみます.なお,以下の説明では始状態を「初期状態」,受理状態を「終了状態」,受理状態以外の状態を「非終了状態」と呼ぶこととします.
シミュレータを使って電子錠のような働きをするオートマトンを作成してみましょう.ここでは電子錠を解錠するために正しく「abac」と入力される必要があり,それ以外の入力では失敗するものとします.
オートマトン動作のチェック表の作成
シミュレータを使う前に,完成したオートマトンの動きをチェックする表を作りましょう.ここでは,何文字か入力した後,終了状態になっている(解錠する)かどうかだけに注目します.「abac」が全て正しい順番で入力されたとき初めて解錠することを確認するため,正しい入力以外にも入力が不足している場合や途中で誤った入力が行われる場合もチェックするようにします。
入力 | 終了状態 |
無し | 否 |
a | 否 |
ab | 否 |
aba | 否 |
abac | 終了 |
aabac | 否 |
abbac | 否 |
ababac | 否 |
シミュレータへの入力
- 状態を作るには,ウィンドウ左上に並んでいる中にある赤丸のボタンをクリックした後,作った状態を置く場所をクリックします.
- 状態が変化する規則を作るには,ウィンドウ左上に並んでいる中にある線分のボタンをクリックした後,「元の状態」から「次の状態」までドラッグします.すると,状態間に青色の矢印が引かれ「none」と表示されます.「none」と書かれた所を右ボタンでクリックすると,「a, b, ..., j, else, delete」というメニューが出るので,入力文字を選びます.「else」は,「他の文字全て」を意味します.
- 終了状態を選ぶには,状態を右ボタンクリックして「Final State」を選びます.
- ウィンドウ上部の「A」と書かれたボタンを選ぶと,画面上に文字を書くことができます.オートマトンの各状態の上に名前を書きます.たとえば,初期状態の名前を「A」とし,正しい順序で文字が入力された状態をそれぞれ「B」〜「E」とし,誤った入力たなされた状態を「F」とします.
- 状態や状態間の矢印を消すには,それぞれを右ボタンクリックして「delete」を選びます.
- できあがりは下図のようになります.
オートマトンの動作確認
チェック表をもとに作成したオートマトンのテストをしましょう.
- 緑色の三角ボタン(下図赤丸)をクリックすると,オートマトンの実行がはじまります. 初期状態が緑色になり,画面下の左端の桝目に緑色の三角が現われます.
- キーボードから「a」「b」「a」「c」と順にタイプすると, 下図のように二重丸の終了状態が緑色になり,「解錠」できたことが分かります.
- 緑色の三角ボタンを再度クリックするとオートマトンの状態を元に戻すことができます.また,deleteキーによって文字列を1文字ずつ消去することも出来ます.チェック表の他の入力についてもテストしてみましょう.「否」と予想した入力をタイプした後,二重丸の終了状態が緑色になっていないことを確認しましょう.たとえば,下は「aabac」と入力した後の状態です.緑になっている状態が二重丸でないので,「否」という予想通りになっていることが分かります.
オートマトンの保存と印刷
作成したオートマトンは「File」メニューの「Save」で,適当なファイル名を付けて保存できます.保存したオートマトンは,メニューの「Open」によって開くことが出来ます.また,メニューの「Print」によって印刷することもできます.