Moore Makinesi
Moore makinesi, bir sonraki duruma mevcut durum ve mevcut giriş sembolü tarafından karar verilen sonlu durumlu bir makinedir. Belirli bir andaki çıkış sembolü yalnızca makinenin mevcut durumuna bağlıdır. Moore makinesi 6 demet (Q, q0, ∑, O, δ, λ) ile tanımlanabilir; burada,
Q: finite set of states q0: initial state of machine ∑: finite set of input symbols O: output alphabet δ: transition function where Q × ∑ → Q λ: output function where Q → O
Örnek 1:
Moore Makinesi için durum diyagramı
Moore Makinesi için geçiş tablosu:
Yukarıdaki Moore makinesinde çıkış, / ile ayrılmış her giriş durumuyla temsil edilir. Moore makinesinin çıkış uzunluğu girişten 1 kat daha büyüktür.
Giriş: 010
Geçiş: δ (q0,0) => δ(q1,1) => δ(q1,0) => q2
Çıktı: 1110(q0 için 1, q1 için 1, yine q1 için 1, q2 için 0)
Örnek 2:
Belirli bir ikili sayının 1'e tümleyenini üretecek bir Moore makinesi tasarlayın.
Çözüm: Belirli bir ikili sayının 1'e tümleyenini oluşturmak için basit mantık şudur: Giriş 0 ise çıkış 1 olacaktır ve giriş 1 ise çıkış 0 olacaktır. Bu, üç durum olduğu anlamına gelir. Bir durum başlangıç durumudur. İkinci durum 0'ları girdi olarak alıp 1 olarak çıktı üretmektir. Üçüncü durum ise 1'leri girdi olarak alıp çıktıyı 0 olarak üretmektir.
Dolayısıyla Moore makinesi şöyle olacaktır:
Örneğin, 1011 ikili sayısını alın ve ardından
| Giriş | 1 | 0 | 1 | 1 | |
| Durum | q0 | q2 | q1 | q2 | q2 |
| Çıktı | 0 | 0 | 1 | 0 | 0 |
Böylece 1011'in 1'e tümleyeni olarak 00100 elde ederiz, ilk 0'ı ihmal edebiliriz ve elde ettiğimiz çıktı 1011'in 1'in tümleyeni olan 0100 olur. İşlem tablosu aşağıdaki gibidir:
Böylece Moore makinesi M = (Q, q0, ∑, O, δ, λ); burada Q = {q0, q1, q2}, ∑ = {0, 1}, Ö = {0, 1}. geçiş tablosu δ ve λ fonksiyonlarını gösterir.
Örnek 3:
Bir ikili giriş dizisi için bir Moore makinesi tasarlayın; öyle ki, eğer bir alt dizgisi (101) varsa, makine çıktısı A, eğer girdi alt dizgesi (110) varsa, çıktısı B'dir, aksi halde çıktısı C'dir.
Çözüm: Böyle bir makine tasarlamak için iki koşulu kontrol edeceğiz, bunlar 101 ve 110. 101 alırsak çıktı A, 110'u tanırsak çıktı B olacaktır. Diğer stringler için çıktı şu şekilde olacaktır: C.
Kısmi diyagram şöyle olacaktır:
Şimdi her durum için 0'ların ve 1'lerin olasılıklarını ekleyeceğiz. Böylece Moore makinesi şu hale gelir:
Örnek 4:
Bir giriş dizesinin çift sayıda veya tek sayıda 1 içerip içermediğini belirleyen bir Moore makinesi oluşturun. Dizede çift sayıda 1 varsa makine çıktı olarak 1'i, aksi halde 0'ı vermelidir.
Çözüm:
Moore makinesi şöyle olacaktır:
Bu gerekli Moore makinesidir. Bu makinede, q1 durumu tek sayıdaki 1'leri, q0 durumu ise çift sayıdaki 1'leri kabul etmektedir. Sıfır sayısında herhangi bir kısıtlama yoktur. Dolayısıyla 0 girişi için her iki duruma da kendi kendine döngü uygulanabilir.
Örnek 5:
Giriş alfabesi {0, 1} ve çıkış alfabesi {Y, N} ile bir Moore makinesi tasarlayın; bu makine, eğer giriş dizisi bir alt dizi olarak 1010 içeriyorsa çıktı olarak Y üretir, aksi halde çıktı olarak N üretir.
Çözüm:
Moore makinesi şöyle olacaktır: