Bagaimana NFA menggunakan transisi epsilon?


12

Pada gambar di bawah, saya mencoba mencari tahu apa sebenarnya yang diterima NFA ini.

masukkan deskripsi gambar di sini

Yang membingungkan saya adalah jump at .q 0ϵq0

  • Jika dimasukkan, apakah sistem pindah ke dan (status terima)?q 0 q 10q0 q1

  • Jika dimasukkan, apakah sistem pindah ke dan ?q 1 q 21q1q2

  • Apakah sistem hanya pindah ke (kondisi terima), jika tidak ada input yang diberikan (string kosong)?q1


2
Kembali ke definisi: NFA menerima kata jika ada perhitungan yang menerimanya. NFA tidak, pada dasarnya, "algoritma" dalam arti DFA.
Raphael

Jawaban:


10

Setiap kali Anda berada dalam keadaan yang memiliki transisi , itu berarti Anda secara otomatis berada di KEDUA status, untuk menyederhanakan ini kepada Anda:ϵ

Jika string adalah maka automata Anda berakhir dengan danq 0 q 1ϵq0q1

Jika string Anda '0' itu akan menjadi lagi di danq 1q0q1

Jika string Anda adalah '1', itu hanya akan berada di , karena jika Anda melihat dari titik , Anda memiliki transisi '1' ke , tetapi Anda juga harus melihat jika Anda berada di ( jika Anda berada di Anda selalu berada di juga) maka tidak ada transisi '1', jadi jalur alternatif ini hanya "mati".q 0 q 2 q 1 q 0 q 1q2q0q2q1q0q1

Hanya dengan melihat kasus-kasus ini, mudah untuk melihat bahwa automata Anda menerima , , dan dari ke , satu-satunya cara untuk mencapai adalah , jadi, ini melanjutkan automata Anda ke , ,0 q 0 q 1 q 2 0 11 1 ϵ 0 0 11 1ϵ0q0q1q20111ϵ00111

Semoga ini bisa membantu Anda, jika Anda memiliki keraguan lebih lanjut, tanyakan saja!


7
"itu berarti Anda secara otomatis berada di KEDUA" - Saya tidak berpikir bahwa itu adalah intuisi yang membantu, yaitu mewakili non-determinisme dengan cara yang salah.
Raphael

Mengapa itu salah mewakili? Nah, dengan definisi delta pada non-determinisme, Anda mendapatkan satu set negara bukannya hanya 1 dengan benar? Ini hanya dapat berarti bahwa Anda berada di kedua negara.
H_DANILO

Ini mempromosikan gagasan bahwa mesin non-deterministik "mencoba semua solusi secara paralel". Bukan itu yang terjadi, secara algoritmik. Nondeterminisme adalah formalisme deskriptif, bukan teknik algoritmik.
Raphael

Saya mencoba memasukkannya ke dalam cara yang dapat dimengerti karena dia berjuang untuk memahami prinsip-prinsip nondeterminisme secara teoretis
H_DANILO

@ Raphael Apa yang akan menjadi intuisi yang lebih bermanfaat, menurut Anda?
Andrey Portnoy

6

Dalam status tanpa membaca input apa pun, NFA tetap berada di dan (dalam semesta alternatif, jika Anda mau) , NFA juga bergerak ke status . Ini mirip dengan apa yang akan terjadi dalam NFA yang memiliki dua transisi ke status berbeda pada input karakter. Secara khusus, NFA Anda menerima string kosong, karena tanpa input, NFA Anda dapat beralih ke status penerimaan .q0q0q1q1

Melanjutkan contoh Anda, dari keadaan melihat input , itu akan mengkonsumsi simbol itu, tetap dalam status (loop) dan juga pergi ke menyatakan , dengan demikian menerima input . Dalam status membaca input , NFA akan masuk ke status . Mungkin juga tidak mengkonsumsi , mengubah ke status di alam semesta lain dan terjebak di sana (dan tidak menerima, karena tidak membaca semua input), karena tidak ada transisi dari pada .q00q0q10q01q21q1q11

Lihat apakah Anda dapat meyakinkan diri sendiri bahwa bahasa yang diterima oleh mesin ini dilambangkan dengan ekspresi reguler , yaitu string apa pun yang terdiri dari nol atau lebih s diikuti oleh tidak ada sama sekali atau dua atau lebih s.0+011101


Ngomong-ngomong, ada sebuah algoritma yang mengambil NFA dengan -moves dan menghasilkan NFA yang setara tanpa -moves, yang saya harapkan akan Anda pelajari segera.ϵϵ


-1

Saya mencoba membangun DFA untuk NFA ini

- set alfabet

QStatus- diatur

σ(Q×(ϵ))P(Q) status func

q0=q0

FQ,F={q0}

Karena setiap NFA memiliki DFA yang sama mari kita buat DFA untuk NFA yang diberikan ini.M

alfabet - sama

Q=P(Q) - menyatakan

Keadaan saat ini adalahRP(Q)

E(R) - set pengembalian pengembalian epsilon dari keadaan yang dapat dicapai lebih dari nol atau lebih - koneksi untuk setiapϵrR

σ(R,a)=rRE(σ(r,a)) -transisi

q0=E({q0})

F=P(Q)÷F

Beberapa menghitung FSM ini

1. ϵ pada input: keadaan awal termasuk sehingga FSM menerimaq0=E({q0})={q0,q1}q1ϵ

2. 0 pada input: jadi FSM menerimaσ({q0,q1},0)=E(σ(q0,0))E(σ(q1,0))={q0,q1}{}={q0,q1}0

setidaknya{ϵ,0}L(M)

Terima kasih kepada David Richerby


Terima kasih telah berterima kasih kepada saya, tetapi saya tidak benar-benar melihat bagaimana ini menjawab pertanyaan. Anda belum menetapkan bahasa apa yang diterima mesin dan Anda belum menjawab salah satu dari tiga pertanyaan yang diajukan.
David Richerby

1) ketika input (string kosong), status FSM adalah 2) ketika input adalah atau bahkan Keadaan FSM adalah kedua subjek dari pertanyaan awal, Bukankah begitu? { q 0 , q 1 } 0 0 { q 0 , q 1 }ϵ{q0,q1}00{q0,q1}
OrangeFish
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.