22
Biçimsel Diller ve Soyut Makineler OTOMAT KURAMI & SONLU DURUM OTOMATLARI

Formel Diller ve Soyut Makineler - KLUpersonel.klu.edu.tr/dosyalar/kullanicilar/esguner/... · 2019-10-05 · Sonlu Durum Otomatı Çalışma Mantığı Girdi şeridi hücrelere bölünmüştür

  • Upload
    others

  • View
    14

  • Download
    0

Embed Size (px)

Citation preview

Biçimsel Diller

ve

Soyut MakinelerOTOMAT KURAMI & SONLU DURUM OTOMATLARI

Otomat Kuramı

Otomat kuramı, bilgisayar bilimlerinin kuramsal bir alt alanıdır.

Temelleri 20. yy’da matematikçilerin insanın belirli özelliklerini taklit edebilen, özellikle dehesaplamaları daha güvenilir ve hızlı biçimde yapabilen, hem kuramsal hem deuygulamaya dökülmüş makineleri geliştirmeye başlaması ile atılmıştır.

« Otomat » kelimesi « otomasyon » kelimesiyle yakın anlamda olup, belirli süreçleringerçekleştirimini sağlayan otomatikleştirilmiş işlemler bütününü ifade eder.

Otomat Kuramı ise, « otomat » olarak adlandırılan basit makineler üzerindengerçekleştirilen hesaplama işlemlerinin mantığıyla ilgilenir.

Otomatlar sayesinde bilgisayar bilimciler makinelerin fonksiyonları nasıl hesaplayabildiği veproblemleri nasıl çözebildiğini anlama imkanı bulur. Daha da önemlisi, bir fonksiyonunhesaplanabilir (computable) olarak tanımlanması veya bir sorunun karar verilebilir(decidable) olup olmadığının anlaşılması bu kuram ile mümkün olur.

Chomsky Hiyerarşisi

Düzenli Diller : Sonlu - Durum Otomatları(Regular Language : Finite – State Automata)

Bağlam - Bağımsız Diller : Bas – Bırak Otomatları(Context – Free Languages : Push – Down Automata)

Bağlama - Duyarlı Diller : Doğrusal – Sınırlandırılmış Otomatlar (Context – Sensitive Languages : Linear – Bounded Automata)

Özyinelemeli - Sayılabilir Diller : Turing Makinesi (Recursively – Enumerable Languages : Turing Machine)

Kar

maş

ıklık

0 1 2 3

*(Dil : Otomat)

Tip 3 – İfade Gücü

Düzenli Diller

Düzenli İfadeler

Sonlu Durum Otomatları

Düzenli Gramerler

Bir Otomat Örneği - Turnike

Şimdiki Durum Girdi Sonraki Durum Çıktı

KapalıKart bas Açık

Açık konuma geç (kol itildiğinde geçilebilir durumdadır)

Kolu it Kapalı Aynı durumda kal

Açık

Kart bas Açık Aynı durumda kal

Kolu it KapalıKapalı konuma geç (turnikedengeçildikten sonra kol kilitli duruma geçer)

Sonlu Durum Otomatı

Biçimsel Olmayan Tanım

Bir sonlu durum otomatı;

girdi şeridi olarak da bilinen sonlu bir bellek,

okuyucu başlık,

sonlu sayıda ve boş olmayan durumlar,

bir giriş alfabesi,

durumlar arası geçişleri betimleyen bir geçiş fonksiyonu,

bir başlangıç durumu ile

sonlu sayıda durma durumundan oluşan soyut bir hesaplama aygıtıdır.

Sonlu Durum Otomatı

Çalışma Mantığı

Girdi şeridi hücrelere bölünmüştür ve her bir hücre giriş alfabesine ait bir

sembol barındırır.

Okuyucu başlık, bir adımda şeritten tek bir sembolü okur.

Geçiş fonksiyonu üzerinden bir sonraki durum belirlenir.

Okuyucu başlık ya soldan sağa ya da sağdan sola okuma yapabilir.

Okuyucu başlık şerit üzerinde yazma işlemi yapamaz ve geriye doğru

gidemez. Bu nedenle bir sonlu durum otomatı o anda okumakta olduğu

sembolden önceki sembolleri hatırlayamaz.

Bu durum, sonlu durum otomatlarınının en önemli kısıtıdır.

