Questions tagged «dfa»

关于确定性有限自动机的问题

11
学习有限自动机后,我应该得到什么启示?
我一直在有趣地修改计算理论,这个问题让我困扰了一段时间(当我在本科学习自动机理论时,从来没有想到过这个有趣的事情)。那么“为什么”我们到底要研究确定性和非确定性有限自动机(DFA / NFA)?所以这是我自言自语后得出的一些答案,但仍然看不到它们对“ aha”时刻的总体贡献: 研究它们是什么和没有能力,即限制 为什么? 由于它们是理论计算的基本模型,将为其他更强大的计算模型奠定基础。 是什么使它们“基本”?是否只有一点点的存储和状态转换? 好吧,那又如何呢?所有这些如何有助于回答可计算性问题?似乎图灵机确实很好地理解了这一点,并且有诸如P​​DA,DFA / NFA / Regexes等之类的“较少”计算模型。但是,如果人们不知道FA,它们会丢失什么呢? 因此,尽管我在某种程度上“明白了”,但我无法对自己回答这个问题?您如何最好地解释“为什么要学习D / N-FA”?他们想回答什么问题?它有什么帮助?为什么它是自动机理论中教授的第一件事? PS:我知道可以如此实现的各种字典应用程序和模式匹配器。但是,我不希望知道它可以实际使用什么,但是在学习计算理论的高潮中,他们为什么要使用/发明/设计的原因是什么。从历史上讲,是什么促使人们从这一点开始的?它应该导致什么“啊哈”理解?如果要向刚开始学习自动机理论的CS学生解释他们的重要性,您将如何做?

10
DFA是否还有任何未解决的问题?
在研究了本科生的确定性有限状态自动机(DFA)之后,我感到它们非常好理解。我的问题是,对于它们,我们是否仍然不了解。我并不是说DFA的泛化,而是我们在本科学习的原始未经修改的DFA。 这是一个模糊的问题,但我希望您能理解。我想知道我们完全了解DFA是否公平。因此,我的意思是说,这些问题本质上是关于DFA的,而不是人为地使问题看起来像DFA的问题。让我举一个这样的问题的例子。如果P = NP,则L为空语言;如果P不是NP,则L为固定的非规则语言。L可以被DFA接受吗?这个问题是关于DFA的,但本质上不是关于它们的。我希望我的观点是明确的,并且不要从人们那里得到ped脚的非回答。 简而言之,公平地说 我们基本上完全了解DFA。 很抱歉,事实证明这是我尚未意识到的巨大研究领域,而且我只是侮辱了整个社区。

4
二次空间中的DFA相交?
可以使用O(n 2)时间和空间来计算具有n个状态的两个(最小)DFA的交集。通常,这是最佳的,因为生成的(最小)DFA可能具有n 2个状态。但是,如果所得的最小DFA具有z个状态,其中z = O(n),是否可以在空间n 2-eps中对某个常数eps> 0进行计算?即使对于输入DFA为非循环的特殊情况,我也会对这样的结果感兴趣。

1
是否找到不使用蛮力搜索即可将两个单词分开的最小DFA?
给定两个字符串x和y,我想构建一个最小大小的DFA,它接受x并拒绝y。一种方法是蛮力搜索。您列举了DFA的最小编号。您尝试每个DFA,直到找到一个接受x并拒绝y的DFA。 我想知道是否还有其他已知的方法来查找或构建接受x并拒绝y的最小尺寸DFA。换句话说,我们可以击败蛮力搜索吗? 更多详情: (1)我确实希望算法找到最小大小的DFA,而不是最小大小的DFA。 (2)我不只是想知道最小DFA的大小。 (3)在这里,我仅关注您有两个字符串x和y的情况。 编辑: 有兴趣的读者的其他信息: 假设和y是长度最大为n的二进制字符串。它是一种已知的结果,有一个DFA接受X和拒绝ÿ至多√XxxÿyyñnnXxxÿyy个州。请注意,有大约ñ √ñ--√n\sqrt{n}具有二进制字母且最多√的DFAññ√nnn^{\sqrt{n}}个州。因此,强制方法不会要求我们更加枚举通过比ñ √ñ--√n\sqrt{n} DFA。由此可见,蛮力方法可能不会花费太多超过ñ √ññ√nnn^{\sqrt{n}}次。ññ√nnn^{\sqrt{n}} 我认为有帮助的幻灯片:https : //cs.uwaterloo.ca/~shallit/Talks/sep2.pdf

