38、从矩阵表示构造三元弯曲函数

从矩阵表示构造三元弯曲函数

在计算和相关应用领域,三元弯曲函数的构造是一个重要的研究方向。本文将介绍基于矩阵表示构造三元弯曲函数的方法,包括具体的操作步骤、示例以及相关算法。

基于矩阵转置构造三元弯曲函数
  • 操作步骤
    1. 将特定步骤得到的子向量作为一个 $(3^k × 3^{n - k})$ 矩阵 $\mathbf{Q}$ 的行。
    2. 确定矩阵 $\mathbf{Q}$ 的转置 $\mathbf{Q}^T$。
    3. 连接 $\mathbf{Q}^T$ 的行,生成一个弯曲函数 $f_{new}$ 的函数向量。
    4. 检查构造的函数是否已经存在于不同参数 $k$ 和 $r$ 所得到的函数列表中。如果存在,返回特定步骤;如果不存在,将 $f_{new}$ 添加到列表中,然后返回相应步骤。

需要注意的是,在某些情况下,根据初始函数的函数向量模式,对于特定的 $k$ 和 $r$ 选择,通过转置产生的函数可能与初始函数或不同参数选择得到的函数相同。此时,可以尝试基于弯曲函数的矩阵值等价物的另一种方法。

矩阵转置是许多计算和相关应用算法中广泛使用的操作,其实现已经得到了深入研究,包括硬件实现。如果基于上述算法构造三元弯曲函数,所需的硬件可以简化为执行矩阵转置的电路,并且该电路应该是可重构的,以适应参数 $k$ 和 $r$ 的不同选择。

从矩阵值三元弯曲函数构造三元弯曲函数
  • 基本思路
    我们使用弯曲函数的矩阵值等价物作为基础,从给定的弯曲函数构造新的弯曲函数。具体做法是将函数向量分割成长度为 $3^k$ 的子向量,其中 $k = 1, 2, \ldots, \lceil(n - 1)/2\rceil$,并将它们写成 $(3^k × 3^k)$ 矩阵。这样,长度为 $3^n$ 的函数向量 $\mathbf{F}$ 就被转换为具有 $r = 3^{n - 2k}$ 个元素的矩阵值等价函数向量。通过从第一个元素开始依次连接矩阵值元素的行,可以从矩阵值等价物重构函数向量。
$n$ $k$ $r$
2 1 1
3 1 3
4 1, 2 9, 1
5 1, 2 27, 3
6 1, 2, 3 81, 9, 1
7 1, 2, 3 243, 27, 3
8 1, 2, 3, 4 739, 81, 9, 1

对于矩阵值等价的弯曲函数,在所有参数 $k$ 和 $r$ 的选择下,矩阵值元素的行列式都等于 0。

以下是几个具体的示例:
- 示例 1
考虑函数 $f_a(x_1, x_2, x_3, x_4) = x_1x_2 \oplus x_3x_4 \oplus x_1^2x_4^2$,其函数向量为:
$\mathbf{F}_a = [0, 0, 0, 0, 1, 2, 0, 2, 1, |0, 0, 0, 0, 1, 2, 0, 2, 1, |0, 0, 0, 0, 1, 2, 0, 2, 1, |
0, 1, 1, 0, 2, 0, 0, 0, 2, |1, 2, 2, 1, 0, 1, 1, 1, 0, |2, 0, 0, 2, 1, 2, 2, 2, 1, |
0, 1, 1, 0, 2, 0, 0, 0, 2, |2, 0, 0, 2, 1, 2, 2, 2, 1, |1, 2, 2, 1, 0, 1, 1, 1, 0]^T$

