📜  从Mealy机到Moore机的转换

📅  最后修改于: 2020-12-17 07:02:08             🧑  作者: Mango

从Mealy机到Moore机的转换

在Moore机器中,输出与每个状态相关联,在Mealy机器中,输出沿带有输入符号的边给出。为了将Moore机器转换为Mealy机器,将状态输出符号分配到输入符号路径。但是,当将Mealy机器转换为Moore机器时,我们将为每个新的输出符号创建一个单独的状态,并根据传入和传出的边缘进行分布。

以下步骤用于将Mealy机器转换为Moore机器:

步骤1:针对每种状态(Qi),计算Mealy机器的转换表中可用的不同输出的数量。

步骤2:如果Qi的所有输出都相同,则复制状态Qi。如果qi具有n个不同的输出,其中n = 0、1、2 …,则将qi分解为n个状态,称为Qin。

步骤3:如果初始状态的输出为0,则在开始处插入一个新的初始状态,以产生1个输出。

范例1:

将以下Mealy机器转换为等效的Moore机器。

解:

以上Mealy机器的转换表如下:

  • 对于状态q1,只有一个入射边缘具有输出0。因此,我们不需要在摩尔机中拆分此状态。
  • 对于状态q2,有两个入射边,输出为0和1。因此,我们将将此状态分为两个状态q20(输出为0的状态)和q21(输出为1的状态)。
  • 对于状态q3,有两个入射边,输出为0和1。因此,我们将将此状态分为两个状态q30(输出为0的状态)和q31(输出为1的状态)。
  • 对于状态q4,只有一个入射边缘具有输出0。因此,我们不需要在摩尔机中拆分此状态。

摩尔机的转换表为:

摩尔机的过渡图将是:

范例2:

将以下Mealy机器转换为等效的Moore机器。

解:

以上Mealy机器的转换表如下:

状态q1只有一个输出。状态q2和q3都具有输出0和1。因此,我们将为这些状态创建两个状态。对于q2,两个状态分别为q20(输出为0)和q21(输出为1)。类似地,对于q3,两个状态将分别为q30(输出为0)和q31(输出为1)。

摩尔机的转换表为:

摩尔机的过渡图将是: