【问题标题】:How to convert this non-deterministic FSA to a deterministic one?如何将此非确定性 FSA 转换为确定性 FSA?
【发布时间】:2016-08-25 13:09:28
【问题描述】:

想知道如何转换这个不确定的 FSA

到一个确定性的,特别是表格。

到目前为止,我已经得到了这个,但被卡住了:

如何分配 BHMQ?对于状态一,不会有四位数吗? (C、I、N、R)?

【问题讨论】:

  • 将新状态 {B,H,M,Q} 设为 S,然后 S(0) = B(0) + H(0) + M(0) + Q(0) 和然后对 S(1) 执行此操作。并继续添加状态,直到没有达到新状态
  • web.cecs.pdx.edu/~harry/compilers/slides/LexicalPart3.pdf 这个 pdf 可能会有所帮助。检查一次
  • 我很困惑@KishanKumar,放在桌子上会怎么样?
  • 新建的dfa中的状态不一定和nfa中的相同。您可以将状态 BHMQ 视为单个状态并使用它
  • 并在表中将新状态写入BHMQ的位置,并为该状态创建一个新行。为仅由 DFA 中的起始状态派生的状态的表创建行

标签: discrete-mathematics


【解决方案1】:

您正在寻找的概念是所谓的power set construction。从初始自动机开始,状态集通过将其所有子集的幂集作为最终自动机的状态集进行转换;最终状态是包含至少一个初始最终状态的状态。

在接受的语言相同的意义上,生成的自动机等价于最初的自动机。但是,状态的数量可能会呈指数级增长。

【讨论】:

    猜你喜欢
    • 2019-03-19
    • 1970-01-01
    • 2016-05-14
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 2018-07-14
    相关资源
    最近更新 更多