将其函数向量写成具有 9 个元素的向量,每个元素是一个 $(3 × 3)$ 矩阵:
$\mathbf{F}_a = [\mathbf{a}_0, \mathbf{a}_1, \mathbf{a}_2, \mathbf{a}_3, \mathbf{a}_4, \mathbf{a}_5, \mathbf{a}_6, \mathbf{a}_7, \mathbf{a}_8]^T$
其中:
$\mathbf{a}_0 =
\begin{bmatrix}
0 & 0 & 0 \
0 & 1 & 2 \
0 & 2 & 1
\end{bmatrix},
\mathbf{a}_1 =
\begin{bmatrix}
0 & 0 & 0 \
0 & 1 & 2 \
0 & 2 & 1
\end{bmatrix},
\mathbf{a}_2 =
\begin{bmatrix}
0 & 0 & 0 \
0 & 1 & 2 \
0 & 2 & 1
\end{bmatrix},
\mathbf{a}_3 =
\begin{bmatrix}
0 & 1 & 1 \
0 & 2 & 0 \
0 & 0 & 2
\end{bmatrix},
\mathbf{a}_4 =
\begin{bmatrix}
1 & 2 & 2 \
1 & 0 & 1 \
1 & 1 & 0
\end{bmatrix},
\mathbf{a}_5 =
\begin{bmatrix}
2 & 0 & 0 \
2 & 1 & 2 \
2 & 2 & 1
\end{bmatrix},
\mathbf{a}_6 =
\begin{bmatrix}
0 & 1 & 1 \
0 & 2 & 0 \
0 & 0 & 2
\end{bmatrix},
\mathbf{a}_7 =
\begin{bmatrix}
2 & 0 & 0 \
2 & 1 & 2 \
2 & 2 & 1
\end{bmatrix},
\mathbf{a}_8 =
\begin{bmatrix}
1 & 2 & 2 \
1 & 0 & 1 \
1 & 1 & 0
\end{bmatrix}$

通过 $\mathbf{v}_i = \mathbf{Q}_1\mathbf{a}_i$ 确定矩阵值函数,其中 $\mathbf{Q}_1$ 是基本置换矩阵。得到的矩阵值函数 $\mathbf{F}_v = [\mathbf{v}_0, \mathbf{v}_1, \mathbf{v}_2, \mathbf{v}_3, \mathbf{v}_4, \mathbf{v}_5, \mathbf{v}_6, \mathbf{v}_7, \mathbf{v}_8]^T$ 为:
$\mathbf{v}_0 =
\begin{bmatrix}
0 & 1 & 2 \
0 & 0 & 0 \
0 & 2 & 1
\end{bmatrix},
\mathbf{v}_1 =
\begin{bmatrix}
0 & 1 & 2 \
0 & 0 & 0 \
0 & 2 & 1
\end{bmatrix},
\mathbf{v}_2 =
\begin{bmatrix}
0 & 1 & 2 \
0 & 0 & 0 \
0 & 2 & 1
\end{bmatrix},
\mathbf{v}_3 =
\begin{bmatrix}
0 & 2 & 0 \
0 & 1 & 1 \
0 & 0 & 2
\end{bmatrix},
\mathbf{v}_4 =
\begin{bmatrix}
1 & 0 & 1 \
1 & 2 & 2 \
1 & 1 & 0
\end{bmatrix},
\mathbf{v}_5 =
\begin{bmatrix}
2 & 1 & 2 \
2 & 0 & 0 \
2 & 2 & 1
\end{bmatrix},
\mathbf{v}_6 =
\begin{bmatrix}
0 & 2 & 0 \
0 & 1 & 1 \
0 & 0 & 2
\end{bmatrix},
\mathbf{v}_7 =
\begin{bmatrix}
2 & 1 & 2 \
2 & 0 & 0 \
2 & 2 & 1
\end{bmatrix},
\mathbf{v}_8 =
\begin{bmatrix}
1 & 0 & 1 \
1 & 2 & 2 \
1 & 1 & 0
\end{bmatrix}$

连接矩阵值元素的行后,得到函数 $f_v$ 的函数向量:
$\mathbf{F}_v = [0, 1, 2, 0, 0, 0, 0, 2, 1|0, 1, 2, 0, 0, 0, 0, 2, 1|0, 1, 2, 0, 0, 0, 0, 2, 1|
0, 2, 0, 0, 1, 1, 0, 0, 2|1, 0, 1, 1, 2, 2, 1, 1, 0|2, 1, 2, 2, 0, 0, 2, 2, 1|
0, 2, 0, 0, 1, 1, 0, 0, 2|2, 1, 2, 2, 0, 0, 2, 2, 1|1, 0, 1, 1, 2, 2, 1, 1, 0]^T$

