有限状態マシンの複雑性解析のためのマクラスキー アルゴリズムを理解する
マクラスキー アルゴリズムは、有限状態マシンの状態空間の複雑さを計算する方法です。これは、特定の有限状態マシンの状態の数を推定するために使用されます。このアルゴリズムは、1975 年に J. M. マクラスキーによって初めて提案されました。マクラスキー アルゴリズムの背後にある基本的な考え方は、任意の初期状態から到達できる状態の最大数を計算し、次に各初期状態から到達できる状態の最大数を計算することです。それらの州の。このプロセスは、すべての状態が考慮されるまで繰り返され、最終結果がマシン内の状態の総数になります。McCluskey アルゴリズムには、状態空間の複雑さを計算する他の方法に比べていくつかの利点があります。これは実装が比較的簡単で、多数の状態を持つマシンを処理でき、状態空間の複雑さに厳密な上限を提供します。ただし、非常に大規模なマシンでは計算コストが高くなる可能性があります。ここでは、McCluskey アルゴリズムがどのように機能するかを示す例を示します。初期状態 s0.
2 から始めます。 s0 から 1 ステップで到達できるすべての状態のセットを計算します。このセットを S1.
3 とします。 S1 の各状態から 1 ステップで到達できるすべての状態のセットを計算します。これらのセットを S2、S3、... .
4 とします。すべての状態が考慮されるまで、ステップ 3 を繰り返します。
5。最終結果はマシン内の状態の合計数であり、これは任意の初期状態から到達できる状態の最大数です。たとえば、次の遷移テーブルを持つ有限状態マシンを考えてみましょう。 | | b | c |
| --- | --- | --- | --- |
| q0 | | q1 | q2 |
| q1 | b | q2 | q3 |
| q2 | c | q3 | q4 |
| q3 | c | q4 | q5 |
| q4 | 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 |
マクラスキー アルゴリズムを使用してこのマシンの状態空間の複雑さを計算するには、初期状態 q0 から始めます。 q0 から 1 ステップで到達できるすべての状態の集合は {q1, q2, q3} です。これらの各状態から 1 ステップで到達できるすべての状態のセットは、{q4, q5}、{q6, q7}、および {q8, q9} です。すべての状態を説明するまでこのプロセスを続けます。最終結果は、マシン内の状態の総数は 16 です。これは、マシンの状態空間の複雑度が O(16) であることを意味します。要約すると、McCluskey アルゴリズムは、有限の状態空間の複雑さを計算する方法です。ステートマシン。これは、任意の初期状態から到達できる状態の最大数を計算するという考えに基づいており、状態空間の複雑さに対して厳密な上限を提供します。このアルゴリズムの実装は比較的簡単ですが、非常に大規模なマシンでは計算コストが高くなる可能性があります。