✖

Keadaan tak tercapai

Automaton terhingga boleh mempunyai keadaan yang tidak mungkin dicapai. Keadaan sebegini dipanggil keadaan tak tercapai. Biasanya kita mahu membuang keadaan ini kerana keadaan ini hanya merumitkan automaton tanpa sebarang faedah.

Contoh keadaan tak tercapai

Katakan kita mempunyai automaton berikut:

Kita lihat bahawa walau apa pun yang kita lakukan, kita tidak akan sampai ke keadaan q3 kerana tiada peralihan yang menuju kepadanya. Oleh itu, kita katakan bahawa keadaan q3 tak tercapai. Persoalannya, adakah keadaan q3 boleh dicapai jika ada peralihan dari keadaan lain yang menuju kepadanya? Jika kita melukis anak panah dari salah satu keadaan q0, q1, q2, q5, keadaan itu boleh dicapai. Jika kita menambahkan satu lagi nod dan melukis peralihan daripadanya…

…sudah tentu kedua-dua keadaan q3 dan q4 tak tercapai.

Takrif keadaan tak tercapai

Pertama sekali, kita mentakrifkan keadaan yang boleh dicapai. Katakan kita mempunyai automaton terhingga A = ⟨Q, Σ, δ, q0, F⟩. Kita katakan bahawa keadaan q ∈ Q boleh dicapai jika wujud rentetan w ∈ Σ∗ yang memenuhi

⟨q0,w⟩↦∗⟨q,ε⟩.

Keadaan q ∈ Q tak tercapai jika keadaan itu tidak boleh dicapai.

Cara membuang keadaan tak tercapai

Jika automaton sudah mempunyai keadaan tak tercapai, sebaiknya keadaan itu dibuang. Kita membina automaton setara A′ = ⟨Q′, Σ, δ′, q0, F′⟩ yang tiada keadaan tak tercapai.

Kita membina set keadaan yang boleh dicapai secara berlelaran. Kita bermula dengan set S0 = {q0} kerana keadaan awal pasti boleh dicapai. Set seterusnya dibina seperti berikut:

Si={r|δ(q,a)=r bagi suatu q∈Si−1,a∈Σ}∪Si−1

Dengan kata mudah, set S0 sentiasa diberikan. Set S1 dibina dengan mengambil semua keadaan dalam set S0 dan mencari semua keadaan yang dituju oleh peralihan bagi semua simbol daripada Σ. Keadaan ini digabungkan (kesatuan) dengan set keadaan asal S0. Dengan cara yang sama kita mencari set S2 dan seterusnya. Jelas bahawa Si − 1 ⊆ Si.

Set keadaan yang boleh dicapai kemudiannya diperoleh seperti berikut:

⋃i=1∞Si

Mungkin kelihatan pelik bahawa kita cuba mencari kesatuan bagi set Si yang tak terhingga banyaknya, tetapi automaton hanya mengandungi bilangan keadaan yang terhingga. Ini bermakna pada suatu ketika, set Sj, Sj + 1 dan semua set seterusnya akan sama. Jadi, walaupun kita mengambil kesatuan bagi set yang tak terhingga banyaknya, kita boleh memperoleh set keadaan yang terhingga.

Mari kita kembali kepada automaton

dan cuba mencari set keadaan yang boleh dicapai. Kita bermula dengan menetapkan kesamaan asas

S0={q0}

Sekarang kita mengira set S1. Kita perlu mencari semua peralihan dari keadaan q0 dan menambahkan keadaan sasarannya kepada set S0. Oleh sebab q0 → a q1 dan q0 → bq2, set S1 juga mengandungi keadaan q1 dan q2:

S1={q0,q1,q2}

Seterusnya kita membina set S2. Kita lihat ke mana sahaja kita boleh pergi dari keadaan q0, q1, q2. Satu-satunya keadaan baharu ialah q5, yang boleh dicapai dari keadaan q1:

S2={q0,q1,q2,q5}

Kemudian kita membina set S3. Bolehkah kita sampai ke keadaan baharu dari keadaan q0, q1, q2, q5? Tidak boleh, jadi set S3 mengandungi unsur yang sama seperti S2:

S3={q0,q1,q2,q5}

Oleh sebab S2 = S3, maka S3 = S4 = S5 = … juga. Jika kita mengambil kesatuan semua Si, kita memperoleh set S2 kerana tiada unsur baharu yang ditambahkan dalam set seterusnya.

Oleh itu, set keadaan yang boleh dicapai bagi automaton ini ialah {q0, q1, q2, q5}. Keadaan tak tercapai diperoleh dengan beza set yang mudah:

Q∖⋃i=1∞Si

Set keadaan tak tercapai bagi automaton kita ialah {q3, q4}. Kita membuang semua keadaan tak tercapai daripada automaton A serta semua peralihan yang melibatkan keadaan tak tercapai. Maksudnya, automaton A′ = ⟨Q′, Σ, δ′, q0, F′⟩ tanpa keadaan tak tercapai yang setara dengan automaton A = ⟨Q, Σ, δ, q0, F⟩ ditakrifkan sebagai:

  • Q′=⋃i=1∞Si
  • ∀q ∈ Q′, a ∈ Σ:  δ′(q, a) = δ(q, a)
  • F′=F∩Q′=F∩⋃i=1∞Si

Sumber

Kandungan: Keadaan tak tercapai, Keadaan lewah, Peminimuman automaton