在高维空间中以最优方式计算成本
Posted
技术标签:
【中文标题】在高维空间中以最优方式计算成本【英文标题】:computing cost in optimum way in high dimensional space 【发布时间】:2014-06-24 17:44:03 【问题描述】:如果函数值沿所有维度单调非递减,如何以最优方式在高维空间上找到相等函数值的轮廓。
【问题讨论】:
【参考方案1】:由于您的函数在 X 和 Y 中都是单调的,因此可以直接找到轮廓。让我们找到 f(x,y)-K = 0 的解。
步骤 1. 计算四个角的函数。这将告诉您轮廓相交的边缘。
第 2 步。选择具有解决方案的边之一。使用细分算法在该边上找到解决方案。首先找到中点并计算那里的值。这将边缘一分为二,恰好一个将有符号更改,选择该边缘并重复。这个过程将在边缘提供独特的解决方案。
第 3 步。从终点开始使用零跟随技术。我们从一个正方形开始,一个边有解,两个角有已知值。评估其他两个角的功能。比较标志并找到具有解决方案的另一边。获取相邻的正方形并重复。
这将遵循曲线,直到我们到达边界上的另一个解决方案。单调意味着没有棘手的情况需要处理。
关于第 3 步的更多信息:我们有一个包含两个已知点的矩形
+ ____ -
| |
| |
? ____ ?
有三种可能
+ ____ -
| |
| | take the right hand side
+ ____ +
+ ____ -
| | take the bottom side
| |
+ ____ -
+ ____ -
| |
| | take the left hand side
- ____ -
一个选项不能出现,因为函数是单调的
+ ____ -
| | impossible
| |
- ____ +
【讨论】:
是的,我的意思是与我们当前所在的方格相邻的直接方格。重复此过程将一次跟随一个正方形的曲线。您可以显示此过程将返回起点或到达边界。如果您需要一组等高线,只需使用不同的 K 值重复即可。您可以将计算值存储在某些数据结构中,以节省重新计算函数的麻烦。 缺乏单调性会使事情变得非常复杂。现在可能会发生上述不可能的情况,因此您可以获得轮廓上的交叉点。更糟糕的是,你会得到不跨越边界的小闭环。你对肿块有什么了解吗?如果您可以对凹凸的大小进行一些限制,那么您可以排除域的某些部分。如果说函数的变化不超过a
超过一个正方形的大小,这意味着一个角大于2a
的正方形不能包含轮廓。
感谢 Salix alba。我对颠簸没有任何具体的界限。但在空间的某些位置单调性并不均匀。我可以同意轮廓中存在一定程度的误差,但检查的点数必须最少。【参考方案2】:
如果您在正方形的四个角处评估函数,四个值将告诉您正方形是否与 iso-K 曲线相交。
现在将正方形细分为四个子正方形,并检查新角处的函数值(这需要 5 次函数评估)。由于单调性,您可以确保至少有一个正方形可以被丢弃。
如果递归地继续这个过程,每个阶段的点数至少减少 25%,32 个阶段就足以从 10000 减少到 1(0.75^32 = 0.000100...),总共需要不超过 32 x 5 = 160 次函数评估。
【讨论】:
以上是关于在高维空间中以最优方式计算成本的主要内容,如果未能解决你的问题,请参考以下文章