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

标签 algorithm computer-science finite-automata dfa

我正在尝试使用 Deterministic Finite Automata 解决这个问题:

inputs:     {a,b}
conditions: 
a. must have exactly 2 a  
b. have more than 2 b

所以正确的输入应该像这样 abbbabbbaababab

现在我的问题是,“有解决这个问题的模式吗?”

最佳答案

是的,有一个模式。您可以获取每个陈述并从中扣除前置状态。然后你取这些前状态的叉积,这将构成最终状态。在这个例子中:

一个。将产生状态:0a、1a、2a、2+a(您已经看到 0 a、1 a、2 as 或超过 2 as) b.将产生状态:0b、1b、2b、2+b(您已经看到 0 b、1 b、2 bs 或超过 2 bs)

这些状态的叉积产生 4x4=16 个状态。您将从 {0a,0b} 个状态开始。输入可以是 3 种类型:a、b 或其他类型。 从那里你应该可以去。您需要更多帮助吗?

(我们在做作业吗?)

关于algorithm - 确定性有限自动机模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16291254/

相关文章:

algorithm - 如何从数组中获取 X 个最大值

arrays - 在大小为 N 的数组中寻找最大值的分而治之策略的时间分析

arrays - 大于键的最小子数组

regular-language - 连接和联合 - 常规和上下文无关语言

java - 使用有限状态机解析文件

python - 在python中将列表转换为矩阵

algorithm - AVL 树 - 旋转奇怪 : Breaking BST property

data-structures - 用于估计降阶有序二元决策图效率的启发式方法?

c# - 如何记录计算机之间的相对时间?

finite-automata - 如何查找 NFA 的语言