Questions tagged «finite-automata»

有关有限自动机(具有有限内存的基本自动机模型)的问题。它等效于常规语言,并且是许多更复杂模型的基础。

1
与普通语言的上下文自由交集
上下文无关语言L与常规语言M的交集被称为始终上下文无关。我了解跨产品构造的证明,但是我仍然不明白为什么它是上下文无关的但不是常规的。 由这种相交产生的语言具有PDA 和 DFA 都接受的字符串。由于DFA接受了该语言,因此它不应该是常规语言吗?另外,如果交集是规则的,则也意味着上下文无关,因为所有常规语言也是上下文无关的。 有人可以向我解释为什么通过这种交集获得的语言不规则吗?

3
Brzozowski的DFA最小化算法
Brzozowski的DFA最小化算法可通过以下方式为DFA建立最小的DFA :GGG 反转所有边,使初始状态为接受状态,而接受状态为初始,以获得反向语言的NFA,N 'GGGñ′ñ′N' 使用powerset构造获得反语言的,G′G′G' 反转的边(和初始接受交换)以获得原始语言的NFA,并且 ÑG′G′G'ññN 进行powerset构造以获得。G分G分G_{\min} 当然,由于某些DFA具有指数较大的反向DFA,因此根据输入的大小,此算法在最坏的情况下会以指数形式运行,因此,请跟踪反向DFA的大小。 如果ññN是输入DFA 的大小,ññn是最小DFA 的大小,而米米m是最小反向DFA的大小,那么按照ññN,ññn和m计,Brzozowski算法的运行时间是米米m多少? 特别是,在ññn和m之间有什么关系时,米米m布佐佐夫斯基的算法优于霍普克罗夫特算法或摩尔算法? 我听说在实践/应用中的典型示例中,Brzozowski的算法优于其他算法。非正式地,这些典型示例是什么样的?

1
存在工会的情况下NFA和DFA之间的指数分离
最近,有人提出了一个有趣的问题,随后将其删除。 对于常规语言大号LL,其DFA复杂度是接受它的最小DFA的大小,而它的NFA复杂度是接受它的最小NFA的大小。众所周知,至少在字母的大小不受限制的情况下,两个复杂度之间存在指数分隔。确实,考虑由字母构成的语言大号ñLnL_n,该字母由不包含所有符号的所有单词组成。使用Myhill-Nerode定理,可以轻松计算DFA复杂度。另一方面,NFA复杂度仅为(如果允许多个初始状态,则为{ 1 ,… ,n }{1,…,n}\{1,\ldots,n\} n n + 12n2n2^nnnnn+1n+1n+1)。 有关删除的问题,DFA覆盖的复杂性语言,这是最小的CCC,使得LLL可以写成的DFA复杂语言最多的(不一定是不相交)工会CCC。覆盖复杂度的DFA LnLnL_n仅222。 NFA复杂度与DFA覆盖复杂度之间是否有指数级的距离?


7
为什么NFA被称为不确定性?
我想到了这个(有点有趣)的问题。当我们定义输入的转换时,为什么不确定性有限自动机称为非确定性自动机。好吧,即使存在多个和ε过渡,也定义了它们,这意味着机器对于这些过渡是确定的。这意味着它是确定性的。

1
不同常规语言的数量
给定一个字母Σ={a,b}Σ={a,b}\Sigma = \{ a,b \},nnn状态非确定性有限自动机可以接受多少种常规语言? 例如,让我们考虑n=3n=3n=3。然后,我们有2182182^{18}种不同的过渡配置以及23232^3种不同的开始和结束状态配置,因此我们有2242242^{24}种不同语言的上限。 但是,其中许多功能都是等效的,并且由于测试是PSPACE-Complete,因此测试每个设置可能不可行。 是否存在其他方法或组合参数来限制给定资源接受的不同语言的数量?


1
Turing Machine是否可以确定NFA是否接受一串素数的字符串?
我想知道以下问题是否可以解决: 实例:具有n个状态的NFA A 问题:是否存在一些质数p,使得A接受长度为p的字符串。 我认为这个问题无法确定,但我无法证明。决策者可以轻松地拥有一种算法来确定特定数字是否为质数,但是我不知道它如何能够足够详细地分析NFA以确切知道它可以产生多少长度。它可以开始使用NFA测试字符串,但是对于无限的语言,它可能永远不会停止(因此不是决定者)。 当然,如果解决方案需要,则可以将NFA轻松更改为DFA或正则表达式。 这个问题是我一直在思考的一个自我准备问题,我将在两周内提出最后一个问题。