其函数表达式为 $f_v = f_a(x_1, x_2, x_3, x_4) \oplus x_4 \oplus x_3x_4 = x_4 \oplus 2x_3x_4 \oplus x_1x_2 \oplus x_1^2x_4^2$,该函数是弯曲的,有趣的是,除了线性项外,添加二次项后弯曲性仍然得以保留。

  • 示例 2
    构造另一个函数 $f_s$,其元素通过 $s_i = \mathbf{Q}_2\mathbf{a}_i$ 得到。得到的矩阵值函数 $\mathbf{F}_s = [\mathbf{s}_0, \mathbf{s}_1, \mathbf{s}_2, \mathbf{s}_3, \mathbf{s}_4, \mathbf{s}_5, \mathbf{s}_6, \mathbf{s}_7, \mathbf{s}_8]^T$ 为:
    $\mathbf{s}_0 =
    \begin{bmatrix}
    0 & 0 & 0 \
    0 & 2 & 1 \
    0 & 1 & 2
    \end{bmatrix},
    \mathbf{s}_1 =
    \begin{bmatrix}
    0 & 0 & 0 \
    0 & 2 & 1 \
    0 & 1 & 2
    \end{bmatrix},
    \mathbf{s}_2 =
    \begin{bmatrix}
    0 & 0 & 0 \
    0 & 2 & 1 \
    0 & 1 & 2
    \end{bmatrix},
    \mathbf{s}_3 =
    \begin{bmatrix}
    0 & 1 & 1 \
    0 & 0 & 2 \
    0 & 2 & 0
    \end{bmatrix},
    \mathbf{s}_4 =
    \begin{bmatrix}
    1 & 2 & 2 \
    1 & 1 & 0 \
    1 & 0 & 1
    \end{bmatrix},
    \mathbf{s}_5 =
    \begin{bmatrix}
    2 & 0 & 0 \
    2 & 2 & 1 \
    2 & 1 & 2
    \end{bmatrix},
    \mathbf{s}_6 =
    \begin{bmatrix}
    0 & 1 & 1 \
    0 & 0 & 2 \
    0 & 2 & 0
    \end{bmatrix},
    \mathbf{s}_7 =
    \begin{bmatrix}
    2 & 0 & 0 \
    2 & 2 & 1 \
    2 & 1 & 2
    \end{bmatrix},
    \mathbf{s}_8 =
    \begin{bmatrix}
    1 & 2 & 2 \
    1 & 1 & 0 \
    1 & 0 & 1
    \end{bmatrix}$

从矩阵值系数导出的另一个弯曲函数的函数向量为:
$\mathbf{F}_s = [0, 0, 0, 0, 2, 1, 0, 1, 2, |0, 0, 0, 0, 2, 1, 0, 1, 2, |0, 0, 0, 0, 2, 1, 0, 1, 2|
0, 1, 1, 0, 0, 2, 0, 2, 0, |1, 2, 2, 1, 1, 0, 1, 0, 1, |2, 0, 0, 2, 2, 1, 2, 1, 2|
0, 1, 1, 0, 0, 2, 0, 2, 0, |2, 0, 0, 2, 2, 1, 2, 1, 2, |1, 2, 2, 1, 1, 0, 1, 0, 1]^T$

其函数表达式为 $f_s = f_a(x_1, x_2, x_3, x_4) \oplus x_3x_4 = 2x_3x_4 \oplus x_1x_2 \oplus x_1^2x_4^2$,在这种情况下,添加了 $x_3x_4$ 项。

基于矩阵值函数构造弯曲函数的算法

以下是从矩阵值函数构造弯曲函数的算法:
1. 给定一个 $n$ 变量的三元弯曲函数,其函数向量为长度为 $3^n$ 的 $\mathbf{F}$。
2. 将 $\mathbf{F}$ 分割成长度为 $3^k$ 的子向量,其中 $k = 1, 2, \ldots, \lceil n/2\rceil$,并写成具有 $r = 3^{n - 2k}$ 个元素的矩阵值等价物 $\mathbf{F} {mv}$,这些元素是 $(3^k × 3^k)$ 矩阵。
3. 用整数 $0, 1, \ldots, r - 1$ 对 $\mathbf{F}
{mv}$ 的元素进行编码,得到 $\mathbf{F} {mv,e}$。
4. 用一个 $(r × r)$ 的 FFT 类置换矩阵 $\mathbf{P}$(即 $\mathbf{P}(n - 2k)$)对编码后的向量 $\mathbf{F}
{mv,e}$ 进行置换。
5. 将 $\mathbf{F} {mv}$ 中对应的矩阵值元素重新分配给 $\mathbf{F} {mv,e}$ 的元素。
6. 连接 $\mathbf{F} {mv,e}$ 中矩阵值元素的行,生成一个弯曲函数 $f {new}$ 的函数向量。
7. 用相同的 $(3^k × 3^k)$ FFT 类置换矩阵对 $\mathbf{F}_{mv}$ 的每个矩阵值元素进行置换。
8. 重复步骤 5、6 和 7。
9. 对不同的置换矩阵重复步骤 4,然后重复步骤 5、6 和 7。

