接近检测点

时间:2008-10-04 21:28:47

标签: algorithm language-agnostic optimization geometry spatial

我在3D中有一大组三阶多项式。

以矩阵形式

  

Pn = [1,t,t 2 ,t 4 ] * [An]

     

[Pn][An]分别是1xN4xN矩阵

每个函数都有一个权重Wn。我想,对于某些n, m, Tt0找到第一个t t>t0这样

  

(Wn * Wm)* | Pn-Pm | -2 > Ť

除了O(n 2 )“尝试一切”的方法我甚至不知道从哪里开始,就此而言,即使对于这个问题,我也不会回答这个问题。已知的n&米。

任何想法

编辑:

  • 设定大小为10-1000
  • 重量以对数方式分布(非常少,很小)
  • 这个测试将在一个n体模拟器的内环中,因此它会运行很多
  • 在一条路径改变后找到新答案时表现良好(摊销)的版本是一件好事。

3 个答案:

答案 0 :(得分:1)

不知道这是否可以通过分析方法解决,有很多方法可以搜索空间并尝试找到符合该标准的任何方法。

遗传算法,模拟退火和其他优化算法让人想起。

答案 1 :(得分:0)

可以播种盆:

  • 使用某种形式的“密切配对查找器”算法在t0和其他时间为这些配对堆起种子。
  • 拉出最近找到的一对
  • 如果足够接近并且比目前为止最好,请保持
  • 查看他们是否更近或更远
  • 将当前对和下一个对之间的差异拆分为“更接近”的一侧并添加该堆。

思想?

答案 2 :(得分:0)

N有多大?是否有可能进行详尽的搜索?

我会在numpyscipy讨论板上提出这个问题,并了解你的python技巧。我敢打赌,你可能会把它变成一个最小化问题,并使用fmin或BFGS或其他一些有限的准牛顿算法来找到一个合理的最小值。也许最小化t和T之间的差异。除非你的矩阵中有一些奇怪的东西,否则你的搜索空间可能至少是连续的。

因为你在numpy board上的标题check this post out中提到了最接近的接近点。