Sonlu durum makinesi - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Kavramlar
  • 2 Sınıflandırma
    • 2.1 Alıcılar/Tanıyıcılar
    • 2.2 Dönüştürücüler
  • 3 Gerçekleştirim
    • 3.1 Donanım uygulamaları
    • 3.2 Yazılım uygulamaları
  • 4 Ayrıca bakınız
  • 5 Dış bağlantılar
    • 5.1 İngilizce
  • 6 Kaynakça

Sonlu durum makinesi

  • العربية
  • Български
  • Bosanski
  • Català
  • Čeština
  • Deutsch
  • English
  • Esperanto
  • Español
  • Eesti
  • Euskara
  • فارسی
  • Suomi
  • Français
  • Galego
  • עברית
  • Hrvatski
  • Հայերեն
  • Bahasa Indonesia
  • İtaliano
  • 日本語
  • ქართული
  • 한국어
  • Lombard
  • Lietuvių
  • Latviešu
  • Македонски
  • Mirandés
  • Nederlands
  • Norsk bokmål
  • Polski
  • Português
  • Română
  • Русский
  • Srpskohrvatski / српскохрватски
  • Slovenčina
  • Српски / srpski
  • Svenska
  • ไทย
  • Українська
  • Tiếng Việt
  • 中文
  • 粵語
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Wikimedia Commons
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
(Sonlu durum makinası sayfasından yönlendirildi)
Şekil.1 Sonlu durum makinesi

Sonlu durum makinesi (veya sonlu durum otomatı veya basitçe durum makinesi); sınırlı sayıda durumdan, durumlar arası geçişlerden ve eylemlerin birleşmesiyle oluşan davranışların bir modelidir.

Kavramlar

[değiştir | kaynağı değiştir]

Durum geçmiş hakkında bilgi saklar, örneğin başlangıçtan şu anki duruma kadar girdi değişimlerini gösterir. Geçiş durum değişimini gösterir ve geçişi sağlamak için yapılması gereken koşulla tanımlanır. Eylem belirli bir zamanda gerçekleştirilen etkinliğin tanımıdır. Birçok eylem tipi vardır:

Giriş eylemi
Bu eylem duruma geçerken gerçekleştirilir
Çıkış eylemi
Bu eylem durumdan çıkarken gerçekleştirilir
Girdi eylemi
Mevcut duruma ve girdi koşullarına bağlı gerçekleştirilen eylemdir
Geçiş eylemi
Belirli bir geçiş gerçekleştirilirken oluşan eylemdir

SDM durum çizgeleriyle (veya geçiş çizgeleriyle) temsil edilir (Bkz. Şekil 1). Bunun dışında çok sayıda durum geçiş tablo tipleri kullanılmaktadır. En çok karşılaşılan temsil aşağıda gösterilmiştir: mevcut durum (B)'de iken koşul (Y) gerçekleştiğinde sonraki durum (C) ortaya çıkar. Tüm eylemlerin bilgisi ancak dipnot kullanımıyla eklenebilmektedir. Tüm eylemlerin bilgisini içeren bir SDM tanımı durum tablolarını kullanarak mümkündür (Bkz. Sanal Sonlu Durum Makinesi).

Durum Geçiş Tablosu

   Mevcut Durum →
Koşul
Durum A Durum B Durum C
Koşul X ... ... ...
Koşul Y ... Durum C ...
Koşul Z ... ... ...

Burada gösterilen tepkisel sistemleri modellemeye ek olarak, sonlu durum makineleri çok farklı alanda önemlidir, bu alanlar elektrik mühendisliği, dilbilim, bilgisayar bilimleri, felsefe, biyoloji, matematik ve mantık olarak sayılabilir. Sonlu durum makineleri otomata teorisi ve hesaplama teorisinde çalışılan otomatların bir sınıfıdır. Bilgisayar bilimlerinde, sonlu durum makineleri uygulama davranışı, donanım sayısal sistemlerinin tasarımı, yazılım mühendisliği, ağ protokolleri ve hesaplama ve dillerin öğretilmesinde geniş ölçüde kullanılmaktadır.

Sınıflandırma

[değiştir | kaynağı değiştir]

