79、基于导数码的最优速率列表译码

基于导数码的最优速率列表译码

在信息传输过程中,数据可能会受到各种干扰而出现错误,因此纠错码技术至关重要。导数码作为一种特殊的纠错码,在列表译码方面有着独特的优势。本文将详细介绍导数码的相关概念、列表译码方法以及应对大列表大小问题的策略。

导数码的定义

设 $F_q$ 表示含有 $q$ 个元素的有限域。对于多项式 $f \in F_q[X]$,其形式导数 $f’$ 定义为:若 $f(X) = f_0 + f_1X + \cdots + f_{\ell}X^{\ell}$,则 $f’(X) = \sum_{i = 1}^{\ell} if_iX^{i - 1}$,$f^{(i)}$ 表示 $f$ 的 $i$ 阶形式导数。

定义 :$m$ 阶导数码 $Der_q^{(m)}[n, k]$ 定义如下:设 $0 \leq m \in \mathbb{Z}$,$a_1, \cdots, a_n \in F_q$ 互不相同,且参数满足 $m \leq k < nm \leq q$,进一步假设 $char(F_q) > k$。该码将次数小于 $k$ 的多项式 $f \in F_q[X]$ 编码为:
[
f \mapsto
\begin{pmatrix}
\begin{bmatrix}
f(a_1) \
f’(a_1) \
\vdots \
f^{(m - 1)}(a_1)
\end{bmatrix},
\begin{bmatrix}
f(a_2) \
f’(a_2) \
\vdots \
f^{(m - 1)}(a_2)
\end{bmatrix},
\cdots,
\begin{bmatrix}
f(a_n) \
f’(a_n) \
\vdots \
f^{(m - 1)}(a_n)
\end{bmatrix}
\end{pmatrix}
]
当 $m = 1$ 时,该码为 Reed - Solomon 码。此码的块长为 $n$,码率 $R = \frac{k}{nm}$,最小距离为 $n - \lfloor \frac{k - 1}{m} \rfloor \approx (1 - R)n$。

列表译码导数码

假设接收到导数码 $Der_q^{(m)}[n, k]$ 的一个码字的受损版本 $y \in (F_q^m)^n$,可将其视为一个 $m \times n$ 的矩阵:
[
\begin{pmatrix}
y_{11} & y_{12} & \cdots & y_{1n} \
y_{21} & y_{22} & \cdots & y_{2n} \
\vdots & \vdots & \ddots & \vdots \
y_{m1} & y_{m2} & \cdots & y_{mn}
\end{pmatrix}
]
译码的目标是找到所有次数小于 $k$ 的多项式 $f$,使得其编码与 $y$ 在至少 $t$ 列上一致,这相当于从 $n - t$ 个符号错误中对导数码进行译码。当 $t > \frac{n + k/m}{2}$ 时,若多项式 $f$ 存在,则是唯一的,此时可通过改编 Reed - Solomon 码的 Welch - Berlekamp 算法进行高效译码。

译码算法主要分为两个步骤:
1. 插值 :找到一个满足特定代数条件的多项式 $Q$,所有候选多项式 $f$ 都需满足该条件。
2. 检索候选多项式 :从插值步骤得到的代数条件中检索出所有候选解 $f$。

以下是译码过程的 mermaid 流程图:

graph LR
    A[接收受损码字 y] --> B[插值]
    B --> C[检索候选多项式]
    C --> D[输出所有满足条件的多项式 f]
插值步骤

设 $W$ 是 $F_q[X, Y_1, \cdots, Y_m]$ 的 $F_q$ 线性子空间,其中的多项式在 $Y_i$ 上的总次数至多为 1,即 $W$ 包含形如 $B_0(X) + B_1(X)Y_1 + B_2(X)Y_2 + \cdots + B_m(X)Y_m$ 的多项式。

定义 $F_q$ 线性映射 $D$ 如下:对于 $p \in F_q[X]$ 和 $1 \leq i \leq m$,
[
D(p)(X, Y_1, \cdots, Y_m) = p’(X)
]
[
D(pY_i)(X, Y_1, \cdots, Y_m) = p’(X)Y_i + p(X)Y_{i + 1} \quad (Y_{m + 1} = Y_1)
]

