McCluskey-algoritmin ymmärtäminen äärellisen tilan koneen monimutkaisuusanalyysissä
McCluskey-algoritmi on menetelmä äärellisten tilakoneiden tilaavaruuden monimutkaisuuden laskemiseen. Sitä käytetään tietyn äärellisen tilan koneen tilojen lukumäärän arvioimiseen. Algoritmia ehdotti ensimmäisen kerran J. M. McClusky vuonna 1975. McCluskey-algoritmin perusideana on laskea tilojen enimmäismäärä, joka voidaan saavuttaa mistä tahansa alkutilasta, ja sitten laskea tilojen enimmäismäärä, joka voidaan saavuttaa kustakin niistä osavaltioista. Tätä prosessia toistetaan, kunnes kaikki tilat on huomioitu, ja lopputulos on koneen tilojen kokonaismäärä.
McCluskey-algoritmilla on useita etuja muihin tila-avaruuden monimutkaisuuden laskentamenetelmiin verrattuna. Se on suhteellisen yksinkertainen toteuttaa, se pystyy käsittelemään koneita, joissa on suuri määrä tilaa, ja se tarjoaa tiukan ylärajan tilaavaruuden monimutkaisuuteen. Se voi kuitenkin olla laskennallisesti kallista erittäin suurille koneille.
Tässä on esimerkki McCluskey-algoritmin toiminnasta:
1. Aloita alkutilasta s0.
2. Laske kaikkien tilojen joukko, jotka voidaan saavuttaa s0:sta yhdessä vaiheessa. Olkoon tämä joukko S1.
3. Laske kaikkien tilojen joukko, jotka voidaan saavuttaa kustakin S1:n tilasta yhdessä vaiheessa. Olkoon nämä joukot S2, S3, ... .
4. Toista vaihe 3, kunnes kaikki tilat on otettu huomioon.
5. Lopputulos on koneen tilojen kokonaismäärä, joka on tilojen enimmäismäärä, joka voidaan saavuttaa mistä tahansa alkutilasta.
Otetaan esimerkiksi äärellinen tilakone, jolla on seuraava siirtymätaulukko:
| | 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 |
Tämän koneen tila-avaruuden monimutkaisuuden laskemiseksi McCluskey-algoritmin avulla aloitamme alkutilasta q0. Kaikkien tilojen joukko, jotka voidaan saavuttaa q0:sta yhdessä vaiheessa, on {q1, q2, q3}. Kaikkien tilojen joukko, jotka voidaan saavuttaa kustakin näistä tiloista yhdessä vaiheessa, on {q4, q5}, {q6, q7} ja {q8, q9}.
Jatkamme tätä prosessia, kunnes olemme laskeneet kaikki tilat. Lopputuloksena on koneen tilojen kokonaismäärä, joka on 16. Tämä tarkoittaa, että koneen tilaavaruuden kompleksisuus on O(16).
Yhteenvetona voidaan todeta, että McCluskey-algoritmi on menetelmä äärellisen tilaavaruuden kompleksisuuden laskemiseksi. valtion koneet. Se perustuu ajatukseen laskea tilojen enimmäismäärä, joka voidaan saavuttaa mistä tahansa alkutilasta, ja se tarjoaa tiukan ylärajan tilaavaruuden monimutkaisuuteen. Algoritmi on suhteellisen yksinkertainen toteuttaa, mutta se voi olla laskennallisesti kallis erittäin suurille koneille.