유한 상태 기계 복잡성 분석을 위한 McCluskey 알고리즘 이해
McCluskey 알고리즘은 유한 상태 기계의 상태 공간 복잡도를 계산하는 방법입니다. 주어진 유한 상태 기계의 상태 수를 추정하는 데 사용됩니다. 이 알고리즘은 1975년 J. M. McClusky에 의해 처음 제안되었습니다. 그 주 중. 이 프로세스는 모든 상태가 설명될 때까지 반복되며 최종 결과는 기계의 전체 상태 수입니다. McCluskey 알고리즘은 상태 공간 복잡성을 계산하는 다른 방법에 비해 몇 가지 장점이 있습니다. 구현하기가 상대적으로 간단하고, 상태 수가 많은 머신을 처리할 수 있으며, 상태 공간 복잡성에 대한 엄격한 상한선을 제공합니다. 그러나 매우 큰 기계의 경우 계산 비용이 많이 들 수 있습니다.
다음은 McCluskey 알고리즘 작동 방식의 예입니다.
1. 초기 상태 s0.
2로 시작합니다. 한 단계로 s0에서 도달할 수 있는 모든 상태의 집합을 계산합니다. 이 세트를 S1.
3으로 둡니다. 한 단계로 S1의 각 상태에서 도달할 수 있는 모든 상태 집합을 계산합니다. 이 세트를 S2, S3, ... .
4로 둡니다. 모든 상태가 고려될 때까지 3단계를 반복합니다.
5. 최종 결과는 기계의 총 상태 수이며, 이는 초기 상태에서 도달할 수 있는 상태의 최대 수입니다.
예를 들어 다음 전이 테이블이 있는 유한 상태 기계를 고려하십시오.
| | | 비 | c |
| --- | --- | --- | --- |
| q0 | | q1 | q2 |
| q1 | 비 | 2분기 | q3 |
| 2분기 | c | 3분기 | q4 |
| 3분기 | c | 4분기 | q5 |
| 4분기 | 비 | q5 | q6 |
| q5 | | q6 | q7 |
| q6 | 비 | q7 | q8 |
| q7 | c | q8 | q9 |
| q8 | c | q9 | q10 |
| q9 | | q10 | q11 |
| q10 | 비 | q11 | q12 |
| q11 | c | q12 | q13 |
| q12 | 비 | q13 | q14 |
| q13 | | q14 | q15 |
| q14 | c | q15 | q16 |
Mcluskey 알고리즘을 사용하여 이 기계의 상태 공간 복잡도를 계산하기 위해 초기 상태 q0부터 시작합니다. 한 단계로 q0에서 도달할 수 있는 모든 상태의 집합은 {q1, q2, q3}입니다. 한 단계에서 이러한 각 상태에서 도달할 수 있는 모든 상태의 집합은 {q4, q5}, {q6, q7} 및 {q8, q9}입니다.
모든 상태를 설명할 때까지 이 프로세스를 계속합니다. 최종 결과는 기계의 전체 상태 수인 16입니다. 이는 기계의 상태 공간 복잡도가 O(16)임을 의미합니다. 상태 머신. 이는 초기 상태에서 도달할 수 있는 최대 상태 수를 계산한다는 아이디어를 기반으로 하며 상태 공간 복잡성에 대한 엄격한 상한을 제공합니다. 이 알고리즘은 구현하기가 상대적으로 간단하지만 매우 큰 시스템의 경우 계산 비용이 많이 들 수 있습니다.