Mengapa kita harus mempelajari ketiga bentuk representasi dari automata terbatas?

9

DFA, NFA, dan epsilon NFA, ketiganya memungkinkan kami mewakili bahasa reguler tertentu. Dengan salah satu dari representasi tersebut kita dapat sampai pada ekspresi reguler yang sama, lalu mengapa kita perlu mempelajari ketiga bentuk representasi dari automata terbatas? Ada beberapa penjelasan tentang apa yang dapat dilakukan NFA yang DFA tidak bisa lakukan, yaitu NFA dapat membantu kami dalam merancang ketidakpastian. Misalnya dalam mendesain permainan (catur), kami memiliki banyak opsi untuk memindahkan karya tertentu dari lokasi tertentu yang dapat dengan mudah direpresentasikan menggunakan NFA. Tetapi apa gunanya epsilon NFA ketika hal yang sama dapat dilakukan dengan menggunakan NFA atau DFA?

Bharat Banavalikar
sumber
2
Ada lebih dari tiga. Ini hanya yang biasanya ditemukan di buku teks. Transisi Epsilon berguna untuk membuktikan teorema, tetapi saya tidak yakin saya pernah melihatnya digunakan dalam model untuk mereka sendiri.
wvxvw
3
@wvxvw, algoritma untuk menerjemahkan ekspresi reguler ke dalam NFA menggunakan transisi dengan cara yang sangat alami. Mereka bukan "hanya untuk bukti", mereka cukup alami dalam pengaturan non-deterministik. ϵ
vonbrand

Jawaban:

13

Tambahkan tata bahasa reguler untuk yang keempat. Ada yang lain ...

ϵ

Ekspresi reguler (dan juga tata bahasa reguler) adalah formalisme yang sama sekali berbeda, yang menggambarkan rangkaian bahasa yang sama. Sekali lagi, bukti dari fakta ini mengeksplorasi hubungan silang yang penting, dan merupakan contoh bahwa formalisme mungkin terlihat sangat berbeda, didasarkan pada konsep-konsep yang secara radikal berbeda, tetapi menggambarkan bahasa yang sama. Sekali lagi, dalam pengaturan yang agak sederhana.

Untuk penggunaan "dunia nyata", Anda bisa mulai dengan ekspresi reguler dan mendapatkan DFA minimal untuk pencarian berkinerja tinggi. Sirkuit digital pada dasarnya adalah DFA, memahaminya sangat penting dalam rekayasa komputer. Terakhir tetapi tidak kalah pentingnya, seringkali sistem dapat dimodelkan sebagai "berada dalam keadaan" dan "pindah ke yang lain" pada rangsangan eksternal, bahkan jika sistem sangat jauh dari DFA nyata melihatnya dengan cara ini dapat membantu memahaminya.

Ditambahkan nanti: Seperti dicatat oleh Raphael, mungkin lebih efisien untuk menafsirkan NFA secara langsung untuk pencarian, karena membuat DFA bisa mahal, dan NFA mungkin jauh lebih kecil.

vonbrand
sumber
1
"Ada yang lain" - lusinan ....
Raphael
1
Anda mungkin ingin menyebutkan bahwa NFA dapat berguna (jika DFA adalah satu-satunya alternatif) karena mereka bisa jauh lebih kecil, tetapi menggunakan satu untuk memeriksa apakah sebuah kata diterima tidak terlalu jauh lebih mahal.
Raphael
5

ada berbagai alasan untuk mempelajari berbagai bentuk / korespondensi DFA vs NFA. di sini adalah beberapa pilihan yang dipilih beberapa dari teori kompleksitas canggih.

  • NFA adalah model yang menarik untuk "komputasi paralel". seseorang dapat menganggap kemajuan status melalui NFA sebagai versi paralel dari perhitungan DFA. jadi perhitungan DFA vs NFA mencerminkan beberapa perbedaan dari komputasi sekuensial vs paralel. dengan membandingkan kedua konteks itu juga membantu untuk mempelajari kompleksitas algoritmik yang melekat dari masalah.

  • NFA sering digunakan dalam sistem pencocokan ekspresi reguler (cukup di mana-mana di seluruh bahasa khususnya yang modern yang muncul di era unix), yang biasanya memungkinkan deskripsi ekspresi reguler yang dikonversi ke NFA, dan kemudian mungkin dikonversi ke DFA untuk membantu pencarian yang lebih efisien.

  • ada beberapa masalah terbuka yang masih ada di daerah dan mereka sering dipelajari berdasarkan korespondensi DFA / NFA. lihat misalnya apakah ada masalah terbuka yang tersisa pada DFA (cstheory stackexchange). agak luar biasa, beberapa dari mereka diikat dengan bidang CS yang sangat dalam termasuk masalah P vs NP yaitu persimpangan ketidakmampuan DFA . juga area terbuka lainnya adalah mis. menghitung NFA minimal untuk DFA .

  • juga untuk beberapa wawasan terkait, lihat pertanyaan semifami / pilihan tinggi ini di cstheory.se : Apa pencerahan yang seharusnya saya dapatkan setelah mempelajari automata terbatas?

  • ada aplikasi DFA yang sangat beragam vs NFA dan korespondensi antara keduanya sering dieksploitasi di dalamnya. pencocokan pola string disebutkan di atas, tetapi konstruksi DFA / NFA sering digunakan dalam pengenalan suara (otomatis). lihat misalnya makalah yang sangat dikutip ini: Transduser Finite-State Tertimbang dalam Pengenalan Ucapan / Mohri, Pereira, Riley

vzn
sumber
2

DFA memiliki implementasi yang lebih mudah daripada NFA karena status berikutnya ditentukan oleh suatu fungsi dan NFA membantu pengguna untuk dengan mudah mengekspresikan apa yang mereka inginkan sebagai output, karena NFA dapat memilih di antara beberapa jalur. dan epsilon-NFA adalah perpanjangan dari NFA di mana transisi dapat dilakukan tanpa mengambil simbol input apa pun.

Anvita Bhat
sumber
2
meringkas: NFA menyampaikan gagasan non-determinisme, yang merupakan gagasan yang sangat mendalam ("penemunya", Michael O. Rabin dan Dana S. Scott, memenangkan penghargaan Turing untuk ide-ide ini)
Ran G.
1

Ada hal buruk tentang jumlah status DFA. Terkadang meledak .

Singkatnya, jika jumlah negara terlalu tinggi (masih terbatas tetapi kita hidup di dunia fisik.), Maka Anda harus meningkatkan tingkat abstraksi untuk mengatasi kompleksitas biaya beberapa perlambatan. Model-model lain, seperti NFA dan AFA, adalah untuk menyediakan cara yang lebih ringkas untuk mewakili bahasa reguler.

doganulus
sumber