Skip to content

定义Definition

全单调矩阵与行极小值

Totally monotone matrix

把行极小列的单调性要求推广到所有保序子矩阵,用严格二乘二比较刻画可安全删行删列的结构。

形式陈述 ​

一张表的各行最小列恰好从左往右排列,是否就可以删去一些列、递归搜索剩下的表?不一定。删除可能露出原来被更小元素遮住的逆序。全单调矩阵要求这种顺序在所有子矩阵中都保留。

设 A 是有 m≥0 行、n≥0 列的实值矩阵。任取若干行与至少一列,保持它们在原表中的相对次序;在所得子矩阵的每一行选最左的最小元素。若这些极小值的列位置总是非降,就称 A 对最左行极小值是全单调的。零列矩阵在此约定下真空满足该性质,但没有可返回的行极小列;矩阵搜索接口须另要求至少一列。

这个定义等价于以下二行二列条件:对于 i<k、j<ℓ,

Aij>Aiℓ⟹Akj>Akℓ.

也就是说,上行右列严格优于左列时,下行也必须如此。此处前提、结论都用严格大于,配合“最左”平局约定。如果改成选最右极小值,应使用相应的另一套比较规则,不能只把代码中的符号零散替换。

直觉

全单调性保存的不是数值大小,而是候选之间的胜负方向。在两列之间,越往下走,右边候选可以从落后变成领先;一旦严格领先,就不能重新落后或打平到让最左规则偏向左边。

为什么只看 2×2 就足够?若某个子矩阵的上行选了右列 ℓ、下行却选更左的 j,上行最左最小的定义给出 Aij>Aiℓ。严格蕴含迫使下行也有 Akj>Akℓ,下行就不可能选 j。反过来,若严格蕴含失败,上行在这两列中选右边,下行因为左边更小或平局而选左边,这个 2×2 子矩阵已经是反例。

定义中的“所有子矩阵”听来庞大,二列胜负规则却把它变成局部逻辑。也正因为删列以后仍然成立,递归搜索才有稳定的前提。

删列揭开的逆序
例子与边界

原表单调,子表不单调 ​

取

A=(031013).

两行最左极小列都是 0,所以原表的极小列序列 (0,0) 非降。但删掉第零列后,剩下

(3113).

上行选右列,下行选左列,次序逆转。严格比较也直接揭示失败:3>1 成立,而下行对应的 1>3 不成立。一个只在原表上抽查极小列是否非降的程序,无法认证全单调性。

全单调也不要求四点和满足 Monge ​

考虑

B=(0214).

两行都偏好左列。上行“右列严格更好”的前提不成立,故唯一的 2×2 条件成立;任何更小子矩阵也平凡成立,B 全单调。但 0+4>2+1,所以它不是Monge 数组。

Monge 推出全单调,是因为四点不等式保证 Aij−Aiℓ≤Akj−Akℓ;全单调只保留差值是否为正的方向信息,舍弃了差值具体增加多少。少要求一些数值结构,就能覆盖更多可搜索的成本表。

一个等号为什么会改变正确性 ​

再看

C=(0001).

按最左规则,两行都选第一列,C 全单调。如果误用 Aij≥Aiℓ⇒Akj≥Akℓ,上行的 0≥0 会要求下行 0≥1,反而把这个合法矩阵排除。平局规则与逻辑刻画必须一同确定。

在全零矩阵里,每行可以随意选一个最小位置,但这样记录出的答案可能倒退;这不反驳矩阵的全单调性,只说明选点规则没有遵守定义。实现中保存并比较二元组“数值、原列号”,是让最左规则贯穿所有递归层的直接办法。

推论与应用

全单调性对保序删行、删列封闭,因而适合“删除不可能赢的列,再递归求部分行”的搜索。SMAWK 算法正是利用这一点,把一个 m×n 隐式矩阵的全部行极小值化成 O(m+n) 次表项求值。若只知道当前表的极小列单调,通常仍可做分治扫描,但不能直接引用 SMAWK 的列淘汰证明。

有些 DP 表只定义在阶梯形可行域上,例如候选切点必须满足 k<j。为其余格子补 +∞ 后,应重新验证严格比较刻画。对于非负前缀和平方费用,若上行右列严格胜出,它必为有限的合法项;其左列也合法,下一行又保留这两个候选,此时可用有限区域的 Monge 性完成证明。这个论证依赖可行域向下扩张;任意缺项位置补无穷不自动保持全单调。

实际使用有三层不同的检查:先由模型证明全单调性,再用小规模穷举验证平局和边界实现,最后才使用快速搜索。随机测试没有发现逆序,不能代替第一层证明;但它很擅长发现把严格比较写成非严格比较、把原列号换成局部列号等实现失误。

参考资料
  • Aggarwal, Klawe, Moran, Shor, Wilber, “Geometric Applications of a Matrix Searching Algorithm”, 1986 preliminary version, §§II, IV:原论文。单调与全单调的区别、子矩阵条件和线性搜索。本文采用最左极小值约定,需相应转换原文的极大值方向。
  • F. Frances Yao, Efficient Dynamic Programming Using Quadrangle Inequalities, 1980, §2:原技术报告。数值四点不等式与决策次序的关系。
关系图谱8 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
分类位置

上位 / 更一般

暂未标注直接上位概念。

下位 / 直接特例

类型化关系