--

SONLU DURUM MAKİNESİ (FINITE STATE MACHINE) NEDİR?

Canva uygulamasından yararlanılarak oluşturulmuştur.

FSM, Wikipedia tarafından matematiksel bir hesaplama modeli ve herhangi bir zamanda tam olarak sonlu sayıdaki durumlardan birinde olabilen soyut bir makine olarak tanımlanmıştır.
Diğer bir kaynakta ise; sonlu durum makinesi (FSM), programcılar, matematikçiler, mühendisler ve diğer profesyoneller tarafından sınırlı sayıda koşullu varlık durumuna sahip herhangi bir sistem için matematiksel bir model tanımlamak için kullanılan bir terim olarak belirtilmiştir. Mesela, bir video oyunu oynarken kullandığımız joystick’in tuşları pratik bir FSM örneği olabilir. Çünkü burada kullanıcı belirli düğmelere bastığında, sistem tarafından belirli eylemler uygulanır.

Göz yorucu bu görselin çizimi tamamen tarafıma aittir :)

Bir FSM, bir dizi input, bu inputlara karşılık gelen bir dizi output ve bir dizi state’ten meydana gelir. Örneğin trafik ışıklarından bahsedelim. Burada yeşil, sarı ve kırmızı bizim için state (durum) olsun. Başlangıç state’imiz ise yeşil olsun. Burada inputlar zamanlayıcı ile tanımlanır. Belirli bir süre geçtiğinde sarı ve sonrasında da kırmızı state’ine geçilir. Sonra tekrar yeşile dönülür ve bu şekilde devam edilir. Buradaki outputları açıklamamız gerekirse de mesela ilk başta yeşil state’inde iken yeşil ışık yanar ve diğerleri söner. Bu da bizim output örneğimizdir.

FSM’in günlük hayattaki kullanımına birkaç tane daha örnek vermemiz gerekirse, bunlar:
1. Gerekli madeni para atıldığında ürünü veren otomatlar
2. Binen kişilerin talep ettiği katlara göre duran asansörler
3. Uygun şifre girildiğinde açılan kilitler
4. Self-driving arabalar
5. Turnike sistemleri

FSM, adından da anlaşılacağı üzere sonlu sayıda duruma sahiptir. Bu sebeple Turing Makinesi kadar güçlü hesaplamalar yapamaz. Çünkü FSM’in belleği sahip olduğu durum sayısı ile sınırlıdır. Turing Makinesi’nin ne olduğundan sonraki yazılarımda detaylıca bahsetmeyi planlıyorum fakat kısaca; Turing makinesi, bilgisayar bilimindeki problemleri çözmek ve hesaplamanın sınırlarını test etmek için güçlü bir hesaplama modeli sağlayan bir makinedir diyebiliriz.

Bu içerik

kaynaklarından faydalanılarak oluşturulmuştur. Okuduğunuz için teşekkürler :)

--

--

Şevval Özlem ÇARKIT
BAU Yazılım ve Bilişim Kulübü

BAU Computer Engineering'23 | Jr Data Engineer @Turkish Technology ✈️ | You can contact me: linkedin.com/in/sevval-ozlem-carkit