A saddlepoint of an $n \times n$ matrix $A$ is an entry of $A$ that is a maximum in its row and a minimum in its column. Knuth (1968) gave several different algorithms for finding a saddlepoint. The worst-case running time of these algorithms is $\Theta(n^2)$, and Llewellyn, Tovey, and Trick (1988) showed that this cannot be improved, as in the worst case all entries of A may need to be queried. A strict saddlepoint of $A$ is an entry that is the strict maximum in its row and the strict minimum in its column. The strict saddlepoint (if it exists) is unique, and Bienstock, Chung, Fredman, Sch\"affer, Shor, and Suri (1991) showed that it can be found in time $O(n \log{n})$, where a dominant runtime contribution is sorting the diagonal of the matrix. This upper bound has not been improved since 1991. In this paper we show that the strict saddlepoint can be found in $O(n \log^{*}{n})$ time, where $\log^{*}$ denotes the very slowly growing iterated logarithm function, coming close to the lower bound of $\Omega(n)$. In fact, we can also compute, within the same runtime, the value of a non-strict saddlepoint, assuming one exists. Our algorithm is based on a simple recursive approach, a feasibility test inspired by searching in sorted matrices, and a relaxed notion of saddlepoint.
翻译:设 $A$ 为 $n \times n$ 矩阵,其鞍点定义为在该行中最大且在该列中最小的矩阵元素。Knuth (1968) 提出了多种寻找鞍点的算法,这些算法的最坏情况运行时间为 $\Theta(n^2)$。Llewellyn、Tovey 和 Trick (1988) 证明该复杂度无法改进,因为最坏情况下需要查询 $A$ 的所有元素。$A$ 的严格鞍点指在该行中严格最大且在该列中严格最小的元素。严格鞍点(若存在)具有唯一性,Bienstock、Chung、Fredman、Schäffer、Shor 和 Suri (1991) 指出可在 $O(n \log{n})$ 时间内找到该点,其中主要运行时间贡献来自对矩阵对角线进行排序。自 1991 年以来,这一上界从未被改进。本文证明严格鞍点可在 $O(n \log^{*}{n})$ 时间内找到,其中 $\log^{*}$ 表示增长极为缓慢的迭代对数函数,该结果已接近 $\Omega(n)$ 的下界。事实上,在相同运行时间内,我们还可以计算(若存在)非严格鞍点的值。我们的算法基于简单的递归方法、受排序矩阵搜索启发的可行性检验,以及鞍点的松弛定义。