Zrozumienie algorytmu McCluskeya do analizy złożoności maszyny skończonej
Algorytm McCluskeya to metoda obliczania złożoności przestrzeni stanów maszyn o skończonych stanach. Służy do szacowania liczby stanów w danej maszynie skończonej. Algorytm został po raz pierwszy zaproponowany przez J. M. McClusky'ego w 1975 roku.
Podstawową ideą algorytmu McCluskeya jest obliczenie maksymalnej liczby stanów, do których można dotrzeć z dowolnego stanu początkowego, a następnie obliczenie maksymalnej liczby stanów, które można osiągnąć z każdego tych stanów. Proces ten powtarza się aż do uwzględnienia wszystkich stanów i ostatecznym wynikiem jest całkowita liczba stanów w maszynie.… Algorytm McCluskeya ma kilka zalet w porównaniu z innymi metodami obliczania złożoności przestrzeni stanów. Jest stosunkowo prosty w implementacji, może obsługiwać maszyny z dużą liczbą stanów i zapewnia ścisłą górną granicę złożoności przestrzeni stanów. Jednak w przypadku bardzo dużych maszyn może to być kosztowne obliczeniowo.… Oto przykład działania algorytmu McCluskeya:……1. Zacznij od stanu początkowego s0.ć2. Oblicz zbiór wszystkich stanów, które można osiągnąć z s0 w jednym kroku. Niech ten zbiór będzie S1.
3. Oblicz zbiór wszystkich stanów, które można osiągnąć z każdego stanu w S1 w jednym kroku. Niech tymi zbiorami będą S2, S3, ... .
4. Powtarzaj krok 3, aż wszystkie stany zostaną uwzględnione.
5. Końcowym wynikiem jest całkowita liczba stanów maszyny, czyli maksymalna liczba stanów, które można osiągnąć z dowolnego stanu początkowego.
Na przykład rozważmy maszynę o skończonych stanach z następującą tabelą przejść:
| | | b | c |
| --- | --- | --- | --- |
| q0 | | kw. | q2 |
| kw. | b | kw. | q3 |
| kw. | c | q3 | q4 |
| q3 | c | kw. 4 | q5 |
| kw. 4 | b | q5 | q6 |
| q5 | | q6 | q7 |
| q6 | b | q7 | q8 |
| q7 | c | q8 | q9 |
| q8 | c | q9 | q10 |
| q9 | | q10 | q11 |
| q10 | b | q11 | q12 |
| q11 | c | q12 | q13 |
| q12 | b | q13 | q14 |
| q13 | | q14 | q15 |
| q14 | c | q15 | q16 |
Aby obliczyć złożoność przestrzeni stanów tej maszyny za pomocą algorytmu McCluskeya, zaczynamy od stanu początkowego q0. Zbiór wszystkich stanów, które można osiągnąć z q0 w jednym kroku to {q1, q2, q3}. Zbiór wszystkich stanów, które można osiągnąć z każdego z tych stanów w jednym kroku, to {q4, q5}, {q6, q7} i {q8, q9}.
Kontynuujemy ten proces, aż policzymy wszystkie stany. Ostatecznym wynikiem jest całkowita liczba stanów maszyny, która wynosi 16. Oznacza to, że złożoność przestrzeni stanów maszyny wynosi O(16).
W skrócie, algorytm McCluskeya jest metodą obliczania złożoności przestrzeni stanów skończonej maszyny państwowe. Opiera się na idei obliczania maksymalnej liczby stanów, które można osiągnąć z dowolnego stanu początkowego i zapewnia ścisłą górną granicę złożoności przestrzeni stanów. Algorytm jest stosunkowo prosty w implementacji, ale w przypadku bardzo dużych maszyn może być kosztowny obliczeniowo.