四边形不等式是动态规划中用于优化时间复杂度的重要工具,尤其在区间类问题中。其核心在于通过特定的不等式条件确保决策点的单调性,从而减少状态转移时的计算量。
定义
对于定义在整数上的函数 w(i,j),若对任意 i ≤ i′ ≤ j ≤ j′,满足:
则称 w 满足四边形不等式。若不等式反向,则称满足凹性四边形不等式。
应用场景
-
区间动态规划:如石子合并、最优二叉搜索树、矩阵链乘法等。
-
1d/1d动态规划:形如
(j < i)。
优化原理
当函数 w 满足四边形不等式时,最优决策点具有单调性:
-
在区间DP中,若 K[i][j]表示区间 [i,j] 的最优分割点,则满足:
这使得计算每个状态时只需在限定范围内搜索,时间复杂度从
降至
。
验证方法
通过代数验证 w 是否满足四边形不等式。例如:
-
区间和
满足等式,仍可优化。
-
平方函数
严格满足不等式。
相关优化算法
-
Knuth优化:用于最优二叉搜索树,利用决策点单调性。
-
分治法:处理1d/1d问题,将时间复杂度从
降至
总结
四边形不等式通过分析代价函数的性质,确保动态规划中决策点的有序性,从而大幅减少无效计算。其应用需结合具体问题验证条件,并选择合适的优化策略。