基于弯曲函数的矩阵表示的方法在考虑弯曲函数构造过程的软件或硬件实际实现时可能很有用,因为可以利用为高效矩阵计算量身定制的资源,或者它们可以导致专门的 ASIC 电路。

通过上述方法和算法,我们可以从矩阵表示的角度有效地构造三元弯曲函数,并且在不同的示例中展示了这些方法的可行性和灵活性。在实际应用中,可以根据具体需求选择合适的参数和方法,以获得满足特定要求的弯曲函数。随着研究的深入,相信会有更多基于矩阵表示的创新方法被提出,为三元弯曲函数的应用带来更广阔的前景。

从矩阵表示构造三元弯曲函数

更多示例展示构造过程
  • 示例 3
    先将从初始函数派生的矩阵值函数的元素标记为 0, 1, 2, 3, 4, 5, 6, 7, 8,得到函数向量 $\mathbf{F} e = [0, 1, 2, 3, 4, 5, 6, 7, 8]^T$。通过置换矩阵 $\mathbf{P} {x,i} = \mathbf{X}_1 \otimes \mathbf{I}(1)$ 对其进行置换,得到 $\mathbf{F}_e = [6, 7, 8, 0, 1, 2, 3, 4, 5]^T$。
    用 $\mathbf{F}_a$ 中对应的矩阵值元素替换该向量中的元素,得到矩阵值函数 $\mathbf{F}_w = [\mathbf{w}_0, \mathbf{w}_1, \mathbf{w}_2, \mathbf{w}_3, \mathbf{w}_4, \mathbf{w}_5, \mathbf{w}_6, \mathbf{w}_7, \mathbf{w}_8]^T$,其中:
    $\mathbf{w}_0 =
    \begin{bmatrix}
    0 & 1 & 1 \
    0 & 2 & 0 \
    0 & 0 & 2
    \end{bmatrix},
    \mathbf{w}_1 =
    \begin{bmatrix}
    1 & 2 & 2 \
    1 & 0 & 1 \
    1 & 1 & 0
    \end{bmatrix},
    \mathbf{w}_2 =
    \begin{bmatrix}
    2 & 0 & 0 \
    2 & 1 & 2 \
    2 & 2 & 1
    \end{bmatrix},
    \mathbf{w}_3 =
    \begin{bmatrix}
    0 & 0 & 0 \
    0 & 1 & 2 \
    0 & 2 & 1
    \end{bmatrix},
    \mathbf{w}_4 =
    \begin{bmatrix}
    0 & 0 & 0 \
    0 & 1 & 2 \
    0 & 2 & 1
    \end{bmatrix},
    \mathbf{w}_5 =
    \begin{bmatrix}
    0 & 0 & 0 \
    0 & 1 & 2 \
    0 & 2 & 1
    \end{bmatrix},
    \mathbf{w}_6 =
    \begin{bmatrix}
    0 & 1 & 1 \
    0 & 2 & 0 \
    0 & 0 & 2
    \end{bmatrix},
    \mathbf{w}_7 =
    \begin{bmatrix}
    2 & 0 & 0 \
    2 & 1 & 2 \
    2 & 2 & 1
    \end{bmatrix},
    \mathbf{w}_8 =
    \begin{bmatrix}
    1 & 2 & 2 \
    1 & 0 & 1 \
    1 & 1 & 0
    \end{bmatrix}$

转换为函数向量后得到:
$\mathbf{F}_w = [0, 1, 1, 0, 2, 0, 0, 0, 2, |1, 2, 2, 1, 0, 1, 1, 1, 0, |2, 0, 0, 2, 1, 2, 2, 2, 1|
0, 0, 0, 0, 1, 2, 0, 2, 1, |0, 0, 0, 0, 1, 2, 0, 2, 1, |0, 0, 0, 0, 1, 2, 0, 2, 1, |
0, 1, 1, 0, 2, 0, 0, 0, 2, |2, 0, 0, 2, 1, 2, 2, 2, 1|1, 2, 2, 1, 0, 1, 1, 1, 0]^T$

