Sonlu Durum Makinesi Karmaşıklık Analizi için McCluskey Algoritmasını Anlamak
McCluskey algoritması, sonlu durum makinelerinin durum uzayı karmaşıklığını hesaplamak için kullanılan bir yöntemdir. Belirli bir sonlu durum makinesindeki durum sayısını tahmin etmek için kullanılır. Algoritma ilk olarak 1975 yılında J. M. McClusky tarafından önerildi. bu eyaletlerden. Bu süreç, tüm durumlar hesaba katılana kadar tekrarlanır ve nihai sonuç, makinedeki toplam durum sayısı olur.
McCluskey algoritmasının, durum uzayı karmaşıklığını hesaplamak için diğer yöntemlere göre birçok avantajı vardır. Uygulanması nispeten basittir, çok sayıda duruma sahip makineleri işleyebilir ve durum uzayı karmaşıklığına sıkı bir üst sınır sağlar. Ancak çok büyük makineler için hesaplama açısından pahalı olabilir.
İşte McCluskey algoritmasının nasıl çalıştığına dair bir örnek:
1. Başlangıç durumu s0.
2 ile başlayın. s0'dan itibaren ulaşılabilecek tüm durumların kümesini tek adımda hesaplayın. Bu küme S1.
3 olsun. S1'deki her durumdan ulaşılabilecek tüm durumların kümesini tek adımda hesaplayın. Bu kümeler S2, S3, ... .
4 olsun. Tüm durumlar hesaba katılana kadar 3. adımı tekrarlayın.
5. Nihai sonuç, herhangi bir başlangıç durumundan ulaşılabilecek maksimum durum sayısı olan makinedeki toplam durum sayısıdır.
Örneğin, aşağıdaki geçiş tablosuna sahip bir sonlu durum makinesini düşünün:
| | bir | b | c |
| --- | --- | --- | --- |
| q0 | bir | q1 | q2 |
| q1 | b | q2 | q3 |
| q2 | c | q3 | q4 |
| q3 | c | q4 | q5 |
| q4 | b | q5 | q6 |
| q5 | bir | q6 | q7 |
| q6 | b | q7 | q8 |
| q7 | c | q8 | q9 |
| q8 | c | q9 | q10 |
| q9 | bir | q10 | q11 |
| q10 | b | q11 | q12 |
| q11 | c | q12 | q13 |
| q12 | b | q13 | q14 |
| q13 | bir | q14 | q15 |
| q14 | c | q15 | q16 |
Bu makinenin durum uzayı karmaşıklığını McCluskey algoritmasını kullanarak hesaplamak için başlangıç durumu q0 ile başlarız. q0'dan tek adımda ulaşılabilecek tüm durumların kümesi {q1, q2, q3}'tür. Bu durumların her birinden tek adımda ulaşılabilecek tüm durumlar kümesi {q4, q5}, {q6, q7} ve {q8, q9}'dur.
Tüm durumları açıklayana kadar bu işleme devam ediyoruz. Nihai sonuç, makinedeki toplam durum sayısıdır ve bu da 16'dır. Bu, makinenin durum uzayı karmaşıklığının O(16) olduğu anlamına gelir. durum makineleri. Herhangi bir başlangıç durumundan ulaşılabilecek maksimum durum sayısını hesaplama fikrine dayanır ve durum uzayı karmaşıklığına sıkı bir üst sınır sağlar. Algoritmanın uygulanması nispeten basittir ancak çok büyük makineler için hesaplama açısından pahalı olabilir.