【问题标题】:Are there any steps or rules to draw a DFA?绘制 DFA 是否有任何步骤或规则?
【发布时间】:2014-05-26 11:49:19
【问题描述】:

在我的“自动机理论”的第一堂课中,在给出了一些字母、语言、转换函数等概念和几个带有一个和两个开关的电路的简单自动机之后,是这个问题。

我了解 Alphabet 以及 DFA 的语言是什么,但是否有任何规则或步骤可以遵循以达到针对给定语言的正确自动机?还是我们只需要在脑海中想象和思考,然后找到满足给定语言的解决方案?

注意:- 请尽量保持语言简单,因为这是我的第一堂课,我还不知道正则表达式等概念或主题中的任何其他内容。

【问题讨论】:

  • 简单语言:这不是编程问题。你应该问Computer Science
  • @MikeW 好的,谢谢。我只是在这里添加它,因为我在这里看到了一些类似的问题。
  • Zarah:从英文描述中提取DFA没有正式的规则,更像是能力问题。你只能通过实践来学习它,就像你学习编程一样。从书中给出的简单示例开始,您将学习一些技巧。记住那些解决方案和技巧……这就是方法。
  • @GrijeshChauhan 但是有 3 个人刚刚说有一些算法。请查看here
  • @Zarah 你没明白。他们的回答是:“从一种表示转换为另一种表示”,例如,如果您有 RE(正则表达式)或 NFA(非确定性有限自动机),那么您有算法方法将它们转换为 DFA。但是,如果给您“语言的英语描述”,我的意思是什么--

标签: finite-automata dfa automata


【解决方案1】:

构建 DFA 的步骤-

按照以下步骤为 Type-01 问题构建 DFA-

步骤 01:确定 DFA 中所需的最少状态数。 画出这些状态。

步骤 02:确定要为其构造 DFA 的字符串。

步骤 03:为步骤 02 中确定的字符串构造 DFA。

Step-04:将所有剩余的可能组合发送到起始状态。 不要将剩余的可能组合发送到死状态。

【讨论】:

    【解决方案2】:

    我是新手..但根据我的经验.. 应首先绘制要接受的语言的边界条件,然后在查看将被逐步拒绝的条件时添加复杂性.. . 作为开始,如果问题中的数字是针对接受 L={01*0} 的 DFA,那么最小的字符串将是“010” ..最终可以构造 dfa,牢记陷阱状态和一些分析希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      如果给你一个语言的描述,比如说,想想所有可能适用于这种语言的字符串。然后,尝试提出一个处理大部分字符串的 DFA。然后查看边界条件并生成一些字符串。尝试将其容纳在 DFA 中。这对你来说可能是一个很好的起点

      http://www.cse.chalmers.se/~coquand/AUTOMATA/o2.pdf

      【讨论】:

        猜你喜欢
        • 2017-02-06
        • 1970-01-01
        • 2014-06-10
        • 2015-03-13
        • 1970-01-01
        • 2011-05-01
        • 2019-08-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多