{xy ∣ | x | = | y |、x≠y}はコンテキストフリーです


43

コンテキストフリーと思われる言語に関する次の質問に出くわしたことを覚えていますが、事実の証拠を見つけることができませんでした。おそらく質問を思い出したでしょうか?

とにかく、ここに質問があります:

言語はコンテキストに依存しません。L={バツy∣|バツ|=|y|、バツ≠y}


5
ああ、それは良いものです!<3
— ラファエル

回答:


35

要求:はコンテキストに依存しません。L

証明のアイデア:前半と後半の間に少なくとも1つの違いがなければなりません。必ず生成し、残りは任意のままにする文法を与えます。

証明:簡単にするために、バイナリアルファベット仮定します。証明は、他のサイズに簡単に拡張できます。文法Gを考えてみましょう。Σ={a、b}G

S→AB∣BAA→a∣aAa∣aAb∣bAa∣bAbB→b∣aBa∣aBb∣bBa∣bBb

それが生成することは非常に明確です

L(G)={w1⏟kバツw2v1⏟k+lyv2⏟l∣|w1|=|w2|=k、|v1|=|v2|=l、バツ≠y}⊆Σ∗;

疑わしい者はペア(x 、y )で大文字小文字を区別してとlで入れ子になった帰納を行うかもしれません。現在、w 2とv 1の通勤(直感的に言えば、w 2とv 1は両方とも単語の残りから独立して選択されたシンボルを含むため、シンボルを交換できます)。したがって、xとyは(それぞれの半分で)同じ位置にあります。これは、GのためL(G )= Lを意味しますkl(バツ、y)w2v1w2v1バツyL(G)=LG 言語に他の制限を課しません。


興味のある読者には、2つのフォローアップの問題が発生する場合があります。

演習1: PDAを考えてください!L

演習2:?{xyz∣|x|=|y|=|z|,x≠y∨y≠z∨x≠z}


この文法を使用すると、A → a B → b B a 、t h e n B → bのような文字列を生成できます。その後、Sをabbaとして取得しました。これは生の言語Lとは異なりますが、ここに間違いはありますか?S→AB A→a B→bBa、thenB→b
— George.Zhao

@ George.Zhao私は従わない。クリアリー、B 、B ∈ LとX = BおよびY = B?abba∈Lバツ=aby=ba
— ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.