我劝你读读 [Björklund 选集] (1)

Rota 曾言, "每个数学家其实也只有几个 trick, 即使是 Hilbert 也是如此".

Björklund 的许多工作要么是给一些问题的指数做出了惊人的改进, 要么是给一些神奇的问题给出了多项式复杂度的算法. 当我们统一审视这些问题的时候, 大概能够发现 Björklund 基本上围绕两个思想: 一个是将问题代数化 (其中可能需要设计一些合适的抵消), 另一个是通过合适的方式利用组合侧的随机化, 来进行 "挤水".

之前的博客里讲过的一些东西就不复读了.

k-d matching

给出 kn 个点, 分成 k 个大小为 n 的部分 V1,,Vk, 然后给出若干条超边 (hyperedge), 也即一条边 e 在每个 Vi 里有一个端点. 问这个图是否有完美匹配.

显然, k=2 的情况是传统的二分图匹配, 而众所周知 k=3 就已经是 NPC 问题了.

我们先看 k=3 的情况.

先考虑前两部图, 也即 V1,V2 的部分, 每条边就是真的一条边, 我们需要选出一个完美匹配, 满足每条边对应的 V3 里的点互不相同.

我趣, 这不是我们子集卷积吗. 拍上去, O(2n) 做完了.

对于一般的 k, 显然能做到 O(2(k2)n).

k-set exact cover

给出一些大小为 k 的集合, 问能否选出一些集合构成精确覆盖.

对于 k=2 的情况, 这无非是一般图匹配.

对于 k=3 的情况, 我们可以先考虑随机选取一个大小为 ρn 的子集. 如果有一个精确覆盖的话, 看每个三角形和这个子集的关系. 交集大小有可能是 0,1,2,3.

我们假设交集大小都是 0,1,2. 那么 0 的那部分可以直接把集合幂乘起来. 12 部分, 我们记 D 是那些交集为 1 的三角形, A 是那些交集为 2 的三角形构成的反对称矩阵. 那么 D+A 的行列式会枚举出选这些点和边的完美覆盖, 有一些符号的交替, 但总而言之是多项式时间的.

这个做法一次测试的时间是 O(2(1ρ)n) 的, 因为有这么多大小的集合幂级数信息. 但它也只有指数级别的成功概率 c(ρ)n. 我们需要重复试验 c(ρ)n 才能成功.

经过优化, 21ρc(ρ)1 可以取到最小值 1.496.

一般而言, 对于更大的 k 也可以得到对应的挤水结果.

无向图, 经过 k 个指定点的最短回路

注意, 没有指定 k 个点的经过顺序, 只要求它们都被经过了.

首先进行一个理智检验: 如果 k=n, 这是哈密顿路, 恐怕只能有指数时间算法. 如果能有一个 cknO(1) 算法就很好了.

首先我们先看看如何大概通过 "计数" 知道是否有解.

无向图这个条件相当关键, 我们考虑在计数的过程中, 从 k 个点的第一个点出发, 过程中经过每个点恰好一次.

如果一条路径有交点, 因为我们考虑的是 无向图, 那么路径的一侧可以翻转, 又得到一条不同的路径.

如果我们是在特征为 2 的域上计数, 那么这个对合原则上就会消去所有的非简单路径.

当然, 这需要一些更加细致的讨论, 比如为了防止所有路径被调换, 我们要要求 1 出发的点要比最后回来时候的点小. 记录路径的时候要记上一个点, 以防直接走回去, 这样非简单路径一侧只有一条边的话是不能对合的.

这样的状压 DP 复杂度大约是 2knO(1).

特征为 2 的域不能用太小的 F2, 但用大一些的就可以了.

Comment. 鉴于现在哈密顿路已经做到了 1.66n, 把 2k 的底数优化并非不可能.

无向图, 两对点之间的不交最短路径

给定 s1t1,s2t2, 问是否存在两条不交的路径总和最短.