Sonlu Durum Otomatı

Biçimsel Tanım

Bir otomat, (Q, ∑, δ, q0, F) şeklinde bir beşli olarak tanımlanır ve bu tanıma

göre;

Q sonlu sayıda elemana sahip bir durumlar kümesi,

∑ sonlu sayıda elemana sahip semboller kümesi (ya da alfabe),

δ geçiş fonksiyonu,

q0 herhangi bir girdinin işlenmeye başlanacağı başlangıç durumu (q0 ∈ Q).

F, Q içindeki son durum(lar) kümesi (F ⊆ Q).

Sonlu Durum Otomatı Türleri

Sonlu Durum Otomatları

Çıktı ÜretenlerÇıktı Üretmeyenler

Moore Makinesi Mealy MakinesiDeterministik Deterministik Olmayan

Deterministik Sonlu Durum Otomatı

Deterministik sonlu durum otomatlarında her bir giriş sembolü karşılığında

içinde bulunulacak (yani geçilecek) durum belirlidir.

Bir deterministik sonlu durum otomatı, (Q, ∑, δ, q0, F) şeklinde bir beşli olarak

tanımlanır ve bu tanıma göre;

Q sonlu sayıda elemana sahip bir durumlar kümesi,

∑ sonlu sayıda elemana sahip semboller kümesi (ya da alfabe),

δ geçiş fonksiyonu (δ: Q × ∑ → Q),

q0 herhangi bir girdinin işlenmeye başlanacağı başlangıç durumu (q0 ∈ Q).

F, Q içindeki son durum(lar) kümesi (F ⊆ Q).

Grafiksel Gösterim

Deterministik bir sonlu durum otomatı durum diyagramı adı verilen bir çizge

ile ifade edilir. Bu çizgede:

Düğümler durumları,

Alfabeden bir sembolle etiketlenmiş olan kenarlar geçişleri,

Kendisine gelen boş bir kenarla işaretli olan düğüm başlangıç durumunu,

İç içe iki çember şeklinde işaretli olan düğüm ise son durumu ifade eder.

Örnek

Q = {a, b, c},

∑ = {0, 1},

q0={a},

F={c}, ve

Geçiş fonksiyonu olan δ aşağıdaki gibidir.

Şimdiki

Durum

0 girdisi için

sonraki durum

1 girdisi için

sonraki durum

a a b

b c a

c b c

Örnek

Yalnızca 3’ün katı olan ikili tabandaki sayıları kabul eden sonlu durum

otomatı

Örnek

İçerisinde çift sayıda b bulunduran tüm katarların kümesi.

Örnek

Örnek

L = {anbm | n,m ≥ 1}, Σ={a, b}

L = {ab, aab, aaab, abbb, aabb, aaaabbbb, ...}

Deterministik Olmayan Sonlu Durum

Otomatı

Deterministik olmayan sonlu durum otomatlarında belirli bir giriş sembolümakinedeki herhangi bir durum kombinasyonuna geçişi sağlayabilir. Yani,makinenin belirli bir durumda belirli bir sembolle hangi duruma geçişyapabileceği tam olarak bilinemez.

Bir deterministik olmayan sonlu durum otomatı, (Q, ∑, δ, q0, F) şeklinde bir beşliolarak tanımlanır ve bu tanıma göre;

Q sonlu sayıda elemana sahip bir durumlar kümesi,

∑ sonlu sayıda elemana sahip semboller kümesi (ya da alfabe),

δ geçiş fonksiyonu (δ: Q × {∑ ∪ ε} → 2Q),

q0 herhangi bir girdinin işlenmeye başlanacağı başlangıç durumu (q0 ∈ Q),

F, Q içindeki son durum(lar) kümesi (F ⊆ Q).

Örnek

Q = {a, b, c}

∑ = {0, 1}

q0 = {a}

F={c}

Geçiş fonksiyonu olan δ aşağıdaki gibidir.

Şimdiki durum 0 girdisi için

sonraki durum

1 girdisi için

sonraki durum

a a, b b

b c a, c

c b, c c

Örnek

İçinde 00 veya 11 barındıran katarlar

Örnek

Sonu 101 ile biten katarlar

Örnek

a* + (ab)*

Moore ve Mealy Makineleri

A

b