4.5 几何问题中的离治法讲解材料.ppt

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.5 几何问题中的离治法讲解材料.ppt

* 4.5 几何问题中的离治法 4.5.1 最近对问题 4.5.2 凸包问题 4.5.1 最近对问题 设p1=(x1, y1), p2=(x2, y2), …, pn=(xn, yn)是平面上n个点构成的集合S,最近对问题就是找出集合S中距离最近的点对。 严格地讲,最接近点对可能多于一对,简单起见,只找出其中的一对作为问题的解。 用离治法解决最近对问题,很自然的想法就是将集合S分成两个子集 S1和 S2,每个子集中有n/2个点。然后在每个子集中途归地求其最接近的点对,在求出每个子集的最接近点对后,在合并步中,如果集合 S 中最接近的两个点都在子集 S1或 S2中,则问题很容易解决,如果这两个点分别在 S1和 S2中,问题就比较复杂了。 为了使问题易于理解,先考虑一维的情形。 此时,S中的点退化为x轴上的n个点x1, x2, …, xn。用x轴上的某个点m将S划分为两个集合S1和S2,并且S1和S2含有点的个数相同。途归地在S1和S2上求出最接近点对 (p1, p2) 和(q1, q2),如果集合S中的最接近点对都在子集S1或S2中,则d=min{(p1, p2), (q1, q2)}即为所求,如果集合S中的最接近点对分别在S1和S2中,则一定是(p3, q3),其中,p3是子集S1中的最大值,q3是子集S2中的最小值。 为了使问题易于理解,先考虑一维的情形。 此时,S中的点退化为x轴上的n个点x1, x2, …, xn。用x轴上的某个点m将S划分为两个集合S1和S2,并且S1和S2含有点的个数相同。途归地在S1和S2上求出最接近点对 (p1, p2) 和(q1, q2),如果集合S中的最接近点对都在子集S1或S2中,则d=min{(p1, p2), (q1, q2)}即为所求,如果集合S中的最接近点对分别在S1和S2中,则一定是(p3, q3),其中,p3是子集S1中的最大值,q3是子集S2中的最小值。 按这种离治策略求解最近对问题的算法效率取决于划分点m的选取,一个基本的要求是要遵循平衡子问题的原则。如果选取m=(max{S}+min{S})/2,则有可能因集合S中点分布的不均匀而造成子集S1和S2的不平衡,如果用S中各点坐标的中位数(即S的中值)作为分割点,则会得到一个平衡的分割点m,使得子集S1和S2中有个数大致相同的点。 下面考虑二维的情形,此时S中的点为平面上的点。 为了将平面上的点集S 分割为点的个数大致相同的两个子集S1和S2,选取垂直线x=m来作为分割线,其中,m为S中各点x坐标的中位数。由此将S分割为S1={p∈S | xp≤m}和S2={q∈S | xq>m}。途归地在S1和S2上求解最近对问题,分别得到S1中的最近距离d1和S2中的最近距离d2,令d=min(d1, d2),若S的最近对(p, q)之间的距离小于d,则p和q必分属于S1和S2,不妨设p∈S1,q∈S2,则p和q距直线x=m的距离均小于d,所以,可以将求解限制在以x=m为中心、宽度为2d的垂直带P1和P2中,垂直带之外的任何点对之间的距离都一定大于d。 4.5.2 凸包问题 设p1=(x1, y1), p2=(x2, y2), …, pn=(xn, yn)是平面上n个点构成的集合S,并且这些点按照x轴坐标升序排列。几何学中有这样一个明显的事实:最左边的点p1和最右边的点pn一定是该集合的凸包顶点(即极点)。设p1pn是从p1到pn的直线,这条直线把集合S分成两个子集:S1是位于直线左侧和直线上的点构成的集合,S2是位于直线右侧和直线上的点构成的集合。S1的凸包由下列线段构成:以p1和pn为端点的线段构成的下边界,以及由多条线段构成的上边界,这条上边界称为上包。类似地,S2中的多条线段构成的下边界称为下包。整个集合S的凸包是由上包和下包构成的。 接下来的问题是如何判断一个点是否在给定直线的左侧(或右侧)?几何学中有这样一个定理:如果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 - - - + + = 蚁群算法(ant colony optimization, ACO),又称蚂蚁算法

您可能关注的文档

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档