UPS:修订间差异
更多操作
小无编辑摘要 |
|||
| (未显示1个用户的10个中间版本) | |||
| 第1行: | 第1行: | ||
UPS(Upward Projection Sequence, 向上投影序列)是由 Optimism 最初创作,Alice 完善的记号,旨在以序列形式模拟向上投影。然而,UPS 在 [[SSO]] 以上是不理想的。 | |||
其极限表达式为 <math>0, 1, 2*, 3*, 4*, ...</math> 。 | 其极限表达式为 <math>0, 1, 2*, 3*, 4*, ...</math> 。 | ||
| 第10行: | 第10行: | ||
项:一个自然数与一个星号标记 <math>\alpha_i = (v_i, s_i)</math> 。 | 项:一个自然数与一个星号标记 <math>\alpha_i = (v_i, s_i)</math> 。 | ||
父项:一个索引 <math>i</math> 的父项 <math>p(i)</math> 为最大的 <math>j < i</math>, 满足 <math>v_j < v_i</math> 。若不存在满足条件的项,则记作 <math>p(i) = -1</math> 。 | |||
正规化:一个序列 <math>S = [\alpha_0, \alpha_1, ..., \alpha_{L-1}]</math> 的正规化序列为 <math>\mathrm{norm}(S) = [\alpha'_0, \alpha'_1, ..., \alpha'_{L-1}]</math>, 其中 <math>\alpha'_i = (v_i - v_0, s_i)</math> 。 | 正规化:一个序列 <math>S = [\alpha_0, \alpha_1, ..., \alpha_{L-1}]</math> 的正规化序列为 <math>\mathrm{norm}(S) = [\alpha'_0, \alpha'_1, ..., \alpha'_{L-1}]</math>, 其中 <math>\alpha'_i = (v_i - v_0, s_i)</math> 。 | ||
| 第17行: | 第17行: | ||
一个索引 <math>i</math> 的直接集定义为: | 一个索引 <math>i</math> 的直接集定义为: | ||
# <math>i \in D(i)</math>; | # <math>i \in D(i)</math> ; | ||
# 若 <math>p(j) \in D(i), s_j = 1</math> , 则 <math>j \in D(i)</math> 。 | # 若 <math>p(j) \in D(i), s_j = 1</math> , 则 <math>j \in D(i)</math> 。 | ||
定义直接段结尾:令 <math>M(i) = \max(t | t \in D(i))</math> 。若存在 <math>k</math> 使得 <math>k > M(i), p(k) \in D(i)</math> 且 <math>v_k = \min (v_j | j > M(i), p(j) \in D(i))</math> , 找到其中索引最小的 <math>k_0</math> , 定义 <math>\mathrm{end}(i) = k_0</math> ; 否则,定义 <math>\mathrm{end}(i) = M(i)</math> 。 | 定义直接段结尾:令 <math>M(i) = \max(t | t \in D(i))</math> 。若存在 <math>k</math> 使得 <math>k > M(i), p(k) \in D(i)</math> 且 <math>v_k = \min (v_j | j > M(i), p(j) \in D(i))</math> , 找到其中索引最小的 <math>k_0</math> , 定义 <math>\mathrm{end}(i) = k_0</math> ; 否则,定义 <math>\mathrm{end}(i) = M(i)</math> 。 | ||
| 第40行: | 第40行: | ||
=== 父段与 Dropping 祖先段 === | === 父段与 Dropping 祖先段 === | ||
定义索引 <math>i</math> 的父段起始索引为:<math>\mathrm{ps}(i) = \begin{cases}-1 ,&p(i) = -1;\\ p(i),&s_{p(i)} = 0;\\ \mathrm{ps}(p(i)),&s_{p(i)} = 1.\end{cases}</math> | 定义索引 <math>i</math> 的父段起始索引为:<math>\mathrm{ps}(i) = \begin{cases}-1 ,&p(i) = -1;\\ p(i),&s_{p(i)} = 0;\\ \mathrm{ps}(p(i)),&s_{p(i)} = 1.\end{cases}</math> | ||
若 <math>s_i = 0</math> , 通过以下流程计算出索引 <math>i</math> 的 Dropping 祖先段:初始状态下定义 <math>c_0 = i, r_0 = i</math> 。 | 若 <math>s_i = 0</math> , 通过以下流程计算出索引 <math>i</math> 的 Dropping 祖先段:初始状态下定义 <math>c_0 = i, r_0 = i</math> 。 | ||
| 第66行: | 第64行: | ||
若 <math>s_{L-1} = 1</math> , 以此流程确定坏根。 | 若 <math>s_{L-1} = 1</math> , 以此流程确定坏根。 | ||
令 <math> | 令 <math>a = \mathrm{ps}(L-1), d = \mathrm{drop}(a)</math> 。若 <math>\mathrm{ps}^{m+1}(a) = -1</math> , 则构建祖先段链 <math>A = [\mathrm{ps}(a), \mathrm{ps}^2(a), ..., \mathrm{ps}^m(a)]</math> 。定义参考段 <math>R = [\alpha_d, \alpha_{d+1}, ..., \alpha_{L-1}]</math> 。若 <math>a = -1</math> , 表达式无坏根。 | ||
若 <math>d = \mathrm{ps}^k(a)</math> , 则将 <math>\mathrm{ps}(a)</math> 到 <math>\mathrm{ps}^k(a)</math> 预先标记为跳过。 | |||
按顺序枚举祖先段链。 | 按顺序枚举祖先段链。 | ||
| 第78行: | 第78行: | ||
情况2:<math>R \ge T_j</math> | 情况2:<math>R \ge T_j</math> | ||
找到最大的索引 <math>q \in C</math> 使得 <math>\mathrm{seg}(q) \le \mathrm{seg}(a)</math> , 计算结束,坏根 <math>\rho = \mathrm{end}(q)</math> 。 | |||
若 <math>A</math> 中索引已耗尽而仍未得到坏根,则该表达式无坏根。 | 若 <math>A</math> 中索引已耗尽而仍未得到坏根,则该表达式无坏根。 | ||
| 第93行: | 第93行: | ||
展开结果的基本列第 <math>m</math> 项为 <chem>S' + B^{+1} + B^{+2} + ... + B^{+m}</chem> , 其中 <math>+</math> 为序列拼接。 | 展开结果的基本列第 <math>m</math> 项为 <chem>S' + B^{+1} + B^{+2} + ... + B^{+m}</chem> , 其中 <math>+</math> 为序列拼接。 | ||
若表达式无坏根或坏根为 <math>-1</math> , | 若表达式无坏根或坏根为 <math>-1</math> , 则该表达式无法展开,表示后继序数。 | ||
== 展开器 == | == 展开器 == | ||
[https://smilelee-lyx.github.io/ne-rewritten/ NE Rewritten] 上可进行 UPS 的展开。 | [https://smilelee-lyx.github.io/ne-rewritten/ NE Rewritten] 上可进行 UPS 的展开。 | ||
{{默认排序:个人记号}} | |||
[[分类:记号]] | |||
2026年7月10日 (五) 10:57的最新版本
UPS(Upward Projection Sequence, 向上投影序列)是由 Optimism 最初创作,Alice 完善的记号,旨在以序列形式模拟向上投影。然而,UPS 在 SSO 以上是不理想的。
其极限表达式为 。
定义
基础定义
一个 UPS 表达式由一组有序排列的项组成。
项:一个自然数与一个星号标记 。
父项:一个索引 的父项 为最大的 , 满足 。若不存在满足条件的项,则记作 。
正规化:一个序列 的正规化序列为 , 其中 。
直接集与直接段
一个索引 的直接集定义为:
- ;
- 若 , 则 。
定义直接段结尾:令 。若存在 使得 且 , 找到其中索引最小的 , 定义 ; 否则,定义 。
定义索引 的直接段为 。
字典序比较与投影比较
在进行任何一种比较之前,首先要将待比较序列的 替换为 ,并进行正规化。
字典序比较记为 , 为逐项首先比较数值(数值大者更大),其次比较星号(有星号者更大)。若前缀完全相同,则更长者更大。
投影比较记为 , 比较流程如下:
首先定义 的投影深度 。若 , 则 。
若 , 则 。
若 , 则定义 的投影子序列为 , 其中 。若 , 定义 的投影子序列为空序列。
若 且 , 则 。若 且 , 则 。(注意此处为比较 与 的字典序)
父段与 Dropping 祖先段
定义索引 的父段起始索引为:
若 , 通过以下流程计算出索引 的 Dropping 祖先段:初始状态下定义 。
循环进行以下步骤:
令 。若 ,则计算结束,得到 。
否则,令 。
情况1:
不更新状态,向上追溯父段:令 。
情况2: 且
更新候选为当前段,并向上追溯父段:令 。
情况3: 且
计算结束,得到 。
坏根寻找
若 , 以此流程确定坏根。
令 。若 , 则构建祖先段链 。定义参考段 。若 , 表达式无坏根。
若 , 则将 到 预先标记为跳过。
按顺序枚举祖先段链。
对于当前枚举到的 , 若其被标记为跳过,则跳过本项。否则令 , 并构造子序列 。令 , 定义 。
情况1:
将 中所有索引标记为跳过,并继续枚举。
情况2:
找到最大的索引 使得 , 计算结束,坏根 。
若 中索引已耗尽而仍未得到坏根,则该表达式无坏根。
展开
定义 。
若 , 则展开结果为 。
若 , 定义坏根 。若 , 按上述流程确定坏根。
定义阶差 , 追加块 , 其中 。
展开结果的基本列第 项为 , 其中 为序列拼接。
若表达式无坏根或坏根为 , 则该表达式无法展开,表示后继序数。
展开器
NE Rewritten 上可进行 UPS 的展开。