Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 确定性有限自动机模式_Algorithm_Computer Science_Finite Automata_Dfa - Fatal编程技术网

Algorithm 确定性有限自动机模式

Algorithm 确定性有限自动机模式,algorithm,computer-science,finite-automata,dfa,Algorithm,Computer Science,Finite Automata,Dfa,我试图用确定性有限自动机解决这个问题: inputs: {a,b} conditions: a. must have exactly 2 a b. have more than 2 b 因此,正确的输入应该是这样的abbba或bbbaa或bababab 现在我的问题是,“有一种模式可以解决这个问题吗?”是的,有一种模式。你可以从每一条语句中扣除前状态。然后取这些前状态的叉积,它将构成最终状态。在本例中: a。将产生状态:0a、1a、2a、2+a(您已经看到0a、1a、2as或多于

我试图用确定性有限自动机解决这个问题:

inputs:     {a,b}
conditions: 
a. must have exactly 2 a  
b. have more than 2 b
因此,正确的输入应该是这样的
abbba
bbbaa
bababab


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

是的,有一种模式。你可以从每一条语句中扣除前状态。然后取这些前状态的叉积,它将构成最终状态。在本例中:

a。将产生状态:0a、1a、2a、2+a(您已经看到0a、1a、2as或多于2as) B将产生状态:0b、1b、2b、2+b(您已经看到0b、1b、2b或多于2b)

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


(我们在做作业吗?

总是先画这样的东西

请随意给国家赋予任何意义。这里需要的是类似于:
q2:(1b,2a)
的状态。像这样绘制状态,直到“接受”状态并用线连接它们。接受状态为
qx:2 a的3 b的

到达接受状态后,如果输入为“b”,则该行进入自身,即接受状态。如果输入为“a”,则绘制一个新状态,该状态将进入一个无止境的循环,并进入自身,无论输入是什么


(我们在这里帮助考试吗?

首先画出自动机可能处于的状态。例:如果您的机器找到一个“a”,它可以从该状态进行哪些有效转换?然后,从每一种情况开始,继续进行以下转换,直到你涵盖了所有情况。我很难解决2个条件你真的在寻找更多的算法而不是模式。@rbaryyoung你能推荐一个吗?@newbie我喜欢Csaba Toth的答案。对不起,我不太明白你的意思,在字母a中。你给了4个状态,分别是0a,1a,2a,2+a(如果我没弄错的话),为什么你给了4个状态,如果只需要接受2个a?难道三个州都不会这样做吗?我怎样把这两台机器结合起来呢?(同样,如果我没有弄错的话,因为它看起来像2台机器,机器
a
b
)@newbie 2+a状态意味着“大于2”,你需要知道,因为这意味着字符串不匹配。术语检查:如上所述,这篇文章讨论的其实是算法,而不是模式。@Csaba Toth你是如何在第一台机器上找到4个状态的?@newbie:是的,因为如果你得到了2个以上的“a”,那么你就不符合标准,你应该能够跟踪这一事实。编辑,但这是否太重要了?您只应再添加一个状态。如果你愿意,我可以画并粘贴它,但你没有要求精确的解决方案。你要求用模式来解决这些问题。事实上,这个问题是我编的,和我教授给我的很相似,我也想自己解决这个问题,但我真的很难处理
的情况。你能告诉我如何解决这类问题吗?或者说,它通常有多个接受状态。每个or'ed语句本身都应该有一个accept语句。它有一个接受状态,它符合所有的陈述。正如我之前建议的,请随意先画一些随机的东西。画完状态图后,写下一些被接受的单词来尝试状态图。然后绘制状态图,为最短的已接受单词绘制状态和链接,然后绘制其余的。