1
多项式大小的DFA识别的语言
对于一个固定的有限字母表,正式语言超过是规则,如果存在一个确定性有限自动机(DFA)超过它接受准确。大号ΣΣ\SigmaLLLΣΣ\SigmaΣΣ\SigmaLLL 我对“几乎”规则的语言感兴趣,因为它们可以被大小自动增长的自动机系列识别,自动机系列的大小随词长的增长呈多项式增长。 形式上来说,如果对于每个单词,则DFA 家族可以识别形式语言,令,在如果接受(无论其他接受),然后让我将p常规语言定义为多项式大小的PTIME可计算 DFA系列识别的语言,即是多项式,使得全部LLL 瓦特∈ Σ * Ñ = | w | 瓦特大号甲Ñ瓦特甲我(An)(An)(A_n)w∈Σ∗w∈Σ∗w \in \Sigma^*n=|w|n=|w|n = |w|wwwLLLAnAnA_nwwwAiAiA_iP | A n | ≤ P (Ñ )ñ(An)(An)(A_n)PPP|An|≤P(n)|An|≤P(n)|A_n| \leq P(n)nnn。(这个名称是“ p-regular”,这是我编写的,我的问题是要知道是否存在另一个名称。请注意,就排列自动机而言,这与p-regular语言并不相同。) 这类p常规语言当然包括常规语言(对于所有都取,其中是一些识别常规语言的DFA);但这是它的严格超集:例如,众所周知,是上下文无关的,但不是常规的,但是它是p-常规(只需要计数次出现的和次出现的)。但是,由于我要求自动机必须是多项式大小的DFA,因此某些形式语言(实际上是一些无上下文语言)不是Ñ 甲{ 一个Ñ b Ñ | Ñ ∈ Ñ } 甲Ñ Ñ 一个Ñ bAn=AAn=AA_n = AnnnAAA{anbn∣n∈N}{anbn∣n∈N}\{a^n b^n \mid n \in \mathbb{N}\}AnAnA_nnnnaaannnbbbp-regular:例如,回文的语言不是p-regular,因为从直观上讲,当您阅读单词的前半部分时,您需要具有尽可能多的不同状态,因为您需要准确地将前半部分与后半部分匹配 …

1
大小为
问题很简单直接:对于固定的,大小为n(即n个状态)的DFA接受多少种(不同的)语言?我将正式声明:nnnnnnnnn 将DFA定义为,其中一切正常,而δ :Q × Σ → Q是(可能是部分)函数。我们需要建立这一点,因为有时仅将全部功能视为有效。(Q,Σ,δ,q0,F)(Q,Σ,δ,q0,F)(Q,\Sigma,\delta,q_0,F)δ:Q×Σ→Qδ:Q×Σ→Q\delta:Q\times\Sigma\to Q 对于每一个,定义(等价)关系〜Ñ该组所有的DFA的如:甲〜Ñ 乙如果| A | = | B | = n并且L (A)= L (B)。n≥1n≥1n\geq 1∼n∼n\sim_nA∼nBA∼nB\mathcal{A}\sim_n\mathcal{B}|A|=|B|=n|A|=|B|=n|\mathcal{A}|=|\mathcal{B}|=nL(A)=L(B)L(A)=L(B)L(\mathcal{A})=L(\mathcal{B}) 现在的问题是,那么:对于给定的,什么是指数〜ň?也就是说,集合{ L (A)∣ A 是 n 的DFA } 的大小是 多少?nnn∼n∼n\sim_n{L(A)∣A is a DFA of size n}{L(A)∣A is a DFA of size n}\{L(\mathcal{A})\mid\mathcal{A}\textrm{ is a DFA of size }n\} …

