首页 > 其他分享 >一个关于异或线性基的有趣结论

一个关于异或线性基的有趣结论

时间:2024-11-11 15:07:56浏览次数:1  
标签:le min 基的 max 异或 线性 oplus operatorname

作者并不是很懂线性代数相关的一些术语,所以可能本文很多东西说法并不是很标准,不过从逻辑上应该是足够严谨的。

符号约定:

  • 本文线性基均指 异或线性基
  • 本文向量均指 \(01\) 向量。
  • 一个大小为 \(n\) 线性基为 \(n\) 个大小为 \(n\) 的向量构成。
    • 一个向量 \(p_i=(p_{i,1},p_{i,2},\cdots,p_{i,n})\),\(p_{i,j}\in\{0,1\}\)。
    • 一个线性基 \(P=(p_i,p_2,\cdots p_n)\)。特别的,我们认为:
      • 若 \(p_{i,i}=0\),则 \(\forall j\in[1,n]\) 有 \(p_{i,j}=0\)。
      • 若 \(p_{i,i}=1\),则 \(\forall j\in[1,i)\) 有 \(p_{i,j}=0\)。
  • 记 \(S_B\) 表示线性基 \(B\) 长成空间中所有元素的集合。
  • 对于向量 \(a,b\),我们称 \(a<b\) 当且仅当:
    • 存在 \(k\in[1,n]\) 使得 \(a_k<b_k\) 且 \(\forall i\in[1,k)\) 有 \(a_i=b_i\)。
  • 定义向量异或运算 \(\oplus\) 为:
    • \(a\oplus b=(a_1\oplus b_1,a_2\oplus b_2,\cdots,a_n\oplus b_n)\)。
  • 记 \(F_{\max,B}(x)\) 表示 \(\max\limits_{y\in S_B}{x\oplus y}\)。
  • 记 \(F_{\min,B}(x)\) 表示 \(\min\limits_{y\in S_B}{x\oplus y}\)。
  • \(\operatorname{not}(x)=(\neg x_1,\neg x_2,\cdots,\neg x_n)\)。

结论:

  • \(F_{\max,B}(x\oplus y)=F_{\max,B}(x)\oplus F_{\min,B}(y)\)。

证明:

考虑一个我们求 \(F_{\max,B}(x)\) 的过程:

  1. 令 \(i\gets 1\)。
  2. 若 \(x_i=0\),则令 \(x\gets x\oplus B_i\)。
  3. \(i\gets i+1\),若 \(i=n\) 则停止,否则回到第二步。

这里有一个非常棘手的操作是:我们进行第二步操作后,\(x\) 后面的值会发生变化!也就是存在某个 \(j\) 最初 \(x_j=1\),后来变成了 \(x_j=0\),也就是我们没法在最开始就确定每个位置是否会进行操作!

