Apakah {ww '| HamDist (w, w ')> 1} bebas konteks?


13

Setelah membaca pertanyaan terakhir "Apakah komplemen bebas konteks?" {www...}; Saya ingat masalah yang sama yang tidak bisa saya tolak:

Apakah konteks gratis?L={www,w{0,1}|w|=|w|HamDist(w,w)>1}

Di sini kita mensyaratkan bahwa dua string berbeda setidaknya dalam dua posisi (jarak Hamming harus lebih besar dari ).1

Ini bebas konteks jika kita mengharuskan HamDist(w,w)1 (yaitu dua string harus berbeda).

Saya menduga bahwa bahasa tersebut tidak bebas konteks: jika kita memotongnya dengan 0101010 biasa * ^ 10 ^ * 10 ^ * 10 ^ * kita mendapatkan kasus di mana PDA harus "mengingat" dua posisi dalam urutan terbalik setelah mencapai setengah dari string.

Pembaruan: jika kita memotong L dengan R={0101010} kita mendapatkan bahasa bebas konteks seperti yang ditunjukkan oleh domotorp dalam jawabannya; LR sedikit lebih kompleks dengan R={01010101010} (satu lagi 1 untuk "melacak") masih menyarankan bahwa L seharusnya tidak bebas konteks.


LR sebenarnya lebih mudah, karena itu persis kata-kata yang bukan dari (berpotongan dengan ). wwR
domotorp

@domotorp: benar! diubah menjadi ganjil detik (kecuali jawaban Anda dapat disesuaikan juga dengan , untuk ganjil tetap )1{(010)k}k
Marzio De Biasi

Satu komentar terakhir: Ini tidak membantu untuk memulai dengan memimpin nol, karena bahasa bebas konteks ditutup untuk semua jenis perubahan siklik. Anda bisa mendorong mereka ke tumpukan, tandai yang terakhir dengan simbol khusus, lakukan sisa algoritma dengan berpura-pura bahwa tumpukan dimulai di sana, dan pada akhirnya kosongkan. (Ini menggunakan transisi , tapi itu juga mudah bahwa PDA seperti itu setara dengan yang tanpa.)ϵ
domotorp

mungkin lebih mudah untuk memikirkan alfabet {0,1,2} dan mempertimbangkan string dengan tepat dua 1 dan dua 2. Ini bukan dalam bahasa Anda jika jarak antara 1s dan jarak antara 2s keduanya n.
Kaveh

Jawaban:


4

Persimpangan dengan kata panjang genap bebas konteks, karena PDA dapat mengingat dua posisi, dengan cara tertentu. Bagaimanapun, mari kita lihat apa bahasa ini. Komplemennya adalah . Oleh karena itu, . Kita dapat menulis ulang ini sebagai .R={0101010}L R L = { 0 a 10 b 10 c 10 db = n / 2 c = n / 2 a + d = n / 2 } L = { 0 a 10 b 10 c 10 dLRL={0a10b10c10db=n/2c=n/2a+d=n/2}L={0a10b10c10dbn/2cn/2a+dn/2}L={0a10b10c10db>n/2c>n/2a+d>n/2b,c,a+d<n/2}

kasus pertama dapat dengan mudah diverifikasi, dan begitu juga yang keempat.3

b>n/2 : Mulai masukkan ke dalam tumpukan sampai yang pertama, kemudian mulai muncul dari tumpukan sampai kosong. Setelah kosong, mulai lagi masukkan ke dalam tumpukan sampai kita mencapai yang kedua.

c>n/2 : Sama.

a+d>n/2 : Mulai masukkan ke dalam tumpukan sampai yang pertama, kemudian mulai muncul dari tumpukan sampai kosong. Setelah kosong, mulai lagi masukkan ke stack sampai kita mencapai yang ketiga.

b,c,a+d<n/2 : Mulai masukkan ke dalam tumpukan sampai yang pertama, kemudian mulai muncul dari tumpukan sampai tidak kosong. Setelah kosong, mulai lagi masukkan ke dalam tumpukan sampai kita mencapai (tebak non-deterministik, di suatu tempat antara kedua dan ketiga 1). Sejak saat itu pop stack.a+n/2


Terima kasih domotorp, saya membaca ide Anda; Saya pikir adalah (dua 1s di bagian kiri) satukan kebalikannya (dua 1s di bagian kanan). Jadi bagaimana Anda mendapatkan ? { 0 a 1 0 b 1 0 c 0 c 1 0 d( n / 2 = a + b + c = c + d + 1 ) [ ( a = c ) ( c = D ) } b = n / 2 RL{0a10b10c0c10d (n/2=a+b+c=c+d+1)[(a=c)(c=d)}b=n/2c=n/2a+d=n/2
Marzio De Biasi

1 b = n / 2 c = n / 2 b + c = n / 2 a + d = n / 2 ± 1RL adalah bahwa HamDist paling banyak . Ini terjadi persis jika dua dari tiga pertandingan 1, yaitu, satu berada di posisi yang sama di babak pertama, seperti yang lain di babak kedua. Jika kedua 1 ini adalah yang pertama dan kedua, maka kita mendapatkan , jika mereka adalah yang kedua dan ketiga, kita mendapatkan , dan jika mereka adalah yang pertama dan ketiga, kita mendapatkan , atau ekuivalen, (di mana saya curang sedikit dengan beberapa konstanta 's). 1b=n/2c=n/2b+c=n/2a+d=n/2±1
domotorp

Apakah ini menjawab pertanyaan lengkap?
Michaël Cadilhac

@domotorp: ok saya mengerti, terima kasih! Keraguan lain: dari (yang tidak masalah) Anda menulis tetapi, apakah ini setara dengan: ? ( dihilangkan)L R = { . . . b > n / 2 c > n / 2 b , c < n / 2 } L R = { . . . ( b < n /LR={...bn/2cn/2...}LR={...b>n/2c>n/2b,c<n/2}LR={...(b<n/2b>n/2)(c<n/2c>n/2)}a+d
Marzio De Biasi

@Michael: No. 
domotorp
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.