Questions tagged «regular-expressions»

从Kleene的原始定义和POSIX正则表达式的意义上,对正则表达式的理论都存在疑问。

4
寻找最小正则表达式是否是NP完全问题?
我在考虑以下问题:我想找到一个正则表达式,该表达式与一组特定的字符串(例如有效的电子邮件地址)匹配,而与其他字符串(无效的电子邮件地址)不匹配。 假设正则表达式是指定义明确的有限状态机,我对确切的术语并不熟悉,但让我们就一类允许的表达式达成一致。 我不想给它手工制作表达式,而是给它一些积极的例子和消极的例子。 然后,它应该提供一个与+匹配的表达式,拒绝-表达式,并且在某种明确定义的意义上是最小的(自动机中的状态数?)。 我的问题是: 是否考虑过这个问题,如何以更具体的方式定义它并有效解决?我们可以在多项式时间内解决吗?NP是否完整,我们可以以某种方式近似吗?它适用于什么类型的表达式?我希望能有任何指向讨论该主题的教科书,文章或类似文章的指针。 这与Kolmogorov的复杂性有什么关系吗? 这与学习有任何关系吗?如果正则表达式与我的示例相符,并且由于其极小,我们能否在尚未看到的示例中说出它的泛化能力?哪种最小标准更适合于此?哪一个效率更高?这和机器学习有关系吗?同样,任何指针都会有所帮助... 抱歉给您带来麻烦的问题……向我指出正确的方向以解决这个问题。谢谢 !

6
正则表达式不是
甚至问一个有计算机科学背景的人,正则表达式是什么,答案都可能超出了有限状态自动机的限制。 例如,“正则表达式” /^1?$|^(11+?)\1+$/ 由著名的Perl个性Abigail(以及2002年以来Perl的测试套件的一部分)创建的机器描述了仅接受复合一元数的机器,但在彼得·林茨(Peter Linz)的《形式语言和自动机简介》的第三版中练习4.5(b)让读者使用该泵引理证明 L={an:n is not a prime number}L={an:n is not a prime number}\mathcal{L} = \left\{ a^n : n\ \mathrm{is\ not\ a\ prime\ number} \right\} 不是普通语言。 在区分很重要的情况下,我们应该怎么称呼那些更严格的表达方式?