记邻接矩阵为 A, 我们给 s1,s2,t1,t2 以外的对角线位置都 +1, 然后给 As1,t1,As2,t2 位置加一的话, perA 会枚举两条路径勾连 s1,t1,s2,t2. 但这不是准确的说法, 因为路径还有可能是 s1t2,s2t1 甚至 s1s2,t2t1 的.

但神奇的是, 如果另外考虑这么勾连的另外两种矩阵 AA, 可以把它们线性组合, 把错误的方案消掉, 但相应的, 正确的方案被数了两倍.

我们不能再用特征为 2 的域上 per=det 了, 但是 mod4 也能做.

以及为此, 为了解决最短, 需要挂在多项式上, 需要 mod4 的多项式上的 per. 但总之这是 nO(1) 可解的.

Comment. 经过实验, 三个点对的情况好像不能用 per 这么简单地消出来了, 但是也没有显著证明说明三个点对做不了.

三阶张量的渐进秩猜想 和 k-集合覆盖猜想 互斥

渐进秩猜想 是说, 对于一个三阶张量 TKr×r×r, 有 R(Tn)rn+o(n).

注意这个猜想是非常强的, 比如它会直接推出 ω=2.

k-集合覆盖猜想 是说, 不存在一个 δ>0, 使得任何 k-集合覆盖都有 (2δ)n 算法. 其中 k-集合覆盖就是输入的集合都 k 的集合覆盖问题.

对于常数大小的 k, 我们可以补齐所有集合的子集, 这样覆盖就变成了精确覆盖.

现在考虑这样一个问题: 给三个集族 A,B,C, 每个集族包含的都是一些大小 (1/3+τ)n 大小的集合, 问是否能从 A,B,C 里各选出一个集合, 构成 [n] 的精确覆盖.

显然用子集卷积可以做到 O(2n), 而且这个问题能 O((2δ)n) 的话, 也就能以差不多的复杂度否决 k-集合覆盖猜想.

考虑张量 T=x1y0z0+x0y1z0+x0y0z1Tn, 这个张量计算的恰好就是子集卷积 XYZ=[n].

我们考虑把 T3 挖掉三维的全集部分, 记为 P, 那么 P 是一个 7×7×7 的张量. P×(n/3) 枚举的是 XYZ, 但每三个块都没有被其中任何一个集合独占.

如果 渐进秩猜想 成立, 那么 P(n/3) 的计算是可以 7n+o(n) 完成的.

现在把 [n] 先随机排列一下, 然后分成 αn 部分和 (1α)n 部分, 后面的部分三个一组, 用 P 的高阶张量幂计算. 复杂度是 (2α7(1α)/3)n+o(n).

但这样的计算也是有错误率的, 记为 c(α)n, 我们需要重复试验 c(α)n 次才能成功.

经过计算和挤水, 发现对于 τ=103, 可以做到 (2106)n.

这就说明了 k-集合覆盖猜想 和 渐进秩猜想 互斥.

值得一提的是, 容易发现上面那个集合覆盖问题, 也会顺带解决有向图的 Hamilton 路问题, 这可能也是 Björklund 考虑这个东西的一个原因.

Comments 现在对于代数算法已经到了 虐待 的程度. 我们记得, 之前有 Nederlof 的结果说明, ω=2 则无向二分图 TSP 可以 1.99999n 计算. 那个做法用到了非常复杂的手段, 最后也要挤水.

回想对于代数算法的早期运用, 只要 ω<3 往往就能给出惊人的加速. 但现在这一代结论却需要 ω<2.000001 这种.

你愿意相信这给 ω 的下界提供了一种证据吗?

或者, k-集合覆盖猜想 可以看做是 SETH 的一个类比, 那么我们能否用代数算法和 SETH 联系起来, 甚至和 CKT-SETH 联系起来?

更加野心勃勃的计划: 能否将对于代数算法的 虐待 进行 scale down, 得到非平凡的 C-电路可满足性 问题的加速, 进而得到下一代线路复杂性下界?

(upd: 然后 Kevin Pratt 最近显著地加强了一点这个结果...)

posted @   EntropyIncreaser  阅读(719)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示