私はこれから出題される試験の問題を解決しようとしています。たとえば、この種の質問にどのように進むかなど、状況依存言語の文法を生成する方法がわかりません。
(長さを増やすだけでなく)状況依存の文法を 。
この種の質問への対処方法に関するアイデアやアプローチは高く評価されています。
私はこれから出題される試験の問題を解決しようとしています。たとえば、この種の質問にどのように進むかなど、状況依存言語の文法を生成する方法がわかりません。
(長さを増やすだけでなく)状況依存の文法を 。
この種の質問への対処方法に関するアイデアやアプローチは高く評価されています。
回答:
直感的には、一度に3つの中間シンボルを生成し、シンボルがそれ自体をソートできるようにする必要があります。しましょう開始記号です。生成規則は次のとおりです。
特定の例の答えはそこにありますが、一般的な質問は残ります。
非常に長い間、理論と応用コンピュータサイエンスの両方で、CS文法をそのように記述しなければならなかったことを思い出しません。
それでも、私がアドバイスをする場合は、CF文法を作成するようなものはまったく見られないはずです。ルールを考案してすべてを適切に配置し、作成されたとおりに正しく調整する必要があります。
CS文法ははるかにアルゴリズム的であり、必要に応じて物事を移動するために、チューリングマシン(入力サイズに比例する有限空間で動作します。つまり、線形制限オートマトン-LBA)を模倣できます。ですから、それはプログラミング演習のほうがずっと多いのです。
言語の単語の1つを構築するための最初の要素をほとんど生成してから、それらをアルゴリズムに従って移動できます。特別なシンボル(有限状態に対応するさまざまなフレーバーの場合もある)を使用して、適切なルールで移動するヘッドとして機能し、何が行われるかを確認できます。等々。
CSG言語とLBA言語、つまりCS言語の間の同等性の証明を検討することをお勧めします。
私たちが使用するほぼすべてのアルゴリズムはLBAで実行できるため、CSG定義可能な言語に対応していることを覚えておいてください。これにより、利用可能なアルゴリズム能力がわかります。
しかし、あなたが与えた例のように、ちょっとした想像力がエレガントなソリューションを助けます。
これは、一般的な解決策と考えることができる追加の回答にすぎません。CSL、状況依存言語は、LBA、線形有界オートマトンによってモデル化されています。LBAは、入力テープのサイズの定数倍以下のワークテープを指定して受け入れまたは拒否できるチューリングマシンです。したがって、一定の空間で入力を処理できるコンピュータプログラムを理解できる場合は、そのCSLです。アイデア:この問題で機能するプログラムは、定数空間で順列を列挙するようなものです。