Di kelas profesor kami menunjukkan kepada kami 3 metode untuk membuktikan ketidakteraturan:
- Teorema Myhill – Nerode
- Memompa Lemma untuk bahasa reguler
- Bukti ketidakteraturan, berdasarkan kompleksitas Kolmogorov
Sekarang dua yang pertama, teorema Myhill-Nerode dan Pumping lemma, saya mengerti dengan baik dan saya juga bisa melakukan latihan dengan dua metode pertama. Tapi saya tidak mengerti yang ketiga. Definisi metode ketiga adalah sebagai berikut:
Membiarkan menjadi bahasa biasa. Membiarkan untuk setiap. Lalu ada konstanta, sedemikian rupa untuk semua
jika adalah kata ke-n dalam bahasa .
Sekarang saya tidak mengerti bagaimana menggunakan teorema ini untuk membuktikan bahwa suatu bahasa tidak teratur, saya tidak begitu mengerti konsepnya. Kami menggunakan kompleksitas kolmogorov sebelumnya untuk menentukan panjang program komputer terpendek dari suatu objek. Bagaimana seseorang membuktikan ketidakteraturan dengan teorema ini? Dan apa pemikiran di baliknya?
Terima kasih banyak!
Contoh lain yang sangat mudah adalah sebagai berikut: gunakan kompleksitas Kolmogorov untuk membuktikannyaLww={ww∣w∈{0,1}∗} tidak teratur.
Saya memberi Anda bukti yang sangat informal dengan harapan hal itu dapat membantu Anda lebih memahami peran kompleksitas Kolmogorov.
Ide kuncinya adalah sebagai berikut: automata terbatasD (yang mengenali bahasa biasa LD ) memiliki jumlah "memori" terbatas; jadi berjalan pada string inputx=yz ketika telah "memproses" bagian pertama dari input y keanggotaan x di LD hanya bergantung pada kondisi saat ini dan bagian kedua dari input z .
Sekarang anggaplah ituLww teratur; maka ada DFADww yang mengenalinya.
Membiarkany menjadi string yang panjangnya tak tertandingi |y|=n≫|D|
Untuk semua inputx=yz , di akhir bagian pertama y , DFA Dww jelas akan berada di negara yang sama qi , dan dengan hipotesis itu hanya akan menerima jika bagian yang tersisa z adalah seperti itu x=yz dapat dibagi menjadi dua bagian yang sama (mis yz=ww ); sebagai contoh
Tetapi penting untuk memperhatikan bahwa hanya ada satu stringz panjangnya |y| yang diterima (z=y ).
Jadi diberikan deskripsiDww , negara qi pada akhir y , dan panjangnya |y| kita dapat mensimulasikan perilaku Dww pada semua 2|y| string dan melihat mana dari mereka itu menerima ... tetapi ia menerima persis z=y .
Begitu juga dengan program ukuranℓ=|Dww|+logi+logy+c
(|Dww| ruang diperlukan untuk menyimpan deskripsi Dww ,
logi ruang untuk menyimpan qi , logy ruang untuk menyimpan panjang y , c ruang diperlukan untuk instruksi yang mensimulasikan DFA)
kita dapat "merekonstruksi" stringy ; tapi cukup besary kita punya ℓ<|y| yang merupakan kontradiksi karena y tidak tertahankan.
sumber