【问题标题】:Constructing a Moore Machine构建摩尔机器
【发布时间】:2014-08-24 21:05:32
【问题描述】:

我有一个作业问题:

构造一个摩尔机器,它接受一个由 a's b's 组成的字符串 和 c's 作为输入,并在每个末尾输出一个包含 1 的字符串 子串 abc 和所有其他位置的 0。例如输入,aabcb 产生输出,000010

我尝试构建,但我走到了死胡同。这是我的尝试:

如你所见,我无法创建字符串 cccb,而 'abc' 可以输出 0。我觉得我把这个简单的问题复杂化了。

编辑:休息一下,重新做。我认为这是对的,除非有人可以告诉我否则:

【问题讨论】:

  • 你希望有人帮你做作业
  • 你的初始状态是什么?
  • @EdHeal 当然不是。我只是需要帮助。
  • @Bruno 是最左边的那个。
  • 同一个输入有多个外向箭头的状态是怎么回事,并且一些输入丢失?我看不懂图表吗?

标签: output finite-automata computation boyer-moore transducer-machines


【解决方案1】:

解决方案。只是需要想清楚。

【讨论】:

  • q1 中有两个输出箭头,'b' 和 q2 中的'c'。
【解决方案2】:

我会尽力帮助你而不破坏答案:

  • 为什么要使用第二个循环(下三角形)?
  • 您将如何实现一台在找到子序列后成功停止的机器?
  • 您需要做什么才能使其无限期运行?说服自己,匹配子序列的错误等同于初始状态。

我只使用四个状态解决了它,但也许只有三个状态的解决方案。应该清楚的是,你不能做得比这更好。

【讨论】:

  • 对不起,我不关注。你能告诉我你会消除我的哪两种状态吗?我有循环的原因是因为如果我想要多个 c 或 b。
  • 为什么需要检测多个b和c?您应该只关心“abc”子字符串。
  • 如果我想要 abbbbccccaababccccc?
  • 根据我对问题的解释,除了 c 的最终流之前的“abc”之外,几乎只会产生零。它只要求确切的子字符串 'abc' 输出 1。
  • 你能告诉我你的意思吗!我已经和这个斗争了一段时间。 :)
猜你喜欢
  • 1970-01-01
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 2010-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多