设 $1 \leq s \leq m$ 为译码算法中的整数参数。插值步骤的目标是找到一个非零多项式 $Q \in F_q[X, Y_1, Y_2, \cdots, Y_s]$,形式为 $A_0(X) + A_1(X)Y_1 + A_2(X)Y_2 + \cdots + A_s(X)Y_s$,并满足以下条件:对于每个 $1 \leq i \leq n$,
[
Q(a_i, y_{1i}, \cdots, y_{si}) = 0 \quad \text{且} \quad (D^kQ)(a_i, y_{1i}, \cdots, y_{mi}) = 0 \quad (k = 1, \cdots, m - s)
]
其中 $D^k$ 表示 $D$ 的 $k$ 次复合。

对于每个 $i$,上述条件是关于多项式 $Q$ 系数的 $(m - s + 1)$ 个齐次线性约束。


[
d = \left\lfloor \frac{n(m - s + 1) - k + 1}{s + 1} \right\rfloor
]
则存在一个非零多项式 $Q$ 满足上述条件,且 $\deg(A_0) \leq d + k - 1$,$\deg(A_j) \leq d$($1 \leq j \leq s$),可以在 $O((nm)^3)$ 次 $F_q$ 域运算内找到该多项式。

检索候选多项式步骤

若多项式 $Q(X, Y_1, \cdots, Y_s)$ 满足插值条件,对于次数至多为 $k - 1$ 的多项式 $f$,若其编码与接收字 $y$ 在至少 $t$ 列上一致,且 $t > \frac{d + k - 1}{m - s + 1}$,则有
[
Q(X, f(X), f’(X), \cdots, f^{(s - 1)}(X)) = 0
]
即找到所有次数小于 $k$ 的多项式 $f$,使得
[
A_0(X) + A_1(X)f(X) + A_2(X)f’(X) + \cdots + A_s(X)f^{(s - 1)}(X) = 0
]
这给出了一个关于 $f = f_0 + f_1X + \cdots + f_{k - 1}X^{k - 1}$ 系数的线性系统,解空间是一个仿射空间,可通过求解该线性系统得到。

为了求解该线性系统,有以下结论:
- 若 $A_s(X) \not\equiv 0$,由于 $\deg(A_s) \leq d < nm \leq q$,存在 $\alpha \in F_q$ 使得 $A_s(\alpha) \neq 0$,可考虑问题的平移变换,将问题转化为 $A_s(X + \alpha)$ 常数项非零的情况。
- 若 $A_s(X) = 0$,则将问题简化为使用 $s$ 个而非 $s + 1$ 个插值变量的问题。

若 $A_s$ 的常数项 $a_{s0} \neq 0$,则上述线性系统的解空间维度至多为 $s - 1$。

综合上述结果,对于导数码 $Der_q^{(m)}[n, k]$($char(F_q) > k$),对于每个接收字 $y \in F_q^{nm}$,可以在多项式时间内找到一个维度至多为 $s - 1$ 的仿射子空间 $S \subseteq F_q[X]$,使得所有次数小于 $k$ 且其导数编码与 $y$ 在至多 $\frac{s}{s + 1}(n - \frac{k}{m - s + 1})$ 个位置不同的多项式 $f$ 都属于 $S$。

通过设置 $s \approx \frac{1}{\varepsilon}$ 和 $m \approx \frac{1}{\varepsilon^2}$,可以得到:对于所有 $R \in (0, 1)$ 和 $\varepsilon > 0$,通过适当选择参数,存在码率至少为 $R$ 的导数码 $Der_q^{(m)}[n, k]$,可以从 $1 - R - \varepsilon$ 比例的错误中进行列表译码,列表大小为 $q^{O(1/\varepsilon)}$。

以下是译码过程的步骤总结:
1. 接收受损码字 :将接收到的受损码字表示为 $m \times n$ 矩阵 $y$。
2. 执行插值步骤
- 计算 $d = \left\lfloor \frac{n(m - s + 1) - k + 1}{s + 1} \right\rfloor$。
- 找到满足插值条件的非零多项式 $Q$。
3. 检索候选多项式
- 若 $A_s(X) \not\equiv 0$,找到 $\alpha$ 使 $A_s(\alpha) \neq 0$ 并进行平移变换。
- 若 $A_s(X) = 0$,简化问题。
- 求解线性系统得到解空间,其维度至多为 $s - 1$。
4. 输出结果 :输出所有满足条件的多项式 $f$。

