web-dev-qa-db-ja.com

ミーリー対ムーア

MealyタイプとMooreタイプの有限状態マシンの違いは何ですか?

21
user191776

ムーアマシンでは、生成される出力は、マシンの現在の状態とそれに関連するものにのみ関連付けられます。 Mealyマシンでは、代わりに状態と特定の入力の両方に関連付けられます。

実用的な観点から見ると、出力はムーアマシンの状態に配置されるため(すべての状態に出力があります)、後者では遷移に出力があります(出力は現在の状態と出力遷移から決定されます) )

29
Jack

ムーアの機械出力は機械の状態のみの関数であり、ミーリー機械の出力は機械の状態とその入力の関数です。

7
Orbit

ムーアマシンは、次の形式で表現できる離散動的システムです。

x[k+1] = f(x[k], u[k] )
y[k] = g(x[k] )

ここで、x状態、u入力、y出力、fは遷移関係(離散ダイナミクス)を表し、gは出力マップ(ここでは状態ラベル)とkは時間(シーケンスのインデックス)を示します。

Mealyマシンは少し一般的な形式です。

x[k+1] = f(x[k], u[k] )
y[k] = g(x[k], u[k] )

gはもはや状態ラベルではなく、Edgeラベルであることに注意してください。

それらは等しくありません特にムーアマシンは厳密に因果関係がありますが、ミーリーマシンはそうではありません。

詳細については、Lee&Seshia、 Introduction to Embedded Systems 、LeeSeshia.org、p.58を参照してください。

4

例による解説/逸話。

これはおそらく例と逸話で最もよく説明されます。

私は空港が嫌いで、空港に行くのは嫌ですが、飛行機に乗ることが大好きです。飛行機に乗る前に私が入力しなければならない3つの異なる状態があります。

  1. 州:タクシー内(イベント:その後、料金を支払い、次の州に移動します:)
  2. 状態:ラウンジ内(イベント:2時間待機し、次の状態に移行:)
  3. 状態:面内

しかし、結果は何ですか?

Mealyマシンでは、前の状態に由来する違いが生じます-howどこかで得ることが非常に重要です。 Mooreマシンでは、how状態に到達しても違いはありません。

上記に結果を追加して、ステートマシンのムーア表現を作成します。

状態機械のムーア表現の例:

  1. 州:タクシー(イベント:運賃を支払い、次の州に移動)。 (結果:不幸)。
  2. 状態:ラウンジ内(イベント:2時間待ってから次の状態に移行)(結果:不満)
  3. 状態:面内(結果:happy).

ムーア表現では、結果はに直接添付されます。 Mealy表現の場合-特定の結果/出力は、どこから来たかによって異なります。例えば、タクシーに乗らずにラウンジで待たなくても飛行機に乗れたら嬉しいです。入力は違いを生みます。 whereの出身地は重要です。 Mealy表現のステートマシンでは、これを図に表示できます。言い換えると、遷移の間、出力/結果は状態の外側に表示されます。

3
BKSpurgeon
  • Mealyマシンの出力は現在の状態現在の入力の両方に依存しますムーア出力は現在の状態のみに依存します。

  • 一般的にMealyマシンはMooreマシンよりfever stateよりも多くあります。

  • Mealyクロックエッジで出力が変化しますが、Moore出力はロジックが完了するとすぐに変化します。

  • Mealy入力に対する反応が速くなります一方、Mooreログインにはdecode出力が必要です- より多くの回路遅延

0

ムーアは、アクティブクロックパルスの後にのみ変化し、クロックエッジごとに変化します(「外部入力が変化した場合」)

0
Nikhilesh