- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
王栋 浅析平面Voronoi图的构造及应用
IOI2006国家集训队论文 新疆 王栋 浅析平面Voronoi图的构造及应用 新疆乌鲁木齐市第一中学 王栋 引言: Voronoi图的定义 设P1,P2是平面上的两个点,L是的它们的中垂线,L将平面分成两部分半平面L1和半平面L2,在L1内的点P具有特性|PP1||PP2|,即位于Ll内的点比平面中其他点更接近点P1 ,我们记半平面H(P1, P2)= L1 ,同理半平面H(P2, P1)= L2 。 Voronoi图的构造 Voronoi图的构造 合并两个子点集的角最优三角剖分 Voronoi图的构造 Voronoi图的构造 Voronoi图的在信息学中的应用 例3.Fat Man Voronoi图的在信息学中的应用 Voronoi图的在信息学中的应用 思路一:大家可能很容易想到用枚举法 Voronoi图的在信息学中的应用 根据刚才分析的两种情况,我们可以构造两种方案。第一种方案针对所求点为过三个点的圆的圆心的状态,我们枚举三个点,求出它们组成的三角形的外心和半径,然后枚举其它的点,看它们是不是在这个圆中。第二种方案是枚举两个点的中垂线,求出中垂线与矩形的交点,然后根据这三个点来计算最远位置,进行判断。 Voronoi图的在信息学中的应用 Voronoi图与平面MST问题 例2.平面MST问题 给定平面上的点集S,求出连接S中所有点的最小长度的树,并且要求最小生成树的结点恰好是S中的点。 Voronoi图与平面MST问题 传统的求最小生成树的方法是贪心法,要是纯粹使用贪心法求平面最小生成树,我们所作的程序时间复杂度至少为:O(n2) Voronoi图与平面MST问题 我们都知道Voronoi图的对偶图是点集的角最优三角剖分,我们把这个三角剖分中的边组成的集合叫做DT(S). 那么,我们可以得出这样一个定理: 关于定理的证明 Voronoi图与平面MST问题 Voronoi图拓宽解题思路 例3.Fat Man 在超市走廊上两边都是墙,中间有一些障碍物,这些障碍物都是一些很小的半径可以忽略的点,你是一个胖子,可以将你的抽象成一个圆柱。现在你要从走廊的一头走到另一头。请问你最大的直径是多少?(走廊长L,宽W) Voronoi图拓宽解题思路 Voronoi图拓宽解题思路 总结 总结II * * 在计算几何这一领域中,Voronoi图是仅次于凸壳的一个重要的几何结构。这是由于Voronoi图在求解点集或其他几何对象与距离有关的问题时起重要作用。 常见的问题包括谁离谁最近,谁离谁最远,等等。 现在,让我们大家首先来了解一下Voronoi图的定义! 直线L P1 P2 平面L1 平面L2 P Voronoi图的定义 对于平面上n个点的点集S,定义V(Pi)=∩H(Pi,Pj),即V(Pi)表示比其他点更接近Pi的点的轨迹是n-1个半平面的交集,它是一个不多于n-1条边的凸多边形区域,称为关联于Pi的Voronoi多边形或关联于Pi的Voronoi多边形域。 pi n=6时的一种V(pi) 位于多边形V(pi)内的任意一个点P满足|PPi||PPj|(ij) p Pj Voronoi图的定义 对于S中的每个点都可以 作一个Voronoi多边形,这样n个Voronoi多边形组成的图称为Voronoi图,记为Vor(S)。 n=6时的Vor(S) 传统的构造方法 分治法构造Delaunay三角剖分法 编写麻烦 难于理解 编写容易 易于理解 O(N log N) 用分治法构造角最优三角剖分,首先要对点集依照X坐标排序。如果点集内点的个数小于等于三,那么可以直接构造,否则将点集拆分成为两个含点数目近似的点集进行构造,最后合并这两个点集。 点集内含点个数为2的情况 点集内含点个数为3的情况 首先,求解两个点集的凸包的最下方的正切线,并连接两端点。 接下来,如图所示,A1A4为两个凸包的正切线,求出它们的中垂线L14。 然后找到L14与A1(或A4)相关联的边中,中垂线与L14有交点的边,如果有多个边,那么选择交点Y坐标最小的点所关联边。 如图所示,选择的边为A1A2,那么连接A2A4,并且删除与A2A4相交的边。设A2A4为新产生的正切线。 A1 A2 A3 A5 A6 A4 直线L14 相交的边 新确定的正切线 A1 A2 A3 A5 A6 A4 重复上述步骤,我们就能合并两个点集的角最优三角剖分。 这样,依照该方案,我们就能构造出来点集S的角最优三角剖分了。 这个三角剖分的直线对偶图就是点集S的Voronoi图。 T(N)=2T(N/2)+O(N) 求解含有n个点的点集
文档评论(0)