通过以上步骤,可以对导数码进行有效的列表译码。在实际应用中,还需要考虑如何应对译码过程中可能出现的大列表大小问题,这将在下半部分进行详细讨论。

基于导数码的最优速率列表译码

应对大列表大小问题

在译码算法中,可能会出现列表大小过大的问题,这会增加译码的复杂度和计算量。下面介绍两种应对大列表大小问题的策略。

减少列表大小

为了避免接近 $f$ 的码字数量出现约为 $q^s$ 的大列表大小界限,可以从所谓的子空间规避子集 $F_q^k$ 中选取码字,而不是从整个 $F_q^k$ 中选取。这种方法在折叠 Reed - Solomon 码的列表译码中被使用,在导数码的列表译码中也能获得类似的好处。

如果一个 $F_q^k$ 的子集与每个维度至多为 $s$ 的线性子空间 $S \subseteq F_q^k$ 的交集至多有 $L$ 个点,则称该子集为 $(s, L)$ - 子空间规避子集。

对于任意 $\varepsilon > 0$,通过概率论证可知,存在大小为 $q^{(1 - \varepsilon)k}$ 的 $(s, O(s/\varepsilon))$ - 子空间规避子集 $F_q^k$。

具体操作步骤如下:
1. 选择合适的参数 $s$ 和 $\varepsilon$。
2. 生成 $(s, O(s/\varepsilon))$ - 子空间规避子集 $V$ 。
3. 从 $V$ 中选取消息,而不是从整个 $F_q^k$ 中选取。

通过这种方式,虽然会在码率上有小的损失,但能显著改善列表大小界限。将参数设置为定理 1 中的形式,就可以从 $1 - R - \varepsilon$ 比例的错误中进行列表译码,列表大小至多为 $O(1/\varepsilon^2)$。不过,这种码的构造不是显式的,而是一种随机(蒙特卡罗)构造,能以高概率满足列表译码的要求。

操作步骤 具体内容
选择参数 确定合适的 $s$ 和 $\varepsilon$ 值
生成子集 生成 $(s, O(s/\varepsilon))$ - 子空间规避子集 $V$
选取消息 从 $V$ 中选取消息进行编码
利用边信息进行译码

前面介绍的译码过程是尝试所有 $f_0, \cdots, f_{s - 2}$ 系数的选择,并使用每个选择来唯一确定 $f$ 的候选。但实际上,对于每个 $i$,$f_i$ 本质上是 $f$ 在 0 处的 $i$ 阶导数除以 $i!$。因此,如果译码器知道 $f$ 及其前 $s - 1$ 阶导数在 0 处的正确值,只要 $A_s(0) \neq 0$,就可以唯一恢复 $f$。

假设编码器除了在原始信道上发送(长得多的)码字外,还可以通过无噪声边信道发送少量信息。编码器可以均匀随机地选择 $\alpha \in F_q$,并在无噪声信道上发送 $f(\alpha), f’(\alpha), \cdots, f^{(s - 1)}(\alpha)$。译码失败的情况仅当 $A_i(\alpha) = 0$(其中 $i$ 是使得 $A_i(X) \neq 0$ 的最大索引)。由于 $A_i(X)$ 的次数有界,通过增大域大小 $q$,可以以任意接近 1 的概率唯一恢复 $f$。

以下是利用边信息进行译码的 mermaid 流程图:

graph LR
    A[编码器选择 α] --> B[编码器发送 f(α), f'(α), ..., f^(s - 1)(α) 到无噪声边信道]
    B --> C[编码器发送码字到原始信道]
    C --> D[译码器接收受损码字和边信息]
    D --> E[判断 A_s(α) 是否为 0]
    E -- 是 --> F[译码失败]
    E -- 否 --> G[平移问题并确定移位系数]
    G --> H[唯一恢复 f]

具体步骤如下:
1. 编码器操作
- 均匀随机选择 $\alpha \in F_q$。
- 通过无噪声边信道发送 $f(\alpha), f’(\alpha), \cdots, f^{(s - 1)}(\alpha)$。
- 在原始信道上发送码字。
2. 译码器操作
- 接收受损码字和边信息。
- 检查 $A_s(\alpha)$ 是否为 0。
- 若 $A_s(\alpha) \neq 0$,平移问题并使用边信息唯一确定移位系数,从而恢复 $f$。

与通用的结合列表可译码码和哈希的解决方案相比,此方法的优势在于无需计算完整的列表(这是计算量较大的步骤,因为列表大小界限与 $s$ 呈指数关系),然后再将其修剪为唯一解。而是可以在应用平移变换 $X \mapsto X + \alpha$ 后,在线性系统中唯一识别多项式 $f(X + \alpha)$ 的前 $(s - 1)$ 个系数,其余系数可根据这些系数线性组合确定,整个算法可以在二次时间内实现。

译码器还可以使用接收到的码字 $y$ 的列作为边信息 $f(a_i), f’(a_i), \cdots, f^{(s - 2)}(a_i)$($i = 1, 2, \cdots, n$)的猜测。由于 $f$ 与 $y$ 在超过 $t > Rn$ 个位置上一致,只要 $A_s(a_i) = 0$ 的评估点 $a_i$ 少于 $t$ 个,就可以恢复所有解 $f$,这样会得到一个至多为 $n - t < n$ 的列表大小界限。然而,目前似乎没有办法确保 $A_s$ 不在用于编码的大多数(甚至所有)点 $a_i$ 处消失。或许可以使用一些额外的方法,使列表大小在 $q$ 和 $s$ 上都是多项式的,或者至少为 $\exp(O(s))q^c$(其中 $c$ 为某个绝对常数)。

综上所述,基于导数码的列表译码在信息传输的纠错方面具有重要的应用价值。通过合理选择参数和采用有效的译码策略,可以在保证译码准确性的同时,降低译码的复杂度和列表大小,提高信息传输的效率和可靠性。在未来的研究中,可以进一步探索如何更好地应对译码过程中的各种问题,如列表大小的控制和译码效率的提升,以满足不同应用场景的需求。

一、 内容概要 本资源提供了一个完整的“金属板材压弯成型”非线性仿真案例,基于ABAQUS/Explicit或Standard求解器完成。案例精确模拟了模具(凸模、凹模)与金属板材之间的接触、压合过程,直至板材发生塑性弯曲成型。 模型特点:包含完整的模具-工件装配体,定义了刚体约束、通用接触(或面面接触)及摩擦系数。 材料定义:金属板材采用弹塑性材料模型,定义了完整的屈服强度、塑性应变等真实应力-应变数据。 关键结果:提供了成型过程中的板材应力(Mises应力)、塑性应变(PE)、厚度变化​ 云图,以及模具受力(接触力)曲线,完整再现了压弯工艺的力学状态。 二、 适用人群 CAE工程师/工艺工程师:从事钣金冲压、模具设计、金属成型工艺分析与优化的专业人员。 高校师生:学习ABAQUS非线性分析、金属塑性成形理论,或从事相关课题研究的硕士/博士生。 结构设计工程师:需要评估钣金件可制造性(DFM)或预测成型回弹的设计人员。 三、 使用场景及目标 学习目标: 掌握在ABAQUS中设置金属塑性成形仿真的全流程,包括材料定义、复杂接触设置、边界条件与载荷步。 学习如何调试和分析大变形、非线性接触问题的收敛性技巧。 理解如何通过仿真预测成型缺陷(如减薄、破裂、回弹),并与理论或实验进行对比验证。 应用价值:本案例的建模方法与分析思路可直接应用于汽车覆盖件、电器外壳、结构件等钣金产品的冲压工艺开发与模具设计优化,减少试模成本。 四、 其他说明 资源包内包含参数化的INP文件、CAE模型文件、材料数据参考及一份简要的操作要点说明文档。INP文件便于用户直接修改关键参数(如压边力、摩擦系数、行程)进行自主研究。 建议使用ABAQUS 2022或更高版本打开。显式动力学分析(如用Explicit)对计算资源有一定要求。 本案例为教学与工程参考目的提供,用户可基于此框架进行拓展,应用于V型弯曲
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值