本文概述
- 将Moore机转换为Mealy机的方法
我们无法直接将Moore机器转换为其等效的Mealy机器,因为对于给定的输入,Moore机器的长度比Mealy机器长一倍。为了将Moore机器转换为Mealy机器,将状态输出符号分配到输入符号路径中。我们将使用以下方法将Moore机器转换为Mealy机器。
将Moore机转换为Mealy机的方法令M =(Q,∑,δ,λ,q0)为摩尔机器。等效的Mealy机器可由M’ =(Q,∑,δ,λ’ ,q0)表示。输出函数λ’ 可通过以下公式获得:
λ' (q, a) = λ(δ(q, a))
范例1:
将以下摩尔机转换为等效的Mealy机。
文章图片
解:
给定的摩尔机的转换表如下:
问 | 一种 | b | 输出(λ) |
---|---|---|---|
q0 | 00 | 11 | 0 |
q1 | 00 | 11 | 1 |
λ' (q0, a) = λ(δ(q0, a))
= λ(q0)
= 0λ' (q0, b) = λ(δ(q0, b))
= λ(q1)
= 1
状态q1的λ如下:
λ' (q1, a) = λ(δ(q1, a))
= λ(q0)
= 0λ' (q1, b) = λ(δ(q1, b))
= λ(q1)
= 1
因此,Mealy机器的转换表可以绘制如下:
文章图片
等效的Mealy机器将是
文章图片
注意:在Moore机器中,输出序列的长度为“ n 1”,在Mealy机器中为“ n”。范例2:
【从Moore机到Mealy机的转换】将给定的Moore机器转换为其等效的Mealy机器。
文章图片
解:
给定的摩尔机的转换表如下:
问 | 一种 | b | 输出(λ) |
---|---|---|---|
q0 | 11 | 00 | 0 |
q1 | 11 | 22 | 0 |
q2 | 11 | 00 | 1 |
λ' (q0, a) = λ(δ(q0, a))
= λ(q1)
= 0λ' (q0, b) = λ(δ(q0, b))
= λ(q0)
= 0
状态q1的λ如下:
λ' (q1, a) = λ(δ(q1, a))
= λ(q1)
= 0λ' (q1, b) = λ(δ(q1, b))
= λ(q2)
= 1
状态q2的λ如下:
λ' (q2, a) = λ(δ(q2, a))
= λ(q1)
= 0λ' (q2, b) = λ(δ(q2, b))
= λ(q0)
= 0
因此,Mealy机器的转换表可以绘制如下:
文章图片
等效的Mealy机器将是
文章图片
范例3:
将给定的Moore机器转换为其等效的Mealy机器。
问 | 一种 | b | 输出(λ) |
---|---|---|---|
q0 | 00 | 11 | 0 |
q1 | 22 | 00 | 1 |
q2 | 11 | 22 | 2 |
给定问题的事务图可以绘制为:
文章图片
等效的Mealy机器可以按以下方式获得:
λ' (q0, a) = λ(δ(q0, a))
= λ(q0)
= 0λ' (q0, b) = λ(δ(q0, b))
= λ(q1)
= 1
状态q1的λ如下:
λ' (q1, a) = λ(δ(q1, a))
= λ(q2)
= 2λ' (q1, b) = λ(δ(q1, b))
= λ(q0)
= 0
状态q2的λ如下:
λ' (q2, a) = λ(δ(q2, a))
= λ(q1)
= 1λ' (q2, b) = λ(δ(q2, b))
= λ(q2)
= 2
因此,Mealy机器的转换表可以绘制如下:
文章图片
等效的Mealy机器将是
文章图片
推荐阅读
- 从Mealy机到Moore机的转换
- 自动机上下文无关语法(CFG)
- Arden定理
- RE到FA的自动机转换
- 自动机正则表达式的例子
- 自动机正则表达式
- 从NFA到DFA的自动机转换
- 自动机从ε NFA到DFA的转换
- 消除ε转换的自动机