Fine-Grained学习笔记(5):(min+)卷积及背包问题的复杂度归约理论

(min,+)卷积问题:

给定$a_0,\cdots,a_{n-1},b_0,\cdots,b_{n-1}$,计算$c_k=\min_i(a_i+b_{k-i})$

全局决定性问题版本:

给定$a_0,\cdots,a_{n-1},b_0,\cdots,b_{n-1}$,$c_0,\cdots,c_{2n-2}$,对于所有$k$,判断是否$\exists i, a_i+b_{k-i} < c_k$

单解问题版本:

给定$a_0,\cdots,a_{n-1},b_0,\cdots,b_{n-1}$,$c_0,\cdots,c_{2n-2}$,判断是否$\exists k \exists i, a_i+b_{k-i} < c_k$

(max,+)卷积问题:

给定$a_0,\cdots,a_{n-1},b_0,\cdots,b_{n-1}$,计算$c_k=\max_i(a_i+b_{k-i})$

(max,+)卷积$\Leftrightarrow$(min,+)卷积,取相反数即可

全局决定性问题版本:

给定$a_0,\cdots,a_{n-1},b_0,\cdots,b_{n-1}$,$c_0,\cdots,c_{2n-2}$,对于所有$k$,判断是否$\exists i, a_i+b_{k-i} > c_k$

单解问题版本:

给定$a_0,\cdots,a_{n-1},b_0,\cdots,b_{n-1}$,$c_0,\cdots,c_{2n-2}$,判断是否$\exists k \exists i, a_i+b_{k-i} > c_k$

猜想:

(min,+)卷积问题不存在$O(n^{2-\delta})$时间的算法.

理论:

若APSP问题存在着$O(n^{3-\delta})$时间的算法,那么(min,+)卷积问题存在着$O(n^{2-\delta'})$时间的算法

证明:

归约(min,+)卷积$\to$(min,+)矩阵乘

假设存在着预言机能在$M*(n)=O(n^{3-\delta})$时间内计算(min,+)矩阵乘,那么为了计算(min,+)卷积,可按如下方式构造矩阵$A^{\frac{n}{d}\times d},B^{d \times n}$:

然后在矩阵$C$中取结果即可

总时间$T(n)=O(M*(\frac{n}{d},d,n))$,

令$d=\sqrt(n)$,

$T(n)=O(M*(\sqrt{n},\sqrt{n},n)) \leq O(\sqrt{n} \cdot M*(\sqrt{n}))$(长方形矩阵乘的凸函数性,见笔记2,也可以更直观地理解为下图的形式)

$\leq O(\sqrt{n} \cdot (\sqrt{n})^{3-\delta})$

$=O(n^{2-\delta/2})$

01背包问题

给定$\{(w_i,p_i)\},i=1,\cdots,n$,以及$T$

找到$I \subseteq \{1,\cdots , n\}$,使得$\underset{i\in I}{\Sigma}w_i\leq T$的情况下,$\underset{i \in I}{\Sigma}p_i$最大

完全背包问题

允许$I$是多重集.

超可加性(Superaddivity)问题:

给定$f_0,\cdots,f_{n-1}\geq 0$,判断是否对于$\forall i,j,f_i+f_j \leq f_{i+j}$

就是判断序列是不是长这样:

(笔者注:对于满足超可加性的序列,必然有$f_0=0$,否则$f_0+f_0>f_{0+0}=f_0$)

问题:

能否找到一个复杂度表达式仅含$T$的背包问题算法?

定理:

如果(max,+)-卷积能在$O(n^{2-\delta})$时间内解决

$\Leftrightarrow $01背包问题能在$O(T^{2-\delta'})$时间内解决

$\Leftrightarrow $完全背包问题能在$O(T^{2-\delta''})$时间内解决

证明:

归约:完全背包 $\to$ (max,+)卷积

假设(max,+)-卷积能在$O(n^{2-\delta})$,对于完全背包问题,构造转移方程:

$f^{(l)}(j)=\underset{j'}{\max}(f^{(l/2)}(j')+f^{(l/2)}(j-j'))$

其中,$f^{(l)}(j)$代表最多使用$l$个物品,使得空间为$j$的背包能装下的物品的最大价值,每一次状态转移方程的计算都是一次(min,+)-卷积

总的时间复杂度为$O(\log n T^{2-\delta})< O(T^{2-\delta+\epsilon})$

归约:完全背包$\to$01背包

假设01背包问题能在$O(T^{2-\delta'})$时间内解决,对于完全背包问题$(\{(w_i,p_i)\},T)$中,每个物品$(w_i,p_i)$,构造对应的$\lceil \log(\frac{T}{w_i}) \rceil$个物品,分别为$(w_i,p_i),(2w_i,2p_i), (4w_i,4p_i),\cdots$,如此构造的01背包问题可以在$O(T^{2-\delta'})$时间内解决.

归约:01背包$\to$(max,+)卷积

(待续)

归约:(限定整数范围的)(max,+)卷积$\to$(max,+)卷积全局决定性问题

假设(max,+)卷积决定性问题能在$O(n^{2-\delta})$时间内解决,那么对于元素范围$\in [-U,U]$的(max,+)卷积问题,在每个点位上模拟二分查找,即可在$O(n^{2-\delta} \cdot \log U) \leq O(n^{2-\delta'})$时间内解决.

归约:(max,+)卷积全局决定性问题$\to$(max,+)卷积单解问题

假设(max,+)卷积单解问题能在$T(n)=O(n^{2-\delta})$时间内解决,那么将序列$A,B$分别划分为$r$个长度为$O(n/r)$的子序列$A_1,\cdots,A_r,B_1,\cdots,B_r$,然后

对于每组$i,j \in [r]$,进行以下步骤:

  重复进行以下内容直到退出:

    调用预言机以解决$A_i,B_j, \{c_{(i+j)\frac{n}{r}},\cdots,c_{(i+j+2)\frac{n}{r}}\} $上的(max,+)卷积单解问题

    若存在$k$使得$\exists i, a_i +b_{k-i} > c_k$:

      将这个$k$记录下来

      将$c_k$置为$+\infty$

      回到循环开始(再一次搜寻这一组$i,j$)

    若不存在:

      退出循环(搜索下一组$i,j$)

返回记录下的所有$k$

时间复杂度$T'(n)=O((r^2+n) \cdot T(n)) = O((r^2+n) \cdot n^{2-\delta} )$,取$r=\sqrt{n}$,$T'(n)=O(n^{2-\delta/2})$

思路类似于归约NWT的全局解问题$\to$NWT的单解问题

归约:(max,+)卷积单解问题$\to$超可加问题

假设超可加问题能在$T(n)=O(n^{2-\delta})$时间内解决,那么对于$a_0,\cdots,a_{n-1},b_0,\cdots,b_{n-1},c_0,\cdots,c_{n-1}$上的(min,+)卷积单解问题,

1,若$a_0,\cdots,a_{n-1},b_0,\cdots,b_{n-1},c_0,\cdots,c_{n-1}$中存在负数,那么找出$\min(a_i , b_i, \lceil c_i/2 \rceil )$,记其绝对值为$w$,然后令$a'_i=a_i+w,b'_i=b_i+w,c'_i=c_i+2w$,以便使得$a_i,b_i,c_i$均$\geq 0$

2,令$U=$ $a_0,\cdots,a_{n-1},b_0,\cdots,b_{n-1},c_0,\cdots,c_{n-1}$ 中的最大值$+1$

3,令$\forall i \in [n], f_i=0,f_{n+i}=U+a_i,f_{2n+i}=4U+b_i,f_{3n+i}=5U+c_i$

4,在$f_i$上运行超可加性,若预言机返回该序列满足超可加性,则说明$\exists k,i$,使得$a_i+b_{k-i} >c_k $

(max,+)卷积的单解问题的形式$\exists k \exists i, a_i+b_{k-i} > c_k  \Leftrightarrow \forall i,j , a_i+b_j \leq c_{i+j}$,与超可加性的$f_i+f_j \leq f_{i+j}$的形式相似,步骤3的构造是为了保证符合条件的$f_i,f_j,f_{i+j}$分别对应着$A,B,C$中的元素.

归约:超可加问题$\to$完全背包

假设完全背包问题可在$O(n^{2-\delta})$时间内解决,那么为了解决序列$f_0,\cdots,f_{n-1}$的超可加性问题,取$U \geq 2n \max(f_i)$,对于每个$f_i$,构造两个物品,$(weight=i,profit=f_i)$(称为"第一类物品"),$(weight=T-i,profit=U-f_i)$(称为"第二类物品"),$T=2n$,然后运行完全背包的预言机.

命题:

$\{f_i\}$满足超可加性条件$(f_i+f_j \leq f_{i+j}) \Leftrightarrow $上述方法构造出来的完全背包问题最大价值$\leq U$

证明:

$\Leftarrow$:

若$\{f_i\}$不满足超可加性条件$(\exists i,j f_i+f_j > f_{i+j})$,那么如下三个物品:$(i,f_i),(j,f_j),(T-i-j,U-f_{i+j})$,它们的总重量$i+j+(T-i-j)=T$,总价值$f_i+f_j+(U-f_{i+j}) > U$

$\Rightarrow$:

若$\{f_i\}$满足超可加性条件

(笔者注:则$(0,f_0=0)$这个物品无意义,将之忽略)

考虑第二类物品的个数:

因为$\forall j , 2n = T \geq T-j , 2(T-j) \geq 2n = T$(两个的重量必然超过$T=2n$),因此第二类物品至多在最优解中包含一个.

且$U\geq 2n \max(f_i)$

($T=2n$,若最优解不包含第二类物品,则$I$中包含的第一类物品的个数不会超过$2n$个,只留下一个$f_j$,然后将其余的替换为一个$(T-j,U-f_j)$,被替换掉物品的价值$\leq  (2n-1) \cdot \max(f_i) \leq U-f_j $,如此替换能使得解更优)

因此第二类物品至少在最优解中包含一个.

综上,第二类物品在最优解中有且仅有一个.

考虑第一类物品的个数:

对于最优解,在第二类物品有且仅有一个(记为$(T-j,U-f_j)$)的情况下,剩余待分配重量为$j$,

若第一类物品包含两个或更多,记为$(i_1,f_{i_1}),(i_2,f_{i_2})$(显然有$i_1+i_2 \leq j$),根据超可加性的性质,$f_{i_1+i_2} \leq f_{i_1}+f_{i_2}$, 将它们替换为$(i_1+i_2,f_{i_1+i_2})$能使得解更优.

因此第一类物品也有且仅有一个.

故最优解可记为$\{(i,f_i),(t-i,U-f_i)\}$,总价值$f_i+(U-f_j) \leq U$

总结:

(博主注:完全背包$\to$(max,+)卷积的归约过程中需要重复矩阵乘,卷积的值会引入变量$n$,而(max,+)卷积$\to$全局决定性问题的过程需要二分查找,要在复杂度中加入$\log U$,因此图中的(min/max,+)卷积中元素绝对值最大值$U$中含$n$的项必须限制为多项式项,才能保证$O(n^{2-\delta} \cdot \log U) \leq O(n^{2-\delta'})$)

posted @ 2023-05-10 17:05  Isakovsky  阅读(866)  评论(0编辑  收藏  举报