[论文阅读报告] All pairs shortest paths using bridging sets and rectangular matrix multiplication, FOCS 98

news/2024/10/5 15:36:55/文章来源:https://www.cnblogs.com/shiys22/p/18447877

本篇文章介绍整数边权下 \((\min, +)\) 矩阵乘、APSP 等问题的一些做法。若每个元素的权值在 \([-M, M] \cap \mathbb Z\) 中,\(n \times n^r\)\(n^r \times n\)\((\min, +)\) 矩阵乘可做到 \(\tilde O(Mn^{\omega(r)})\);有向图 APSP 可做到 \(\tilde O(n^{2 + \mu(t)})\),其中 \(M = n^t, \mu(t)\)\(\omega(r) = 1 + 2r - t\) 的解,当 \(M = O(1)\) 时为 \(\tilde O(n^{2.575})\)\((1 + \epsilon)\) 近似非负实数 \((\min, +)\) 矩阵乘可以做到 \(\tilde O(n^{\omega(r)}\log W / \epsilon)\),其中 \(W\) 为最大权值和最小权值的比。

如果我们想要精确计算实数矩阵上的 \((\min, +)\) 矩阵乘法,那么目前不存在 \(O(n^{3 - \delta})\) 的算法,这被称为 APSP hypothesis。但是如果每个元素都是 \([-M, M]\) 中的整数,则我们有很简单的 \(O(n^{3 - \delta})\) 的做法,可以做到 \(\tilde O\left(\min\left(n^{2 + r}, M n^{\omega(r)}\right)\right)\),其中 \(\omega(r)\)\(n \times n^r\)\(n^r \times n\) 矩阵相乘的快速矩阵乘法指数。

\(m = n^r\)。我们让 \(a'_{i, j} = (m + 1)^{M - a_{i, j}}, b'_{i, j} = (m + 1)^{M - b_{i, j}}\),计算 \(C' = A' \times B'\),令 \(c_{i, j} = 2M - \operatorname{msb}(c_{i, j}')\),其中 \(\operatorname{msb}\) 表示 \(c_{i, j}'\) 最高位的位置,也即 \(\lceil \log_{m + 1} c'_{i, j} \rceil\)。不难验证这个做法是正确的,并且实际上计算出了每一种 \(a + b\) 的个数。这样每一次代数运算是 \(\tilde O(M)\) 的,需要的代数运算次数是 \(O(n^{\omega(r)})\) 的,因此复杂度为 \(\tilde O(M n^{\omega(r)})\)。如果 \(M\) 太大,也可以直接暴力计算,复杂度为 \(\tilde O(n^{2 + r})\)

我们能在 \(\tilde O(M n^{\omega(r)})\) 计算每个位置 \((i, j)\) 中每一种 \(a + b\) 的个数,似乎是不寻常的,因为矩阵乘法加速的原理在于压缩信息,但我们似乎保留了全部的信息。这是由于 \(\tilde O(M n^{\omega(r)})\) 实际上并不是一个多项式复杂度,输入规模是 \(O(n^2 \log M)\) 的。这就类似于桶排序,原本长度为 \(n^r\) 的信息变为了长度为 \(M\) 的,因此保留信息只需要多付出 \(\tilde O(M)\) 倍的时间,而 \(O(n^{\omega(r)})\) 是不变的。

如果我们同时考虑复杂度中的 \(M\)\(n\),那么 \((\min, +)\) 矩阵乘和 APSP 问题不是等价的。如果使用原先的归约,即使 APSP 问题中每条边边权在 \([-M, M] \cap \mathbb Z\) 中,在 \(\log_2 n\)\((\min, +)\) 矩阵乘中,权值上限将不断增加,最终达到 \(nM\),这样做 APSP 还不如实数边权 Dijkstra 快。

不过 APSP 有其图论性质。一条性质是,当最短路用到的边数很多时,它可选择的松弛点也会变多。我们进行 \(\log_{3/2} n\)\((\min, +)\) 矩阵乘,第 \(i\) 次只考虑松弛那些走过的边的条数不超过 \((3/2)^i\) 的最短路。可以观察到,可用的松弛点的个数是不小于 \(1/3\) 其长度的。当最短路长度很长时,我们可以随机从 \(V\) 中选取一部分点作为可能的松弛点。

