热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

TOC中的美利和摩尔机器

TOC中的美利和摩尔机器原文:https://www.ge

TOC 中的美利和摩尔机器

原文:https://www . geesforgeks . org/mealy-and-Moore-machines-in-TOC/

Moore Machines:Moore Machines 是有输出值的有限状态机,其输出只依赖于当前状态。可以定义为(Q,q0, ∑, O,δ,λ)其中:


  • q 是有限状态集。

  • q0 是初始状态。

  • 为输入字母表。

  • o 是输出字母表。

  • δ是映射 Q× → Q 的过渡函数。

  • λ是映射 Q → O 的输出函数。

Figure 1

在图 1 所示的系泊机器中,输出由/分隔的每个输入状态表示。系泊设备的输出长度比输入长度大 1。


  • 输入: 11

  • 跃迁: δ (q0,11)= > δ(q2,1)= > q2

  • 输出: 000 (0 代表 q0,0 代表 q2,0 代表 q2)

*melay Machines:*melay Machines 也是有输出值的有限状态机,其输出取决于当前状态和当前输入符号。可以定义为(Q,q0, ∑, O,δ,λ'),其中:


  • q 是有限状态集。

  • q0 是初始状态。

  • *∑* 为输入字母表。

  • o 是输出字母表。

  • δ是映射 Q× → Q 的过渡函数。

  • ‘λ’是映射 Q× → O 的输出函数。

*Figure 2*

在图 1 所示的机器中,输出用每个状态的每个输入符号表示,用/分隔。粉磨机的输出长度等于输入长度。


  • *输入:* 11

  • *跃迁:* δ (q0,11)= > δ(q2,1)= > q2

  • *输出:* 00 (q0 至 q2 转换具有输出 0,q2 至 q2 转换也具有输出 0)

*从美利到摩尔机器的转换*

让我们看一下图 2 所示的粉饼机的转换表。

| | 输入=0 | 输入=1 |
| 当前状态 | 下一状态 | 输出 | 下一状态 | 输出 |
| q0 | 雌三醇环戊醚 | Zero | q2 | Zero |
| 雌三醇环戊醚 | 雌三醇环戊醚 | Zero | q2 | one |
| q2 | 雌三醇环戊醚 | one | q2 | Zero |

*表 1*

*第一步。*首先找出那些有 1 个以上相关输出的状态。q1 和 q2 是输出 0 和 1 都与之相关联的状态。

*第二步。*为这些状态创建两个状态。对于 q1,两个状态将是 q10(输出为 0 的状态)和 q11(输出为 1 的状态)。类似地,对于 q2,两个状态将是 q20 和 q21。

*第三步。*用新生成的状态创建一个空的停泊机器。对于系泊机器,输出将与每个状态相关联,而与输入无关。

| | 输入=0 | 输入=1 | |
| 现状 | 次状态 | 次状态 | 输出 |
| q0 | | | |
| q10 | | | |
| q11 | | | |
| q20 | | | |
| q21 | | | |

*表 2*

*第四步。*使用表 1 所示的机器转换表填充下一个状态的条目。对于输入 0 上的 q0,下一个状态是 q10(输出 0 的 q1)。同样,对于输入 1 上的 q0,下一个状态是 q20(输出 0 的 q2)。对于输入 0 上的 Q1(q10 和 q11),下一个状态是 Q10。类似地,对于 Q1(Q10 和 q11),下一个状态是 q21。对于 q10,输出为 0,对于 q11,输出为 1。同样,也可以填写其他条目。

| | 输入=0 | 输入=1 | |
| 现状 | 次状态 | 次状态 | 输出 |
| q0 | q10 | q20 | Zero |
| q10 | q10 | q21 | Zero |
| q11 | q10 | q21 | one |
| q20 | q11 | q20 | Zero |
| q21 | q11 | q20 | one |

*表 3*

这是图 1 所示系泊机的过渡表。

*从系泊机到粉磨机的转换*

让我们以图 1 的系泊设备为例,其转换表如表 3 所示。

*第一步。*如表 4 所示,使用系泊设备的所有状态构建一台空的粉状设备。

| | 输入=0 | 输入=1 |
| 当前状态 | 下一状态 | 输出 | 下一状态 | 输出 |
| q0 | | | | |
| q10 | | | | |
| q11 | | | | |
| q20 | | | | |
| q21 | | | | |

*表 4*

*步骤 2:* 每个状态的下一个状态也可以直接从摩尔机器转换表中找到,如下所示:

| | 输入=0 | 输入=1 |
| 当前状态 | 下一状态 | 输出 | 下一状态 | 输出 |
| q0 | q10 | | q20 | |
| q10 | q10 | | q21 | |
| q11 | q10 | | q21 | |
| q20 | q11 | | q20 | |
| q21 | q11 | | q20 | |

*表 5*

*第 3 步:*正如我们在摩尔机器转换表中可以看到的与每个输入对应的输出。用它来填充输出条目。例如:q10、q11、q20、q21 对应的输出分别为 0、1、0、1。T3】****

| | 输入=0 | 输入=1 |
| 当前状态 | 下一状态 | 输出 | 下一状态 | 输出 |
| q0 | q10 | Zero | q20 | Zero |
| q10 | q10 | Zero | q21 | one |
| q11 | q10 | Zero | q21 | one |
| q20 | q11 | one | q20 | Zero |
| q21 | q11 | one | q20 | Zero |

*表 6*

*第四步:*从表 6 可以看出,q10 和 q11 是相似的(不同输入下一个状态和输出的值相同)。同样,q20 和 q21 也是相似的。所以,q11 和 q21 可以去掉。

| | 输入=0 | 输入=1 |
| 当前状态 | 下一状态 | 输出 | 下一状态 | 输出 |
| q0 | q10 | Zero | q20 | Zero |
| q10 | q10 | Zero | q21 | one |
| q20 | q11 | one | q20 | Zero |

*表 7*

这是表 1 中所示的同一台磨粉机。因此,我们将 melay 转换为 moore 机器,并将 moore 转换回 melay。

*注意:*粉饼机的状态数不能大于摩尔机的状态数。

*例:*以下状态图描述的有限状态机,以 A 为起始状态,其中一个弧标号为 x / y,x 代表 1 位输入,y 代表 2 位输出?

输出输入的当前位和先前位的总和。


  1. 每当输入序列包含 11 时,输出 01。

  2. 每当输入序列包含 10 时,输出 00。

  3. 这些都不是。

*解决方案:*让我们获取不同的输入及其输出,并检查哪个选项有效:

*输入:* 01

*输出:* 00 01(对于 0,输出为 00,状态为 a,那么对于 1,输出为 01,状态为 B)

*输入:* 11

*输出:* 01 10(对于 1,输出为 01,状态为 b,然后对于 1,输出为 10,状态为 C)

正如我们所看到的,它给出了现在位和以前位的二进制和。对于第一位,前一位被视为 0。

本文由 Sonal Tuteja 供稿。如果您发现任何不正确的地方,或者您想分享更多关于上面讨论的主题的信息,请写评论


推荐阅读
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 自 Node.js 6.3 版本起,调试功能已内置在核心模块中,无需额外安装 node-inspector 等工具。通过简单的命令即可启动调试模式,并利用 Chrome 浏览器进行高效的代码调试。 ... [详细]
  • 给定行数 numRows,生成帕斯卡三角形的前 numRows 行。例如,当 numRows 为 5 时,返回的结果应为:[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4, 6, 4, 1]]。 ... [详细]
  • 本文详细介绍了如何在WebStorm中配置File Watchers,以实现在编辑LESS文件时自动生成压缩后的CSS文件和对应的源映射(.map)文件。通过简单几步设置,可以大幅提升前端开发效率。 ... [详细]
  • 解决SVN图标显示异常问题的综合指南
    本文详细探讨了SVN图标无法正常显示的问题,并提供了多种有效的解决方案,涵盖不同环境下的具体操作步骤。通过本文,您将了解如何排查和修复这些常见的SVN图标显示故障。 ... [详细]
  • 本文介绍如何将自定义项目设置为Tomcat的默认访问项目,使得通过IP地址访问时直接展示该自定义项目。提供了三种配置方法:修改项目路径、调整配置文件以及使用WAR包部署。 ... [详细]
  • 配置多VLAN环境下的透明SQUID代理
    本文介绍如何在包含多个VLAN的网络环境中配置SQUID作为透明网关。网络拓扑包括Cisco 3750交换机、PANABIT防火墙和SQUID服务器,所有设备均部署在ESXi虚拟化平台上。 ... [详细]
  • 本文详细介绍Python编程的基础知识,涵盖从安装环境到编写简单程序的核心内容,并深入探讨网络编程的基本概念和实践。提供多种资源下载方式,帮助读者快速上手。 ... [详细]
  • 本文探讨了如何在iOS开发环境中,特别是在Xcode 6.1中,设置和应用自定义文本样式。我们将详细介绍实现方法,并提供一些实用的技巧。 ... [详细]
  • 本文介绍了一家大型电信公司在SOA/BPM基础设施项目中采用的版本控制和分支管理策略。自项目启动以来,团队通过定义详细的命名约定、测试流程和分支规则,确保了项目的顺利进行并成功投入生产。 ... [详细]
  • 获取Jedis和Commons Pool JAR包的两种方法及详细步骤
    本文介绍如何通过网盘链接或官方网站获取Jedis和Commons Pool的JAR包,并提供详细的图文教程。同时,还附有导入JAR包到项目的相关建议。 ... [详细]
  • Python第三方库安装的多种途径及注意事项
    本文详细介绍了Python第三方库的几种常见安装方法,包括使用pip命令、集成开发环境(如Anaconda)以及手动文件安装,并提供了每种方法的具体操作步骤和适用场景。 ... [详细]
  • 本文探讨了从传统SSM(Spring + Spring MVC + MyBatis)架构到现代化Spring Boot框架的转变过程,详细分析了两者之间的差异和改进。文章结合图表展示了技术演进的关键节点,帮助读者更好地理解这一重要变革。 ... [详细]
  • 比较源文件与备份目录的差异
    本文介绍了如何有效对比源文件和备份目录之间的差异,确保数据完整性和一致性。文章提供了详细的步骤和工具推荐,帮助用户快速识别并解决潜在问题。 ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
author-avatar
emddh989
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有