1
用于假人的Monadic二阶逻辑
我是一个对自动机有所了解的程序员,但对逻辑并不了解。 我在论文中读到,两者之间有着密切的联系。确定性有限自动机(DFA),树自动机和可见下推自动机都与Monadic二阶逻辑(MSO)相关。尽管我了解自动机,人们(在论文中)试图向我解释与MSO的关系,但他们始终假设自己具有强大的逻辑背景和对MSO的理解。 当我阅读有关逻辑的书籍和课程时,它们大多只处理一阶逻辑,这看起来很简单,并且仅包含以下几个概念:变量,或者(并非暗示)全部存在,等等。 有人可以向我解释或指向可以解释以下内容的资源: 与一阶逻辑相比,二阶逻辑是什么? 什么是单子逻辑与非单子逻辑? 可判定二阶逻辑为什么单调很重要,或者为什么这是错误的问题? 为什么一元二阶逻辑是可确定的? 与至少DFA的关系? 如果它是一种资源,并且假设我是程序员而不是逻辑学家,那将很好。这意味着我想了解如何将其实现为代码,因为在那之前数学对我来说就像是魔力;) 谢谢您能给我的任何帮助。我真的很感激。

2
在计算机科学的背景下,“生产”一词最终如何成为“规则”一词的同义词?
我正在研究正式的语言和生产基础系统(rule-bases systems),我对为什么这两个词“生产”和“规则”在计算机科学的这么多上下文中含义相同感到有些困惑。 在英语中,它们似乎不是同一意思。我不是英语母语人士,但我知道一条规则是指某人在谈论人时不应该/不应该做的事情,或者如果重复多次会得到相同的结果,并且我们说它按某些规则起作用(它的工作方式由每次都相同的某些协议/过程定义)。 生产是指完全不同的东西...当前正在生产/生产的某些实物或软件的阶段。制作某种东西的行为,无论是物理的还是某种艺术品,一些写作,某些绘画,是由某人的身体或心理能力所制成的。我们说具体的东西产生了。 但是,在计算机科学中,这些代表英语完全不同的词在CS中表示同一件事。这个术语在CS中最终是如何相似的。 有某种计算机科学的词源词典。字典告诉我们计算机科学的术语最终是什么? 顺便说一句:有趣的事实:在此Stack Exchange站点中,既没有生产规则也没有规则。


7
我们可以说DFA比NFA更有效吗?
我刚刚开始阅读有关计算理论的文章。如果我们比较哪个更强大(在接受字符串中),则两者是相同的。但是效率呢?与NFA相比,DFA的速度更快,因为它只有一个传出的优势,而且不会产生歧义。但是在NFA的情况下,我们必须检查所有可能的情况,这肯定需要时间。那么我们可以说DFA比NFA更有效吗? 但是,我的另一部分大脑也认为NFA仅存在于理论上,因此我们无法将其效率与DFA进行比较。

3
如何不使用NFA从正则表达式创建DFA?
目标是从正则表达式创建DFA,并且不能使用“ Regular exp> NFA> DFA转换”。应该怎么做呢? 我向我们的教授问了这个问题,但他告诉我,我们可以使用直觉,并拒绝提供任何解释。所以我想问你。 不能选择“正则表达式> NFA> DFA转换”,因为这样的转换要花费大量时间来转换一个相当复杂的正则表达式。例如,对于某个正则表达式,“ regex> NFA> DFA”对于人类来说要花费1个小时。我需要在不到30分钟的时间内将正则表达式转换为DFA。

3
NFA如何使用epsilon转换?
在下面的图片中,我试图弄清楚NFA到底接受了什么。 什么是困惑我的是在跳q 0。ϵϵ\epsilonq0q0q_0 如果输入,系统是否同时移动到q 0和q 1(接受状态)?000q0q0q_0 q1q1q_1 如果输入,系统是否同时移动到q 1和q 2?111q1q1q_1q2q2q_2 如果没有输入(空字符串),系统是否仅移至(接受状态)?q1q1q_1

2
2路DFA的空度问题的复杂性是什么?
我想知道,确定2路DFA的空度的时间复杂度是多少?也就是说,可以在其只读输入磁带上向后移动的有限自动机。 根据Wikipedia的说法,它们等效于DFA,尽管等效DFA可能成倍增大。我发现它们的补码和交集的状态复杂性,但是对于它们的空性测试却没有。 有人知道我可以在哪找到论文吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.