自动序列与正则表达式中的Lyndon分解及子匹配提取
自动序列中的Lyndon分解
在自动序列的研究中,Lyndon分解是一个重要的概念。对于有限非空单词,每个单词都可以唯一地分解为非递增的Lyndon单词的乘积。对于k - 自动序列,我们可以将这个分解应用到其所有前缀上。
构建自动机计算Lyndon复杂度
通过特定技术,我们使用矩阵和向量构建了一个新的自动机。具体步骤如下:
1. 利用已有技术,使用矩阵$M_0$和$M_1$(维度为$102×102$)以及向量$v$、$w$,使得如果$x$是$n$的二进制表示,那么$vM_xw = ρ_L^r(n)$。这里,如果$x = a_1a_2 · · · a_i$,则$M_x$表示乘积$M_{a_1}M_{a_2} · · · M_{a_i}$。
2. 以广度优先的方式构建新自动机$A’$,其状态为二进制字符串$x$对应的$vM_x$形式的乘积,转移操作基于0和1。由于已知$ρ_L^r(n)$是有界的,所以这个构建过程最终会在2444个状态处终止,且每个状态对应的$vM_x$与$w$的乘积得到的整数小于或等于8,这不仅证明了所需结果,还提供了一个计算$ρ_L^r(n)$的自动机。
编码前缀和因子的Lyndon分解
对于k - 自动序列$x$,有以下重要定理:
- 定理18 :存在一个自动机$A$,它接受集合${(n, i)_k : x[0..n - 1]$的Lyndon分解为$w_1w_2 · · · w_m$,且$w_m = x[i..n - 1]}$。证明的关键在于,若$w_1w_2 · · · w_m$是$x$的Ly
超级会员免费看
订阅专栏 解锁全文
490

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



