半平面交.pptVIP

  • 6
  • 0
  • 约3.03千字
  • 约 24页
  • 2016-08-28 发布于河南
  • 举报
半平面交

半平面交的算法及其应用 北京四中 李澎煦 基本概念 半平面交的联机算法 半平面交的分治算法 问题的关键是怎样在O(m+n)的时间里求两个凸多边形的交。 描述凸多边形的方法 凸多边形交的算法1: 凸多边形交的算法2: 算法的复杂度 Hotter and Colder (Waterloo local contest) 问题1分析: Nice Milk (OOPC1) 问题2分析: 小结 Video (CTSC98) 问题3分析: Triathlon (NEERC2000) 问题4分析: 小结 Run away (CERC99) 问题5分析1: 问题5分析2: Voronoi图 半平面交的算法及其应用 * * 半平面:平面上的直线及其一侧的部分。 半平面可由不等式ax+by+c=0确定。 在一个有界区域里半平面或半平面的交是一个凸多边形区域。 n个半平面的交是一个至多n条边的凸多边形。 procedure intersection of half-planes 输入:n个半平面H1,H2,…Hn 输出:H1∩H2∩…∩Hn 初始化区域A为整个平面 依次用直线aix+biy+ci=0,i=1,2,…n切割A, 保留使不等式aix+biy+ci=0成立的部分 输出 A 复杂度O(n*n),联机算法。 假设可以在O(m+n)的时间内将m个半平面的交和n个半平面的交合并,则可以有一种O(n*log(n))的分治算法求半平面的交。 Procedure intersection of half-plane (DC) 输入:n个半平面H1,H2,…Hn 输出:H1∩H2∩…∩Hn 将H1…Hn分成两个大小近似相等的集合 在每个子问题中递归地计算半平面的交 合并两个凸多边形区域形成H1∩H2∩…∩Hn 将两个凸多边形沿顶点切割成至多O(m+n)个平行于y轴的梯形区域 每两个梯形区域的交可以在O(1)时间内解决 凸多边形上方和下方的顶点分别构成一个x坐标递增序列。 将这两个序列中的顶点分别作为一个链表存储,得到确定凸多边形区域的上界和下界。 procedure intersection of convex polygon 输入:两个凸多边形区域A、B 输出:C=A∩B 1.将两个凸多边形的顶点x坐标分类,得到序列xi,i=1…p 2.初始化区域C为空。 3.处理{x1} 4.依次处理区域(xi,xi+1],i=1…p-1。 5.输出C 4.1 计算两个多边形在此区域里截得的梯形(可能退化):ABCD和A’B’C’D’。 4.2 求交点AB∩A’B’、AB∩C’D’、CD∩A’B’,将存在的点按x坐标排序,删除重复,添加到C的上界中。 4.3 用类似的方法求C的下界 4.4 计算此区域的右侧边界(线段的交):EF=BC∩B’C’。将E、F分别加入到C的上界和下界中。 4.依次处理区域(xi,xi+1],i=1…p-1。 A B(E) C(F) D A’ B’ C’ D’ 步1:由于A、B的上下界x坐标分别有序,可采用归并排序。复杂度O(m+n) 步4:由于是按照x递增的顺序扫描这些区域,每条边界上的指针在整个过程中始终向右移动。两个多边形的每个顶点至多扫描一次。复杂度为O(m+n)。 整个算法的时间复杂度为O(m+n)。 问题1 A和B在10*10的棋盘上进行一个游戏。A确定一个点P,B每回合移动一次。每次A都会告诉B,他当前所处的位置是离P更近了(Hot)还是更远了(Cold)。(原题还要考虑距离不变的情况。) 请在A每次回答后,确定P点可能存在的区域的面积。 假设B从C(x1,y1)移动到了D(x2,y2),A回答Hot。那么P(x,y)所处的位置就满足 |CP||DP|,即: 2(x2-x1)x+2(y2-y1)y+x12+y12-x22-y220 类似地,回答Cold对应于另一个不等式。 初始时可能的区域是[0,10]*[0,10]。每回合后都用相应的不等式对应的半平面与当前区域求交。并输出交的面积。 问题2 SRbGa有一块凸n边形面包,和一盆面积足够大但深度仅为h的牛奶。他想仅蘸k次(每次都保证面包垂直于盆底),使得面包蘸上牛奶的部分面积最大。 由于本题规模不大,考虑使用深度优先搜索。 蘸每条边都对应剩下的一个半平面,某种蘸k条边E1…Ek的方法,剩下的部分就对应于这k个半平面和原多边形的交。 考察C(n,k)种蘸法,选其中剩下面积最小的那种。 问题1是用几个半平面顺次求交,并且每次都要输出面积。显然采用联机算法合适。 问题2如果用联机算法,复杂度为O[C(n,k)*n],且便于在搜索的过程中剪枝。如果用脱机的分治算法,复杂度为O[C(n,k)*(n+k*l

文档评论(0)

1亿VIP精品文档

相关文档