Questions tagged «finite-automata»

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

4
如何将有限自动机转换为正则表达式?
使用标准算法(例如汤普森算法),可以很容易地将正则表达式转换为接受相同语言的(最小)NFA 。但是,另一个方向似乎更乏味,有时结果表达式是混乱的。 有什么算法可以将NFA转换为等效的正则表达式?时间复杂度或结果大小是否有优势? 这应该是一个参考问题。请包括您的方法的一般说明以及不重要​​的示例。

6
是否有任何非自动机?
在自动机理论中,我们从一开始就将自动机视为有限自动机。我想知道的是,为什么自动机是有限的?明确地说,在一个有限的自动机中,它是什么-字母,语言,用正则表达式构成的字符串,还是什么?并且(理论上)有非自动机吗?

2
平面常规语言
在我的课上,一个学生问是否可以画出所有有限的自动机而不会交叉边缘(看来我的所有例子都做到了)。当然答案是否定的,这是语言{x∈{a,b}∗∣#a(x)+2#b(x)≡0mod5}{x∈{a,b}∗∣#a(x)+2#b(x)≡0mod5}\{\; x\in\{a,b\}^* \mid \#_a(x)+2\#_b(x) \equiv 0 \mod 5 \;\}K5K5K_5 我的问题是:如何显示这种语言的每个有限状态自动机都是非平面的?使用Myhill-Nerode之类的特征,可以确定该语言的结构已出现在图表中,但是我们如何精确地做到这一点呢? And if that can be done, is there a characterization of "planar regular languages"?

2
为什么将常规语言称为“常规”?
我刚刚完成了第一章介绍计算理论由迈克尔·西蓬瑟这也解释了有限自动机的基本知识。 他将常规语言定义为可以由有限自动机描述的任何事物。但是我找不到他解释为什么普通语言称为“普通语言”的地方。在这种情况下,“常规”一词的起源是什么? 注意:我是新手,所以请尝试用简单的术语进行解释!

2
为什么C的void类型不同于Empty / Bottom类型?
维基百科以及我发现的其他来源都将C的void类型列为单位类型,而不是空类型。我觉得这很混乱,因为在我看来,它void更适合于空/底类型的定义。 void据我所知,没有价值观存在。 返回类型为void的函数指定该函数不返回任何内容,因此只能执行某些副作用。 类型的指针void*是所有其他指针类型的子类型。同样,void*在C中进行来回转换是隐式的。 我不确定最后一点是否可以作为void空类型的参数,void*或多或少是与无关的特例void。 另一方面,void它本身不是所有其他类型的子类型,据我所知,这是将类型作为底部类型的要求。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

5
图灵机和有限状态机之间的区别?
我正在做一个关于图灵机的演讲,我想在介绍图灵机之前先介绍一下FSM。问题是,我真的不知道彼此之间有什么很大的不同。 我知道这是不同的: FSM具有相继的状态,具体取决于所满足的相应条件,而图灵机在带有读写头的无限“ Tape”上运行。 FSM的错误空间更大,因为我们很容易陷入无休止的状态,而图灵机的错误空间则不大,因为我们可以返回并进行更改。 但是除此之外,我不知道还有更多差异可以使图灵机比FSM更好。 你能帮我么?

4
如何在有限状态自动机中模拟后向引用,超前查找和向后查找?
此问题是从Stack Overflow 迁移而来的,因为可以在Computer Science Stack Exchange上回答。 迁移 7年前。 我创建了一个简单的正则表达式词法分析器和解析器,以获取一个正则表达式并生成其解析树。对于基本的正则表达式,从此解析树创建非确定性有限状态自动机相对简单。但是,我似乎无法全神贯注于如何模拟反向引用,先行和后备。 从我在紫色龙书中读到的内容中,我了解到,要模拟一个先行,当且仅当匹配项后跟正则表达式匹配项时,才匹配正则表达式,您将创建一个不确定的有限元状态自动机,其中替换为。是否可以创建相同的确定性有限状态自动机?r s / εr /秒r/sr/s[Rrrsss///εε\varepsilon 模拟否定的前瞻性和后瞻性怎么样?如果您将我链接到描述如何详细执行此操作的资源,我将不胜感激。

3
NFA的等效DFA达到最大大小的条件是什么?
我们知道DFA在表达能力上等同于NFA。还有一种已知算法的NFA转换成有限自动机(可惜我现在知道算法的发明者),在最坏的情况下为我们提供了2S2S2^S状态,如果我们的NFA有SSS的状态。 我的问题是:什么决定最坏的情况? 这是模棱两可的情况下算法的转录: 令为NFA。我们构建了一个DFA 甲' = (Q ',Σ ,δ ',q ' 0,˚F '),其中A=(Q,Σ,δ,q0,F)A=(Q,Σ,δ,q0,F)A = (Q,\Sigma,\delta,q_0,F)A′=(Q′,Σ,δ′,q′0,F′)A′=(Q′,Σ,δ′,q0′,F′)A' = (Q',\Sigma,\delta',q'_0,F') ,Q′=P(Q)Q′=P(Q)Q' = \mathcal{P}(Q) ,F′={S∈Q′|F∩S≠∅}F′={S∈Q′|F∩S≠∅}F' = \{S \in Q' | F \cap S \neq \emptyset \} ,和δ′(S,a)=⋃s∈S(δ(s,a)∪δ^(s,ε))δ′(S,a)=⋃s∈S(δ(s,a)∪δ^(s,ε))\delta'(S,a) =\bigcup_{s \in S} (\delta(s,a) \cup \hat \delta(s,\varepsilon)) ,q′0={q0}∪δ^(q0,ε)q0′={q0}∪δ^(q0,ε)q'_0 = \{q_0\} \cup \hat \delta(q_0, \varepsilon) 其中δ是所述扩展过渡函数甲。δ^δ^\hat\deltaAAA

1
如何在输入字符串的长度上使用归纳法编写证明?
在我的计算机理论课程中,我们遇到的许多问题都涉及对输入字符串的长度进行归纳,以证明有关有限自动机的陈述。我了解数学归纳法,但是当琴弦开始演奏时,我会被绊倒。如果有人会逐步进行这样的证明,我将非常感激。 这是一个示例问题(Hopcroft和Ullman第3版的练习2.2.10): 考虑具有以下过渡表的DFA: 0 1 ________ -> A | AB * B | BA 非正式地描述此DFA接受的语言,并通过对输入字符串的长度进行归纳来证明您的描述正确。 这是本书中已回答的问题,所以我不是在找人做作业。我只需要有人直接向我解释。 图书的答案:( 从此处获取) 自动机告诉看​​到的1的数目是偶数(状态A)还是奇数(状态B),在后一种情况下可以接受。这是对| w |的简单归纳。当且仅当w具有偶数1时才显示dh(A,w)=A。基础:| w | =0。然后,w,空字符串肯定具有偶数1,即零1,并且δ-hat(A,w)=A。 归纳法:假设语句小于w。然后w = za,其中a为0或1。 情况1: a =0。如果w的偶数为1,则z也是如此。根据归纳假设,δ-hat(A,z)=A。DFA的跃迁告诉我们δ-hat(A,w)=A。如果w具有1的奇数,则z也是如此。根据归纳假设,δ-hat(A,z)= B,而DFA的跃迁告诉我们δ-hat(A,w)=B。因此,在这种情况下,δ-hat(A,w)=如果且仅当w的偶数为1时为a。 情况2: a =1。如果w的偶数为1,则z的奇数为1。根据归纳假设,δ-hat(A,z)=B。DFA的跃迁告诉我们δ-hat(A,w)=A。如果w的奇数为1,则z的偶数为。 1。根据归纳假设,δ-hat(A,z)= A,而DFA的跃迁告诉我们δ-hat(A,w)=B。因此,在这种情况下,δ-hat(A,w )=当且仅当w的偶数为1时=A。 我知道如何证明使用归纳法。我对构建字符串的工作方式感到困惑。我对加粗的部分感到困惑。我不明白他们是如何提出的/它实际上如何证明接受的内容/它是如何归纳的。∑ni=0i=n(n+1)2∑i=0ni=n(n+1)2\sum_{i=0}^{n}i = \frac{n(n+1)}{2} 顺便说一下,δ-hat是扩展的转移函数。

3
如何证明NFA中的DFA可以具有指数级的状态?
此问题是从理论计算机科学堆栈交换迁移而来的,因为可以在计算机科学堆栈交换上回答。 迁移 7年前。 所有非确定性有限自动机都可以转化为等效的确定性有限自动机。但是,确定性有限自动机仅允许每个符号从状态指向一个箭头。因此,其状态应为NFA状态集的成员。这似乎表明,DFA的状态数可以根据NFA的状态数成指数增长。但是,我想知道如何实际证明这一点。





2
有限自动机的修改版本接受的语言
确定性有限自动机(DFA)是一种状态机模型,能够接受所有且仅常规语言。可以(通常是)定义DFA,以使每个状态都必须为输入字母的所有元素提供某种过渡。换句话说,转换函数δ:Q×Σ→Qδ:Q×Σ→Q\delta : Q \times \Sigma \rightarrow Q应该是(总计)函数。 想象一下我们称之为双重确定性有限自动机(DDFA)。它的定义类似于DFA,但有两个例外:首先,它必须导致两个不同的状态,而不是针对每个可能的输入符号从一个状态过渡到另一个状态。其次,为了接受字符串,所有可能的路径都必须满足以下一个或多个条件: 通过DDFA的所有可能路径均会导致进入接受状态(我们将其称为1类DDFA)。 通过DDFA的所有可能路径都导致相同的接受状态(我们将其称为2型DDFA)。 现在我的问题是: 大号(d d ˚F 甲)= 大号(d ˚F 甲)大号(d d ˚F 甲)⊊ 大号(d ˚F 甲)大号(d d ˚F 甲)≠ L (D F A )L (D D FL(DFA)⊊L(DDFA)L(DFA)⊊L(DDFA)L(DFA) \subsetneq L(DDFA)L(DDFA)=L(DFA)L(DDFA)=L(DFA)L(DDFA) = L(DFA)L(DDFA)⊊L(DFA)L(DDFA)⊊L(DFA)L(DDFA) \subsetneq L(DFA)L(DDFA)≠L(DFA)L(DDFA)≠L(DFA)L(DDFA) \neq L(DFA)L(DDFA)L(DDFA)L(DDFA) 如果证明不太复杂,则证明(或至少要适度充实)。

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.