オートマトン理論では、私たちは皆、最初から有限オートマトンとしてオートマトンを読みます。私が知りたいのは、オートマトンが有限である理由です。明確にするために、有限のオートマトンには、アルファベット、言語、正規表現で作成された文字列、または何が含まれていますか?そして、(理論上)非有限オートマトンはありますか?
オートマトン理論では、私たちは皆、最初から有限オートマトンとしてオートマトンを読みます。私が知りたいのは、オートマトンが有限である理由です。明確にするために、有限のオートマトンには、アルファベット、言語、正規表現で作成された文字列、または何が含まれていますか?そして、(理論上)非有限オートマトンはありますか?
回答:
通常遭遇するすべてのオートマトンモデルは有限表現されています。そうでなければ、数え切れないほど多くあります。つまり、チューリング完全モデルによってキャプチャされません。または、CSの考え方では、役に立たない¹。
「有限オートマトン」は、有限の構成セット(入力文字列は別として)しか持たないため、有限と呼ばれます。たとえば、プッシュダウンオートマトンには、任意のコンテンツを含めることができるスタックがあります。可能な構成は無限にあります。
Nota bene:PDAの構成はまだ有限で表現されています!実際、チューリングの計算可能性に含まれる計算モデルには、有限表現可能な構成が必要です。そうでない場合、TMはそれらをシミュレートできません。
フルネームは「有限状態オートマトン」です。重要な部分は、オートマトンの状態が、離散状態の有限セットの要素によって完全に特徴付けられることです。つまり、オートマトンの(関連する)状態に実数値の変数が含まれる場合、無限の数の潜在的な状態が存在し(浮動小数点表現の有限性は別として)、オートマトンは有限ではありません。
これは理論的なコンピューターサイエンスでは起こりえないかもしれませんが、実数列のモデリングの領域ではあまりエキゾチックではありません。隠れマルコフモデルを使用すると、観測不可能な状態の(離散、有限)マルコフモデルの各状態に対する1つの出力フィルターで構成される確率システムの出力として数列をモデル化できます。フィルターは、前の出力のベクトルから次の実数値の出力を計算します(「自己回帰」モデル)。ただし、遷移確率は現在のマルコフ状態にのみ依存するため、基礎となるマルコフモデルは有限です。
ただし、この記事(全文)では、遷移確率が以前の出力の実数ベクトルにも依存するバリエーションを開発しています。このシステムの状態は、離散マルコフ状態と実数のタプルの組み合わせ(「混合状態マルコフモデル」)であるため、無数の異なる状態になります。
要するに、非有限オートマトンは理論的に明確に定義されており、時には遭遇することさえあります。
有限オートマトンでは、状態の数、基礎となるアルファベットのサイズ、マシンで受け入れられる文字列の長さなど、かなりの有限性があります。
たとえば、マシンに無限に多くの状態を持たせることで、これらの有限状態を確実に緩和できますが、そうすると、そのようなマシンはすべての言語を受け入れるように設計できるという意味で、興味のないものになります。
実際、オートマトン理論(Kleene、Rabin、およびScottの起源から大きく逸脱している)には、有限ではない多くの形式のオートマトンがあります。これにはいくつかの理由があります。
たとえば、プッシュダウンオートマトンは、構成のセットが無限であるオートマトンです(これらのステートの数は有限ですが、実際には、これらは「無限オートマトン」と見なされるべきです)。
同様に、状態空間が無限であるが、多くの構造を持つ無限オートマトンの他の例があります。たとえば、状態空間として(有限次元)ベクトル空間を持ち、遷移関数として線形写像(および初期と最終のもの)を持つオートマトンのクラスを考えます。これらは、ベースフィールド上の加重オートマトンとして知られています(61年のSchützenbergerによる)。これらを最小化し、同等性をテストできます。他の例には、レジスタオートマトン(これらのオートマトンには有限のレジスタセットがあり、無限のアルファベットを処理します:これらは文字をレジスタと比較し、文字をレジスタに保存できます)、およびより近代的な形式のノミナルオートマタ(同じ表現力を持ちますが、より良い基礎と特性があります)。そのようなオートマトンの空は決定可能です。
、およびL)に属する場合、状態は受け入れられます。最後のオブジェクトもあります(状態言語として!)。これらの2つのオブジェクトの存在は、決定性オートマトンを最小化できる理由を高レベルで説明する1つの方法であり、Myhill-Nerodeの一致と密接に関連しています。
結論として、無限オートマトンがありますが、講義で最初に研究されるモデルは常に有限状態のものです。
問題は無限状態オートマトンが存在する場合、無限オートマトンは存在しないという結論を仮定していると思います。
オートマトン理論では、異なる仮想モデルの力の階層があります。私が学んだのは4でした(覚えていますが、しばらく前です)、ウィキペディアで見つけたものは5です。チューリングマシンよりも強力なレベルの概念があり、大まかにハイパー計算と呼ばれます。仮想マシンのさまざまな説明は、これらのレベルのいずれかに分類されます。チューリングマシンは、すべて同じレベルの計算能力を持つ多数のモデルで特に知られています。
少なくとも1つの正式に定義された無限状態オートマトンは、これらのレベルのいずれかに分類されます。無限状態オートマトンの特定の厳密な定義がこれらのレベルの1つにどのように適合するかを示すのに少し興味深いものがあるかもしれませんが、それ以外は、各レベルを表すはるかによく研究された仮想マシンがあるため、あまり役に立ちません。これは、10億テープチューリングマシンにあまり関心がない方法と似ています。単一のテープチューリングマシンほど強力ではなく、処理が複雑になるからです。
さて、たまたま既存の階層レベルと同等ではない無限状態オートマトンを見つけたら、それは興味深いかもしれません。しかし、それなしでは、無限状態オートマトンは既存の階層内で既にキャプチャされており、無限大を処理する追加の複雑さを考えると、過度に複雑なチューリングマシンモデルを回避するのと同じ方法でそれらを回避します。
決定論的有限状態マシンの(単純な)無限バージョンは強力すぎます。そのようなことはどんな言語でも「記憶する」ことができるので、それらを考慮することから学ぶことはあまりありません。
たとえば、バイナリアルファベットについて、無限の高さの完全なバイナリツリーの形式のオートマトンを考えます。入力として考えられるすべての可能な文字列は、ツリーのノードに一意に対応するため、対応するノードが状態を受け入れるようにするだけで、任意の言語のディサイダーを構築できます。