从团圆测地问题到动态有序集
摘 要
离散测地问题是指限制于网格曲面上的最短路径问题.它最早出现于地理
导航系统和机器人的运动路线控制等应用领域,并已经成为计算几何中一个经
典的教科书问题.寻求解决该问题的高效算法不仅是数字几何处理的重要任务,
也是计算机图形学发展的必然需求.
就源点和终点的数日而论,离散测地问题有三个版本:单源单终点、单源
多终点和多源多终点.其中,单源多终点的离散测地问题尤为重要,它是解决
了一个仪适用于凸多面体的O(nalogn)算法,其中n为面数.尽管如此,这足
针对该问题的首个有效算法.次年,Mitchell等人(MMP)用窗元来记录具有共
同边序列的一组最短路信息,并把Dijkstra算法的精神发挥到极致,给出了一
个O(n2logn)时间和O(n2)空间的算法.他们的算法适用于一般的网格曲面.
1990年,Chen和Han(CH)观察到可以为每条有向边保存一个关键窗元,以阻止
无用窗元的派生.于是他们另辟蹊径,逐层建立起一棵大小为O(n2)的窗元树,
并证明了离散测地问题可以在O(n2)时间和o(n)空间内解决.有意思的是,
法远比o(n2)时间的CH算法要快.
为了揭示其中的原因,我们对离散测地问题做了深入研究.研究结果表明,
尽管CH算法在理论时问复杂度上占优,但它生成的窗元树过于庞大一在很多
的例子中,超过99%的结点都是无用的.于是我们用两个技巧对CH算法加以
改造:其一,提出了一个简单有效的窗元过滤定理,用顶点处的距离估计值过
滤掉大部分无用的窗元;其二,像Dijkstra算.法那样维护一个优先队列,从而按
照由近及远的方式派生离散事件.大量的实验结果表明,改进后的CH算法(简
称XW算法)比原来的CH算法在性能方面提高千倍以上.与MMP算法相比,我
们的算法不仅速度更快,而且占用的空间仅为其百分之一.所以我们有理由相
信,XW算法是当今针对该问题的首选算法.尽管如此,我们必须指出,维护优先
队列使XW算法的理论时间复杂度变成D(n2logn).为了使研究工作更加深入,
我们制订了两个研究方向:一个是寻求解决离散测地问题的其它算法,另一个足
解释这个悖论:为什么使用优先队列之后,XW算法的实际效率提高了,而它的时
从离散测地问题到动态有序集
间复杂度却变坏了.
在第一个研究方向上,我们做了以下几项工作:(1)基于惠更斯的波动原理,
我们把“最短”信号在网格农面上的传播分作七种具体形式,从而成功地改造了
著名的Fast
MarchingMethod(FMM),得到了一个更好的求解单源多终点离散
测地问题的近似算法.(2)对jj:指定的£,我们可以在XW算法中使用以E为参数
的过严格的窗元过滤定理,从而诱导出一个精度可调的近似算法.当E=0时,
该近似算法恰好就是XW算法;当E_oo时,它退化为Dijkstrw,算法.(3)受费马
的光路最路原理的肩发,我们提出了一个基于可视性求解边序列上精确最短路
的高效算法.在此基础,卜,我们可以通过有限次的迭代把近似的初始路径收敛到
精确的局部最短路径;在初始路径足够短的情况下,我们求出的路径也是精确的
全局最短路.(4)从CH算法或哲XW算法中我们诱导出。。个精确求解单源单终
点的离散测地问题的”算法.
至于第二个研究方向,我们仔细分析了使用优先队列的经典算法,发现
了相似的悖论.以Dijkstra算法为例,如果我们避免维护优先队列、代之以层
次派生,则在图接近于树形结构或者各边权值非常接近的情况下,算法将由
O(m+nlogn)变为0(m),其中m为图中的有向边的数目,n为图巾顶点的数
月.这意味着此时维护优先队列是一种负担!这有悖于我们通常的认识一维护
优先队列是一个普遍适应的算法优化技巧.所以我们猜测,维护优先队列只是一
个常数时间的行为,并不会增加相关算法的复杂度.为了求证这个猜测,我们思
考了一个更大的问题,就是如何有效地维持关键字为位串的动念有序集,以支持
以下五种操作:求取最大(小)关键字,求取次大(小)关键字,查找给定的关键宁,
插入一个关键字和删除指定的关键字.可喜的是,我们确实找到了一种巧妙的数
据结构,不妨称之为RBT(RichBinary仉e),它同时具备二叉搜索树和数字查
找树的性质;并且,所有结点都保存了它与祖先结点巾次人者和次小者的最高差
别位.更进一步,我ffJ提出了一套基于RBT的算法,它们可以在O(L)时间内完
成中这五种操作
原创力文档

文档评论(0)