Skip to content

Jflap’ta Başlangıç ve Son Durumları Tanımlamak, Geçişleri Oluşturmak

Keyfi olarak q0 bizim başlangıç durumumuz olsun. Bu durumumuzu tanımlamak için önce araç çubuğundan özellik düzenleme aracını  seçiyoruz. Daha sonra oluşturduğumuz q0 ‘ın üzerine gelip sağ tıklıyoruz. Sonuçta aşağıdaki gibi bir görüntü ortaya çıkacaktır.

 

Durum Menüsü

Açılan pop-up menüden initial’i seçtiğimizde q0 başlangıç durumu olacaktır. Sol tarafında ok işareti belirecektir.

 

Başlangıç Durumu olarak oluşturulmuş q0

Final durumunu oluşturmak için benzer olarak açılan pop-up menüden Final seçeneğini seçiyoruz. Daha sonra final olarak belirlediğimiz q1 ‘in etrafının ikinci bir çizgiyle kaplandığını görüyoruz.

final durumu olarak belirlenmiş q1

Başlangıç ve final durumlarını belirlemeyi öğrendik. Şimdi sıra geçişleri nasıl yapacağımıza geldi.

Geşişleri Oluşturmak

L = {ambn : m ≥ 0, n > 0, n tektir} sonlu otomatını yazmaya çalıştığımızı hatırlayalım. Bu amaçla, a’nın kendi üzerine bir geçiş oluşturması gerektiğini seziyoruz. Bunu yapmak için araç çubuğundan geçiş aracına  tıklıyoruz. Başlangıç durumumuzun üzerine tıklıyoruz eğer herhangi bir yazı yazmazsak λ geçişi oluşturacaktır. Fakat biz örneğimiz için geçiş yaptığımız yerde ortaya çıkan dikdörtgen şeklindeki textbox’a, a yazıyoruz.

 

Geçiş oluşturmak

λ geçişi, boş geçişleri göstermektedir. Fakat eğer isterseniz ana menüden seçenekler kısmında “Set the Empty String Character” seçilip çıkan seçeneklerden lambda ya da epsilon seçmek suretiyle bu durumu değiştirebilirsiniz.

a yazıp geçişi oluşturmuştuk. Aşağıda oluşturduğumuz şekil görülmektedir.

Geçiş Oluşturuldu

Sırada b geçişimizi oluşturmak var. Biliyoruz ki b geçişinin daima tek olması gerekiyor. Ayırıca final durumumuza da b ile gittiğimizi buradan anlayabiliriz. İki durum arasında geçiş oluşturmak kendi üstüne geçiş oluşturmak kadar kolay. Geçiş aracını seçiyoruz ve başlamak istediğimiz durumu tıklayıp, bırakmadan geçiş yapmak istediğimiz durumun üzerine bırakıyoruz Dikdörtgen textbox’ımız yine ortaya çıkıyor. Bu sefer b yazıyoruz. Aşağıdaki gibi bir görüntü oluşuyor.

İkinci geçiş oluşturuldu

b geçişini oluşturduk fakat sezgilerimiz bize b geçişi ile ilgili bir hata yaptığımızı söylüyor. Yani bizim sonlu otomatımız sadece sonu b ile biten giriş dizgeleri için çalışır duruma geldi. Bu yüzden bir durum daha oluşturmamız gerekli ve bu durum çift b geldiğinde final duruma ulaşmamalı. Yine araç çubuğumuzdan, durum oluşturma aracımıza tıklayarak bir durum daha oluşturmamız gerektiği aşikar. Bu durumun son durum olmayacağını da düşünüyoruz fakat bu durum 1,3,5… adet b geldiğinde son duruma gelmeli. Yeni durumumuzu koyduktan sonra son durumdan aynı ikinci geçişi oluşturduğumuz gibi bir geçiş oluşturuyoruz. Ondan da tekrar bitiş durumuna bir geçiş oluşturuyoruz. Sonuç olarak aşağıdaki görüntü ortaya çıkıyor.

Sonlu Durum Otomatı Oluşturma

Be First to Comment

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir