Apakah pelengkap {www | ...} bebas konteks?

12

Sudah diketahui umum bahwa komplemen bebas konteks. Tapi bagaimana dengan komplemen ?{wwwΣ}{wwwwΣ}

domotorp
sumber
1
Saya telah menemukan bahwa ini adalah Teorema 4 dalam P. Dömösi, S. Horváth, M. Ito, L. Kászonyi, M. Katsura: Bahasa formal yang terdiri dari kata-kata primitif. link.springer.com/chapter/10.1007/3-540-57163-9_15
domotorp

Jawaban:

11

Masih CFL saya percaya, dengan adaptasi dari bukti klasik. Ini sketsa.

Pertimbangkan , yang merupakan komplemen dari , dengan kata-kata panjangnya tidak mod dihapus.L={xyz:|x|=|y|=|z|(xyyz)}{www}03

Biarkan . Jelas, adalah CFL, karena Anda dapat menebak posisi dan menganggap bahwa berakhir setelah itu. Kami menunjukkan bahwa .L={uv:|u|3|v|30u2|u|/3v|v|/3}Lpup/2L=L

  • LL w = x y z L p x py p u 3 p / 2 w v u 2 | kamu | / 3 = x p v | v | / 3 : Mari . Asumsikan ada sehingga . Kemudian tulis untuk karakter pertama , dan untuk sisanya. Secara alami, . Sekarang apa itu ? Pertama: w=xyzLpxpypu3p/2wvu2|u|/3=xpv|v|/3

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

Karenanya, dalam , ini adalah posisi: atau, dengan kata lain, posisi dalam . Ini menunjukkan bahwa .w

|u|+|v|/3=3p/2+|w|/3p/2=|w|/3+p,
pyu2|u|/3=xpyp=v|v|/3

Jika , maka biarkan menjadi karakter pertama dari , sehingga adalah ; adalah sisa dari . Lalu: karenanya sama, .ypzpu32(|w|/3+p)wu2|u|/3ypvw

|u|+|v|/3=2|w|/3+p
v|v|/3=zp

  • LL : Kami membalikkan proses sebelumnya. Biarkan . Tulis . Kemudian: Jadi , dan (karena jika adalah dari bentuk , maka harus memegang bahwa untuk semua ).w=uvLp=2|u|/3
    p+|w|/3=2|u|/3+|uv|/3=|u|+|v|/3.
    wp=u2|u|/3v|v|/3=wp+|w|/3wLwxxxwp=wp+|w|/3p
Michaël Cadilhac
sumber
2
Wow, luar biasa! Saya tidak mengklaim bahwa saya telah mengikuti setiap detail argumen Anda, seperti saya tidak melihat apa yang Anda maksud dengan baris terakhir ('Untuk yang terakhir'), atau mengapa Anda tidak memisahkan kasing ketika , tetapi solusi Anda akhirnya bekerja. Saya akan meringkas trik utama sebagai 3 a + 3 b = 2 a + ( b - a ) + 2 a + 2 b . Trik yang sama juga berfungsi untuk melengkapi setiap L r = { w r|w|/3<p/23a+3b=2a+(ba)+2a+2b . Saya ingin tahu apakah L = { x y z : | x | = | y | = | z | ( x y ) } bebas konteks atau tidak. Lr={wr}L={xyz:|x|=|y|=|z|(xy)}
domotorp
1
@domotorp: Ceria! Baiklah, "bit terakhir" tidak perlu, terima kasih! Adapun "kasus ketika ", saya tidak yakin di mana Anda maksud itu. Apakah saya melewatkan sesuatu? Adapun L ′ Anda , saya bertanya-tanya melakukan hal yang sama "bukti" ini! Belum yakin :)|w|/3<p/2L
Michaël Cadilhac
2
Oh, salahku, selalu berlaku! p/2|w|/3
domotorp
Mungkin ini bukan masalah, tapi bisa aneh, jadi Anda harus menangani kasus | kamu | = 3 p / 2 ( ? ) Ketika p ganjil. p|u|=3p/2(?)p
Marzio De Biasi
@MarzioDeBiasi: Ya, itulah mengapa ini adalah sketsa :-)
Michaël Cadilhac
10

Inilah cara saya berpikir untuk menyelesaikan masalah ini, dengan PDA. Menurut pendapat saya, secara intuitif lebih jelas.

xwww|x|0ab|w|

Kami menggunakan trik biasa menggunakan stack untuk mempertahankan integer dengan memiliki simbol "bottom-of-stack" baru , menyimpan nilai absolutsebagai jumlah penghitung pada stack, dan sgn ( ) oleh keadaan PDA. Dengan demikian kita dapat menambah atau mengurangi dengan melakukan operasi yang sesuai.tZ|t|tt

Tujuannya adalah menggunakan nondeterminisme untuk menebak posisi dua simbol yang Anda bandingkan, dan menggunakan tumpukan untuk merekam , di mana adalah jarak antara kedua simbol ini. t:=|x|3dd

Kami mencapai ini sebagai berikut: peningkatan untuk setiap simbol yang terlihat sampai simbol tebakan pertama dipilih, dan merekam di negara bagian. Untuk setiap simbol input selanjutnya, sampai Anda memutuskan Anda telah melihat , kurangi dengan ( untuk panjang input dan untuk jarak). Tebak posisi simbol kedua dan catat apakah . Terus menambah untuk simbol input selanjutnya. Terima jika (terdeteksi oleh di atas) dan .taabt213babtt=0Zab

Hal yang menyenangkan tentang ini adalah bahwa harus benar-benar jelas bagaimana memperluas ini ke kekuatan yang sewenang-wenang.

Jeffrey Shallit
sumber
2
Memang sangat rapi!
domotorp
1
Ah, memang jauh lebih baik :-)
Michaël Cadilhac
4

Perspektif yang berbeda ("berorientasi tata bahasa") untuk membuktikan bahwa komplemen dari adalah CF untuk setiap fix menggunakan properti closure.{wk}k

Pertama perhatikan bahwa dalam komplemen selalu ada sedemikian rupa sehingga . Kami fokus pada dan mulai dengan tata bahasa CF sederhana yang menghasilkan:{wk}iwiwi+1w1w2

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

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

Kemudian menerapkan penutupan di bawah homomorfisme terbalik , dan penyatuan :

Homomorfisme pertama:φ(1)a,φ(0)b,φ(1)0,φ(0)0

Homomorfisme kedua:φ(0)a,φ(1)b,φ(1)0,φ(0)0

L=φ1(L)φ1(L) masih bebas konteks

Terapkan penutupan di bawah shift siklik ke untuk mendapatkan set string panjang bukan dari bentuk :Lknwk

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

Terakhir, tambahkan rangkaian string reguler yang panjangnya tidak dapat dibagi oleh untuk mendapatkan pelengkap :k{wk}

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

Marzio De Biasi
sumber