math - 确定非确定性有限自动机是否接受每个可能的字符串

标签 math computer-science nfa automaton computer-science-theory

给定一个 NFA,有没有办法确定它是否接受从其字母表构造的所有字符串,而不必迭代无限的可能字符串集?

最佳答案

当然!这是一种算法:

  1. 运行子集构造,将 NFA 转换为 DFA。
  2. 使用 DFA 最小化算法最小化 DFA。
  3. 检查 DFA 是否包含单个正在接受的状态。如果是这样,原来的 NFA 会接受一切。如果不是,则至少有一个字符串是 NFA 不接受的。

可能有比这更快的算法(步骤(1)可能需要输入 NFA 大小的指数时间),但这表明确实有一些算法可以解决这个问题。

关于math - 确定非确定性有限自动机是否接受每个可能的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61545206/

相关文章:

c - 阅读汇编中的数学函数

functional-programming - 如何用函数式编程语言实现图和图算法?

data-structures - NFA 表示的数据结构

state - 将 Epsilon-NFA 转换为 NFA

regex - 如何使用字符范围实现正则表达式 NFA?

java - Math.pow 在重复调用时产生不同的结果

javascript - JS或jquery每天获取一个新的随机数

java - 如何以 (System.out.println(numbers)); 打印的方式将数字相加数字++;

algorithm - 将数组的元素分成 3 组

algorithm - 确定性有限自动机模式