DFA最小化如何工作?

时间:2016-02-15 12:56:06

标签: regular-language automata dfa nfa

我教授写的这些笔记有问题吗?

enter image description here

D& F和B& C如何相同?

他们不应该因为交易功能给出不同的状态。如果这没关系,我们关心两个州接受或拒绝的相同输入的等价性,那么为什么D和B不等同?

其他问题:

如果您熟悉符号,交易和交易明星之间有什么区别?

总和符号和总和星有什么区别?

底部的评论说:" ...字符串epsilon"。那是什么意思?我没有使用epsilon。

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:1)

我不知道你所说的“交易”或“交易明星”是什么意思,但在看了“总和符号”和“总和之星”之后,我怀疑你的意思是希腊字母之一。

首先让我们来处理这一点混乱。

此处的符号不称为“sum”:Σ

希腊字母表中的字母,称为“西格玛”。与拉丁字母一样,Greek letters同时包含大写和小写形式。那个象征是一个大写的西格玛。

该符号经常用于表示“总和”。然而,在某些数学分支中,使用大写西格玛来表示其他东西是传统的。基本上,把它当作另一个字母,虽然看起来有点奇怪。

现在,因为你正在学习语言理论,所以有一些传统的东西,各种各样的字母代表。这可能在你的教科书或你教授笔记中的其他地方,但实际上这并不比“x”通常代表左侧或右侧放置一个点的约定更为神秘,而“y”通常代表了多远或者说明一点。

具体来说,在计算机科学语言理论中,传统的做法是使用Σ表示“字母表”(如同一组字符)。

此外,在语言理论中,如果你有一套任何东西,那么传统上使用该集合后跟一个上标星号来表示“由该集合中的东西组成的字符串”。例如,如果我说:

  

S = {0,1}。写下 S *

元素的五个例子

然后一个适当的答案是:

  

ϵ "1" "111000" "0101" "110011001100111"

请注意我在那里使用了ε!在语言理论中,ε用于表示空字符串。

从上下文来看,您的类中的符号似乎是使用小写delta(δ)来表示DFA的转换函数。例如,在第一张幻灯片中,δ(B,0)= D和δ(B,1)= E.此外,看起来他们正在使用(δ )表示采用初始状态和字符串的函数,并告诉该字符串处理的位置。所以在第一个图中,δ (A,“11”)= E.

现在让我们备份并解释这些笔记的每一点。

首先,在第一张幻灯片中,幻灯片开始时说两个状态是等效的,当且仅当它们从这些状态开始接受完全相同的字符串时。现在,让我们看看从B和C开始接受哪些字符串:任何以“1”开头的字符串都会转到E并被接受(因为在E之后,所有路径都会再次返回到E);任何以“0”开头的字符串都会转到D或F,它会保留,并被拒绝。

你问为什么B和D不相等 - 考虑字符串“1”,只有一个字符。如果从B开始,则接受该字符串。 (因为它转到E,一个接受状态)如果你从D开始,那个字符串被拒绝(因为D,它最终结束,不是一个接受状态)。

现在,第二阶段顶部的定义只是将字符串从不同的状态开始变为正式语言的概念。对于所有字符串 w ,如果两个状态 w 对于两个状态都相同,那么两个状态是否等效,如果它们是否最终处于接受状态。否则,有一些字符串 w ,这样,从一个状态开始,当你继续使用 w 时,你就会达到一个接受状态,而从另一个状态,你最终会处于一个不接受状态。然后你说状态是由字符串 w “区分”的。

你问到底部的评论只是注意到接受状态和不接受状态总是可以用空字符串区分(记住,在语言理论中这就是ε的含义)。这是有道理的,因为对于所有状态A和所有DFA,δ * (A,ε)= A(在空字符串之后永远不会去任何地方)。