首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Knuth优化中的单调性

Knuth优化中的单调性
EN

Stack Overflow用户
提问于 2017-04-10 05:12:43
回答 1查看 158关注 0票数 1

我正在学习什么是Knuth优化。

相关信息可以通过这里访问。

基本上,在Knuth优化中有两个假设。

一个是四角不等式,另一个是单调性

我完全能理解什么是四边形不等式。但是,由于没有关于Monotoniciy的例子,我无法理解它。

单纯性:Cb < Ca (a,b,c,d)

据我所知,Monotonicity是一种线性特征,如果在它们之外的元素(a,d)之间有两个不同的元素(b,c),则范围b到c中的成本小于范围a到d中的成本。

那么,为什么这不适用于链矩阵问题

假设存在一组矩阵{x1,x2,…,xn}

显然,在范围b到c中乘法的代价小于a到d范围内乘法的代价,这是因为范围a到d中的元素比b到c多。

有人能解释一下吗?

EN

回答 1

Stack Overflow用户

发布于 2017-11-03 18:40:49

相对单调性也可以在一个更高的维度。假设有一个2D平面,你拿着右下角,然后把它举起来,这样我们就可以得到A[i-1][j] <= A[i][j] <= A[i][j+1]

如果这种单调性成立,那么我们认为问题空间可以用Knuth Optinimzaton进行优化。ie F[i][j] = min{F[i][k]+F[k+1][j]}+C[i][j] for k=i to j-1,那么它可以通过只遍历from k=P[i-1][j] to P[i][j+1]来优化,其中P[i][j]A[i][j]最小的点。

原问题需要O(n^3),但由于上述单调性,现在可以在O(n^2)中求解。

(注:这里任何两个元素之间没有绝对单调性,这就是为什么我称之为相对单调性,如果两个元素位于另一个元素的东南方,那么东南元素大于或等于另一个元素,这种关系对Knuth优化来说是足够好的)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43315388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档