快速行进法、快速迭代法和快速扫描法是在离散网格上求解Eikonal 方程的三种方法,本质上只是从初始点扩展的波前,例如:
这个想法是我们想要计算时间在哪个波前,以速度函数穿过场,到达网格中的每个点,例如:
墙壁等将用对于一些非常小的.
这很好,这些方法在实践中效果很好,但是它们都适用于固定大小的网格。
在许多应用中,最好用某种树来表示速度场,比如四叉树或八叉树。具有代表它们的较大树单元的区域将简单地具有相同的速度,尽管某种插值甚至可能是可能的。这可以解释为,我们希望在树木密度较高的某些区域获得“高分辨率”结果,而在树木密度较低的某些区域获得“较低分辨率”结果。无论哪种方式,是否有可能应用这些方法(或类似的方法)来解决使用用某种树表示的速度场
简单地说,我知道你可以简单地找到你的树的“最低分辨率” - 即最小的单元格 - 然后在算法运行时将每个较大的单元格转换为这些较小的单元格,但这似乎远不是最优的,并且有点击败首先是一棵树的点。因此,有没有更好的方法来做到这一点?
似乎很清楚,目标是拥有一个字段,该字段也表示在与相同的树中,以给出相似的密度结果,但是我没有不知道这是否是最好的考虑方式。更具体地说可能最终会成为某种形式,其中内部点(如果我们试图重新创建固定大小的离散网格)是树网格角之间的插值,但这也本质上是什么无论如何,它都是为了将离散网格答案映射到连续网格答案,所以我觉得这不是一个太大的问题。
确实,这个问题的动机只是因为 Eikonal 方程求解器的当前实现很慢,原因有两个:
每个网格单元对其邻居结果的依赖关系。诸如快速迭代方法之类的东西使它们基本上不那么“捆绑在一起”,因此可以进行某种程度的并行化,但是我想知道是否有某种方法可以进一步将工作分解为独立的网格单元,这些单元可能会根据它们得出结果最终将被计算的邻居值。这是一种旁注,但我觉得树方面可能与它有关,因为“低密度”结果必须通过“高密度”邻居平滑地近似。这就进入了第二点:
当前方法为网格中的所有点计算相同的精度。在许多情况下,只有地图的特定部分才需要良好的准确性,因此如果可以将工作“拆分”为所需的高分辨率结果部分和所需的低分辨率结果部分,那就太好了。不过,使用某种树来解决这个问题似乎并不那么简单。