✖

Keadaan lewah

Automaton terhingga boleh mempunyai keadaan yang tidak mungkin membawa ke keadaan akhir, jadi keadaan itu tidak berguna. Keadaan sebegini dipanggil keadaan lewah. Biasanya kita mahu membuang keadaan ini kerana keadaan ini hanya merumitkan automaton tanpa sebarang faedah.

Contoh keadaan lewah

Katakan kita mempunyai automaton terhingga berikut:

Kita lihat bahawa sebaik sahaja kita sampai ke keadaan q4 atau q5, kita tidak akan dapat sampai ke salah satu keadaan akhir q1 atau q2. Oleh itu, keadaan ini lewah dan boleh dibuang begitu sahaja. Hasilnya ialah automaton baharu yang setara, iaitu automaton yang menerima bahasa yang sama. Selepas keadaan lewah dipadamkan, automaton itu kelihatan seperti berikut:

Automaton ini tetap menerima bahasa yang sama. Namun, ada kalanya keadaan lewah memang berguna — misalnya apabila kita membina automaton lengkap.

Takrif keadaan lewah

Katakan kita mempunyai automaton terhingga A = ⟨Q, Σ, δ, q0, F⟩. Kita katakan bahawa keadaan q ∈ Q lewah jika tidak wujud sebarang rentetan w ∈ Σ∗ dan sebarang keadaan qf ∈ F yang memenuhi

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

Cara membuang keadaan lewah

Kita anggap bahawa input ialah automaton A = ⟨Q, Σ, δ, q0, F⟩ yang sudah tiada keadaan tak tercapai. Kita mencari keadaan yang menuju ke keadaan akhir satu demi satu, kemudian keadaan yang menuju ke keadaan yang menuju ke keadaan akhir, dan begitulah seterusnya. Dengan cara ini kita memperoleh set semua keadaan yang tidak lewah. Pada mulanya kita tetapkan S0 = F. Kita membina set seterusnya Si bagi i ∈ ℕ mengikut peraturan berikut:

Si={q∈Q|∃a∈Σ:δ(q,a)∈Si−1}∪Si−1

Set semua keadaan yang tidak lewah yang terhasil boleh dinyatakan seperti berikut:

⋃i=1∞Si.

Set keadaan lewah pula ialah

Q∖⋃i=1∞Si.

Dengan kata lain: jika Si = Si + 1, maka set Q ∖ Si mengandungi keadaan lewah. Kita menggambarkan langkah-langkahnya dengan automaton berikut:

Pertama sekali, kita tetapkan S0 = {q1, q2}. Seterusnya kita membina set S1 dengan menambahkan kepada set S0 semua keadaan yang menuju ke salah satu keadaan dalam set S0. Jadi, kita menambahkan keadaan q0 dan q3 kerana terdapat peralihan dari q0 ke q1 dan dari q3 ke q2. Kita memperoleh S1 = {q0, q1, q2, q3}. Oleh sebab S0 ≠ S1, kita teruskan.

Kita membina set S2. Kita mencari semua keadaan yang boleh menuju ke S1 tetapi belum berada dalam S1. Hanya ada satu keadaan sebegini, iaitu q6, yang boleh menuju ke keadaan q3. Kita memperoleh S2 = {q0, q1, q2, q3, q6}. Oleh sebab S1 ≠ S2, kita teruskan.

Kita membina set S3. Adakah terdapat keadaan baharu yang boleh menuju ke mana-mana keadaan dalam S2? Tiada. Dari keadaan q4 dan q5 kita tidak dapat sampai ke mana-mana keadaan dalam S2, dan keadaan yang lain sudah berada dalam S2. Oleh itu, S3 = {q0, q1, q2, q3, q6}. Oleh sebab S2 = S3, algoritma berakhir, dan set S2 ialah set keadaan yang tidak lewah. Set {q4, q5} ialah set keadaan yang lewah.

Secara formal, automaton setara baharu tanpa keadaan lewah dibina seperti berikut. Kita mempunyai automaton A = ⟨Q, Σ, δ, q0, F⟩ dan membina automaton setara A′ = ⟨Q′, Σ, δ′, q0, F⟩ tanpa keadaan lewah.

  • Q′=⋃i=1∞Si
  • ∀q ∈ Q′, a ∈ Σ:  δ′(q, a) = δ(q, a) jika δ(q, a) ∈ Q′; jika tidak, δ′(q, a) tidak ditakrifkan

Sumber

Kandungan: Keadaan tak tercapai, Keadaan lewah, Peminimuman automaton