演習2 計算モデル

目的

有限状態機械の1つであるオートマトンをシミュレータを用いて作り、その能力と限界を知る

演習の手順

手順の詳細


グループを作る


シミュレータのダウンロードと実行

  1. 次のリンクからCFIVEへログインし、「第2回演習用オートマトンシミュレータ」をダウンロードする: CFIVE 教材ページ
  2. デスクトップにAutoSim.jarというファイルが現われる。(ブラウザの設定によっては、デスクトップ以外の場所にダウンロードされるかも知れない。)それをダブルクリックする。
  3. 次のようなウインドウが開けば、準備完了である。

練習用のオートマトンを作り、実行する

シミュレータを使って教科書p.139 図6.5にある電子錠の働きをするオートマトンを作成してみよう。なお、このオートマトンシミュレータは数字ではなく「a」「b」「c」「d」の4つの文字しか入力として受け取ることができない。そこで教科書に出てくる「1,2,3」は「a,b,c」と読みかえることにする。

  1. シミュレータを使う前に、完成したオートマトンの動きをチェックする表を作る。ここでは、何文字か入力した後、終了状態になっている(解錠する)かどうかだけに注目する。「abac」が全部入力されて始めて解錠する、途中で間違えるとやり直しが効かない、「abac」の後に何か入力しても二度は解錠しない、といった細かな点もチェックしたいので、それらが確認できるような例も含めるようにする。(問題が曖昧な場合もあるので、そのような場合は、この段階ではっきりさせておく。)
    入力終了状態
    無し
    a
    ab
    aba
    abac終了
    abaca
    aabac
    abacabac
  2. 状態とその間の関係を考え、p.139 図6.5 のような図を紙に描く。
  3. シミュレータに図を入力する。
  4. チェック表をもとに作成したオートマトンのテストをする。
    1. 緑色の三角ボタンをクリックすると、オートマトンの実行がはじまる。開始状態が緑色になり、画面下の左端の桝目に緑色の三角が現われる。
    2. キーボードから「a」「b」「a」「c」と順にタイプすると、下図のように二重丸の終了状態が緑色になり、「解錠」できたことが分かる。
    3. 緑色の三角ボタンを再度クリックするとオートマトンの状態を元に戻すことができるので、チェック表の他の入力についてもテストする。「否」と予想した入力をタイプした後、二重丸の終了状態が緑色になっていないことを確認する。例えば下は「aabac」と入力した後の状態である。緑になっている状態が二重丸でないので「否」という予想通りになっていることが分かる。
  5. 作成したオートマトンは「File」メニューの「Save」で適当なファイル名を付けて保存したり、「Print」で印刷することができる。

オートマトンを可能な限り沢山作る

次のページにある問題を解くオートマトンをできるだけ多く作ってみよ。

問題ページ(ユーザ名:project2 パスワードは演習時に通知)


レポート

オートマトンを作成をした経験をふまえて、次の2点を書いたレポートを作成し、提出せよ。

形式
レポートは(グループではなく)1人ずつ個別に作成し提出する。 必ず演習番号・氏名・学生証番号・演習に対する意見や感想を書くこと。レポートの体裁の良し悪しも採点の対象となっていることに注意せよ。
提出期限
2006年6月4日(日) 23時59分
提出方法
CFIVEまたは紙のどちらか:
注意
他人の文章を自分の文章であるかのごとく使用することは、試験におけるカンニングと同様の不正行為なので、厳しく対処する。不正なレポートは未提出よりも評価が低い。

Hidehiko Masuhara, May 2006