构造有限机器以打印“1”作为每次出现“a”作为子字符串的输出
先决条件: Mealy 和 Moore 机器,Mealy 机器和 Moore 机器的区别
在本文中,我们将看到一些带输出的有限自动机的设计,即 Moore 和 Mealy 机器。
问题:构造机器,将 {a, b} 上的所有字符串集合作为输入,并将每次出现的 'a' 作为子字符串打印 '1' 作为输出。
认为,
Ε = {a, b} and
Δ = {0, 1}
其中Ε和Δ分别是输入和输出字母。
解释:
所需的摩尔机构造如下:-
在上图中,初始状态“X”在将“b”作为输入时保持在自身状态并打印“0”作为输出,在将“a”作为输入时它转换到状态“Y” ' 并打印 '1' 作为输出。将“a”作为输入时的状态“Y”保持在自身状态并打印“1”作为输出,并在将“b”作为输入时返回状态“X”并打印“0” ' 作为输出。
因此,最终上述摩尔机器可以轻松地将“1”打印为将“a”作为输入子字符串的输出。
上面的摩尔机器将 {a, b} 上的所有字符串集合作为输入并计算子字符串“a”的数量,即,在获取“a”作为子字符串时,它给出“1”作为输出,因此计算“1”的数量我们可以计算子串'a'的数量。
现在我们需要将上述摩尔机转换图转换为等效的 Mealy 机转换图。
从摩尔机到米利机的转换:
所需转换的步骤如下:-
- Step-1:上述摩尔机状态转移表的形成——
- 在上面的转换表中,状态“X”和“Y”保留在第一列中,在获得“a”作为输入时,它分别转换为“Y”和“Y”状态,保留在第二列中并在获得'b' 作为输入,它分别转换到 'X' 和 'X' 状态,保留在第三列中。
在Δ下的第四列中,有第一列状态的对应输出。在表中,箭头 (→) 表示初始状态。
- Step-2:从上面的摩尔机转移表形成Mealy机转移表-
下面的转换表将在上表及其条目的帮助下形成,只需使用第一列状态的相应输出并将它们相应地放置在第二列和第三列中。
- 在上表中,第一列中的状态(如“X”)在将“a”作为输入时进入状态“Y”并给出“1”作为输出并在将“b”作为输入时进行到状态“X”并给出“0”作为第一列中剩余状态的输出,依此类推。在表中,箭头 (→) 表示初始状态。
- Step-3:最后我们可以借助上面的转移表形成 Mealy 机的状态转移图。
所需的图表如下所示 -
- 上面的 Mealy 机器将 {a, b} 上的所有字符串集合作为输入并计算子字符串“a”的数量,即,在获取“a”作为子字符串时,它给出“1”作为输出,因此计算“1”的数量我们可以计算子串'a'的数量。
注意:从 Moore 转换到 Mealy 机器时,Moore 和 Mealy 机器的状态数保持不变,但在 Mealy 到 Moore 转换的情况下,它不会给出相同数量的状态。