13、正则表达式自动机转换及转移复杂度研究

正则表达式自动机转换及转移复杂度研究

1. 计算 Follow(α) 的新算法

在正则表达式处理中,计算 Follow(α) 是一个重要的问题。此前,Brüggemann - Klein 在 1993 年提出了一种基于将 α 转换为星范式的方法,之后在 1996 年和 1997 年也有其他复杂的二次算法被提出。

这里我们定义了一个新的函数 E,对于每个标记的正则表达式 α,有 Follow(α) = E(α)。该函数的优势在于其定义中的所有并集都是不相交的。函数 E 的定义如下:
- (E(\varnothing) = E(\varepsilon) = E(\sigma_i) = \varnothing)
- (E(\alpha + \beta) = E(\alpha) \cup E(\beta))
- (E(\alpha\beta) = E(\alpha) \cup E(\beta) \cup \text{Last}(\alpha) \times \text{First}(\beta))
- (E(\alpha^\star) = E^\star(\alpha))

其中 (E^\star) 的定义如下:
- (E^\star(\varnothing) = E^\star(\varepsilon) = \varnothing)
- (E^\star(\sigma_i) = {(i, i)})
- (E^\star(\alpha + \beta) = E^\star(\alpha) \cup E^\star(\beta) \cup \text{Cross}(\alpha, \beta))
- (E^\st

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值