该函数是弯曲的,其函数表达式为 $f_w = x_4^2 \oplus x_3x_4 \oplus x_2 \oplus x_1x_4^2 \oplus 2x_1x_2 \oplus x_1^2x_4^2$。

  • 示例 4
    若用置换 $\mathbf{P}_{i,x} = \mathbf{I}(1) \otimes \mathbf{Q}_1$ 对编码后的函数向量 $\mathbf{F}_e$ 进行重新排序,得到 $\mathbf{F}_d = [2, 0, 1, 5, 3, 4, 8, 6, 7]^T$。用 $\mathbf{F}_a$ 中的矩阵值元素替换该向量中的元素,得到 $\mathbf{F}_d = [\mathbf{d}_0, \mathbf{d}_1, \mathbf{d}_2, \mathbf{d}_3, \mathbf{d}_4, \mathbf{d}_5, \mathbf{d}_6, \mathbf{d}_7, \mathbf{d}_8]^T$,其中:
    $\mathbf{d}_0 =
    \begin{bmatrix}
    0 & 0 & 0 \
    0 & 1 & 2 \
    0 & 2 & 1
    \end{bmatrix},
    \mathbf{d}_1 =
    \begin{bmatrix}
    0 & 0 & 0 \
    0 & 1 & 2 \
    0 & 2 & 1
    \end{bmatrix},
    \mathbf{d}_2 =
    \begin{bmatrix}
    0 & 0 & 0 \
    0 & 1 & 2 \
    0 & 2 & 1
    \end{bmatrix},
    \mathbf{d}_3 =
    \begin{bmatrix}
    1 & 2 & 2 \
    1 & 0 & 1 \
    1 & 1 & 0
    \end{bmatrix},
    \mathbf{d}_4 =
    \begin{bmatrix}
    0 & 1 & 1 \
    0 & 2 & 0 \
    0 & 0 & 2
    \end{bmatrix},
    \mathbf{d}_5 =
    \begin{bmatrix}
    2 & 0 & 0 \
    2 & 1 & 2 \
    2 & 2 & 1
    \end{bmatrix},
    \mathbf{d}_6 =
    \begin{bmatrix}
    2 & 0 & 0 \
    2 & 1 & 2 \
    2 & 2 & 1
    \end{bmatrix},
    \mathbf{d}_7 =
    \begin{bmatrix}
    0 & 1 & 1 \
    0 & 2 & 0 \
    0 & 0 & 2
    \end{bmatrix},
    \mathbf{d}_8 =
    \begin{bmatrix}
    1 & 2 & 2 \
    1 & 0 & 1 \
    1 & 1 & 0
    \end{bmatrix}$

转换为函数向量后得到:
$\mathbf{F}_d = [0, 0, 0, 0, 1, 2, 0, 2, 1, |0, 0, 0, 0, 1, 2, 0, 2, 1, |0, 0, 0, 0, 1, 2, 0, 2, 1|
1, 2, 2, 1, 0, 1, 1, 1, 0, |0, 1, 1, 0, 2, 0, 0, 0, 2, |2, 0, 0, 2, 1, 2, 2, 2, 1|
2, 0, 0, 2, 1, 2, 2, 2, 1|0, 1, 1, 0, 2, 0, 0, 2, 0, |1, 2, 2, 1, 0, 1, 1, 1, 0]^T$

