简记决策单调性

单调矩阵

定义

对于矩阵 \(A\),定义 \(\min_i(A)\) 表示最大的 \(k\) 满足 \(A_{i,k}=\min_jA_{i,j}\),即第 \(i\) 行最靠后的最小值位置 .

定义:对于 \(i<j\) 满足 \(\min_i(A)\le\min_j(A)\) 的矩阵称作单调矩阵 . 若一个矩阵 \(A\) 的所有子矩阵均为单调矩阵,则称为完全单调矩阵 .

常规意义上的决策单调性问题就是单调矩阵上求列最小值的问题 .

对于任意 \(i_1<i_2\)\(j_1<j_2\) 满足 \(A_{i_1,j_1}+A_{i_2,j_2}\le A_{i_1,j_2}+A_{i_2,j_1}\),则称矩阵 \(A\) 满足四边形不等式 .

一个矩阵满足四边形不等式,则称其为蒙日矩阵或者蒙日阵 .

定理:矩阵 \(A\) 满足四边形不等式当且仅当对于任意 \(i,j\) 满足 \(A_{i,j} + A_{i+1, j+1} \le A_{i, j+1} + A_{i+1, j}\) . 证明考虑二维差分即可 .

显然蒙日阵均为完全单调矩阵,所以满足四边形不等式可以导出满足决策单调性 .

蒙日阵的生成

蒙日矩阵乘法(\((\min,+)\) 矩阵乘法):

\[(A\times B)_{i,j}=\min_k\{A_{i,k}+B_{k,j}\} \]

断言:若 \(A\) 是蒙日阵,则下列矩阵都是蒙日阵:

  • \(A^{\sf T}\) .
  • \(\lambda A\) 其中 \(\lambda\ge 0\) .
  • \(A\) 的某一行或列上全体加常数 \(c\) 后得到的矩阵 .

\(A,B\) 是蒙日阵,则 \(A+B\)\(AB\) 都是蒙日阵 .

蒙日阵的乘积仍是蒙日阵

\(A,B\) 是蒙日阵,\(C=AB\) . 考察 \(i_1\le i_2\)\(j_1\le j_2\)\(k_1\)\(C_{i_1,j_2}\) 取到最小值的位置,\(k_2\)\(C_{i_2,j_1}\) 取到最小值的位置 . 不失一般性,令 \(k_1\le k_2\) .

则:

\[\begin{aligned}C_{i_1,j_1}+C_{i_2,j_2}&\le(A_{i_1,k_1}+B_{k_1,j_1})+(A_{i_2,k_2}+B_{k_2,j_2})\\&=(A_{i_1,k_1}+A_{i_2,k_2})+(B_{k_1,j_1}+B_{k_2,j_2})\\&\le(A_{i_1,k_1}+A_{i_2,k_2})+(B_{k_1,j_2}+B_{k_2,j_1})\\&=(A_{i_1,k_1}+B_{k_1,j_2})+(A_{i_2,k_2}+B_{k_2,j_1})\\&=C_{i_1,j_2}+C_{i_2,j_1}\end{aligned} \]

即得原命题 .

一些常见的蒙日阵 \(A\) 的例子:

  • \(A_{x,y}=\min\{x,y\}\) .
  • \(A_{x,y}=\max\{x,y\}\) .
  • \(A_{x,y}=xy\) .
  • \(A_{x,y}=|x-y|^p\) 其中 \(p\le 1\) .
  • \(A_{x,y}=\sum_{i=1}^n\sum_{j=y}^md_{i,j}\) 其中 \(d_{i,j}\ge0\) .
  • \(A_{x,y}=[x=k]v_k\) .
  • \(A_{x,y}=[y=k]v_k\) .
  • \(A_{x,y}=f(x-y)\) 其中 \(f\) 下凸 .
  • \(A_{x,y}=\begin{cases}-f(\{T_x,\cdots,T_y\})&x\le y\\+\infty&\text{otherwise.}\end{cases}\) 其中 \(f\)\(S\) 上的次模函数,\(T\)\(2^S\) 中的任意 \(|S|\) 个不同元素 .
    注:函数 \(f\)\(S\) 上的次模函数当且仅当对于任意 \(X,Y\in 2^S\)\(f(X)+f(Y)\ge f(X\cap Y)+f(X\cup Y)\) .

一维决策单调性

问题描述

考虑两种 DP:

  1. 对于 \(dp_{i,j}=\min\limits_{k<j}\{dp_{i-1,k}+w_{k,j}\}\),注意到相当于每次乘 \(W^{\sf T}\) 加若干列 \(dp_{i-1,y}\) 构成的矩阵,所以若 \(W\) 是蒙日阵则 DP 有决策单调性 .
  2. 对于 \(dp_i=\min\limits_{j<i}\{dp_j+w_{j,i}\}\),可以类似分析出决策单调性 .

后称第一种 DP 为离线决策单调性,第二种 DP 为在线决策单调性 . 假设 \(w\) 可以 \(O(1)\) 计算 .

下面介绍解决两类问题的线性对数算法,线性算法在 OI 中没啥用就不说了 .

第一类问题又称为决策单调性最短路问题,可以证明答案一定是凸的:[JOISC 2023 Day3] Chorus .

分治

分治可以解决离线决策单调性的问题 .

\(\operatorname{solve}(l,r,L,R)\) 表示计算 \(l\dots r\) 行的 \(\min_i(A)\),且 \(L\le\min_i(A)\le R\),每次取中点 \(m=\lfloor\frac{l+r}2\rfloor\)\(\min_m(A)\),分别处理 \(\operatorname{solve}(l,m-1,L,\min_m(A)),\operatorname{solve}(m+1,r,\min_m(A),R)\) 即可 .