4
是否有可以有效匹配正则表达式的“小型”机器?
众所周知,正则表达式可以通过大小不确定的有限自动机来识别,该自动机的大小与正则表达式成正比,也可以通过确定性FA来识别,该FA可能成倍增大。此外,在给定字符串和正则表达式,NFA可以及时测试与成比例的隶属关系。,并且DFA可以及时测试与成正比的成员资格 。NFA减速的原因是,我们基本上需要跟踪自动机可能处于的可能状态集,而DFA的指数级爆炸则源于以下事实,即DFA的状态是状态机的幂集。 NFA。sss[R[Rr| s | ⋅ | r ||s|⋅|[R||s| \cdot |r|| s ||s||s| 如果我们允许使用功能更强大的机器,是否有可能有效地(即,时间要比,而空间要比)比有限自动机?(例如,使用下推式自动机或计数器机器识别常规语言是否具有简洁性?)O (| r | ⋅ | s |)Ø(|[R|⋅|s|)O(|r| \cdot |s|)O (2| r |)Ø(2|[R|)O(2^{|r|})

3
从DFA到正则表达式的已知算法
我想知道是否有一种从DFA 开始并构造一个正则表达式r使得L (A)= L (r )的``更好''(我将在什么意义上解释)算法,而不是Hopcroft and Ullman(1979)的书。在这里,集合R k i j用于表示将DFA从状态q i转移到q j而不经过任何高于k的状态的字符串集合。尽管显然是正确的并且非常有用,但是这种构造是技术性的。一种A\mathcal{A}[Rrr大号(甲)= L (r )L(A)=L(r)L(\mathcal{A})=L(r)[Rķ我ĴRijkR_{ij}^kq一世qiq_iqĴqjq_jķkk 我正在撰写有关代数自动机理论的专着,但我不想分散太多技术细节(至少不会与我想显示的结果无关的细节)来分散听众的注意力,但我确实希望包括为完整性起见,证明DFA与正则表达式之间的等效性。作为记录,我正在使用Glushkov自动机将正则表达式转换为DFA。它似乎比更直观,我完全没有定义它(再次,因为我不需要它们)。εε\varepsilon 从DFA到正则表达式还有哪些其他已知算法?我重视简单性而不是效率(在这种情况下,这对我来说``更好''),但这不是必须的。 在此先感谢您的帮助!


2
协议分区号和确定性的通信复杂性
除了关系R的(确定性)通信复杂度 cc(R)cc(R)cc(R),所需通信量的另一基本量度是协议分区号p p (R )。这两个量度之间的关系是已知的,直到一个恒定因子为止。Kushilevitz和Nisan(1997)的专着给出了RRR pp(R)pp(R)pp(R) cc(R)/3≤log2(pp(R))≤cc(R).cc(R)/3≤log2⁡(pp(R))≤cc(R).cc(R)/3 \le \log_2(pp(R)) \le cc(R). 关于第二不等式,很容易得到(无限家族)关系与日志2(p p ([R )) = C ^ C ^ (- [R )。RRRlog2(pp(R))=cc(R)log2⁡(pp(R))=cc(R)\log_2(pp(R)) = cc(R) 关于第一个不等式,Doerr(1999)表明我们可以用c = 2.223代替第一个界限中的因子。如果有的话,第一个界限可以提高多少? c=3c=3c=3c=2.223c=2.223c=2.223 描述复杂性的另一个:改进常数2.223将导致正则表达式的最小大小的下限得到改善,该下限等于给定DFA描述某种有限语言的正则表达式的最小大小,请参阅Gruber和Johannsen(2008)。 2.2232.2232.223 虽然不直接相关的这个问题,Kushilevitz,Linial和斯基(1999),获得了关系与Ç Ç ([R )/(2 - Ö (1 ))≥ 日志2([R p ([R )),其中[R p (ř )是矩形分区号。RRRcc(R)/(2−o(1))≥log2(rp(R))cc(R)/(2−o(1))≥log2⁡(rp(R))cc(R)/(2-o(1)) \ge \log_2(rp(R))rp(R)rp(R)rp(R) 编辑:请注意,上述问题与布尔电路复杂度中的以下问题等效:最佳常数是什么,以便每个叶子大小L的布尔DeMorgan公式最多可以转换为等效的深度公式c log …

1
对于该正则表达式
众所周知,以下问题是PSPACE完全的: 给定正则表达式,L (β )= Σ ∗吗?ββ\beta大号(β)= Σ∗L(β)=Σ∗L(\beta) = \Sigma^* 如何确定与其他(固定)正则表达式相等?αα\alpha 给定正则表达式,L (β )= L (α )吗?ββ\beta大号(β)= L (α )L(β)=L(α)L(\beta) = L(\alpha) 以下是已知的: 对于,问题是PSPACE完全的α = (0 + 1 )∗α=(0+1)∗\alpha = (0+1)^* 对于或更笼统的描述有限集的α而言,问题可以在多项式时间内确定。α = ∅α=∅\alpha = \emptysetαα\alpha 在我看来,如果是一元语言,问题就出在P中。αα\alpha 所以我的问题是: 上述决策问题PSPACE完全针对哪个?有完整的描述吗?αα\alpha 是否有任何该项决定的问题有一些中等复杂(如NP完全问题)?αα\alpha



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

3
广义星高问题的进展?
语言的(广义)星高是通过扩展的正则表达式表示语言所需的Kleene星的最小嵌套。回想一下,在有限字母上的扩展正则表达式满足以下条件:AAA (1)和一个延伸于所有的正则表达式一个∈ 甲∅,1∅,1\emptyset, 1aaaa∈Aa∈Aa\in A (2)对于所有扩展的正则表达式;Ë ∪ ˚F,ē ˚F,ê *和ê Ç被扩展正则表达式E,FE,FE,F E∪FE∪FE\cup FEFEFEFE∗E∗E^*EcEcE^c 广义星高问题的一个说法是是否存在一种计算最小广义星高的算法。关于这个问题,我有几个问题。 关于这个问题最近有什么进展(或研究兴趣)?我知道几年前,Pin Straubing和Thérien在这一领域发表了一些论文。 受限制的恒星高度问题在1988年由Hashiguchi解决,但广义版本(据我所知)仍未解决。有人对为什么会这样有直觉吗? 以下是一个可能有用的链接:starheight

4
常规语言的层次结构
在常规语言类中是否存在任何已知的“不错的”层次结构(可能是有限的)?顺便说一句,每个层次结构中的类都捕获了不同的表现力/能力/复杂性。而且,每个类别的成员资格都由某些元素“很好地”证明了(不同于可能有问题的星高问题)。大号L0⊆L1⊆L2⊆…L0⊆L1⊆L2⊆…L_0 \subseteq L_1 \subseteq L_2 \subseteq \dotsLLL 谢谢!


1
包含常规语言的参数化复杂性
我对经典语言“常规语言包容”感兴趣。给定一个正则表达式,我们用L (E )表示与其相关的正则语言。(正则表达式位于固定的字母Σ上,并带有联合,Kleene-star和串联运算。)ËEE大号(è)L(E)L(E)ΣΣ\Sigma 输入:两个正则表达式和Ë 2问:这是真的,大号(ē 1)⊆ 大号(ē 2)?Ë1个E1E_1Ë2E2E_2 大号(è1个)⊆ 大号(Ë2)L(E1)⊆L(E2)L(E_1)\subseteq L(E_2) 已知常规语言包含PSPACE完整[1]。 经典的方式来解决这个问题(在PSPACE)是构建的NFA 和阿2关联到ë 1和ë 2,建立一个DFA d 2从阿2,它补充成DFA d Ç 2,最后,从A 1和D C 2建立与L (E 1)和L (E 2 )C的交点相对应的交点自动机A P一种1个A1A_1一种2A2A_2E1E1E_1E2E2E_2D2D2D_2A2A2A_2DC2D2CD_2^CAPAPA_PA1A1A_1DC2D2CD_2^CL(E1)L(E1)L(E_1)L(E2)CL(E2)CL(E_2)^C。现在当且仅当存在没有在接受路径甲P。L(E1)⊆L(E2)L(E1)⊆L(E2)L(E_1)\subseteq L(E_2)APAPA_P 如果我没记错的话,因为是固定语言,所以整个过程可以在多项式时间内完成,因为唯一的指数膨胀来自将A 2转换为D 2。更好的是,当由|参数化时,问题是FPT 。E 2 | ,E 2的长度。E2E2E_2A2A2A_2D2D2D_2|E2||E2||E_2|E2E2E_2 这激发了我的问题: 问题:当是一个固定表达式时,常规语言包含的复杂度是多少?它是否保持PSPACE完整?E1E1E_1 [1] LJ Stockmeyer和AR Meyer。需要指数时间的单词问题:初步报告。第五届ACM年度计算机理论研讨会论文集,STOC '73,第1-9页。 备注:作为该领域的非专家,我发现[1](和当时的相关论文)相当不可读,并且找不到PSPACE完整性的另一证明-指向现代证明的任何指针,例如一本书,非常欢迎!另外,我认为作者似乎允许对正则表达式进行平方运算,我认为这是当今相当不规范的。)

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.