其函数表达式为 $f_d = f_a(x_1, x_2, x_3, x_4) \oplus x_1 \oplus x_1x_2 = x_3x_4 \oplus x_1 \oplus 2x_1x_2 \oplus x_1^2x_4^2$。

  • 示例 5
    若用 $\mathbf{F}_v$ 中的矩阵值元素(即 $\mathbf{F}_a$ 经 $\mathbf{Q}_1$ 置换后的元素)替换 $\mathbf{F}_d$ 中的元素,得到 $\mathbf{F}_h = [\mathbf{h}_0, \mathbf{h}_1, \mathbf{h}_2, \mathbf{h}_3, \mathbf{h}_4, \mathbf{h}_5, \mathbf{h}_6, \mathbf{h}_7, \mathbf{h}_8]^T$,其中:
    $\mathbf{h}_0 =
    \begin{bmatrix}
    0 & 1 & 2 \
    0 & 0 & 0 \
    0 & 2 & 1
    \end{bmatrix},
    \mathbf{h}_1 =
    \begin{bmatrix}
    0 & 1 & 2 \
    0 & 0 & 0 \
    0 & 2 & 1
    \end{bmatrix},
    \mathbf{h}_2 =
    \begin{bmatrix}
    0 & 1 & 2 \
    0 & 0 & 0 \
    0 & 2 & 1
    \end{bmatrix},
    \mathbf{h}_3 =
    \begin{bmatrix}
    1 & 0 & 1 \
    1 & 2 & 2 \
    1 & 1 & 0
    \end{bmatrix},
    \mathbf{h}_4 =
    \begin{bmatrix}
    0 & 2 & 0 \
    0 & 1 & 1 \
    0 & 0 & 2
    \end{bmatrix},
    \mathbf{h}_5 =
    \begin{bmatrix}
    2 & 1 & 2 \
    2 & 0 & 0 \
    2 & 2 & 1
    \end{bmatrix},
    \mathbf{h}_6 =
    \begin{bmatrix}
    2 & 1 & 2 \
    2 & 0 & 0 \
    2 & 2 & 1
    \end{bmatrix},
    \mathbf{h}_7 =
    \begin{bmatrix}
    0 & 2 & 0 \
    0 & 1 & 1 \
    0 & 0 & 2
    \end{bmatrix},
    \mathbf{h}_8 =
    \begin{bmatrix}
    1 & 0 & 1 \
    1 & 2 & 2 \
    1 & 1 & 0
    \end{bmatrix}$

转换为函数向量后得到:
$\mathbf{F}_h = [0, 1, 2, 0, 0, 0, 0, 2, 1, |0, 1, 2, 0, 0, 0, 0, 2, 1, |0, 1, 2, 0, 0, 0, 0, 2, 1, |
1, 0, 1, 1, 2, 2, 1, 1, 0, |0, 2, 0, 0, 1, 1, 0, 0, 2, |2, 1, 2, 2, 0, 0, 2, 2, 1, |
2, 1, 2, 2, 0, 0, 2, 2, 1, |0, 2, 0, 0, 1, 1, 0, 0, 2, |1, 0, 1, 1, 2, 2, 1, 1, 0]^T$

其函数表达式为 $f_h = f_a(x_1, x_2, x_3, x_4) \oplus x_1x_2 \oplus x_3x_4 \oplus x_1 \oplus x_4 \oplus x_1 = 2x_3x_4 \oplus x_1 \oplus 2x_1x_2 \oplus x_2^2x_4^2$,该函数是弯曲的,除了两个线性项外还添加了两个二次项。

  • 示例 6
    考虑函数 $f_{square} = x_1^2 \oplus x_2^2 \oplus x_3^2 \oplus x_4^2$,其函数向量为:
    $\mathbf{F}_{square} = [0, 1, 1, 1, 2, 2, 1, 2, 2|1, 2, 2, 2, 0, 0, 2, 0, 0|1, 2, 2, 2, 0, 0, 2, 0, 0|
    1, 2, 2, 2, 0, 0, 2, 0, 0|2, 0, 0, 0, 1, 1, 0, 1, 1|2, 0, 0, 0, 1, 1, 0, 1, 1|
    1, 2, 2, 2, 0, 0, 2, 0, 0|2, 0, 0, 0, 1, 1, 0, 1, 1|2, 0, 0, 0, 1, 1, 0, 1, 1]^T$

对应的矩阵值函数为 $\mathbf{F}_{square} = [\mathbf{r}_0, \mathbf{r}_1, \mathbf{r}_2, \mathbf{r}_3, \mathbf{r}_4, \mathbf{r}_5, \mathbf{r}_6, \mathbf{r}_7, \mathbf{r}_8]^T$,其中:
$\mathbf{r}_0 =
\begin{bmatrix}
0 & 1 & 1 \
1 & 2 & 2 \
1 & 2 & 2
\end{bmatrix},
\mathbf{r}_1 =
\begin{bmatrix}
1 & 2 & 2 \
2 & 0 & 0 \
2 & 0 & 0
\end{bmatrix},
\mathbf{r}_2 =
\begin{bmatrix}
1 & 2 & 2 \
2 & 0 & 0 \
2 & 0 & 0
\end{bmatrix},
\mathbf{r}_3 =
\begin{bmatrix}
1 & 2 & 2 \
2 & 0 & 0 \
2 & 0 & 0
\end{bmatrix},
\mathbf{r}_4 =
\begin{bmatrix}
2 & 0 & 0 \
0 & 1 & 1 \
0 & 1 & 1
\end{bmatrix},
\mathbf{r}_5 =
\begin{bmatrix}
2 & 0 & 0 \
0 & 1 & 1 \
0 & 1 & 1
\end{bmatrix},
\mathbf{r}_6 =
\begin{bmatrix}
1 & 2 & 2 \
2 & 0 & 0 \
2 & 0 & 0
\end{bmatrix},
\mathbf{r}_7 =
\begin{bmatrix}
2 & 0 & 0 \
0 & 1 & 1 \
0 & 1 & 1
\end{bmatrix},
\mathbf{r}_8 =
\begin{bmatrix}
2 & 0 & 0 \
0 & 1 & 1 \
0 & 1 & 1
\end{bmatrix}$

