论文标题
排序可以指数加速纯动态编程
Sorting Can Exponentially Speed Up Pure Dynamic Programming
论文作者
论文摘要
许多离散的最小化问题,包括最短路径问题的各种版本,可以通过“纯粹”的动态编程(DP)算法有效地解决,因为它们仅执行基本操作,而如Min,Max,Max,Max,Max,Max,Max,Max,Max,Max,Max,Max,Max,Max,Max,Max,Max,Max, +,但没有通过递归方程中的Then-Else进行条件分支。众所周知,在未指向的N-Vertex图上求解最小重量跨越树问题的任何纯(Min,+)算法必须至少执行$ 2^{ω(\ sqrt {n})} $操作。我们表明,可以通过仅执行$ O(n^3)$操作的纯(min,max,+)DP算法来解决此问题。该算法本质上是A(min,max)算法:添加操作仅用于输出最终值。最小和最大操作的存在意味着现在DP算法可以排序:这解释了论文的标题。
Many discrete minimization problems, including various versions of the shortest path problem, can be efficiently solved by dynamic programming (DP) algorithms that are "pure" in that they only perform basic operations, as min, max, +, but no conditional branchings via if-then-else in their recursion equations. It is known that any pure (min,+) DP algorithm solving the minimum weight spanning tree problem on undirected n-vertex graphs must perform at least $2^{Ω(\sqrt{n})}$ operations. We show that this problem can be solved by a pure (min,max,+) DP algorithm performing only $O(n^3)$ operations. The algorithm is essentially a (min,max) algorithm: addition operations are only used to output the final values. The presence of both min and max operations means that now DP algorithms can sort: this explains the title of the paper.