{www |の補足です …}コンテキストフリー?


12

これは、の補数ことはよく知られている{wwwΣ}文脈自由です。しかし、何の補数について{wwwwΣ}


1
これがP.Dömösi、S。Horváth、M。Ito、L。Kászonyi、M。Katsuraの定理4であることがわかりました。原始的な単語で構成される形式言語。link.springer.com/chapter/10.1007/3-540-57163-9_15
domotorp

回答:


11

それでもCFLは、古典的な証明を改造したものだと思います。これがスケッチです。

検討L={xyz:|x|=|y|=|z|(xyyz)}の補体である、{www}長さの言葉ではなく、0 MOD 3を除去しました。

してみましょうL={uv:|u|3|v|30u2|u|/3v|v|/3}。明らかに、LはCFLです。これは、位置pを推測して、uがその後p/2終わると考えることができるためです。L=Lことを示します。

  • LL:レッツw=xyzL。そこだと仮定しpようにxpyp。次に、書き込みuための3p/2の最初の文字w、及びv残りの。当然、u2|u|/3=xp。今、何v|v|/3?最初:

|v|/3=(|w|3p/2)/3=|w|/3p/2.

したがって、wでは、これは位置です

|u|+|v|/3=3p/2+|w|/3p/2=|w|/3+p,
又は、換言すれば、位置pにおけるy。これは、 u2|u|/3=xpyp=v|v|/3

場合ypzp、次いでせu最初に32(|w|/3+p)の文字wように、u2|u|/3ypです。vは残りのwです。次に:

|u|+|v|/3=2|w|/3+p
したがって、同様に、v|v|/3=zp

  • LL:私たちは前のプロセスを逆転。してみましょうw=uvL。書き込みp=2|u|/3。次に:
    p+|w|/3=2|u|/3+|uv|/3=|u|+|v|/3.
    したがって、wp=u2|u|/3v|v|/3=wp+|w|/3、及びwL(場合のでw形態であるxxx、それは保持しなければならないwp=wp+|w|/3すべてについてp)。

2
わあ、すごい!私はあなたが最後の行であなたが何を意味しているのか分からない( 'For the last bit')のか、なぜあなたが大文字小文字を区別しないのかなど、私があなたの議論のすべての詳細に従ったとは主張しませんですが、最終的にはソリューションは機能します。主なトリックは3 a + 3 b = 2 a + b a + 2 a + 2 bとして要約します。同様のトリックは、任意のL r = { w rの補数でも機能します|w|/3<p/23a+3b=2a+(ba)+2a+2b。私はだろうか、Lが' = { xはY Zは| x | = | y | = | z | x y }はコンテキストフリーかどうか。Lr={wr}L={xyz:|x|=|y|=|z|(xy)}
domotorp

1
@domotorp:乾杯!了解しました。「最後のビット」は不要でした。ありがとう!「」については、どこを意味するのかわかりません。私は何か見落としてますか?あなたのL ′については、私はこれを "証明"するのと同じことを考えました!まだ|w|/3<p/2L
わかり

2
ああ、私の悪い、常に保持します!p/2|w|/3
domotorp

おそらくそれは問題ではありませんが、が奇数になる可能性があるため、ケースを処理する必要がありますu | = 3 p / 2 pが奇数の場合。p|u|=3p/2(?)p
Marzio De Biasi

@MarzioDeBiasi:このスケッチで正確になぜはい、です:-)
ミカエルCadilhac

10

これが私がこの問題をPDAで解決することについて考える方法です。私の意見では、それは直感的により明確です。

xwww|x|0ab|w|

tZ|t|tt

t:=|x|3dd

taabt213babtt=0Zab

これの良い点は、これを任意のパワーに拡張する方法を完全に明確にする必要があることです。


2
確かに、とてもきちんとしています!
domotorp

1
ああ、確かにずっといいです:-)
ミハエルキャディラック

4

{wk}k

{wk}iwiwi+1w1w2

L={a00...0w1b00...0w2...000...0wk|wi|=n}={a0n1b0n(k1)1}

k=3L={ab0,a0b000,a00b00000,...}GL={Sab0|aX00,X0X00|0b0}

次に、逆準同型ユニオンの下でクロージャを適用します。

φ(1)a,φ(0)b,φ(1)0,φ(0)0

φ(0)a,φ(1)b,φ(1)0,φ(0)0

L=φ1(L)φ1(L)

Lknwk

L=Shift(L)={uuwk|u|=kn}

最後に、補数を正確に取得するために、長さがで割り切れない通常の文字列のセット追加します。k{wk}

L{{0,1}nnmodk0}={uuwk}

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