✖

Otomatın En Küçük Hâle Getirilmesi

Otomatın en küçük hâle getirilmesi, durum sayısı mümkün olan en az olan denk bir otomat bulmak demektir. Gereksiz durumu olmayan bir otomat bile daha da sadeleştirilebilir.

Örnek

Şu otomatı ele alalım:

Otomat yalnızca 01 ve 11 sözcüklerini kabul ediyor. Aynı dili kabul eden, üç durumlu daha basit bir otomatın bulunduğu açık. q1 ve q2 durumları, yeni bir {q1, q2} durumunda birleştirilebilir; q1 ya da q2 durumlarına giden geçişler yeni duruma gider, q1 ve q2 durumlarından çıkan geçişler için de aynısı geçerlidir. Şu otomatı elde ederiz:

Bu otomat, bir öncekiyle aynı dili kabul ediyor ve üstelik daha az durumu var.

Durumların Denkliği

A = ⟨Q, Σ, δ, q0, F⟩ bir otomat olsun. q ∈ Q durumunun dilini tanımlayalım ve L(q) ile gösterelim:

L(q)=L(⟨Q,Σ,δ,q,F⟩)

Yani A otomatının başlangıç durumunu q0 yerine q yaparız ve bu otomatın kabul ettiği dili buluruz. Başka bir deyişle, L(q) dili, A otomatında q durumundan w sözcüğüyle otomatın bir kabul durumuna ulaşılan tüm w sözcüklerinden oluşur. Önceki otomata dönersek L(q1) = {1} olur.

İki farklı q1 ve q2 durumu için şu geçerliyse bunlara denk diyoruz:

L(q1)=L(q2)

Bu ne demek? q1, q2 durumları denkse ve bunları otomatın başlangıç durumu yaparsak aynı dili üretirler. Başka bir deyişle, otomat ⟨q1, w⟩ ve ⟨q2, w⟩ konfigürasyonlarına gelirse, ya her iki hâlde de kabul etmeli ya da her iki hâlde de reddetmelidir.

Önceki otomata dönelim: q1 ve q2 durumları denktir, çünkü q1 durumundayken giriş sözcüğünü ancak sözcüğün okunmamış kısmı 1’e eşitse kabul edebiliriz. q2 durumundayken de aynısı geçerlidir.

Otomatı en küçük hâle getirirken amaç, denk durumları bulmak ve bunları yukarıdaki örnekte yaptığımız gibi tek bir yeni durumda birleştirerek ortadan kaldırmaktır.

Denk Durumlar Nasıl Bulunur

Hangi durumlar kesinlikle denk olmaz? Bir kabul durumuyla kabul durumu olmayan bir durumu alırsak bunlar kesinlikle denk değildir, çünkü kabul durumunun dili kabul durumu olmayanın dilinden farklıdır — kabul durumu ε sözcüğünü kesinlikle kabul eder, kabul durumu olmayan ise etmez. Yöntemi hemen bir örnek üzerinde gösterelim. Şu otomatımız olsun:

İki durum kümesi oluşturarak başlarız:

S1=F={q3,q6},S2=Q∖F={q0,q1,q2,q4,q5}.

Şimdi bir geçiş tablosu oluşturalım ve S1 ile S2 gruplarının bilgisini koruyalım:

grupdurum01S1q3q5q4q6——S2q0q1q2q1—q3q2—q3q4q6—q5q6—

Şimdi tabloyu şöyle düzenleriz: verilen sembolle hangi durumlara gidildiğini doğrudan yazmak yerine yalnızca geçtiğimiz grubu not ederiz. Örneğin q3 durumundan 0 sembolüyle S2 grubundaki q5 durumuna gideriz. Tabloya q5 yerine S2 yazarız:

grupdurum01S1q3S2S2q6——S2q0S2S2q1—S1q2—S1q4S1—q5S1—

Şimdi her iki grubu da daha fazla bölelim. Tüm semboller için aynı gruplara geçen durumları her zaman aynı gruba koyarız. Örneğin q3 ve q6 durumları aynı grupta olmaz, çünkü ne 0 ne de 1 ile aynı gruba giderler. Buna karşılık q1 ve q2 durumları aynı grupta olur, çünkü her iki durumun da 0 için geçişi yoktur ve her ikisi de 1 için S1 grubuna gider. Böylece yeni gruplar oluştururuz:

grupdurum01q3S2S2q6——q0S2S2q1—S1q2—S1q4S1—q5S1—

Her grupta geçişler aynıdır. Yeni oluşan grupları adlandırır ve durumların bu yeni gruplardan hangisine gittiğini yeniden belirleriz:

grupdurum01S1q3S5S5S2q6——S3q0S4S4S4q1—S1q2—S1S5q4S2—q5S2—

Bu noktada grupları bir kez daha bölmeyi deneriz. Ancak artık başka bölme yapamayacağımızı görürüz, aynı grupları elde ederdik — çünkü q1 ve q2 durumlarının grupların içindeki geçişleri aynıdır, ama zaten aynı gruptadırlar ve S4 grubunda başka durum yoktur. Denk durumları bulma algoritması sona erdi. Her gruptan bir durum seçmemiz yeter, diğerlerini sileriz ve silinen durumlara giden tüm geçişler seçtiğimiz o tek duruma gider.

Böylece yeni otomatın durumlarının q3, q6, q0, q1, q4 olmasını seçebiliriz; q2 ve q5 durumlarını çıkarırız. q2 durumuna giden tüm geçişler artık q1 durumuna, q5 durumuna giden tüm geçişler ise q4 durumuna gider:

Otomatı En Küçük Hâle Getirme Adımları

  1. Ulaşılamayan durumları çıkarırız,
  2. gereksiz durumları çıkarırız,
  3. denk durumları çıkarırız.

Kaynaklar

Bölümler: Ulaşılamayan Durumlar, Gereksiz Durumlar, Otomatın En Küçük Hâle Getirilmesi