(翻译)浅谈满足四边形不等式的序列划分问题的答案凸性

原论文

(Monge 大概就是满足四边形不等式的意思……)

一切还要从某位毒瘤把邮局加强到 \(5 \times 10^5\) 还自己不会证明说起

感谢 gcz、rushcheyo 和 300iq 帮助我找到了这篇轮文


首先定义“满足四边形不等式的序列划分问题”:

给出 \(n,k\) 和一个 \((n+1) \times (n+1)\) 的矩阵 \(c_{i,j}\),你需要给出一个长度为 \(k+1\) 的序列 \(p_0 = 0 < p_1 < p_2 < \ldots < p_{k-1} < p_k = n\),定义该序列的价值为 \(\sum\limits_{i=1}^k c_{p_{i-1},p_i}\)。你需要求出所有合法的序列的最小价值。

其中特殊性质是矩阵 \(c\) 满足四边形不等式,即 \(\forall i < j \leq k < l,c_{i,k} + c_{j,l} \leq c_{i,l} + c_{j,k}\)

先给出结论:设当 \(k=p(p \in [1,n-1])\) 时答案为 \(f(p)\)\(f'(p)(p \in [2,n-1]) = f(p-1) - f(p)\),则 \(f'(p)\) 单调不增,即 \(\forall q \in [3,n-1],f'(q) \leq f'(q-1)\)


为此我们需要证明以下结论:

  • \(\forall 1 \leq s < r < t \leq n-1\)\(f(r) + f(s + t - r) \leq f(s) + f(t)\)

Proof.

设序列 \(P\)\(f(s)\) 对应的最优解,序列 \(Q\)\(f(t)\) 对应的最优解,\(\Delta = r - s\)。我们首先证明存在 \(x \in [0,s-1]\) 满足 \(P_x < Q_{x+\Delta} < Q_{x + \Delta + 1} \leq P_{x+1}\)

  • 对于 \(x=0\)\(P_0 = 0 < Q_{\Delta} < Q_{\Delta + 1}\) 总是成立,这是因为 \(\Delta > 0\)。于是若 \(Q_{\Delta + 1} \le P_1\) 那么 \(x=0\) 就满足条件。
  • 否则,\(P_1 < Q_{\Delta + 1} < Q_{\Delta + 2}\) 就是成立的,这对应了 \(x=1\) 的情况,于是若 \(Q_{\Delta + 2} \le P_2\) 那么 \(x=1\) 就满足条件。
  • 我们不断这样做下去,即如果 \(x = i\) 不满足条件,那么对于 \(x=i+1\) 就只需要判断 \(Q_{x + \Delta + 1} \le P_{x+1}\) 是否满足条件,若不满足条件那么继续考虑 \(Q_{x + \Delta + 2} \le P_{x+2}\)。然而 \(Q_{s + \Delta} \le P_s = n\),所以这个过程不会无限进行下去,也就是说我们总是能找到这样的 \(x\)

此时考虑两个序列 \(R = \{P_0,P_1, \ldots, P_x,Q_{x + \Delta + 1},\ldots,Q_t\} , S = \{Q_0,Q_1,\ldots,Q_{x + \Delta},P_{x+1},\ldots,P_s\}\)。显然 \(R\)\(S\) 分别是 \(k=s+t-r\)\(k=r\) 的一组合法解。

设某个序列 \(X\) 的权值为 \(w(X)\),那么 \(w(R)+w(S)-w(P)-w(Q) = c_{P_x,Q_{x+\Delta+1}}+c_{Q_{x+\Delta},P_{x+1}}-(c_{P_x,P_{x+1}}+c_{Q_{x+\Delta},Q_{x+\Delta+1}})\)

而根据四边形不等式上式 \(\leq 0\),同时 \(f(r) + f(s+t-r) \leq w(R)+w(S)\),故 \(f(r) + f(s+t-r) \leq f(s) + f(t)\),结论成立。


使用以上结论有 \(f(x) + f(x) \leq f(x-1)+f(x+1)\),即 \(f(x-1)-f(x) \geq f(x)-f(x + 1)\),即 \(f'(x) \geq f'(x+1)\),故结论成立。

这意味着答案对于段数是一个下凸的函数,可以使用斜率凸优化等技巧优化。

posted @ 2020-04-29 22:54  cjoier_Itst  阅读(2770)  评论(4编辑  收藏  举报