Apa kompleksitas keadaan bahasa salinan?


10

Biarkan nomor diberikan. Pertimbangkan bahasa berikut L n = {n .Ln={ww|w{0,1}n}

Dengan kata lain, adalah himpunan string salinan dengan panjang 2 n .Ln2n

Pertimbangkan fungsi kompleksitas keadaan berikut sehingga s ( n ) adalah jumlah negara di Automata Pushdown terkecil yang mengenali L n .ss(n)Ln

Pertanyaan: Bisakah Anda secara resmi membuktikan batas bawah yang berarti untuk ?s(n)

Dugaan Saya: .s(n)=2Θ(n)

Upperbound yang dikenal: .s(n)poly(n)2n2

Aturan:

(1) Alfabet tumpukan harus biner.

(2) Pita input satu arah dan tidak dapat berhenti pada karakter input apa pun.


Saat ini saya tidak memiliki batas bawah yang berarti. Menurut saya, Anda mungkin dapat membuktikan batas bawah untuk jumlah variabel yang Anda butuhkan untuk CFG yang mengenali bahasa tersebut. Meskipun, saya bahkan tidak sepenuhnya yakin akan hal ini.
Michael Wehar

1
Intuisi saya adalah bahwa ketika Anda mendorong karakter dari tape input ke stack, Anda mengalami masalah. Jika Anda ingin mengambil bit ini nanti, Anda harus membuang semua bit yang Anda dorong di atasnya. Dengan kata lain, tampaknya tumpukan itu tidak membantu Anda karena semakin Anda mendorongnya, semakin banyak Anda terpaksa melupakannya nanti.
Michael Wehar

1
Catatan: Untuk DFA (automata tanpa tumpukan), Anda dapat membuktikan kompleksitas keadaan eksponensial lebih rendah.
Michael Wehar

1
Bisakah Anda menunjukkan batas bawah yang wajar untuk masalah sederhana ? {0k1l0k1l}
András Salamon

1
Batas atas yang lebih tepat tampaknya menyatakan. (n+3)2n/2
András Salamon

Jawaban:


10

Teknik yang dijelaskan oleh Yuval:

Apakah ada CFG ukuran polinomial yang menjelaskan bahasa terbatas ini?

(Anda juga dapat membaca: Batas bawah pada ukuran CFG untuk bahasa terbatas tertentu )

memungkinkan untuk menunjukkan dengan sangat mudah batas bawah eksponensial untuk CFG. Biarkan tata bahasa di Chomsky Normal Form untuk L n . Untuk setiap kata w { 0 , 1 } n terdapat setidaknya satu non-terminal A ( w ) menerima subword s ( w ) dari w w memiliki panjang antara n / 2 dan n . Biarkan p ( w ) menjadi posisi dalam w wGLnw{0,1}nA(w)s(w)wwn/2np(w)wwdi mana subword ini terjadi. Setidaknya ada bit yang umum untuk semua kata w , w sehingga A ( w ) = A ( w ) dan p ( w ) = p ( w ) . Akibatnya, paling tidak ada 2 n / 2 kata yang memiliki A ( w ) dan p ( w ) yang sama . Karenanya setidaknya ada 2n/2w,wA(w)=A(w)p(w)=p(w)2n/2A(w)p(w) bukan terminal.2Θ(n)

Selain itu, PDA dapat dikonversi menjadi CFG di CNF, dengan ukuran polinomial sehingga ini juga memberikan terikat pada kompleksitas keadaan L n .2Θ(n)Ln


Luar biasa, terima kasih lagi! Saya melihat sekarang dan akan memikirkannya untuk mengonfirmasi. :)
Michael Wehar

2
Benar lagi: mengubah panjang dari ke [ n / 2 , n ] memperkenalkan masalah lain. Saya harus memperbaiki argumen dengan cara yang mirip dengan Yuval (menghitung tumpang tindih). Sekarang saya percaya itu benar, akhirnya. Saya mengedit jawabannya dan menghapus komentar saya[n,2n][n/2,n]
Joseph Stack

1
Seandainya itu membantu orang lain: perhatikan bahwa sekali telah dipilih, A ( w ) hanya dapat menghasilkan satu kata kunci w w yang dimulai pada posisi p ( w ) . Jadi ini sebenarnya menunjukkan bahwa CNF-CFG yang benar untuk bahasa ini harus memiliki banyak nonterminal yang masing-masing menghasilkan subword panjang yang tunggal. (A(w),p(w))A(w)wwp(w)
András Salamon

2
Lihat juga Teorema 7 di makalah saya: cs.toronto.edu/~yuvalf/CFG-LB.pdf .
Yuval Filmus

1
@YuvalFilmus Perlu juga dicatat bahwa Andras menghabiskan sedikit waktu mencoba untuk mendapatkan batas atas dan bawah yang cocok. Teman saya, Pepe, dan saya mendefinisikan kelas umum bahasa terbatas dan menerapkan tekniknya pada mereka. Kami tidak pernah menulis apa pun. Jika Anda memiliki masalah terkait, kami akan berkolaborasi lebih dari cukup. Terima kasih lagi.
Michael Wehar
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.