Memahami Algoritma McCluskey untuk Analisis Kerumitan Mesin Keadaan Terhad
Algoritma McCluskey ialah kaedah untuk mengira kerumitan ruang keadaan mesin keadaan terhingga. Ia digunakan untuk menganggar bilangan keadaan dalam mesin keadaan terhingga tertentu. Algoritma ini pertama kali dicadangkan oleh J. M. McClusky pada tahun 1975.
Idea asas di sebalik algoritma McCluskey adalah untuk mengira bilangan maksimum keadaan yang boleh dicapai dari mana-mana keadaan awal, dan kemudian untuk mengira bilangan maksimum keadaan yang boleh dicapai dari setiap negeri-negeri tersebut. Proses ini diulang sehingga semua keadaan telah diambil kira, dan keputusan akhir ialah jumlah bilangan keadaan dalam mesin.
Algoritma McCluskey mempunyai beberapa kelebihan berbanding kaedah lain untuk mengira kerumitan ruang keadaan. Ia agak mudah untuk dilaksanakan, ia boleh mengendalikan mesin dengan sejumlah besar keadaan, dan ia memberikan batas atas yang ketat pada kerumitan ruang negeri. Walau bagaimanapun, ia boleh menjadi mahal dari segi pengiraan untuk mesin yang sangat besar.
Berikut ialah contoh bagaimana algoritma McCluskey berfungsi:
1. Mulakan dengan keadaan awal s0.
2. Kira set semua keadaan yang boleh dicapai dari s0 dalam satu langkah. Biarkan set ini S1.
3. Kira set semua negeri yang boleh dicapai dari setiap negeri dalam S1 dalam satu langkah. Biarkan set ini S2, S3, ... .
4. Ulang langkah 3 sehingga semua keadaan telah diambil kira.
5. Keputusan akhir ialah jumlah bilangan keadaan dalam mesin, iaitu bilangan maksimum keadaan yang boleh dicapai dari mana-mana keadaan awal.
Sebagai contoh, pertimbangkan mesin keadaan terhingga dengan jadual peralihan berikut:
| | a | b | c |
| --- | --- | --- | --- |
| q0 | a | q1 | q2 |
| q1 | b | q2 | q3 |
| q2 | c | q3 | q4 |
| q3 | c | q4 | q5 |
| q4 | b | q5 | q6 |
| q5 | a | q6 | q7 |
| q6 | b | q7 | q8 |
| q7 | c | q8 | q9 |
| q8 | c | q9 | q10 |
| q9 | a | q10 | q11 |
| q10 | b | q11 | q12 |
| q11 | c | q12 | q13 |
| q12 | b | q13 | q14 |
| q13 | a | q14 | q15 |
| q14 | c | q15 | q16 |
Untuk mengira kerumitan ruang keadaan mesin ini menggunakan algoritma McCluskey, kita mulakan dengan keadaan awal q0. Set semua keadaan yang boleh dicapai dari q0 dalam satu langkah ialah {q1, q2, q3}. Set semua keadaan yang boleh dicapai daripada setiap keadaan ini dalam satu langkah ialah {q4, q5}, {q6, q7}, dan {q8, q9}.
Kami meneruskan proses ini sehingga kami telah mengambil kira semua keadaan. Keputusan akhir ialah jumlah bilangan keadaan dalam mesin, iaitu 16. Ini bermakna kerumitan keadaan ruang mesin ialah O(16).
Secara ringkasnya, algoritma McCluskey ialah kaedah untuk mengira kerumitan ruang keadaan terhingga. mesin negeri. Ia adalah berdasarkan idea untuk mengira bilangan maksimum keadaan yang boleh dicapai dari mana-mana keadaan awal, dan ia memberikan batas atas yang ketat pada kerumitan ruang keadaan. Algoritma ini agak mudah untuk dilaksanakan, tetapi ia boleh menjadi mahal dari segi pengiraan untuk mesin yang sangat besar.