5
是否可以测试可计算数字是有理数还是整数?
是否可以通过算法测试可计算数是有理数还是整数?换句话说,将有可能为图书馆实现可计算数提供的功能isInteger还是isRational? 我猜测这是不可能的,并且这在某种程度上与以下事实有关:无法测试两个数字是否相等,但是我看不出如何证明这一点。 编辑:可计算的数字xxx由函数给出,该函数fx(ϵ)fx(ϵ)f_x(\epsilon)可以返回精度为ϵ的的有理近似值:| x − f x(ϵ )| ≤ ε,对于任何ε > 0。鉴于这样的功能,就是可以测试,如果X ∈ Q或X ∈ ž?xxxϵϵ\epsilon|x−fx(ϵ)|≤ϵ|x−fx(ϵ)|≤ϵ|x - f_x(\epsilon)| \leq \epsilonϵ>0ϵ>0\epsilon > 0x∈Qx∈Qx \in \mathrm{Q}x∈Zx∈Zx \in \mathrm{Z}
18 computability  computing-over-reals  lambda-calculus  graph-theory  co.combinatorics  cc.complexity-theory  reference-request  graph-theory  proofs  np-complete  cc.complexity-theory  machine-learning  boolean-functions  combinatory-logic  boolean-formulas  reference-request  approximation-algorithms  optimization  cc.complexity-theory  co.combinatorics  permutations  cc.complexity-theory  cc.complexity-theory  ai.artificial-intel  p-vs-np  relativization  co.combinatorics  permutations  ds.algorithms  algebra  automata-theory  dfa  lo.logic  temporal-logic  linear-temporal-logic  circuit-complexity  lower-bounds  permanent  arithmetic-circuits  determinant  dc.parallel-comp  asymptotics  ds.algorithms  graph-theory  planar-graphs  physics  max-flow  max-flow-min-cut  fl.formal-languages  automata-theory  finite-model-theory  dfa  language-design  soft-question  machine-learning  linear-algebra  db.databases  arithmetic-circuits  ds.algorithms  machine-learning  ds.data-structures  tree  soft-question  security  project-topic  approximation-algorithms  linear-programming  primal-dual  reference-request  graph-theory  graph-algorithms  cr.crypto-security  quantum-computing  gr.group-theory  graph-theory  time-complexity  lower-bounds  matrices  sorting  asymptotics  approximation-algorithms  linear-algebra  matrices  max-cut  graph-theory  graph-algorithms  time-complexity  circuit-complexity  regular-language  graph-algorithms  approximation-algorithms  set-cover  clique  graph-theory  graph-algorithms  approximation-algorithms  clustering  partition-problem  time-complexity  turing-machines  term-rewriting-systems  cc.complexity-theory  time-complexity  nondeterminism 

1
DFA的有效串联?
有理论证据表明,DFA交集的幼稚笛卡尔积构造是“我们能做的最好的”。两个DFA的串联呢?简单的构造涉及将每个DFA转换为NFA,添加epsilon过渡并确定所得的NFA。我们可以做得更好吗?最小串联DFA的大小是否存在已知界限(就“前缀”和“后缀” DFA的大小而言)?