但是我们断言:必然存在一个线性基 \(B'\) 满足:

  • \(S_B=S_{B'}\)。
  • 对于任意 \(1\le i<j\le n\) 且 \(B'_{i,j}=1\) 满足 \(B'_{j,j}=0\)。

也就是我们对于线性基 \(B'\) 可以在最初确定哪些位置需要进行操作(所有 \(x_i=0\) 的位置)。

尝试给出构造性证明,考虑归纳:

  1. 对于 \(i=n\) 显然满足条件。
  2. 当前对于 \(i=k+1\sim n\) 满足条件,考虑取出所有 \(B'_{i,j}=1\) 的位置 \(j\),令 \(B'_i\gets B'_i\oplus B'_j\) 即可。

最终得到的 \(B'\) 显然满足条件。

且 \(F_{\max,B}(x)=F_{\max,B'}(x)=x\oplus(\overset{n}{\underset{1\le i\le n,x_i=0}{\oplus}} B'_{i})\)。

我们记 \(H_{\max,B}(x)=\overset{n}{\underset{1\le i\le n,x_i=0}{\oplus}} B_{i}\),同理有 \(H_{\min,B}(x)=\overset{n}{\underset{1\le i\le n,x_i=1}{\oplus}} B_{i}\)。

即得 \(F_{\max,B}(x)=x\oplus H_{\max,B'}(x)\) 和 \(F_{\min,B}(x)=x\oplus H_{\min,B'}(x)\)。

考虑刻画 \(F_{\max,B}(x\oplus y)\):

\[\begin{aligned} & F_{\max,B}(x\oplus y)\\ & = (x\oplus y)\oplus H_{\max,B}(x\oplus y)\\ & = (x\oplus y)\oplus H_{\min,B}(\operatorname{not}(x\oplus y))\\ & = (x\oplus y)\oplus H_{\min,B}(\operatorname{not}(x)\oplus y)\\ & = (x\oplus y)\oplus \color{red}{H_{\min,B}(\operatorname{not}(x))\oplus H_{\min,B}(y)}\\ & = (x\oplus H_{\min,B}(\operatorname{not}(x)) \oplus (y\oplus H_{\min,B}(y))\\ & = (x\oplus H_{\max,B}(x) \oplus (y\oplus H_{\min,B}(y))\\ & = F_{\max,B}(x)\oplus F_{\min,B}(y) \end{aligned} \]

故证毕!

注意其中标红的部分,手玩一下真值表可以说明,而 \(H_{\max,B}\) 就没有这样好的性质,这也就是我们强行扯出了 \(\min\) 的意义。

标签:le,min,基的,max,异或,线性,oplus,operatorname
From: https://www.cnblogs.com/lsj2009/p/18539747

相关文章

  • js 线性度 CORREL 的实现
    问题需要用js来实现线性度CORREL.解决一组是固定值的线性度计算比如:{0,10,30,60,80}是一组固定的数据集。<template><div><h1>Linearity(CorrelationCoefficient)Calculator</h1><textareav-model="inputData"placeholder="Enterdatafor......
  • 线性规划-JobShopSchedulingLP
    usingSystem;usingGoogle.OrTools.LinearSolver;namespaceJobShopScheduingProblem{///<summary>///线性规划(LinearProgramming)///</summary>publicclassJobShopSchedulingLP{publicstaticvoidSolve()......
  • 深度学习(三)2.利用pytorch实现线性回归
    一、基础概念1.线性层线性层(LinearLayer)是神经网络中的一种基本层,也称为全连接层(FullyConnectedLayer)。它的工作方式类似于简单的线性方程:y=Wx+b,其中W是权重矩阵,x是输入,b是偏置项,y是输出。线性层的主要任务是将输入的数据通过权重和偏置进行线性变换,从而生成输出......
  • 每周算法2:数学+模拟+哈希表+栈+线性dp+贪心(简单)
    目录1.统计数字描述输入描述:输出描述: 题解2.两个数组的交集(哈希表)描述题解 3.点击消除(栈)描述输入描述:输出描述: 题解4.牛牛的快递(模拟+补充)描述输入描述:输出描述:题解 5.最小花费爬楼梯(简单线性dp)描述输入描述:输出描述:示例1题解6.数组中两......
  • 线性表——顺序表
    文章目录前言一、顺序表1.1概念与结构1.2分类1.2.1静态顺序表1.2.2动态顺序表1.3动态顺序表的实现总结前言上篇博客入门了数据结构,学习了时间复杂度和空间复杂度,本篇博客学习线性表中的顺序表。线性表是n个具有相同特性的数据元素的有限序列。线性表是⼀......
  • 第二十九篇——线性代数:“矩阵”到底怎么用?
    目录一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么?四、总结五、升华一、背景介绍数学中的线性代数,再生活中的落地和应用,是我这个时候需要与数学建立的直观桥梁,而这一......
  • 特征线性调制(FiLM)层的实现
    资料:AIGC笔记--特征线性调制(FiLM)层的实现_feature-wiselinearmodulation-CSDN博客论文泛读【FiLM:VisualReasoningwithaGeneralConditioningLayer】-CSDN博客   ......
  • 数据结构学习笔记---线性表:顺序表(插入)
    顺序表的基本操作——插入首先,静态分配一个顺序表#include<stdio.h>#include<stdlib.h>#defineMaxSize5//定义队列的最大长度typedefstruct{ intdata[MaxSize]; intlength;}SqList;然后实现插入方法,for循环我们提前插入了四个元素,顺序排放原理是以i为......
  • 生产环境中添加多项式特征实现:将逻辑回归应用于非线性关系
            要将逻辑回归应用于非线性关系,并实现到生产环境中,我们可以通过以下步骤来完成。这里主要使用Python和Scikit-Learn库,因为它们为机器学习任务提供了强大的工具和易于使用的接口。我们将通过添加多项式特征来扩展逻辑回归模型,使其能够处理非线性关系。步骤......
  • 生产环境中使用:带有核函数的 SVM 处理非线性问题
            在逻辑回归中,我们可以通过引入 核方法(KernelTrick) 来处理非线性关系。虽然逻辑回归本身不直接支持核方法,但我们可以借助特征转换工具来手动实现类似的效果。不过,更常见的是在 支持向量机(SVM) 中应用核方法,这里我们将介绍如何使用 带有核函数的SVM 来处......