Alıcı ("Acceptor")/Tanıyıcı ("Recognizer") ve dönüştürücü ("Transducer") olmak üzere iki farklı grup vardır.

Alıcılar/Tanıyıcılar

[değiştir | kaynağı değiştir]

Alıcılar ve tanıyıcılar girdinin makine tarafından kabul edilip edilmediğini belirten evet/hayır (0 veya 1, ikili çıktı) cevaplarından birini verirler. SDM'nın tüm durumlarının kabul eden veya kabul etmeyen olması gerekir. Girdiler işlenirken, mevcut durum kabul eden bir durumsa, girdi kabul edilir; kabul etmeyen bir durumsa girdi reddedilir. Kural olarak girdiler için karakterler sembol olarak kullanılır, eylemler yoktur.

Makine ayrıca makinenin kabul ettiği tüm kelimeleri içeren, makinenin reddettiği tüm kelimeleri içermeyen dil olarak tanımlanabilir. Tanım gereği, SDM'ler tarafından kabul edilen diller Düzenli Diller'dir, bu ifade ayrıca bir dilin kendisini kabul eden SDM olması durumunda düzenli bir dil olduğunu gösterir (Bkz. Kleene Teoremi).

Başlangıç durumu
Başlangıcı gösteren ve "Start" ifadesiyle veya hiçbir yerden gelen bir okla gösterilen durumdur.
Kabul durumu
Makinenin yordamını başarıyla gerçekleştirdiği durumdur. Çift halka ile temsil edilir. Yordamın bitişini gösterir.

Yukarıdaki şekilde çift sayıda sıfır içeren ikili ifadeleri oluşturan deterministik sonlu otomata örneği görülmektedir. Soldan gelen ok sayesinde S1'in başlangıç durumu olduğunu ve iç içe çift halka sayesinde de yine S1'in kabul durum olduğunu anlayabiliyoruz. Bu şekilde ifadede bir sıfır geldiği zaman S2'e geçerek ek olarak mutlaka bir sıfır daha ekleneceği garantilenmiş oluyor ve her zaman kabul edilen ifade çift sayıda sıfır içeriyor.

Dönüştürücüler

[değiştir | kaynağı değiştir]

Dönüştürücüler, verilen girdi ve eylemleri kullanarak ortaya çıkan durumlara dayanarak çıktı üretirler. Kontrol uygulamaları için kullanılırlar. İki farklı tipi aşağıda anlatılmaktadır.

Moore makinesı
SDM sadece giriş eylemlerini kullanır, çıkış duruma bağlıdır. Moore modelinin avantajı davranışın basitleşmesidir. Şekil 3 asansör kapısı Moore SDM'sini göstermektedir. Durum makinesi iki komutu tanımaktadır: "command_open" ve "command_close" ve bu komutlar durum geçişlerini tetikler. "Opening" durumunda girdi eylemi (E:) kapıyı açan bir motoru başlatır, "Closing" durumundaki girdi eylemi ise motoru kapıyı kapatma yönünde çalıştırır. "Opened" ve "Closed" durumları herhangi bir eylem gerçekleştirmez. Dış dünyaya (örneğin diğer durum makinelerine) vaziyeti bildirirler: "door is open" (kapı açık) veya "door is closed" (kapı kapalı).
Şekil 4 Dönüştürücü SDM: Mealy model örneği
Mealy makinesi
SDM sadece girdi eylemlerini kullanır, çıktı girdi ve duruma bağlıdır. Mealy SDM'lerinin kullanımı durum sayısının azalmasını sağlamaktadır. Şekil 4'teki örnek Şekil 3'teki Moore makinesiyle aynı işi yapan Mealy makinesini göstermektedir. İki girdi eylemi vardır (I:) : "command_close gelirse kapıyı kapatmak için motoru başlat" ve "command_open gelirse kapıyı açmak için motoru diğer yönde başlat".

Pratikte bu iki modelin karışımları kullanılmaktadır.

Ayrıca deterministik (DFA) ve deterministik olmayan (NDFA) ayrımı vardır. Deterministik otomatada, her durum için, olası her girdiye karşılık gelen bir geçiş vardır. Deterministik olmayan otomatada, bir durumdan bir girdi için hiç, bir veya daha fazla geçiş olabilmektedir. Bu ayrım pratikte anlamlıdır ancak teoride NDFA'yı eşit bir DFA'ya dönüştüren bir algoritma olması -bu dönüşüm her ne kadar otomatanın karmaşıklığını artırsa da- dolayısıyla önemsizdir.

