Jika tidak, lalu apa artinya bila untuk beberapa negara dan beberapa simbol a , δ ( q , a ) tidak ada?
terminology
automata
finite-automata
Duncan
sumber
sumber
Jawaban:
Anda sepertinya menemukan masalah yang kontroversial. Tampaknya para ilmuwan komputer suka berdebat. Saya tentu suka berdebat, jadi begini!
Jawaban saya adalah tegas: Tidak. Automata terbatas deterministik tidak memerlukan transisi dari setiap negara untuk setiap simbol. Arti ketikaδ(q,a) tidak ada hanyalah bahwa DFA tidak menerima string input.
Meskipun Anda dapat membuat definisi DFA yang mensyaratkan bahwaδ(q,a) memang ada, itu sama sekali bukan kasus bahwa transisi yang hilang membuat struktur yang dihasilkan (apa pun Anda menyebutnya) dengan cara apa pun nondeterministik karena banyak komentator mengklaim. Jika Anda mengambil kursus tentang teori automata maka topik berikutnya adalah bahasa bebas konteks dan automata push-down di mana perbedaan antara automata deterministik dan deterministik bersifat kritis, dan Anda perlu menggunakan definisi non-determinisme yang benar.
Non-determinisme dikaitkan dengan memiliki lebih dari satu transisi hukum.
Saya pikir kita semua setuju dengan definisi Wikipedia berikut (yang akan saya tunjukkan hanya dalam beberapa detik sedikit ambigu):
Otomat terbatas deterministikM adalah 5-tupel, ( Q , Σ , δ , q0 , F ), yang terdiri dari
Misalkanw=a1a2⋯an menjadi string di atas alfabet Σ . Otomat M menerima string w jika urutan status, r0,r1,…,rn , ada di Q dengan kondisi berikut:
Ambiguitas, dan kontroversi mengenai definisi fungsi transisi,δ (angka "3" dalam daftar berpoin pertama ). Kita semua sepakat bahwa yang membedakan DFA dari NFA adalah bahwa δ adalah fungsi daripada hubungan . Tetapi δ suatu fungsi parsial atau total fungsi ?
Definisi DFA berfungsi dengan baik jikaδ adalah fungsi parsial. Diberikan string input, jika Anda mencapai keadaan qsaya dengan simbol input Sebuahj mana tidak ada keadaan berikutnya maka automata tidak dapat menerima.
Apalagi ketika Anda memperluas definisi ini untuk membuat definisi automata push-down itu akan menjadi kasus bahwa Anda harus membuat perbedaan bahwa push-down automata dengan fungsi transisi yang fungsi parsial diklasifikasikan sebagai deterministik, bukan deterministik.
Jika fungsi parsial mengganggu Anda maka di sini ada transformasi sepele yang menjadikanδ fungsi total. (Transformasi ini tidak seperti algoritma konstruksi subset, ia menambahkan paling banyak O (1) menyatakan, linier dalam jumlah asli negara, dan dapat diperluas untuk bekerja dengan PDA. Tidak satu pun dari fakta itu yang benar dari algoritma konstruksi subset .)
Automata ini memilikiδ yang merupakan fungsi total dan menerima dan menolak set status yang sama persis dengan yang diterima dan ditolak automata asli Anda.
Edit, Januari 2019
Commenter @Alex Smart mengkritik saya karena tidak memberikan referensi, atau untuk menjelaskan mengapa kita harus peduli. Jadi begini:
Alasan kami peduli tentang definisi pasti determinisme vs non-determinisme, adalah bahwa beberapa kelas automata non-deterministik lebih kuat daripada sepupu deterministik mereka, dan beberapa kelas automata non-deterministik tidak lebih kuat daripada sepupu deterministik mereka. Untuk automata terbatas dan mesin Turing, varian deterministik dan non-deterministik memiliki kekuatan yang setara. Untuk pushdown automata ada bahasa di mana perbedaannya penting: Ada NPDA yang menerima bahasa, dan tidak ada DPDA yang menerima bahasa. Untuk automata terbatas linear pertanyaannya adalah (atau terakhir kali saya periksa) terbuka. Peningkatan daya NPDA atas DPDA berasal dari memungkinkan banyak transisi, bukan dari mengubah fungsi transisi dari fungsi total ke fungsi parsial.
Buku-buku dari komunitas kompiler:
Aho dan Ullman, Principles of Compiler Design , 1977: Pertama mendefinisikan NFA (halaman 88) dengan hubungan transisi, lalu (hlm. 90-91):
Aho, Sethi, dan Ullman, Compiler, prinsip, teknik, dan alat , cetak ulang tahun 1988, serupa, pertama mendefinisikan NFA dengan relasi transisi, kemudian (hlm. 115-116):
(Perhatikan bahwa dalam komentar @Alex Smart, “naga secara khusus menyebutkan bahwa fungsinya total.” Saya berasumsi dia sedang berbicara tentang edisi selanjutnya dengan penulis bersama Lam, yang saat ini tidak saya akses. )
Appel, Implementasi Kompiler Modern di Jawa , 1988 (p. 22):
Appel kemudian menjelaskan bahwa ketika menggunakan DFA untuk mengenali kecocokan terpanjang, kami secara eksplisit menggunakan transisi yang hilang untuk memutuskan kapan harus berhenti (p. 23):
Buku-buku dari komunitas switching-theory:
Kohavi, Switching and Finite Automata Theory, 2 / e , 1978, hlm. 611 mengatakan:
Saya biasanya akan menafsirkan secara unik berarti "tepat satu", bukan "tidak lebih dari satu". (Yaitu, Kohavi tampaknya mengatakan bahwa determinisme membutuhkan fungsi total)
Buku-buku dari komunitas teori komputasi:
Di sini tampaknya lebih umum untuk mendefinisikan DFA sebelum NFA, dan mengharuskan DFA memiliki fungsi transisi total, tetapi kemudian mendefinisikan NPDA sebelum DPDA, dan mendefinisikan "determinisme" sebagai pembatasan hubungan transisi untuk tidak memiliki lebih dari -Satu entri untuk setiap pasangan negara / simbol.
Hal ini berlaku untuk Hopcroft dan Ullman, 1979, Lewis dan Papadimitriou, 1981, dan, terutama Sipser, 2006, yang menggunakan definisi DFA secara pedagogik untuk memperkenalkan definisi formal yang tepat, dan menjelaskan pentingnya mereka dan secara eksplisit mengatakan (hal.36):
Menariknya Rabin dan Scott, juga mendefinisikan automata terbatas non-deterministik dalam hal fungsi total! Page 120, Definisi 9:
Yaitu: fungsi transisi menjadi total tidak membuat sistem menjadi deterministik!
Sipser 2006 mengikuti Rabin dan Scott dan menggunakan fungsi transisi total dari state / simbol ke power set state untuk definisinya tentang automata terbatas non-deterministik, PDA non-deterministik, dan Mesin Turing non-deterministik, tetapi mengabaikan topik deterministik PDA.
Baik Hopcroft dan Ullman, 1979, dan Lewis dan Papadimitriou, 1981 menggunakan fungsi parsial dalam definisi mereka tentang PDA deterministik. Mereka pertama mendefinisikan NPDA dengan hubungan transisi, dan kemudian ketika mereka sampai ke PDA, Lewis dan Papadimitriou mengatakan (hal. 135),
Sementara Hopcroft dan Ullman mengatakan (hlm. 112):
sumber
Dalam hal komputabilitas, NFA setara dengan DFA - ada algoritma untuk mengkonversi dari NFA ke DFA, dan DFA hanya sepele NFA yang tidak menggunakan nondeterminisme, sehingga mereka berdua menentukan set bahasa reguler.
sumber
Ada definisi DFA di sepanjang baris
Dalam hal ini, Anda tidak memerlukan semua transisi. Jika otomat tidak memiliki transisi yang cocok dengan simbol input berikutnya, ia menolak.
Merupakan latihan yang bagus untuk menunjukkan bahwa kedua definisi tersebut setara dalam hal bahasa mana yang dapat diterima.
sumber
Dalam definisi DFA, setiap negara harus memiliki semua alfabet yang dalam £. Sebagai contoh jika £ = {a, b, c} dan Q = {q0, q1, q2}, semua status ini harus memiliki semua simbol a, b, c yang bertransisi ke keadaan lain atau keadaan yang sama.
sumber
Jawaban paling sederhana untuk ini adalah, Anda menambahkan status mati untuk simbol kiri . Seperti dalam konversi dari NFA ke DFA, kita mendapatkan Φ transion untuk beberapa simbol, yang menandakan kita membuat status Mati untuk itu.
sumber