\(O(\log n)\) 层,每层 \(O(m)\) 个点,故复杂度为 \(O(m)\) .

这里可以注意一点:如果每次暴力移动指针计算所有 \(A\),总的移动距离是线性对数级别的:CF868F .

二分栈

动态维护每个列 \(i\) 对应取到最小值的行区间 \([l_i,r_i]\) . 依次插入每个列 \(i\):

  • 若栈不为空且栈顶元素 \(j\) 满足 \(A_{l_j,i}\le A_{l_j,j}\),弹栈,然后重复操作 .
  • 若栈为空则加入 \(l_i=1,r_i=n\) .
  • 否则,取栈顶元素 \(j\),二分出最大的 \(k\) 满足 \(A_{k,j}<A_{k,i}\) 然后令 \(r_j\gets k\),若 \(r_j\neq n\) 则加入 \(l_i=k+1,r_i=n\) .

省流:对于任意两列,左边的列在一段前缀优,右边的列在一段后缀优,二分出分界点 .

显然时间复杂度为 \(O(m\log n)\) .

二维决策单调性

最优搜索树问题

问题:

\[dp_{i,j}=\begin{cases}0&i\ge j\\\min\limits_{i\le k<j}\{dp_{i,k}+dp_{k+1,j}\}+w_{i,j}&i<j\end{cases} \]

定义:若方阵 \(A\) 满足对于任意 \(i_1\le i_2\le j_2\le j_1\) 都有 \(A_{i_1,j_1}\ge A_{i_2,j_2}\) 则称 \(A\) 满足区间包含单调性 .

定理:若 \(w\) 满足四边形不等式和区间包含单调性,则 \(dp\) 满足四边形不等式 .

证明

只需证对于任意 \(i_1\le i_2\le j_1\le j_2\) 满足 \(dp_{i_1,j_1}+dp_{i_2,j_2}\le dp_{i_1,j_2}+dp_{i_2,j_1}\) .

\(j_2-i_1\) 归纳,\(j_2-i_1\le1\) 时显然 .

\(dp_{i,j,x}=w_{i,j}+dp_{i,x}+dp_{x+1,j}\) . 讨论:

  • \(i_2=j_1\),则需要证明三角形不等式 \(dp_{i_1,j_1}+dp_{j_1,j_2}\le dp_{i_1,j_2}\),令 \(dp_{i_1,j_2}\) 的最优决策点是 \(u\le j_1\),则:

    \[\begin{aligned}dp_{i_1,j_1}+dp_{i_2,j_2}&\le dp_{i_1,j_1,u}+dp_{j_1,j_2}\\&=w_{i_1,j_1}+dp_{i_1,u}+dp_{u+1,j_1}+dp_{j_1,j_2}\\&\le w_{i_1,j_2}+dp_{i_1,u}+dp_{u+1,j_2}\\&=dp_{i_1,j_2}\end{aligned} \]

    \(u>j_1\) 类似 .
  • \(i_2\neq j_1\),令 \(dp_{i_1,j_2}\)\(dp_{i_2,j_1}\) 的最优决策点分别为 \(u\le v\),则:

    \[\begin{aligned}dp_{i_1,j_1}+dp_{i_2,j_2}&\le dp_{i_1,j_1,u}+dp_{i_2,j_2,v}\\&=(w_{i_1,j_1}+w_{i_2,j_2})+(dp_{i_1,u}+dp_{i_2,v})+(dp_{u+1,j_1}+dp_{v+1,j_2})\\&\le (w_{i_1,j_2}+w_{i_2,j_1})+(dp_{i_1,u}+dp_{i_2,v})+(dp_{u+1,j_2}+dp_{v+1,j_1})\\&=dp_{i_1,j_2}+dp_{i_2,j_1}\end{aligned} \]

    \(u>v\) 类似 .

证明完毕 .

定理:设 \(dp_{i,j}\) 的最优决策点为 \(K_{i,j}\),则 \(K_{i-1,j}\le K_{i,j}\le K_{i,j+1}\) .

证明:下面证明 \(K_{i,j}\le K_{i,j+1}\),另一边类似 .

构造:

\[A_{p,q}=\begin{cases}w_{i,q}+dp_{i,p}+dp_{p+1,q}&i\le p<q\\+\infty&\text{otherwise}\end{cases} \]

那么 \(A\) 是蒙日阵,且 \(K_{i,j}=\min_j(A)\),所以有单调性 .

那么按区间长度依次计算 \(dp\)\(K\) 即可做到 \(\Theta(n^2)\) 时间复杂度 .

蒙日矩阵乘法

问题:给两个蒙日矩阵 \(A,B\),求 \(C=AB\) .

定理:令 \(K_{i,j}\)\(C_{i,j}\) 最小的最优决策点,则 \(K_{i,j-1}\le K_{i,j}\le K_{i+1,j}\) .

类似地,也只需要证明 \(K_{i,j-1}\le K_{i,j}\) .

若存在 \(j_1<j_2\) 使得 \(K_{i,j_1}>K_{i,j_2}\) . 令 \(K_{i,j_1}=k,\,K_{i,j_2}=l\),则:

\[\begin{aligned}C_{i,j_1}+C_{i,j_2}&=(A_{i,k}+B_{k,j_1})+(A_{i,l}+B_{l,j_2})\\&\ge(A_{i,k}+B_{k,j_2})+(A_{i,l}+B_{l,j_1})\\&>C_{i,j_2}+C_{i,j_1}\end{aligned} \]

矛盾!则即得 \(K_{i,j_1}\le K_{i,j_2}\) .

那么可以用和上一节类似的方法 \(\Theta(n^2)\) 计算蒙日矩阵乘法:序列变换 .

posted @ 2024-08-09 14:57  Jijidawang  阅读(160)  评论(0编辑  收藏  举报
😅​