3
非确定性有限自动机(NDFA)能否在次指数时空中有效地转换为确定性有限自动机(DFA)?
二十年前,我构建了一个正则表达式包,其中包括从正则表达式到有限状态机(DFA)的转换,并支持许多封闭的正则表达式操作(Kleene star,串联,反向,设置操作等)。我不确定包装的最坏情况。 DFA具有与NDFA相同的表达能力,因为n状态NDFA可以轻松转换为具有2 ^ n个状态的DFA。但是,对于这种转换,是否有不需要状态呈指数爆炸的下界保证? 我无法提出带有正则表达式或NDFA的示例,但是我并没有花太多时间在思考它。我猜正则表达式(((((e | A | B | C)*(e | D | E | F))*(e | G | H | I))*(e | J | K | L | M))*(混合了许多交替和Kleene星)将具有线性大小的NDFA,但具有扩展的DFA。

2
在有限自动机上是否存在定义明确的除法运算?
背景: 给定两个确定性有限自动机A和B,我们通过让C中的状态为A中状态的笛卡尔积和B中状态的笛卡尔积来形成乘积C。然后,选择过渡,初始状态和最终状态,以便C是A和B语言的交集。 问题: (1)我们能否将C除以B以找到A?甚至是唯一的,同构的吗?我们关心状态图,而不是这里和下面的语言。因此,我们不允许压缩状态图以减少状态数。 (2)如果A是唯一的,是否有找到它的有效算法? (3)是否每个确定性有限自动机都有唯一的因式分解为“素数”。这里的质数是指不能分解的自动机,即写为2个较小自动机的乘积。 与@MichaelWehar合作

1
使用随机DFA分隔单词
有关DFA的有趣的开放问题之一,关于DFA 是否还有任何未解决的问题?是DFA的大小所需的分开长度的两个字符串。我很好奇,是否有关于随机DFA分离两个给定(非随机)字符串的功能的结果。nnn 显然,状态足够多的随机DFA很有可能会分隔字符串。具体地,如果,随机DFA与ø (Ñ )状态永远也不可能重新访问相同的状态,一旦达到所述第一位置ù和v不同,并因此分离ü和v。u,v∈Σnu,v∈Σnu,v \in \Sigma^nO(n)O(n)O(n)uuuvvvuuuvvv 我们可以做得更好吗?理想情况下,什么是最小 ST,一个随机DFA与˚F (Ñ )状态中隔离长度的字符串Ñ阳性概率(或概率也许≥ 1 / 2)?简短的搜索并没有得出很多有关随机DFA属性的结果;我只能找到http://arxiv.org/abs/1311.6830。f(n)f(n)f(n)f(n)f(n)f(n)nnn≥1/2≥1/2\ge 1/2

2
最小化正则表达式的大小
众所周知,即使将DFA作为语言的规范,最小化正则表达式的大小也是PSPACE完整的。 如果语言是有限的,结果是什么? 一个人可以用两种模型来考虑这个问题: 输入是该语言中的所有字符串,我们通过所有字符串的长度之和来衡量输入大小。 输入是DFA,我们通过DFA的状态数来衡量输入大小。 Kleene star在有限情况下没有用,因此只有,| | 和⋅(串联)在表达式中使用。当然,正则表达式的长度似乎是任意的。相反,可以赋予每个操作权重(包括添加括号),并要求最小化正则表达式的权重。()()()|||⋅⋅\cdot 编辑:正如adrianN所指出的,它与基于语法的代码有关。产生最小长度的上下文无关文法来描述有限集是NP完全的。尚不清楚为什么最小尺寸上下文无关文法可以暗示更多关于最小尺寸正则表达式的信息。也许聪明的重写规则可以将这两者联系起来,并证明在第一个模型中,问题出在NP上。

2
将超大型NFA转换为DFA的算法
我有非常大的非确定性有限自动机,我需要将其转换为DFA。 我的意思是说40 000多个州。到目前为止,我已经做了一些实验和编程的默认算法,通过表检索(如描述在这里),但即使是优化后速度很慢,非常消耗内存。我知道一个事实,州的数量可以成倍增长,但是在最小化之后,最终的DFA有大约9000个州,这是可以接受的。 所以我的问题是,是否有某种算法会更快或更友好的存储?
12 dfa 


1
存在哪些用于构造DFA的算法,该DFA可以识别给定正则表达式描述的语言?
我的所有教科书都使用相同的算法来生成给定正则表达式的DFA:首先,制作一个可以识别正则表达式语言的NFA,然后使用子集(也称为“ powerset”)构造将NFA转换为等效的DFA( (可选)最小化DFA)。我也曾经听过一位教授提到其他算法。有人知道吗?也许是直接从正则表达式转换为DFA而没有中间NFA的代码?

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.