自分自身と連結された単語の言語の文脈依存文法


9

私は以下の言語について説明文脈依存文法を探しています: L={www{a,b},|w|1}

などのルールが許可されていないため、単語の「中間」を示す非終端記号を配置できないという問題があります。問題へのトリックはありますか?Xε


1
退屈な答え:LBAを作成し、LBAと状況依存の文法が同等に強力であることを証明するために使用されるシミュレーションを適用します。
ラファエル

回答:


6

実際、特定の位置に追加の情報を追加できる簡単なトリックがあります。その位置に隣接する文字を置き換えて、情報と元の文字でマークを付けるだけです。

あなたの例では、中央に非終端がありますが、削除できないため、通常の文字として数えられます。したがって、置き換えられた文字を示すために 2つのコピーM aM bがあります。派生の最後に、マーカーは、M aaのような単純なプロダクションによって、文字の内容で置き換える必要があります。MMaMbMaa

ほとんどの場合、適用は、導出プロセスの最後に実行する必要があります。一部の構造では、これを「タイミングを合わせる」必要はありません。Mがすぐに消えると、派生は適切な位置を見つけることができず、プロセスは正常に停止しません。他の場合では、一種の制御が必要です。これは、文字に沿って移動する信号として非端末を導入することによって行われる場合があります。繰り返しますが、この信号は端子も備えている必要があります。そうでないと、同じ問題が発生します。MaaM

周りの情報を移動する、いわゆるに簡単で単調文法| α |β |)のような規則使用してX A A Xとして見ることができ、Xのを飛び越えAを。:適切な文脈依存文法1つのニーズのための3つのステップでこれを分割するX A X A XX A XA A XA A XA Xαβ|α|β|XAAXXAXAXAX,XAXAAX,AAXAX。各プロダクションでは、適切なコンテキストで1文字が変更されます。このプロセスが派生の他の部分と相互作用しないことを確認するには、かなりの想像力が必要です。たとえば、最後のステップのが最初に別の導出ステップに関与するとどうなりますか?A

ポジションよりも多くの情報がある場合、これは非常に短い単語では機能しない可能性があります。これに対する最も簡単な解決策は、構成内の短い文字列を無視して、個別に生成することです。


非ターミナルを最後に再配置する前にMa→aが使用されないように、プロダクションを特定の順序で確認する必要がありますか?それとも何か不足していますか?
MrBolton 2013

私は私の答えの中でそれにメモを追加しました。一部のソリューションでは、このような制作をあまりに早く適用すると、正常に終了できない文章フォームが作成されます。その他の場合、プロダクションは慎重に同期する必要があります。常識と試行錯誤の問題。
Hendrik Jan

1

短いデフォルトの答え:言語を受け入れるLBAを考え出して、状況依存の文法とLBAが同じ言語のセットを定義していることを証明するために使用されるシミュレーションを使用します。しかし、もちろんそれはあなたが求めているものではありません。

この特定のケースでは、右線形文法を2回使用することを考えてください。1つは左用で、もう1つは右半分用です。両方の文法が「同期」して派生していることを確認する必要があるすべて。Σ

これは、制御トークンを交換することで実行できます。つまり、左の文法はルールを選択し、フィッティングコントロールトークンを生成して、右の文法に渡します。正しい文法は制御トークンを見て、適合ルールを実行します。この方法で双方向通信を実装することもできますが、ここでは必要ありません。

Sε

これを達成する1つの方法は、LBAに関する特定の証明と同じトリックを使用することです。最初に必要になるすべての非端末を生成します。つまり、「テープ」を準備します。その後、そのテープを「移動」します。「最後に」のみ、すべての非端末を端末に置き換えます。

G=(N,Σ,δ,S)Σ={a,b}Nδ

SX^lSXraaaaababbababbbbaabbεSXlSXrXlX^r

l,r

X^lXlXγX^lγX^lXαXγXαγ

(α,γ)Σ2XaXb

XlXα

X^lγXlX^lXlγX^lγXαX^lXαγXlγXlXlXlγXlγXαXlXαγXαγXβXαXβγ

(α,β,γ)Σ3

XlγX^rXlX^rγXαγX^rXαX^rγX^rγXrXγX^rX^rγXγ

(α,γ)Σ2

Xαα

αΣ

Xαα

左側のシンボルの。これは状況依存文法では許可されていません。幸い、次ルールシミュレートできますR

ABCD



ABAYRAYRXRYRXRYRXRDXRDCD

Lk={wkwΣ}L=i1LkLkL


0

X

w|w|1ε

aXaaa,  aXbab,  bXaba,  bXbbb

w


ただし、@ hendrik-janのアプローチを使用すると、2つのルールを節約できます。
Rmnの
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.