1. 正規言語
計算理論はまず「コンピュータとは何か」という問いから始まる。手許にあるノートPCなどのパソコンはコンピュータとしてはあまりに複雑すぎるため、理論的には計算モデル()という理想的なコンピュータを用いる。科学で用いるモデルと同様に計算モデルはある面では正確である一方で、別の面では不正確である。したがって注目したい特徴に応じて異なる複数の計算モデルを扱うことにする。
1.1 有限オートマトン
有限オートマトン()は極度に限られたメモリしか持たないコンピュータに良いモデルである。現実における自動ドアのような単純な動作をモデル化するのに利用可能である。
図1 自動ドアの開閉を表す状態ダイアグラムと状態遷移表
この自動ドアの操作主は1ビットのメモリを持ち操作主が2つの状態のどちらにあるかを記録するコンピュータである。
有限オートマタとそれに確率論で対応するマルコフ連鎖()は、データにあるパターンを認識しようとするときに有用な道具である。これらの道具は発話過程や最適特徴認識においても用いられる。マルコフ連鎖は金融市場における価格変化をモデル化し予測するのにさえも用いられる。
有限オートマタを数学的な観点から見ることにする。
上のような有限オートマトンを考え、を初期状態、を受容(受理)状態とし、文字列が入力されたとする。すると
- 初期状態から開始する。
- を読み込み、からへと遷移する。
- を読み込み、からへと遷移する。
- を読み込み、からへと遷移する。
- を読み込み、からへと遷移する。
- が入力の最後で受容(受理)状態にいるため、受容(受理)する。
という動作をする。
1.1.1 有限オートマトンの定義
このような具体的な例を受けて有限オートマトンを形式的に定義する。まず形式的な定義は厳密でなければならない。そのためにも想定し得る状態を明確にしなければならない。また形式的な定義は表記法を提供し、これにより考えたり考えたことを表現するのを明敏にする。厳密に記載し、すべての詳細を書き切らなければならない。
有限オートマトンはいくつかの部分に分けられる。入力シンボルに応じて、ある状態から別の状態へと遷移する状態の集合およびその規則が存在する。受容(受理)された入力シンボルを表す入力アルファベットがある。初期状態があり、受容(受理)状態を表す集合が存在する。形式的な定義は、有限オートマトンはこうした5つの要素のリストである、すなわち状態集合、入力アルファベット、移動規則、初期状態および受容(受理)状態である。したがって有限オートマトンをこれら5つの要素を持つ5-タプルとして定義される。
移動規則を表現するために、たびたびと書かれる遷移関数と呼ばれるものを用いる。もし有限オートマトンが入力シンボルで表される、ある状態から状態への矢印、それはを読み込んだときにもしオートマトンが状態にいる場合を意味するが、を持つならば、そのとき状態へと遷移する。これをと書く。
定義1.1 有限オートマトン それぞれの成分が
- 状態と呼ばれる有限集合
- 文字列(アルファベット)と呼ばれる有限集合
- 遷移関数
- 初期状態
- 受容(受理)状態集合
であるような5-タプルを有限オートマトンという。
例
と書かれる有限オートマトンを定義する。ここで
- は以下の表で与えられる。
- を初期状態とする
これは図2で与えたものの形式的な定義に他ならない。
もしが機械が受容(受理)するすべての文字列からなる集合であるならば、はの機械語であるといい、と書く。このことをはを認識する()、もしくははを受容(受理)する()。受容(受理)という言葉は文字列を受容(受理)する機械や言語を受容(受理)する機械を扱うときに異なる意味を有することから、認識する()を用いる方が望ましい。
機械は複数の文字列を受容(受理)し得るものの、常にただ1つの言語のみを認識する。もし機械がいかなる文字列をも受容(受理)しない場合、空言語を充てる。
1.1.2 計算の定義
ここまでで有限オートマトンに、非形式的には状態ダイアグラムとして、形式的には5-タプルとして言及してきた。次にオートマトンにおける計算について同様のことを行なうことにする。
定義1.2 文字列の受容(受理) を有限オートマトンとし、を各がアルファベットに属する文字列だとする。このとき、もしに属する状態の列が存在し、3つの条件
- に対して
を満たすならば、はを受容(受理)するという。
条件1は、機械が初期状態から始まることを主張する。条件2に対しては、機械が遷移関数に従って状態から状態へと遷移することを意味する。そして条件3は受容(受理)状態で終わるのであれば、その入力を受容(受理)することを意味する。もし機械語ならば、は言語を受容(受理)するという。
と書かれる有限オートマトンを定義する。ここで
- (を1つの状態とする。)
- は以下の表で与えられる。
- を初期状態とする
とする。
文字列とすれば、は形式的な計算の定義に則りを認識する。なぜならばを計算しているときの状態列は、であり、3つの条件を満たす。
の言語はである。はこの言語を認識するため、これは正規言語である。