算法设计与分析王红梅第二分治法.pptVIP

  • 24
  • 0
  • 约2.08万字
  • 约 85页
  • 2016-05-14 发布于湖北
  • 举报
* Divide and Conquer Method * 应用分治法求解含有n个点的最近对问题,其时间复杂性可由下面的递推式表示: 根据2.1.5节的主定理,可得T(n)=O(nlog2n)。 最近对问题 * Divide and Conquer Method * 4.4 几何问题中的分治法 4.4.1 最近对问题 4.4.2 凸包问题 * Divide and Conquer Method * 凸包问题 [问题]设p1=(x1, y1), p2=(x2, y2), …, pn=(xn, yn)是平面上n个点构成的集合S,凸包问题是为集合S构造最小凸多边形。 [想法]划分:设S中的点按照x轴坐标升序排列,几何学中有这样一个明显的事实:最左边的点p1和最右边的点pn一定是该集合的凸包顶点(即极点)。设p1pn是从p1到pn的直线,这条直线把集合S分成两个子集:S1是位于直线左侧和直线上的点构成的集合,S2是位于直线右侧和直线上的点构成的集合。S1的凸包由下列线段构成:以p1和pn为端点的线段构成的下边界,以及由多条线段构成的上边界,这条上边界称为上包。类似地,S2中的多条线段构成的下边界称为下包。整个集合S的凸包是由上包和下包构成的。 * Divide and Conquer Method * p1 pn 点集合S的上包和下包 S1 S2 凸包问题 pmax * Divide and Conquer Method * p1 pmax pn 求解子问题:首先找到S1中的顶点pmax,它是距离直线p1pn最远的顶点,则三角形pmaxp1pn的面积最大。S1中所有在直线 p1 pmax左侧的点构成集合S1,1,S1中所有在直线pn pmax右侧的点构成集合S1,2,包含在三角形pmaxp1pn之中的点可以不考虑了。递归地继续构造集合S1,1的上包和集合S1,2的上包,然后将求解过程中得到的所有最远距离的点连接起来,就可以得到集合S1的上包。 凸包问题 S1,1 S1,2 * Divide and Conquer Method * 接下来的问题是如何判断一个点是否在给定直线的左侧(或右侧)?几何学中有这样一个定理:如果p1=(x1, y1), p2=(x2, y2), p3=(x3, y3)是平面上的任意三个点,则三角形p1p2p3的面积等于下面这个行列式的绝对值的一半: 当且仅当点p3=(x3, y3)位于直线p1p2的左侧时,该式的符号为正。可以在一个常数时间内检查一个点是否位于两个点确定的直线的左侧,并且可以求得这个点到该直线的距离。 3 1 1 2 2 3 3 2 1 3 2 1 3 3 2 2 1 1 1 1 1 y x y x y x y x y x y x y x y x y x - - - + + = 凸包问题 * Divide and Conquer Method * 算法4.10——求直线pipj的上包 输入:按x坐标升序排列的n(n≥2)个点的集合S={(xi,yi),…,(xj,yj)} 输出:凸包的极点 1.如果n=2,则返回(xi,yi)和(xj,yj) ,算法结束; 2.maxd=0; max=i+1; 3.循环变量k从i+1~j-1,依次对集合S中点pk(xk,yk)执行下列操作; 3.1 如果点pk在直线pipj的上侧,则d=该点到直线的距离; 3.2 如果(dmaxd), 则maxd=d,max=k; 4.递归求解pipmax的上包和pmaxpj的上包 凸包问题 * Divide and Conquer Method * 复杂度的讨论 首先要对点集合S进行排序,设有n个点,则时间代价是O(nlog2n)。 最好情况:每次划分都得到规模大致相等的子集合,O(nlog2n) 最坏情况:每次划分只得到比上一次划分少一个元素的子集合(另一个为空),O(n2) 蛮力法:O(n3) 凸包问题 * Divide and Conquer Method * 补充阅读材料:递归的概念 直接或间接地调用自身的算法称为递归算法(Recursion)。用函数自身给出定义的函数称为递归函数。是一种描述问题和解决问题的基本方法。 由分治法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便。在这种情况下,反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易直接求出其解。这自然导致递归过程的产生。 * Divide and Conquer Method * 递归的概念 分治与递归像一对孪生兄弟,经常同时应用在算法设计之中,并由此产生许多高效算法。 递归有两个基本要素: ⑴ 边界条件:确

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档