使用导数操作正则表达式:概述
1. 引言
正则表达式因其简洁性和清晰的语法,是表示正则语言的常用选择。确定性有限自动机(DFA)在测试等价性、包含性或成员关系方面表现出色,因为这些问题对于DFA来说容易解决。然而,最小的DFA可能比相应的正则表达式大指数级,而非确定性有限自动机(NFA)则只大线性级。正则表达式及其转换为和从有限自动机的计算和描述复杂性已经得到了很好的研究。近年来,使用分析组合数学的框架研究了从正则表达式构造的不同NFA的平均大小。
本文将重点介绍基于导数和偏导数的正则表达式构造方法。我们将回顾基本概念,固定符号,并探讨这些方法在理论和实践中的应用。
2. 初步概念
2.1 正则表达式的定义
给定一个大小为 ( k \geq 1 ) 的字母表 ( \Sigma = {\sigma_1, \ldots, \sigma_k} ),一种语言 ( L ) 是自由幺半群 ( \Sigma^ ) 的一个子集。语言 ( L ) 通过一个字 ( w \in \Sigma^ ) 的左商是语言 ( w^{-1}L = { x \mid wx \in L } )。
集合 ( R_k ) 中的(标准)正则表达式 ( r ),覆盖 ( \Sigma ),由 ( \emptyset ) 组成,加上由以下上下文无关文法定义的表达式:
[
r := \epsilon \mid \sigma_1 \mid \ldots \mid \sigma_k \mid (r + r) \mid (r \cdot r) \mid (r^*)
]
其中符号 ( \c
超级会员免费看
订阅专栏 解锁全文
820

被折叠的 条评论
为什么被折叠?



