言語を認識するチューリングマシンを無制限の文法に変換するにはどうすればよいですか?


19

このウィキペディアの記事によると、無制限の文法はチューリングマシンと同等です。この記事では、あらゆるチューリングマシンを無制限の文法に変換できると述べていますが、文法をチューリングマシンに変換する方法のみを示しています。

どうすれば実際にそれを行い、認識言語を認識するチューリングマシンを無制限の文法に変換できますか?遷移規則を文法規則に置き換えようとしましたが、チューリングマシンにはさまざまな状態の構成もあります...L

回答:


9

チューリングマシンのテープコンテンツを文型でエンコードします。非端末の特別なセットが現在の状態をエンコードします。TMが現在指しているシンボルの右側に配置された、いつでもセンテンス形式でそれらの1つのみが存在できます。

2番目の重要な考え方は、プロセスを逆にする必要があるということです。TMは入力として単語を受け取り、それをまたは変換するか、終了しない。ただし、文法では単語を生成する必要があります。幸いなことに、文法は本質的に非決定的であるため、受け入れがどこから来たのかを「推測」させることができます。その場合、TMに受け入れさせるすべての単語を生成できます。101

ましょう状態非終端記号の集合。、開始状態の非終端記号とし、を受け入れ状態の非終端記号のセットとします。まず、受け入れ可能なすべての構成を生成する開始ルールが必要です。Q={Q0,…,Qk}Q0QF⊆Q

S→#1Qf#すべてのため。Qf∈QF

同様に、正しい状態、つまり最初のシンボルで開始状態に「到達」すると終了します。

#aQ0→#aはすべてです。a∈Σ

実際の状態遷移の変換は簡単です。

aQ→cQ′  for a,c∈Σ∧(a,Q,N)∈δ(c,Q′)aQb→acQ′ for a,b,c∈Σ∧(b,Q,L)∈δ(c,Q′)abQ→cQ′b for a,b,c∈Σ∧(a,Q,R)∈δ(c,Q′)

いくつかの技術的な欠点があります。たとえば、最後にある境界マーカーを削除する必要があります。それは、終了する代わりに2つの特別な非端末を生成し、それらを最後に交換してから、それらと一緒に削除することで実行できます。さらに、より多くのをオンデマンドで作成する必要があります。を使用したルールのハッキングが必要です。###d=#

また、TMが非入力シンボルを使用する場合、構築は少し複雑になります。その場合、終了規則が間違っている可能性があります。テープのどこかに非入力シンボルがある場合、適切な単語を生成していません。これはを削除するのと同様に修正できますから特別な非端末をします。これは右にスワップされ、すべてのシンボルがからのものである場合にのみ削除されます。#Q0Σ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.