假设我们在做第 \(i\)\((\min, +)\) 矩阵乘,当前的矩阵是 \(F\),令 \(s = (3/2)^i\),将 \(V\) 中每个点以 \(\min(1, (9 \ln n) / s)\) 的概率选进集合 \(B\) 中,计算 \(F' = F[*, B] \times F[B, *]\),将 \(F'\) 中超过 \(sM\) 的元素设为 \(+\infty\)。考虑那些长度处于 \((2s/3, s]\) 的最短路 \((u, v)\),使用归纳法,如果所有长度 \(\leq 2s/3\) 的最短路已经在 \(F\) 中,此时令 \(P_{uv}\)\(u\) 向后 \(2s/3\) 个点的位置为 \(y\)\(v\) 向前 \(2s/3\) 个点的位置为 \(x\),则 \((x, y)\) 间隔了 \(2 \cdot 2s/3 - s = s/3\) 个点,而对所有 \(z \in P_{xy}\)\((u, z), (z, v)\) 的距离不超过 \(2s/3\),因此已经在 \(F\) 中,只要有至少一个 \(z \in B\)\((u, v)\) 的最短路就在 \(F'\) 中。这样的概率是

\[\left(1 - \frac{9 \ln n}s\right)^{s / 3} \leq \exp(-3 \ln n) = n^{-3} \]

使用 union bound,所有长度在 \((2s/3, s]\) 中的 \((u, v)\) 的最短路 \(P_{(2s/3, s]}\) 都在 \(F'\) 中的概率不小于 \(1 - |P_{(2s/3, s]}|n^{-3}\)。将每一轮的概率一起使用 union bound,成功概率不小于 \(1 - P_{[0, nM]} \cdot n^{-3} = 1 - n^{-1}\)

\(s = n^{1 - r}, M = n^t\),则这一轮的复杂度为 \(\tilde O(\min(sM n^{\omega(r)}, n^{2 + r})) = \tilde O(\min(n^{t + \omega(r) + (1 - r)}, n^{2 + r}))\) 其关于 \(s\) 的最大值在 \(\omega(r) = 1 + 2r - t\) 取到。当 \(M = O(1)\) 时,查表可得,复杂度为 \(\tilde O(n^{2.575})\)(2002,论文发布时)\(\tilde O(n^{2.528})\)(2023,最新结果)。

对于 \(r = 1\) 的情况,我们观察这个式子,发现当 \(M = O(n^{3 - \omega - \delta})\) 时,这个算法是 \(\tilde O(n^{3 - \delta})\) 的。由于 \(\omega \geq 2\),当 \(M = O(n)\) 时,我们没法从中得到 \(O(n^{3 - \delta})\) 的做法,因此他不违反 APSP 经典假设。

论文继续介绍了构造最短路与去随机化的方法,这些部分较为独立,这里不再赘述。

对于非负实数近似 \((\min, +)\) 矩阵乘,我们可以利用加法的特性给出一个十分经典的近似算法,取 \(R \ll M\),将权值上取整,即 \(a'_{i, j} = \left\lceil \frac{Ra_{i, j}} M\right\rceil\),进行同样的计算后再转换回来。

对于不同大小的 \(a_{i, k} + b_{k, j}\),我们不能把他们都用 \(M\) 作为分母取整,因为在计算近似比时我们使用的是结果的值作为分母而非 \(M\),这样会导致太小的 \(a + b\) 近似比太差,我们需要枚举 \(r \in [\lfloor \log_2 R \rfloor, \lceil \log_2 M \rceil] \cap \mathbb Z\),用 \(2^r\) 做分母。当 \(2^{r - 1} < \max(a_{i, j}, b_{j, k}) \leq 2^r\) 时,有

\[a_{i, j} \leq \frac{2^r a'_{i, j}}R < a_{i, j} + \frac{2^r}R,\ b_{j, k} \leq \frac{2^r b'_{j, k}}R < b_{j, k} + \frac{2^r}R \]

\[c_{i, j} \leq c'_{i, j} \leq \frac{2^r a'_{i, j}}R + \frac{2^r b'_{j, k}}R < a_{i, k} + b_{k, j} + \frac{2^{r + 1}}R = c_{i, j} + \frac{2^{r + 1}}R \leq \left(1 + \frac 4R\right) c_{i, j} \]

\(R = \frac 4{\epsilon}\) 即可做到 \(1 + \epsilon\) 近似。复杂度为 \(\tilde O(n^{\omega}\log M / \epsilon)\)。对于 APSP,由于我们要做 \(\log n\) 轮,每一轮的误差会相乘,即 \(\left(1 + \frac 4R\right)^{\lceil \log n \rceil}\),令 \(R = O\left(\frac{\log n}{\ln(1 + \epsilon)}\right) = \tilde O\left(1/\epsilon\right)\) 即可。

我们看到,将 \(M\) 变为 \(4 \log M / \epsilon\) 利用的是不同大小的 \(a + b\) 的采样密度不同,我们总是把 \((2^{r - 1}, 2^r]\) 分成 \(R\) 份,因此采样密度是指数级增长的。在无权图上这一点会更加容易观察到:我们只用计算 \(01\) 矩阵乘法 \(A^{\lfloor (1 + \epsilon)^i \rfloor}, A^{\lceil (1 + \epsilon)^{i + 1} \rceil}\)\((u, v)\) 的值是否从 \(0\) 变为 \(1\) 便可以知道是否有 \(\delta(u, v) \in (\lfloor (1 + \epsilon)^i \rfloor, \lceil (1 + \epsilon)^{i + 1} \rceil]\)。复杂度为 \(O(n^\omega \log_{1 + \epsilon} n) = \tilde O(n^{\omega} / \epsilon)\)

如果原先权值是非负实数,我们可以将所有的权值放缩,使得最小的权值为 \(1\)(实际上由于边界问题,\(2\) 更好)。这样便囊括在了 \(2^r\) 的枚举中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/808497.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

帝国cms搜索页模板关键字结果标题加红的方法

要在帝国CMS的搜索结果页面上实现关键词高亮显示的功能,可以按照以下步骤操作:备份原有模板文件: 在修改任何模板文件之前,请确保备份原有的模板文件,以防修改出错时能够恢复。定位到模板编辑器:登录帝国CMS后台。 导航至“模板”->“模板列表”。 找到需要修改的搜索…

Arduino Nano 和 DHT11 实现 LabVIEW 温湿度采集

Arduino Nano 和 DHT11 实现 LabVIEW 温湿度采集Arduino Nano 和 DHT11 实现 LabVIEW 温湿度采集 Arduino IDE 安装如下库文件 DHT sensor library by AdafruitDHT11 温湿度传感器 Data 引脚与 Arduino Nano 开发板的 D2 引脚连接 代码 #include <DHT.h>#define Temperat…

猜你想搜:博客园消息点不开怎么解决?

打不开博客园的消息怎么办?跟着我的步骤! 还记得在衡实的时候我们没办法从首页直接打开头像是怎么办的吗?是的,“过去启发当下”! 第一步:在首页将鼠标放在“赞助商”旁边的箭头处,点开“怀旧”;第二步:再从怀旧界面点下图位置的专区;第三步:再次尝试点击消息,你会…

2024-2025 20242307

我的作业 1,以上内容没有掌握没有我掌握的🤦,这些内容我均未掌握 Markdown 简介与语法 Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者 HTML)文档。它的设计目标是实现“易读易写”,让人们专注于内容创作,而…

WMS、WCS、WES:它们是什么以及有何不同

WMS、WCS和WES是仓库管理系统中的三个重要组成部分。 WMS关注库存流和存储,优化劳动力管理和资源利用; WCS负责执行WMS创建的计划和活动序列,提供设备和系统的实时监控; WES则充当WMS和WCS之间的桥梁,提高运营效率、灵活性和可扩展性。 这三个系统相互协作,共同提升仓库绩…

高级语言程序设计第二次个人作业.

这个作业属于哪个课程: https://edu.cnblogs.com/campus/fzu/2024C/ 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/2024C/homework/1328 学号:102400107 姓名:陶玉兰这次作业过程中有以下几个问题: 1.在例3.7输出时以惯用的cpp格式直接输出了,没有注意到要求…

统计术语

基期、现期 作为对比参照的时期称为基期,而相对于基期的称为现期。 例,今年比去年公司营收增加100万。 去年:基期 今年:现期增长量 增长量是指基期量与现期量增长(或减少)的绝对量。 表述特征: ……比……增长(下降)某个具体值。 增长量=现期量-基期量;增长率 是指增长量与…

MAC 安装 Homebrew (使用国内镜像源)

Homebrew 官方地址 https://brew.sh/zh-cn/ 官方地址使用github的源,国内访问速度很慢,所以我们需要使用国内的源。 自动安装 Homebrew 首先可以尝试自动安装方法,直接一行命令就行: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homeb…

GraphQL、sequelize-typescript 、Apollo Server 4 实例

新建项目文件夹$ mkdir demo $ cd demo初始化TypeScript配置$ npx tsc --init安装 Sequelize Sequelize-cli$ npm install --save-dev @types/node @types/validator $ npm install sequelize reflect-metadata sequelize-typescript $ npm install --save-dev ts-node @types/…

@ImportResource用法

用法 @ImportResource 注解用于导入 Spring的配置文件,让某个配置文件中的bean生效; SpringBoot里没有 Spring的配置文件,自己可以手动编写配置文件,但Spring Boot不能自动识别,此时需要在配置类中引入编写的配置文件 注意:这个配置文件生效需要放在 配置类上!! 举个例…