A McCluskey-algoritmus megértése véges állapotú gép komplexitáselemzéséhez
A McCluskey algoritmus véges állapotú gépek állapotterének bonyolultságának kiszámítására szolgáló módszer. Egy adott véges állapotú gép állapotainak számának becslésére szolgál. Az algoritmust először J. M. McClusky javasolta 1975-ben. A McCluskey-algoritmus mögött meghúzódó alapötlet az, hogy kiszámolja az elérhető állapotok maximális számát bármely kezdeti állapotból, majd kiszámítja az egyes állapotokból elérhető állapotok maximális számát. azon államok közül. Ezt a folyamatot addig ismételjük, amíg az összes állapotot figyelembe nem vettük, és a végeredmény a gép összes állapota lesz.
A McCluskey-algoritmus számos előnnyel rendelkezik az állapottér bonyolultságának számítására szolgáló egyéb módszerekkel szemben. Viszonylag egyszerűen kivitelezhető, nagy állapotú gépeket tud kezelni, és szoros felső korlátot ad az állapottér komplexitásának. Ez azonban számítási szempontból költséges lehet nagyon nagy gépeknél.
Íme egy példa a McCluskey-algoritmus működésére:
1. Kezdje egy s0.
2 kezdeti állapottal. Számítsa ki az s0-ból egy lépésben elérhető összes állapot halmazát. Legyen ez a halmaz S1.
3. Számítsa ki az összes állapot halmazát, amely S1 egyes állapotaiból elérhető egy lépésben. Legyenek ezek a halmazok S2, S3, ... .
4. Ismételje meg a 3. lépést, amíg az összes állapotot figyelembe nem veszi.
5. A végeredmény a gép összes állapotának száma, amely bármely kezdeti állapotból elérhető állapotok maximális száma.
Vegyünk például egy véges állapotú gépet a következő átmeneti táblázattal:
| | 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 |
A gép állapotterének bonyolultságának McCluskey algoritmussal történő kiszámításához a q0 kezdeti állapottal kezdjük. A q0-ból egy lépésben elérhető összes állapot halmaza: {q1, q2, q3}. Ezen állapotok mindegyikéből egy lépésben elérhető összes állapot halmaza: {q4, q5}, {q6, q7} és {q8, q9}.
A folyamatot addig folytatjuk, amíg az összes állapotot el nem számoltuk. A végeredmény a gép összes állapotának száma, ami 16. Ez azt jelenti, hogy a gép állapotterének összetettsége O(16).
Összefoglalva, a McCluskey-algoritmus egy módszer a véges állapottér komplexitásának kiszámítására. államgépek. Azon az elgondoláson alapul, hogy kiszámolja a tetszőleges kezdeti állapotból elérhető állapotok maximális számát, és szoros felső korlátot ad az állapottér komplexitásának. Az algoritmus megvalósítása viszonylag egyszerű, de nagyon nagy gépeknél számításilag költséges lehet.