定义
https://blog.csdn.net/weixin_43914593/article/details/105150937
f(l, r)= min{f(l, k) + f(k + 1, r)} + w(l, r), l <= k < r
四边形不等式
如果对于任意l1 <= l2 <= r1 <= r2,w(l, r)满足:
区间包含单调性:w(l2, r1) <= w(l1, r2)
四边形不等式:w(l1, r1) + w(l2, r2) <= w(l1, r2) + w(l2, r1)
那么f(l, r)满足:
四边形不等式:f(l1, r1) + f(l2, r2) <= f(l1, r2) + f(l2, r1)
证明:
u, v分别表示f(l1, r2), f(l2, r1)的最优决策点
l1 <= u < r2, l2 <= v < r1
1、l1 = l2或r1 = r2,显然成立
2、l1 < l2 = r1 < r2
(a) u < r1
f(l1, r1) <= f(l1, u) + f(u + 1, r1) + w(l1, r1) // l1 <= u < r1
f(l1, r1) + f(l2, r2) <= f(l1, u) + f(u + 1, r1) + w(l1, r1) + f(l2, r2)
<= f(l1, u) + f(u + 1, r2) + w(l1, r2) + f(l2, r1)
= f(l1, r2) + f(l2, r1)
其中:
f(u + 1, r1) + f(l2, r2) <= f(u + 1, r2) + f(l2, r1) // u + 1 <= l2 = r1 < r2
w(l1, r1) <= w(l1, r2)
数学归纳法,根据u + 1 <= l2 = r1 < r2推出l1 < l2 = r1 < r2
(b) u >= r1
f(l2, r2) <= f(l2, u) + f(u + 1, r2) + w(l2, r2) // l2 <= u < r2
f(l1, r1) + f(l2, r2) <= f(l1, r1) + f(l2, u) + f(u + 1, r2) + w(l2, r2)
<= f(l1, u) + f(l2, r1) + f(u + 1, r2) + w(l1, r2)
= f(l1, r2) + f(l2, r1)
其中:
f(l1, r1) + f(l2, u) <= f(l1, u) + f(l2, r1) // l1 < l2 = r1 <= u
w(l2, r2) <= w(l1, r2)
数学归纳法,根据l1 < l2 = r1 <= u推出l1 < l2 = r1 < r2
3、l1 < l2 < r1 < r2
(a) u <= v
f(l1, r1) <= f(l1, u) + f(u + 1, r1) + w(l1, r1) // l1 <= u < r1
f(l2, r2) <= f(l2, v) + f(v + 1, r2) + w(l2, r2) // l2 <= v < r2
以上两式相加:
f(l1, r1) + f(l2, r2) <= f(l1, u) + f(u + 1, r1) + w(l1, r1) + f(l2, v) + f(v + 1, r2) + w(l2, r2)
<= f(l1, u) + f(u + 1, r2) + w(l1, r2) + f(l2, v) + f(v + 1, r1) + w(l2, r1)
= f(l1, r2) + f(l2, r1)
其中:
f(u + 1, r1) + f(v + 1, r2) <= f(u + 1, r2) + f(v + 1, r1) // u + 1 <= v + 1 <= r1 < r2
w(l1, r1) + w(l2, r2) <= w(l1, r2) + w(l2, r1)
数学归纳法,根据u + 1 <= v + 1 <= r1 < r2推出l1 < l2 < r1 < r2
(b) u > v
f(l1, r1) <= f(l1, v) + f(v + 1, r1) + w(l1, r1) // l1 < v < r1
f(l2, r2) <= f(l2, u) + f(u + 1, r2) + w(l2, r2) // l2 < u < r2
以上两式相加:
f(l1, r1) + f(l2, r2) <= f(l1, v) + f(v + 1, r1) + w(l1, r1) + f(l2, u) + f(u + 1, r2) + w(l2, r2)
<= f(l1, u) + f(u + 1, r2) + w(l1, r2) + f(l2, v) + f(v + 1, r1) + w(l2, r1)
= f(l1, r2) + f(l2, r1)
其中:
f(l1, v) + f(l2, u) <= f(l1, u) + f(l2, v) // l1 < l2 <= v < u
w(l1, r1) + w(l2, r2) <= w(l1, r2) + w(l2, r1)
数学归纳法,根据l1 < l2 <= v < u推出l1 < l2 < r1 < r2
m(l, r - 1) <= m(l, r) <= m(l + 1, r)
如果f(l, r)满足:
四边形不等式:f(l1, r1) + f(l2, r2) <= f(l1, r2) + f(l2, r1)
那么:
m(l, r - 1) <= m(l, r) <= m(l + 1, r), 其中m(l, r)表示f(l, r)的最小最优决策点
证明:
k1 = m(l, r - 1), k = m(l, r), k2 = m(l + 1, r), 证明k1 <= k <= k2
1、如果k < k1
f(k + 1, r - 1) + f(k1 + 1, r) <= f(k + 1, r) + f(k1 + 1, r - 1) // k + 1 < k1 + 1 <= r - 1 < r
f(l, k) + f(k + 1, r) <= f(l, k1) + f(k1 + 1, r)
以上两式相加:
f(l, k) + f(k + 1, r - 1) <= f(l, k1) + f(k1 + 1, r - 1)
上式表示k是比k1更小的最优决策点,与k1是最小最优决策点矛盾,所以k >= k1
2、如果k > k2
f(l, k2) + f(l + 1, k) <= f(l, k) + f(l + 1, k2) // l < l + 1 <= k2 < k
f(l + 1, k2) + f(k2 + 1, r) <= f(l + 1, k) + f(k + 1, r)
以上两式相加:
f(l, k2) + f(k2 + 1, r) <= f(l, k) + f(k + 1, r)
上式表示k2是比k更小的最优决策点,与k是最小最优决策点矛盾,所以k <= k2
所以k1 <= k <= k2
w(a, b + 1) + w(a + 1, b) >= w(a, b) + w(a + 1, b + 1)
(1) 对于任意a <= b <= c <= d, w(a, d) + w(b, c) ≥ w(a, c) + w(b, d)
(2) 对于任意a < b, w(a, b + 1) + w(a + 1, b) >= w(a, b) + w(a + 1, b + 1)
(1)和(2)是等价的
证明:
(1) -> (2):
a < a + 1 <= b < b + 1
w(a, b + 1) + w(a + 1, b) ≥ w(a, b) + w(a + 1, b + 1)
(2) -> (1):
对于任意a < c, w(a, c + 1) + w(a + 1, c) >= w(a, c) + w(a + 1, c + 1)
w(a, c + 1) - w(a, c) >= w(a + 1, c + 1) - w(a + 1, c)
w(x, c + 1) - w(x, c) >= w(x + 1, c + 1) - w(x + 1, c) // 将a看成变量x, a <= x <= c - 1
w(a, c + 1) - w(a, c) >= w(a + 1, c + 1) - w(a + 1, c) // x = a
>= w(a + 2, c + 1) - w(a + 2, c) // x = a + 1
...
>= w(c, c + 1) - w(c, c) // x = c - 1
w(a, c + 1) - w(a, c) >= w(y, c + 1) - w(y, c) // 将c看成变量y, a + 1 <= y <= c, 注意y = a也成立, a <= y <= c
对于任意a <= b <= c, w(a, c + 1) - w(a, c) >= w(b, c + 1) - w(b, c)
对于任意a <= b <= c < d, w(a, c) - w(b, c) <= w(a, c + 1) - w(b, c + 1)
w(a, z) - w(b, z) <= w(a, z + 1) - w(b, z + 1) // 将c看成变量z, c <= z <= d - 1
w(a, c) - w(b, c) <= w(a, c + 1) - w(b, c + 1) // z = c
<= w(a, c + 2) - w(b, c + 2) // z = c + 1
...
<= w(a, d) - w(b, d) // z = d - 1
对于任意a <= b <= c < d, w(a, c) - w(b, c) <= w(a, d) - w(b, d) // 注意c = d也成立, a <= b <= c <= d
对于任意a <= b <= c <= d, w(a, c) - w(b, c) <= w(a, d) - w(b, d)
w(a, d) + w(b, c) >= w(a, c) + w(b, d)