Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >状态机-双延迟离散时间机状态转换图

状态机-双延迟离散时间机状态转换图
EN

Stack Overflow用户
提问于 2017-03-09 09:33:25
回答 1查看 260关注 0票数 0

我正在以我的方式完成麻省理工学院的开放式课程,电气工程与计算机科学导论,其中使用状态机。我已经注意到,课程讲师没有为他们讨论的大多数状态机绘制状态转换图。

一个问题是设计一个状态机& Python代码,它的状态是过去两个时间间隔的输入。我认为这是一个无限状态机,状态转换图可能有助于得到一般的想法,同时只显示其中的几个状态。

我想知道是否可以为这种双延迟机器绘制状态转换图。到目前为止,所有的例子都有一条从状态泡中出现的过渡线,这个状态泡标记有一个输入和结果输出,然后指向下一个状态。对于双延时机器,结果的输入是在前两个时间段输入的。问题指令状态:机器的所有状态内存都在一个参数中。没有提到输入内存,我认为这是必要的。

我的问题:

  1. 能否为此状态机绘制状态转换图?
  2. 输入内存是否一定是此设计的一部分?
EN

回答 1

Stack Overflow用户

发布于 2017-07-13 15:37:33

绘制图表是不可能的,因为所有可能的状态集都包含任何数据类型的值,在读取中为(单个)延迟状态机提供的示例中给出了这种值。因此,无法定义可能的状态数。见第4章:状态机

在问题描述中,它指出:

在任何状态机中,、init、和getNextValues方法必须不设置或读取除self.startState (甚至self.state)以外的任何实例变量。所有内存(状态)必须位于getNextValues的状态参数中。请看课程说明中的例子,第4.1节。

所以状态就是你所需要的全部记忆。没有理由不使用数组作为状态来保留最后两个输入。

首先,我们将两个值保存在内存(状态)中。

代码语言:javascript
运行
AI代码解释
复制
class Delay2Machine(StateMachine):
    def __init__(self, val0, val1):
        self.startState = (val0, val1)

以下是在阅读中给出的超类SM步骤函数实现:

代码语言:javascript
运行
AI代码解释
复制
def step(self, inp):
    (s, o) = self.getNextValues(self.state, inp)
    self.state = s
    return o

输出将是保存在内存中的第一个值,状态将被更新以包含新的输入。

代码语言:javascript
运行
AI代码解释
复制
    def getNextValues(self, state, inp):
        return ((state[1], inp), state[0])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42701873

复制
相关文章

相似问题

从子状态机延迟事件

13

在状态机中使用延迟

12

状态图、状态机图和状态转换图的区别

24

在VHDL状态机中实现延迟

10

状态机的Arduino状态机问题

120
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档