Gerçekleştirim

[değiştir | kaynağı değiştir]

Donanım uygulamaları

[değiştir | kaynağı değiştir]

Sonlu durum makineleri sayısal devrelerde; programlanabilir mantık cihazı, programlanabilir mantık kontrolcüsü, mantık kapıları ve Flip-floplar veya anahtarlar kullanılarak gerçekleştirilebilir. Daha belirgin olursak, donanım gerçekleştirimi durum değişkenlerini saklamak için işlemci yazmaçı, durum geçişine karar veren kombinasyonel mantık bloku ve SDM'nin çıktısına karar veren başka bir kombinasyonel mantık blokuna ihtiyaç duyulur. Klasik donanım gerçekleştirimlerine örnek olarak Richard's Controller verilebilir.

Yazılım uygulamaları

[değiştir | kaynağı değiştir]

Aşağıdaki kavramlar sonlu durum makineleriyle yazılım uygulaması üretmek için genellikle kullanılırlar:

  • olay güdümlü SDM
  • sanal SDM (SSDM)
  • Otomata tabanlı programlama

Ayrıca bakınız

[değiştir | kaynağı değiştir]
  • Algoritmik durum makinesi
  • Turing makinesi

Dış bağlantılar

[değiştir | kaynağı değiştir]

İngilizce

[değiştir | kaynağı değiştir]
  • Description from the Free On-Line Dictionary of Computing[ölü/kırık bağlantı]
  • NIST Dictionary of Algorithms and Data Structures entry 7 Ekim 2007 tarihinde Wayback Machine sitesinde arşivlendi.
  • Hierarchical State Machines 27 Eylül 2007 tarihinde Wayback Machine sitesinde arşivlendi.
  • Round-trip Engineering State Machines
  • Using state machines in practical applications
  • Flash based demonstration of Finite State Machines being used in regular expressions

Kaynakça

[değiştir | kaynağı değiştir]
  • Wagner, F., "Modeling Software with Finite State Machines: A Practical Approach", Auerbach Publications, 2006, ISBN 0-8493-8086-3.
  • Samek, M., "Practical Statecharts in C/C++", CMP Books, 2002, ISBN 1-57820-110-1.
  • Cassandras, C., Lafortune, S., "Introduction to Discrete Event Systems". Kluwer, 1999, ISBN 0-7923-8609-4.
  • Timothy Kam, Synthesis of Finite State Machines: Functional Optimization. Kluwer Academic Publishers, Boston 1997, ISBN 0-7923-9842-4
  • Tiziano Villa, Synthesis of Finite State Machines: Logic Optimization. Kluwer Academic Publishers, Boston 1997, ISBN 0-7923-9892-0
  • Carroll, J., Long, D., Theory of Finite Automata with an Introduction to Formal Languages. Prentice Hall, Englewood Cliffs, 1989.
  • Kohavi, Z., Switching and Finite Automata Theory. McGraw-Hill, 1978.
  • Gill, A., Introduction to the Theory of Finite-state Machines. McGraw-Hill, 1962.
  • Ginsburg, S., An Introduction to Mathematical Machine Theory. Addison-Wesley, 1962.
  • Cohen, D. I. A., Introduction to Computer Theory. Wiley, 1996. ISBN 0-471-13772-3
Otorite kontrolü Bunu Vikiveri'de düzenleyin
  • NKC: ph210246
"https://tr.wikipedia.org/w/index.php?title=Sonlu_durum_makinesi&oldid=34571227" sayfasından alınmıştır
Kategoriler:
  • Otomat teorisi
  • Hesaplama modelleri
  • Sayısal elektronik
  • Formal dilleri
Gizli kategoriler:
  • Ölü dış bağlantıları olan maddeler
  • Webarşiv şablonu wayback bağlantıları
  • NKC tanımlayıcısı olan Vikipedi maddeleri
  • ISBN sihirli bağlantısını kullanan sayfalar
  • Sayfa en son 10.04, 1 Ocak 2025 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Sonlu durum makinesi
Konu ekle