Skip to content

定义Definition

布尔函数

Boolean function

以有限 Boolean cube 为定义域、输出单个真假值的函数,并区分偏函数、支持变量与限制操作。

形式陈述 ​

对象与记号 ​

一个 n 元布尔函数是函数

f:{0,1}n→{0,1}.

输入 x=(x1,…,xn) 是 n 个 bit 组成的向量,输出是一个 bit。由于定义域是有限集,函数可以由包含 2n 行的真值表完全指定;公式、程序、多项式和电路则是同一个输入—输出对象的不同表示。

也常把真假编码为 {−1,+1},特别是在 Fourier 分析和多项式逼近中。两个编码之间可由 b↦(−1)b 或 b↦2b−1 转换,但 AND、XOR 与乘法的对应会随约定改变。推导开始前必须声明编码,不能在公式中途把 0/1 与 ±1 记法混用。

复杂度通常研究函数族 {fn}n≥1,其中每个 fn 只处理固定长度输入。单个 fn 是有限对象;“随 n 增长需要多少资源”属于整个函数族。把一个固定 n 的巨大真值表硬编码为常数,不会推翻关于函数族的渐近下界。

偏函数与关系 ​

偏布尔函数只在 promise 集合 S⊆{0,1}n 上定义:

f:S→{0,1}.

算法只需在 S 中的合法输入上满足正确性保证;对 promise 外是否仍须终止、是否仍受资源上限约束,则由具体计算模型规定。例如有限深度决策树在整个立方体上都会停机,只是不要求 promise 外的输出正确。promise 往往让查询或通信问题显著容易;因此 total function 的定理不能仅凭符号相同就套到 partial function,反方向也不能把 promise 外行为私自补全后仍声称复杂度不变。

关系问题 R⊆S×Z 又是不同对象。它允许同一输入对应多个合法输出,算法只需选择其中一个;这不是“输出不确定的布尔函数”。若输出集合仍是 {0,1} 且两个值都可接受,关系在该输入上没有区分要求,而普通函数必须唯一指定一个值。

在两方通信中,还会研究 f:X×Y→{0,1};那是输入按两位参与者分割的布尔值函数。它与本页的 Boolean cube 函数可以互相编码,却不共享相同的访问模型。通信模型按交换消息计费,查询模型按读取输入坐标计费,函数本身不替模型决定成本。

支持变量与限制操作 ​

坐标 i 属于 f 的支持,当且仅当存在两个只在第 i 位不同的输入 x,x⊕i,使

f(x)≠f(x⊕i).

对全函数,不在支持中的变量可以删除:沿着该坐标的每条边,函数值都不变。函数真正依赖多少坐标是语义性质,不能通过数公式里出现了多少变量名来判断。

对偏函数,若仍用相邻输入定义敏感性,必须同时要求 x,x⊕i∈S;但不能据此把“没有敏感边”解释为“不需要任何输入信息”。promise 可能切断立方体上的路径。更稳妥的依赖表述是:坐标集合 J 足以决定输出,当且仅当任意 x,y∈S 满足 xJ=yJ 时都有 f(x)=f(y)。偏函数可能存在多个互不包含的最小决定集合,而全函数有唯一的支持。

把部分坐标固定为常量会得到限制。若 I⊆[n],赋值 ρ∈{0,1}I,则 f↾ρ 是在其余坐标上代入 xi=ρi 后得到的函数。限制可逐步暴露局部结构,也是决策树沿一条查询路径后所剩子问题的精确表达。

限制不同于删除一个输入样本。它固定若干坐标并保留与赋值一致的整个子立方体;偏函数的 promise 则可以是任意子集,不必具有子立方体形状。混淆两者会让关于递归和维数的论证失去适用条件。

直觉

布尔函数只是有限输入到一个真假值的语义对象;公式、电路、真值表和多项式是不同表示,查询与通信模型又规定算法能怎样接触输入。限制操作把已知坐标代入并留下一个较小子问题,因而精确描述决策树沿一条 transcript 继续计算的对象。

例子与边界

一个支持可见的例子 ​

定义

f(x1,x2,x3)=x1⊕x3.

坐标 1 与 3 都在支持中:固定另一个坐标后翻转它们会翻转输出。坐标 2 不在支持中,因为对每个 (x1,x2,x3),只改 x2 都保持异或结果不变。

取限制 x3=0,得到

f↾x3=0(x1,x2)=x1.

再固定 x1=1 后,剩余函数恒为 1。这条轨迹说明查询已经揭示的 bit 如何把原任务化为更小的剩余函数;若先查询无关的 x2,限制前后函数完全相同,查询没有缩小语义不确定性。

同一 f 可以写成异或门、析取合取式或唯一 multilinear 多项式。某个表示可能重复使用 x2 后再抵消,也可能把 x1⊕x3 展开成更长公式;这些语法变化不改变支持、真值表或任何只依赖黑盒输入输出的查询复杂度。

promise 切断路径的反例 ​

取 S={000,111},规定 f(000)=0、f(111)=1。合法输入之间没有只差一位的边,所以相邻翻转判据找不到任何敏感坐标。然而函数并非常数,零次查询无法计算它;查询任意一个坐标就足够,因为 promise 保证三位相同。这里 {1},{2},{3} 都是最小决定集合。这个例子说明:删除无关坐标的全函数论证依赖完整立方体,不能在稀疏 promise 上原样照搬。

推论与应用

失败边界与表示 ​

布尔电路是计算布尔函数的一种有限有向图表示,不是函数本身。不同电路可计算同一函数,同一电路拓扑换门标签也可计算不同函数。电路大小和深度衡量表示的计算资源;查询复杂度则暂时忽略本地计算,只问需要看多少输入位。

一个固定长度布尔函数也不是形式语言。语言 L⊆{0,1}∗ 同时包含所有长度,可通过特征函数族 fn(x)=1[x∈L∩{0,1}n] 与布尔函数联系。漏掉长度索引,会把非一致函数族和由单一算法统一计算的语言混成一件事。

最后,输出只有真假两种并不限制内部结构为两种。一个叶只标 0 或 1,算法仍可能需要区分大量会走向同一输出、却在当前访问模型下无法合并的输入。输出集合的基数因此不能单独给出通信或查询上界。

把输入分布与扰动方式固定后,同一个布尔函数还可作为随机决策规则研究。多数最稳定定理比较固定均值、各坐标影响足够小的规则在独立噪声前后的相关;其结论是一个带误差余量的渐近极值,不是对所有布尔函数或所有有限多数规则的无条件排序。

参考资料
  • Ryan O'Donnell, Analysis of Boolean Functions, Cambridge University Press, 2014, Chapters 1–2.
  • Stasys Jukna, Boolean Function Complexity: Advances and Frontiers, Springer, 2012, Chapters 1–2.
  • Ingo Wegener, The Complexity of Boolean Functions, Wiley-Teubner, 1987, Chapters 1–3.
关系图谱46 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系

并列辨析