预处理多面体和平面的分离


14

我很难理解Dobkin和Kirkpatrick在论文中关于多面体分离的第一步。我正在尝试了解此版本:http : //www.cs.princeton.edu/~dpd/Papers/SCG-09-invited/old%20papers/DPD+Kirk.pdf

它认为,在我们知道由和s_i实现的和的最佳分离之后,我们可以在O(1)步骤中找到P_ {i-1}S的最佳分离。这是通过以下方式完成的。我们通过r_i取平行于S的平面,并将P_ {i-1}切成两部分。一方面,最接近S的点是r_i,另一方面,我们有一个``基本''多面体,我们可以在O(1)时间中进行检查。我的问题是-我们如何找到该基本多面体?注意r_i的度小号[RPiSrisiPi1SO(1)SriPi1SriO(1)ri在可能不受限制。Pi1

在pdf中以证明第9页的Thm 5.1,他们使用第4页的Thm 3.1,这使整个过程变得很难理解。


我真的很想知道,如果我在赏金描述中说我对JeffE的答案不明确,并在评论他的答案时指定了我的问题,那么为什么人们会继续对他的答案持保留态度而又不回答我的问题呢?题?另外,我想知道,他的答案会自动获得赏金吗?
domotorp 2011年

投票表明答案提供了某些有价值的东西!并不完全是您想要的。确实,您需要的答案似乎是对一般建议的改进。另外,为什么还要担心别人的投票?
Suresh Venkat

Answers:


6

答案已更新并从头开始重写。

给你一个多面体。运行多布金-Kirkpatric层次上P.这给你polytops序列P 1P 2... P ķ = P。假设您想找到P上最接近查询点q的点。基本算法从计算P 1上最接近点c 1q开始,然后考虑与c 1相邻的所有新区域(帐篷),找到最接近点c 2qPP1P2Pk=PPqc1qP1c1c2q在这些新区域中,并以这种方式继续进行,直到我们达到为止。Pk

现在,如果在边缘上,那么就没有问题-只有两个帐篷可以接触该边缘,或者只有其中一个可以覆盖边缘。这样,更新Ç + 1Ç 在这种情况下需要一定的时间。cici+1Ci

因此问题就出在位于高度顶点上时,因为当移到P i + 1时,与其相邻的新帐篷的数量可能很大。为了克服这个问题,我们将模拟一个大度数的顶点作为具有低度数的顶点的集合。特别地,在每一个阶段,如果Ç 位于一个顶点v,我们要记住两个连续的缘ë ê ' 相邻v,使得最近点qP + 1ciPi+1civei,eivqPi+1放在一个毗邻或覆盖这两个边缘之一的帐篷上。这样,我们可以在恒定时间内进行所需的计算。

因此,我们仍然面临如何在爬升时跟踪这两个边缘的问题。

为此,请为P的每个顶点切线方向t v预先计算。令Q iv 是凸多边形,它是多边形P iv的顶点图形(定义顶点的平面在t v方向上具有法线)。从概念上讲,Q 1v Q 2v Q kv vPtvQi(v)vPitvQ1(v),Q2(v),...,Qk(v)行为类似于2D DK层次结构。如果上的最近点q位于上顶点瓦特则这对应于 v和相邻边缘êP ,其中边缘Ë相交于顶点图的平面瓦特。如果最近点Q v q谎言在边缘ē ',然后记住你的两个相邻边缘P 定义的两个顶点é '(这里Qi(v)qwvePiewQi(v)qePie属于 Q v )。eQi(v)

现在我们完成了……确实,如果也位于Q i + 1v )上,那么我们可以在恒定时间内对其进行更新(因为这只是2d DK层次结构)。另一方面,如果c i + 1不再位于Q i + 1v )上,则它必须属于一个相邻或覆盖先前点c i的新帐篷。无论哪种情况,我们都可以在恒定时间内进行更新。ci+1Qi+1(v)ci+1Qi+1(v)ci


更新的答案。看看现在是否有意义。这就是我对这种数据结构的思考方式。它可能与本文内容无关。
Sariel Har-Peled

我现在明白了,谢谢!因此,诀窍是我们在开始时选择切线方向,并在整个过程中保持不变!我已经删除了以前与您的旧答案相关的评论。再次感谢!
domotorp 2011年

是。乐意效劳!
Sariel Har-Peled

8

定理3.1要求的层次表示是紧凑的。之一的紧凑性的要求是,的程度- [R P - 1由恒定界。请参阅第3页底部。PriPi1

Dobkin-Kirkpatrick层次结构的定义和构造在他们的早期论文中更为明确(您正在阅读的论文中的参考文献[9,10,11])。我强烈建议您先阅读它们。


我认为它们保证了的顶点度是有界的。我看不出如何确定r i的范围是有界的。例如,如果您有一个多面体,每个顶点有两个顶点连接,那么如何开始?Pi1Piri
domotorp 2011年

1
对于其他一个顶点,每个顶点的度均为4。(实际上,具有4个顶点的独立子集。)点P i 1的顶点,而不是P i的顶点。riPi1Pi
Jeffε

因此存在误解。我认为也是我描述的算法中P i的顶点,尤其是最接近S的顶点。我错了吗?riPiS
domotorp 2011年

这似乎是这些标准但乏味的一般立场假设之一。如果您不关心运行时间,则始终可以将的顶点替换为d / 2 + 3的两个非常接近的顶点(如果您坚持使用三角形面)。重复此,直到所有顶点,直到所有的度比10小dd/2+3
沙利叶喀拉-佩莱德

@Sariel:我当时也这么想,但是为什么程序会结束呢?注意,当我们删除一个顶点时,它的邻居可能不会形成一个面,因此我们可能不得不添加新的边,实际上,我们可能不得不增加一个顶点的度数。
domotorp 2011年

1

如果有人仍然对这个问题感兴趣:在Dobkin Kirpatrick解释中的障碍在Barba和Langerman的凸多面体相交最佳检测中也已指出。

他们在论文观察(SODA 2015年版本,而不是的arXiv)说奥罗克的计算几何用C第7章 已经详细介绍了解决方法(这基本上是沙利叶的答案)。SODA论文还介绍了一种替代解决方案。定义DK层次结构的一种变体,其中每个顶点都有边界度。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.