【发布时间】:2012-03-17 02:59:57
【问题描述】:
我正在解决一个问题,即为一组任意放置的非相交椭圆找到最近的三个邻居。作为一个新用户,我不允许包含图像标签,但我在页面底部包含了 URL,因为我一直认为我能够更好地使用视觉辅助工具来解释自己。这张图片展示了我所说的将 3 个最近的椭圆相互连接起来的阿波罗尼星圆的含义。
到目前为止,我已经尝试使用椭圆之间的最小距离并修改 Delaunay 三角剖分,通过增量和扫描线方法,使用各种技术涉及在每 3 个椭圆配置之间形成的三角形圆等,并尝试估计有边界的邻居盒子,并且完全没有关于如何真正有效地工作的想法
尽管我已经制定了一个解决方案,但它涉及详尽搜索并比较每个椭圆的三个椭圆与其他所有椭圆,并且时间复杂度为n(n-1)(n-2)/3!。最重要的是,每个计算都是迭代而不是代数完成的。
有没有人知道如何以代数方式完成这个并且低于n^2的时间复杂度?
即使是关于技术的建议也适合我尝试,因为现在我已经在这方面工作了将近 3 周,而且真的离一个体面的答案还差得远。
【问题讨论】:
-
我在 MathOverflow link 上回答了这个问题。正如@zamazalotta 所说,但还有更多要说的。
标签: algorithm matlab computational-geometry ellipse nearest-neighbor