Lihat akhir tulisan ini untuk beberapa klarifikasi tentang definisi min-heap automata.
Orang dapat membayangkan menggunakan berbagai struktur data untuk menyimpan informasi untuk digunakan oleh mesin negara. Misalnya, push-down automata menyimpan informasi dalam tumpukan, dan mesin Turing menggunakan kaset. Mesin negara menggunakan antrian, dan yang menggunakan dua tumpukan atau kaset, telah terbukti setara dalam kekuatan untuk mesin Turing.
Bayangkan mesin min-heap. Ini berfungsi persis seperti otomat push-down, dengan pengecualian berikut:
- Alih-alih melihat hal terakhir yang Anda tambahkan ke heap, Anda hanya bisa melihat elemen terkecil (dengan urutan yang ditentukan berdasarkan per mesin) saat ini di heap.
- Alih-alih menghapus hal terakhir yang Anda tambahkan ke heap, Anda hanya bisa menghapus salah satu elemen terkecil (dengan urutan yang ditentukan berdasarkan per mesin) saat ini di heap.
- Alih-alih menambahkan elemen ke bagian atas heap, Anda hanya dapat menambahkan elemen ke heap, dengan posisinya ditentukan berdasarkan elemen lain di heap (dengan urutan yang ditentukan berdasarkan per mesin).
Mesin ini dapat menerima semua bahasa biasa, hanya dengan tidak menggunakan heap. Ia juga dapat menerima bahasa dengan menambahkan ke heap, dan menghapus 's dari tumpukan ketika membaca ' s. Itu dapat menerima berbagai bahasa bebas konteks lainnya. Namun, ia tidak dapat menerima, misalnya, (dinyatakan tanpa bukti). EDIT: atau bisakah? Saya tidak berpikir itu bisa, tapi saya pernah terkejut sebelumnya, dan saya yakin saya akan terus terkejut ketika asumsi saya untuk terus membuat saya menjadi ... well.
Bisakah ia menerima bahasa yang peka konteks atau lengkap Turing?
Secara lebih umum, penelitian apa, jika ada, yang telah ditempuh ke arah ini? Apa hasilnya di sana, jika ada? Saya juga tertarik pada varietas lain dari mesin negara eksotis, mungkin yang menggunakan struktur data lain untuk penyimpanan atau berbagai jenis pembatasan akses (misalnya, bagaimana LBA dibatasi TMs). Referensi dihargai. Saya minta maaf sebelumnya jika pertanyaan ini menunjukkan ketidaktahuan.
Definisi Resmi:
Saya memberikan beberapa definisi lebih rinci tentang min-heap automata di sini untuk menjelaskan diskusi lebih lanjut dalam pertanyaan yang merujuk materi ini.
Kami mendefinisikan otomat min-heap min-heap tipe-1 tipe-1 sebagai tupel 7 mana ...
- adalah seperangkat status terbatas, tidak kosong;
- adalah kondisi awal;
- adalah himpunan negara penerima;
- adalah alfabet input terbatas, tidak kosong;
- γ ∈ Γ w ( γ ) ∈ N w ( γ 1 ) = w ( γ 2 ) adalah alfabet input terbatas, tidak kosong, di mana bobot simbol , , sedemikian rupa sehingga ;
- adalah simbol bottom-of-the-heap khusus;
- adalah fungsi transisi.
Fungsi transisi bekerja dengan mengasumsikan tumpukan awalnya kosong yang hanya terdiri dari . Fungsi transisi dapat menambah tumpukan kumpulan sewenang-wenang (terbatas, tetapi mungkin kosong atau dengan pengulangan) elemen . Atau, fungsi transisi dapat menghapus instance elemen dengan bobot terendah dari semua elemen yang tersisa di heap (yaitu, elemen di atas heap). Fungsi transisi hanya dapat menggunakan instance simbol paling atas (yaitu, dengan berat minimum) dalam menentukan transisi yang diberikan.γ 1 , y 2 , . . . , γ k ∈ Γ γ w ( γ )
Selanjutnya, tentukan automaton min-heap deterministik tipe-1 tipe menjadi automaton min-heap tipe-1 non-deterministik yang memenuhi properti berikut: untuk semua string sedemikian sehingga dan , .| x | = n σ ∈ Σ | δ n + 1 ( q 0 , x σ y , Z 0 ) | ≤ 1
Tentukan juga automaton min-heap tipe-2 nondeterministic yang persis sama dengan automaton min-heap tipe-1 nondeterministic, kecuali untuk perubahan berikut:
- γ ∈ Γ w ( γ ) ∈ N w ( γ 1 ) = w ( γ 2 ) γ 1 = γ 2 adalah alfabet input terbatas, tidak kosong, di mana bobot simbol , , sedemikian rupa sehingga tidak selalu menyiratkan ; dengan kata lain, berbagai simbol tumpukan dapat memiliki bobot yang sama.
- Ketika instance simbol heap yang berbeda dengan bobot yang sama ditambahkan ke heap, urutan relatifnya dipertahankan sesuai dengan pemesanan seperti-in-akhir, pertama-keluar (LIFO).
Terima kasih kepada Raphael karena menunjukkan definisi yang lebih alami ini, yang menangkap (dan memperluas) bahasa bebas konteks.
Beberapa hasil menunjukkan sejauh ini:
- Tipe-1 min-heap automata mengenali serangkaian bahasa yang bukan merupakan subset atau superset dari bahasa bebas konteks. [ 1 , 2 ]
- Automata min-heap tipe-2, menurut definisi mereka, mengenali serangkaian bahasa yang merupakan superset yang tepat dari bahasa bebas konteks, serta superset yang tepat dari bahasa yang diterima oleh automata automata tipe-1 min-heap.
- Bahasa yang diterima oleh tipe-1 min-heap automata tampaknya ditutup di bawah penyatuan, penggabungan, dan bintang Kleene, tetapi tidak di bawah komplemen [ 1 ], persimpangan, atau perbedaan;
- Bahasa yang diterima oleh min-heap automata nondeterministic tipe-1 nampaknya merupakan superset bahasa yang tepat yang diterima oleh min-heap automata deterministik min-heap tipe-1.
Mungkin ada beberapa hasil lain yang saya lewatkan. Lebih banyak hasil (mungkin) dalam perjalanan.
Pertanyaan Tindak Lanjut
- Penutupan di bawah pembalikan? -- Buka
- Penutupan di bawah komplementasi? -- Tidak!
- Apakah nondeterminisme meningkatkan kekuatan? -- Iya?
- Apakah untuk tipe-2? -- Buka
- Apakah menambahkan tumpukan meningkatkan daya untuk tipe-1? - untuk (?)
- Apakah menambahkan tumpukan meningkatkan daya untuk tipe-1? -- Buka
sumber
Jawaban:
Anda dapat mengenali bahasa kanonik non-konteks-bebas (tapi peka konteks) dengan jenis mesin status ini. Inti masalahnya adalah bahwa Anda menambahkan token ke tumpukan untuk setiap karakter, dan sementara parsing karakter, Anda menambahkan token 'lebih besar' ke tumpukan, sehingga mereka hanya berakhir di bagian bawah tumpukan ketika Anda telah diurai semua karakter.a b b{anbncn | n≥1} a b b
Simbol heap adalah dan , di mana . Kita mengkonsumsi semua simbol pada input dan menambahkan simbol untuk heap. Jika kita menghadapi , kita beralih strategi: untuk setiap kita temui kemudian kita menghapus dari tumpukan dan menambahkan ke tumpukan. Ketika kita menghadapi kita harus kehabisan s untuk menghapus, dan kemudian untuk setiap di masukan tersisa kami menghapus dari tumpukan. Jika tumpukan kosong di akhir, string dalam bahasa. Jelas, kami menolak jika terjadi kesalahan.b a < b a a b b a b c a c ba b a<b a a b b a b c a c b
Memperbarui:
Bahasa tidak dapat dikenali oleh min-heap automata. Misalkan kita memang memiliki robot min-heap yang dapat mengenali . Kita melihat 'status' tempat otomat berada setelah membaca (bagian pertama dari input, jadi adalah yang berikutnya). Satu-satunya negara yang kita miliki adalah isi dari tumpukan dan negara tertentu otomat itu dalam. Ini berarti bahwa setelah mengakui , ini 'negara' kebutuhan untuk menahan informasi yang cukup untuk mencocokkan .E P A L w w R w w REPAL={wwR|w∈{a,b}∗} EPAL w wR w wR
Secara khusus, dalam rangka untuk melakukan hal ini, harus ada mungkin berbeda 'negara (di mana ), karena ada mungkin kata-kata yang terdiri dari dan karakter. Karena hanya ada sejumlah negara terbatas dan hanya sejumlah karakter heap, ini menyiratkan bahwa ada beberapa kata yang heap berisi angka eksponensial dari beberapa karakter heap, katakanlah .2n n=|w| 2n a b w x
Kami pertama-tama membuktikan teorema untuk min-heap automata deterministik, dan kemudian memperluas bukti ini ke min-heap automata non-deterministik. Secara khusus, automata deterministik yang mengenali beberapa bahasa tidak akan menempatkan dirinya dalam loop tak terbatas, yang merupakan properti yang berguna.
Kami akan membuktikan bahwa heap hanya dapat berisi paling banyak sejumlah token heap yang linier dalam jumlah karakter yang dibaca dari input. Ini dengan segera bahwa muncul beberapa kali secara eksponensial pada heap, yang melengkapi bukti bahwa tidak dapat dikenali oleh min-heap automata.x EPAL
Karena kita hanya memiliki sejumlah negara terbatas dalam otomat kita dan karena otomat deterministik tidak akan menempatkan dirinya dalam loop tak terbatas, saat membaca sinyal input, ia akan menambah paling banyak jumlah karakter heap konstan ke heap. Demikian pula, pada mengkonsumsi beberapa simbol tumpukan , itu hanya menambah paling sejumlah konstan karakter tumpukan yang ketat lebih besar dari dan hanya dapat menurunkan jumlah simbol pada stack (jika kita mendapatkan loop tak terbatas).y y y
Karena itu, mengonsumsi simbol tumpukan dapat menyebabkan penumpukan simbol tumpukan yang lebih besar (besar), tetapi karena hanya ada sejumlah jenis simbol tumpukan yang konstan, ini hanya angka konstan yang tidak bergantung pada . Ini menyiratkan bahwa jumlah simbol tumpukan paling banyak beberapa kali (besar) konstan jumlah simbol input yang dibaca sejauh ini. Ini melengkapi bukti untuk kasus deterministik.n
Dalam kasus non-deterministik, buktinya serupa, tetapi sedikit lebih rumit: daripada menambahkan paling banyak beberapa token heap ke heap, itu menambah beberapa token heap toge ke heap. Namun, poin pentingnya adalah bahwa angka ini tidak bergantung pada . Secara khusus, jika kita dapat secara non-deterministik mendapatkan simbol tumpukan yang tepat pada heap setelah mengenali (tepat untuk mengenali ), kita juga dapat secara non-deterministik memilih simbol tumpukan yang cocok dengan kata lain , dan dengan demikian mengenali , dengan demikian bertentangan bahwa otomat min-heap mengenali persis .n w wR w′ ww′R EPAL
Pembaruan 3: Saya akan membuat argumen terakhir (tentang non-determinisme) ketat. Dengan argumen di atas, harus ada sekumpulan kata tak terbatassedemikian rupa sehingga untuk setiap, setelah mengenali, heap berisielemen( perhatikan bahwa kita dapat berbicara tentangkarena kita memiliki serangkaian kata yang tak terbatas). Karena kita tidak bisa mendapatkan banyak elemen pada heap melalui cara deterministik, kita harus memiliki beberapa bentuk loop di mana pertama-tama kita secara non-deterministik memilih untuk menambahkan lebih banyak elemen ke heap (tanpa mengkonsumsi input), dan kemudian memilih untuk keluar dari ini loop, dan kita harus melewati loop inikali.W⊆{a,b}∗ w∈W w ω(|w|) O(f(|w|)) ω(1)
Ambil himpunan semua loop seperti yang digunakan oleh . Karena hanya ada menyatakan, ukuran himpunan ini adalah , dan himpunan semua himpunan bagiannya juga . Sekarang perhatikan bahwa bagian 'deterministik' dari jalur eksekusi hanya dapat berkontribusi pada dari token, yang berarti bahwa banyak jumlah eksponensial dari kata-kata yang berbeda harus memiliki jalur eksekusi yang bagian-bagian 'deterministik' berkontribusi sama. token ke tumpukan. Secara khusus, satu-satunya cara untuk mendapatkan lebih banyak token adalah dengan mengambil loop yang kami identifikasi di atas.W O(1) O(1) O(1) O(|w|)
Menggabungkan pengamatan ini, ini berarti bahwa harus ada dua kata berbeda dalam , dan katakan, yang bagian 'deterministik' dari jalur eksekusi berkontribusi token yang sama ke heap, dan yang dibedakan dengan mengambil beberapa bagian dari loop di atas beberapa kali berbeda, tetapi yang menggunakan subset loop yang sama (ingat hanya ada dari loop ini).W w1 w2 O(1)
Kami sekarang dapat menunjukkan bahwa juga dapat dikenali oleh min-heap automaton: kami mengikuti jalur eksekusi untuk seperti di atas, tetapi kami melewati loop dengan jumlah yang sama dengan jalur eksekusi untuk melewatinya. Ini mengisi min-heap dengan token sehingga diterima sebagai suffix, sehingga melengkapi buktinya.w1w2 w1 w2 w2
Pembaruan 2:
Baru terpikir oleh saya bahwa di atas berarti bahwa kita dapat mensimulasikan robot min-heap deterministik hanya menggunakan ruang logaritmik: kita menyimpan penghitung untuk setiap jenis karakter dalam min-heap. Seperti yang ditunjukkan di atas, penghitung ini paling banyak akan menjadi , dan karenanya dapat disimpan hanya menggunakan ruang (karena hanya ada jumlah konstan penghitung ini). Ini memberi kita:O(n) O(logn)
di mana adalah sekumpulan bahasa yang dikenali oleh beberapa otomat min-heap deterministik.DHAL
sumber
Inilah yang kami (yakini) ketahui:
Lihat detail dan beberapa catatan lainnya di bawah ini.
Bagian jawaban ini terkait dengan tipe-1 dan tipe-2.
Automaton min-heap (HA) dengan alfabet tumpukan yang terbatas, benar-benar dipesan menerima .L={anbncn∣n∈N}∈CSL∖CFL
Asumsi: Mirip dengan PDA, fungsi transisi kita mengkonsumsi simbol heap paling atas dan menulis kembali sejumlah simbol heap. Tumpukan awalnya berisi simbol dibedakan yang lebih besar dari semua simbol tumpukan lainnya.$
Biarkan otomat min-heap denganA=(Q,ΣI,ΣH,→,q0,QF)
Automaton menulis satu ke heap untuk setiap di input. Ketika terjadi, mengkonsumsi banyak karena ada telah , menulis ke tumpukan untuk setiap ditemukan . Ini tidak mengganggu penghitungan karena tumpukan dengan mudah menjaga di atas. Hanya setelah semua diambil dari heap diterima; hanya setelah sebanyak sebanyak (dan selanjutnya sebagai ) ditemukan, apakah menerima dengan tumpukan kosong dan keadaan akhir.a a b b a b b a a c c b a A
Oleh karena itu, .L(A)=L
Bagian jawaban ini hanya berhubungan dengan tipe-1.
Pertimbangkan himpunan palindrom bahkan dan menganggap ada HA dengan .EPAL={wwR∣w∈{a,b}} A L(A)=L
Dugaan: kami menemukan dengan dansedemikian rupa sehingga berada dalam keadaan yang sama dan memiliki konten tumpukan yang sama setelah masing-masing membaca dan . Karena menerima dan , maka A juga menerima (dan ), yang merupakan kontradiksi dengan .w1,w2∈{a,b}∗ w1≠w2 |w1|=|w2| A w1 w2 A w1wR1 w2wR2 w1wR2∉EPAL w2wR1 L(A)=EPAL
Bagian jawaban ini terkait dengan tipe-1 dan tipe-2.
Alasan yang sama yang kami gunakan pada (untuk tipe-1) dapat digunakan untuk menunjukkan bahwa bahasa konteks-sensitif tidak dalam . { w w ∣ w ∈ { a , b } ∗ } H A LEPAL {ww∣w∈{a,b}∗} HAL
Ini masih terbuka untuk tipe-1 dan tipe-2.
Faktoroids Lebih Lanjut
HA tampaknya ortogonal ke bagian dari bahasa konteks-agak ringan diterima oleh Embedded Pushdown Automata : Sementara HA dapat mensimulasikan sejumlah tumpukan tumpukan yang ditumpuk, mereka tidak dapat mensimulasikan banyak sembarang (seperti yang dapat dilakukan EPA). Namun, HA dapat mengakses simbol tumpukan paling atas saat ini tidak di atas (yang EPA tidak bisa).
sumber