复杂算法双向树 - 分类抛物线 3D 运动 [关闭]

Posted

技术标签:

【中文标题】复杂算法双向树 - 分类抛物线 3D 运动 [关闭]【英文标题】:Complicated algorthm bidirectional tree - Clasifying parabioic 3D Motion [closed] 【发布时间】:2014-01-23 11:44:33 【问题描述】:

我正在处理的程序的一部分需要在 3D 空间和时间中对数据点进行排序,以尝试找到与遵循抛物线轨迹的对象相匹配的项目。这些需要链接。

我已经开始如下:

获取每个点(每个时间间隔可能不止一个)并尝试将其与多个时间间隔内的先前点匹配。这是通过每个对象都持有一个指向它们所链接对象的共享指针向量来完成的。这是时间倒退的,即跟随指针将回到过去。每个对象也可以通过多个对象链接。这给出了一个双向树。这个阶段的匹配标准是基本的,只是规则了一些噪音。

我还有一个物理课,它给出了一个错误编号,在空间和时间上给出了 3 个点。误差是一个双精度值,它是距预测位置的距离除以时间差的倍数。

我需要做的是在 C++ 中找出最好的方法来找到这棵树中最匹配抛物线的项目(即最小化错误),同时最大化链接数量并最小化之间的时间差链接。

问题是跟随树,选项的数量急剧增加,如果只需要两个点来确定错误号但三个点就很简单。

在这种情况下递归也好吗?

希望这是有道理的。

【问题讨论】:

为什么人们不尊重这个问题甚至不发表评论 【参考方案1】:

我会忘记数据结构,并尝试将其作为在存在大量异常噪声的情况下拟合数据的曲线问题来解决。见http://en.wikipedia.org/wiki/RANSAC

基本思想是通过重复两步迭代来尝试找到与数据非常吻合的点子集。

第一步:调整拟合参数以提高它们与当前选择的点子集的拟合程度。

第二步:给定当前拟合参数,选择最适合它们的点子集。

从随机开始,通过合理的拟合度量,此过程应在每一步增加拟合,直到收敛。从多个不同的随机开始尝试,并随时选择最合适的。

【讨论】:

以上是关于复杂算法双向树 - 分类抛物线 3D 运动 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

canvas抛物线运动轨迹

Egret中使用P2物理引擎

Python算法练习--把搜索树转成双向链表

css3模拟抛物线运动

决策树算法

Unity 物体轨迹移动