先对 $\mathbf{F} {square}$ 的矩阵值元素进行编码得到 $\mathbf{F} {e,square} = [0, 1, 2, 3, 4, 5, 6, 7, 8]^T$。然后应用 FFT 类置换矩阵 $\mathbf{Q} {i,x}^T = \mathbf{I}(1) \otimes \mathbf{X}_1^T$ 进行置换,得到 $\mathbf{F} {e,square,new} = [1, 2, 0, 4, 5, 3, 7, 8, 6]^T$。将矩阵值元素重新分配给该向量,得到 $\mathbf{F}_{e,square,new} = [\mathbf{y}_0, \mathbf{y}_1, \mathbf{y}_2, \mathbf{y}_3, \mathbf{y}_4, \mathbf{y}_5, \mathbf{y}_6, \mathbf{y}_7, \mathbf{y}_8]^T$,其中:
$\mathbf{y}_0 =
\begin{bmatrix}
1 & 2 & 2 \
2 & 0 & 0 \
2 & 0 & 0
\end{bmatrix},
\mathbf{y}_1 =
\begin{bmatrix}
1 & 2 & 2 \
2 & 0 & 0 \
2 & 0 & 0
\end{bmatrix},
\mathbf{y}_2 =
\begin{bmatrix}
0 & 1 & 1 \
1 & 2 & 2 \
1 & 2 & 2
\end{bmatrix},
\mathbf{y}_3 =
\begin{bmatrix}
2 & 0 & 0 \
0 & 1 & 1 \
0 & 1 & 1
\end{bmatrix},
\mathbf{y}_4 =
\begin{bmatrix}
2 & 0 & 0 \
0 & 1 & 1 \
0 & 1 & 1
\end{bmatrix},
\mathbf{y}_5 =
\begin{bmatrix}
1 & 2 & 2 \
2 & 0 & 0 \
2 & 0 & 0
\end{bmatrix},
\mathbf{y}_6 =
\begin{bmatrix}
2 & 0 & 0 \
0 & 1 & 1 \
0 & 1 & 1
\end{bmatrix},
\mathbf{y}_7 =
\begin{bmatrix}
2 & 0 & 0 \
0 & 1 & 1 \
0 & 1 & 1
\end{bmatrix},
\mathbf{y}_8 =
\begin{bmatrix}
1 & 2 & 2 \
2 & 0 & 0 \
2 & 0 & 0
\end{bmatrix}$

转换为向量后得到函数向量:
$\mathbf{F}_{square} = [1, 2, 2, 2, 0, 0, 2, 0, 0|1, 2, 2, 2, 0, 0, 2, 0, 0|0, 1, 1, 1, 2, 2, 1, 2, 2|
2, 0, 0, 0, 1, 1, 0, 1, 1|2, 0, 0, 0, 1, 1, 0, 1, 1|1, 2, 2, 2, 0, 0, 2, 0, 0|
2, 0, 0, 0, 1, 1, 0, 1, 1, 2, 0, 0, 0, 1, 1, 0, 1, 1|1, 2, 2, 2, 0, 0, 2, 0, 0]^T$

其函数表达式为 $f = 1 \oplus 2x_2 \oplus x_1^2 \oplus x_2^2 \oplus x_3^2 \oplus x_4^2$。

