决策单调性与四边形不等式

决策单调性与四边形不等式

本文抄写自 itst 21 年 apio 讲课课件。

其实主体是环上邮局。

前置定义

对于两种不同的决策单调性问题,我们有不太一样的做法。

  1. 离线问题

    考虑一个规模为 \(m\times n\) 的 dp。

    \[f_{i,j}=\min_{k<j}f_{i-1,k}+w_{k,j} \]

    \(f_{i-1}\) 转移到 \(f_i\) 是一个离线的问题。

  2. 在线问题

    考虑一个规模为 \(n\) 的 DP。

    \[f_i=\min_{j<i}f_j+w_{j,i} \]

解决决策单调性问题一般方法

分治和二分栈在 OI 中应该已经够用了,它们的复杂度均为 \(O(n\log n)\)
存在 \(O(n+m(1+\max(\log \dfrac n m,0)))\) 的 SMAWK 算法(离线情况),线性的 Wilber 算法(部分在线问题)和 Eppstein 算法(运用情景比肩二分栈)。

这里简单回顾一下二分栈算法。

增量加入每个决策点 \(i\),维护出每个决策点作为最优决策点的管理 区间,由于决策单调性,这是一个栈的结构。
\(i\) 的 DP 值容易计算,考虑加入决策 \(i\) 对栈的影响:

  1. \(i\) 比栈顶的决策对于栈顶管辖的左端点来说更好,那么栈顶没用了,可以 pop 掉。
  2. \(i\) 比栈顶的决策对于栈顶管辖的右端点来说更差,那么 \(i\) 的管辖区间我们已经得到了,加入栈就行了。
  3. 否则,我们需要二分栈顶的管辖区间,找到 \(i\) 比栈顶好的最靠前的位置。

故复杂度 \(O(n\log n)\)

决策单调性最短路问题

这里指离线问题的那个 DP。我们以一个较为复杂的例子来探讨这个问题:

环上邮局

在一个长度为 \(L\) 的环上有 \(n\) 个村庄,修建 \(k\) 个邮局,要求只能修在整点,最小化每个村庄到其最近的邮局的距离和。输出方案。

一个基本的转化是枚举一个位置断环为链,转化成链上问题,即前文提及的离线问题,使用分治法,时间复杂度 \(O(n^2k\log n)\)

我们介绍 \(O(n^2\log W\log n),O(n\log W\log n+n^2\log n),O(n\log n(\log n+\log W))\) 三种优化。

如果会写 SMAWK 和 Wilber 可以做到少一个 \(\log n\)

答案凸性

定理:

\(f(k)\) 表示从 \(1\)\(n\),经过 \(k\) 条边的最短路,\(f\) 在定义域内下凸,即 \(\forall k\in[2,n-2],f(k+1)-f(k)\ge f(k)-f(k-1)\)

那么我们可以使用 wqs 二分,结合二分栈完成这个问题,时间复杂度 \(O(n^2\log W\log n)\)

这部分的证明给出了构造方案的方法。

引理:

\(\forall 1\le s<r<t\le n-1,f(s)+f(t)\ge f(r)+f(s+t-r)\)

显然引理成立代值即可得到上述定理。

\(f(s)\) 的一个最优方案是 \(p_1\rightarrow p_2\rightarrow\cdots\rightarrow p_{s+1}\)
\(f(t)\) 的一个最优方案是 \(q_1\rightarrow q_2\rightarrow\cdots\rightarrow q_{t+1}\)

\(v=r-s\),找到 \(i\in[1,s]\),满足 \(p_i\le q_{i+v}<q_{i+v+1}\le p_{i+1}\)。可构造路径 \(p_{[1,i]},q_{[i+v+1,t+1]}\)\(q_{[1,i+v]},p_{i+1,s+1}\)。长度分别为 \(s+t-r\)\(r\)。(这样的 \(i\) 一定存在,证明考虑按 \(p\) 分段后一定有两个 \(q\) 落在一段。)
路径交错后改变量的式子形如一个四边形不等式(交叉小于等于包含),故引理成立。

我们考虑 wqs 二分结束后,我们不一定能恰好得到长度为 \(k\) 的路径方案,也有可能得到两组 \(p<k<q\) 的方案。
这里 \(p\) 是 DP 出来的最小分段方案,\(q\) 是最多。我们通过上述构造得到一组 \(k\) 的方案,我们可以说明其就是最优的。

路径单调性与不交性

定理:

对于有决策单调性的最短路问题,记 \(x\)\(p_1\rightarrow q_1\) 的长为 \(k\) 的字典序最小的最短路,\(y\)\(p_2\rightarrow q_2\) 的。
如果 \(p_1\le p_2,q_1\le q_2\),那么 \(\forall i\in [1,k+1],y_i\ge x_i\)

证明考虑反正,交错一下权值和不变大,而有一边字典序变小。

定理:

对于有决策单调性的最短路问题和 \(p\in[1,n-2]\),记 \(x\)\(f(p)\) 的一个方案,\(y\)\(f(p+1)\) 的一个方案。
那么,\(\forall i\in[1,k+1],y_i\le x_i\)

话说这个为啥叫不交性啊,不是很懂。

证明考虑对 \(y_{[1,p+1]}\)\(y_{[2,p+2]}\) 使用路径单调性即得。

回到环上邮局,我们考虑断环为链后将链复制一遍,先跑出 \(0\rightarrow L\) 的长为 \(k\) 的字典序最小最短路 \(x\)
假设全局字典序最小的最短路是 \(y\)\(y_1\in[0,L),y_{k+1}=y_1+L\)。那么显然 \(y_k-L,y_1,y_2,\cdots,y_k\) 也是一个 \(y_k-L\rightarrow y_k\) 的最短路。

对这两条最短路分别与 \(x\) 运用路径单调性,\(y_i\in[x_i,x_{i+1}]\)。也就是存在最优解在每一段中恰好一个点,我们可以随便选一段元素进行枚举断环成链,显然最短的一段一定不超过 \(\dfrac n k\),每次运行分治法 \(O(nk\log n)\),复杂度 \(O(n\log W\log n+n^2\log n)\)

我们加大力度,注意到路径单调性,我们扩展原本的分治算法,\(k\) 个区间一起分治,每次枚举第一个区间的中点,计算出后面每个断点的最优选择(使用分治法),那么我们得到的复杂度是 \(O(\sum r_i-l_i)\)。但是这个算法的复杂度真的是 \(O(n\log n(\log n+\log W))\) 吗?

由于每次递归会将中点递归往两边,每个分支区间至少要 \(O(k)\) 的操作,最多可能有 \(O(n)\) 个分治区间,所以上述算法的瓶颈是 \(O(nk)\) 的。

解决方案也很容易,把最短的那个区间拿过来当第一个区间,就只会有 \(O(\dfrac n k)\) 个分治区间了。

posted @ 2023-05-06 11:49  juju527  阅读(45)  评论(0编辑  收藏  举报