若用基本置换矩阵 $\mathbf{Q} 1$ 对重新排序后的向量 $\mathbf{F} {e,square,new}$ 中的矩阵值元素进行置换,得到另一个弯曲函数。其矩阵值函数向量 $\mathbf{F}_{square,new,permuted} = [\mathbf{g}_0, \mathbf{g}_1, \mathbf{g}_2, \mathbf{g}_3, \mathbf{g}_4, \mathbf{g}_5, \mathbf{g}_6, \mathbf{g}_7, \mathbf{g}_8]^T$,其中:
$\mathbf{g}_0 =
\begin{bmatrix}
2 & 0 & 0 \
1 & 2 & 2 \
2 & 0 & 0
\end{bmatrix},
\mathbf{g}_1 =
\begin{bmatrix}
2 & 0 & 0 \
1 & 2 & 2 \
2 & 0 & 0
\end{bmatrix},
\mathbf{g}_2 =
\begin{bmatrix}
1 & 2 & 2 \
0 & 1 & 1 \
1 & 2 & 2
\end{bmatrix},
\mathbf{g}_3 =
\begin{bmatrix}
0 & 1 & 1 \
2 & 0 & 0 \
0 & 1 & 1
\end{bmatrix},
\mathbf{g}_4 =
\begin{bmatrix}
0 & 1 & 1 \
2 & 0 & 0 \
0 & 1 & 1
\end{bmatrix},
\mathbf{g}_5 =
\begin{bmatrix}
2 & 0 & 0 \
1 & 2 & 2 \
2 & 0 & 0
\end{bmatrix},
\mathbf{g}_6 =
\begin{bmatrix}
0 & 1 & 1 \
2 & 0 & 0 \
0 & 1 & 1
\end{bmatrix},
\mathbf{g}_7 =
\begin{bmatrix}
0 & 1 & 1 \
2 & 0 & 0 \
0 & 1 & 1
\end{bmatrix},
\mathbf{g}_8 =
\begin{bmatrix}
2 & 0 & 0 \
1 & 2 & 2 \
2 & 0 & 0
\end{bmatrix}$

展开后得到函数向量:
$\mathbf{F}_{square} = [2, 0, 0, 1, 2, 2, 2, 0, 0, |2, 0, 0, 1, 2, 2, 2, 0, 0, |1, 2, 2, 0, 1, 1, 1, 2, 2, |
0, 1, 1, 2, 0, 0, 0, 1, 1, |0, 1, 1, 2, 0, 0, 0, 1, 1, |2, 0, 0, 1, 2, 2, 2, 0, 0, |
0, 1, 1, 2, 0, 0, 0, 1, 1, |0, 1, 1, 2, 0, 0, 0, 1, 1, |2, 0, 0, 1, 2, 2, 2, 0, 0]^T$

其函数表达式为 $f = 2 \oplus 2x_2 \oplus x_3 \oplus x_1^2 \oplus x_2^2 \oplus x_3^2 \oplus x_4^2$。

这个示例表明,与某些算法不同,基于矩阵值等价物的方法在处理由变量平方和表示的函数时也能产生不同的弯曲函数。

总结与展望

通过以上多个示例可以看出,基于矩阵表示构造三元弯曲函数的方法具有很强的灵活性和可行性。可以通过不同的置换矩阵和参数选择,构造出满足不同需求的弯曲函数。

在实际应用中,这些弯曲函数可用于密码学、通信等领域。例如在密码学中,弯曲函数的良好性质可以增强加密算法的安全性。

未来的研究方向可以集中在以下几个方面:
- 探索更多类型的置换矩阵和参数组合,以构造出更多具有特殊性质的弯曲函数。
- 研究如何优化基于矩阵表示的构造算法,提高计算效率,减少资源消耗。
- 深入研究弯曲函数在不同应用场景中的性能表现,为实际应用提供更有力的理论支持。

总之,基于矩阵表示构造三元弯曲函数是一个充满潜力的研究领域,随着研究的不断深入,相信会有更多的成果应用到实际中,推动相关领域的发展。

下面是构造弯曲函数的流程 mermaid 图:

graph LR
    A[给定 n 变量三元弯曲函数向量 F] --> B[分割 F 成子向量并写成矩阵值等价物 F_mv]
    B --> C[对 F_mv 元素编码得到 F_mv,e]
    C --> D[用 FFT 类置换矩阵 P 置换 F_mv,e]
    D --> E[重新分配矩阵值元素给 F_mv,e]
    E --> F[连接矩阵值元素行生成 f_new 函数向量]
    F --> G[用 FFT 类置换矩阵置换 F_mv 每个元素]
    G --> H{是否更换置换矩阵}
    H -- 是 --> D
    H -- 否 --> I[结束]

通过这个流程图,可以更清晰地看到基于矩阵值函数构造弯曲函数的整个过程。在实际操作中,可以根据具体情况选择合适的置换矩阵和参数,按照流程逐步进行,从而构造出满足需求的弯曲函数。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值