- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于递归法的最接近点对问题
基于递归法的最接近点对问题
目 录
1、 问题综述 2
2、 用递归法解决 2
2.1 一维情形下的分析 2
2.2 二维情形下的分析 3
2.3 算法优化 6
2.4 算法实现 6
3、结论 9
基于递归法的最接近点对问题
摘要:在计算机应用中,常用诸如点、圆等简单的几何对象表现现实世界中的实体。在涉及几何对象的问题中,常需要了解其邻域中其他几何对象的信息。例如,在空中交通控制问题中,若将飞机作为空间中移动的一个点来处理,则具有最大碰撞危险的两架飞机就是这个空间中最近的一点。这类问题是计算机几何学中研究的基本问题之一。本文就运用递归法对一维和二维的情况加以讨论。
关键词:最接近点对 递归法
问题综述
最接近点对问题的提法是:给定平面上n个点,找其中的一对点,使得在n个点组成的所有点对中,该点对间的距离最小。
实际情况下,最接近点对可能多于一对,为简单起见 ,我们只找其中的一对作为问题的解。有一个最直观的方法就是将每一点与其他n-1个点的距离算出,找出达到最小距离的两点即可。然而,这样做效率太低,我们想到用递归法来解决这个问题。
2、 用递归法解决
将所给的平面上n个点的集合S分成两个子集S1和S2 ,每个子集中约有n/2个点 。然后在每个子集中递归地求其最接近的点对。在这里,一个关键的问题是如何实现递归法中的合并步骤,即由S1 和S2的最接近点对,如何求得原集合S中的最接近点对。如果组成S的最接近点对的两个点都在S1中或都在S2中,则问题很明显就可以找到答案。可是还存在另外一种可能,就是这两给点分别在S1和S2 中的时候。下面主要讨论这种情况。
2.1 一维情形下的分析
为使问题易于理解和分析,我们先来考虑一维的情形。此时,S中的n各点退化为x轴上的n个实数x1,x2,x3…xn。最接近点对即为这n个实数中相差最小的两个实数。我们尝试用递归法来求解,并希望推广到二维的情形。
假设我们用x轴上的某个点m将S划分为两个集合S1和S2 ,使得S1={x∈S | x≤m} ;
S2 ={ x∈S | x>m }。这样一来,对于所有p∈和q∈S2 有p<q。
递归地在S1和S2 上找出其最接近点对{p1,p2}和{q1,q2},并设
d=min{| p1- p2|,| q1- q2|}
由此易知,S中的最接近进点对或者是{ p1 ,p2},或者是{ q1 ,q2},或者是某个{p3,q3},其中,p3∈S1且q3∈S2 。如图2-1-1所示。
图2-1-1 一维情形的递归法
我们注意到,如果S的最接近点对是{p3,q3},即|p3-q3|<d,则p3和q3两者与m的距离不超过d,即| p3-m|<d,| q3 -m|<d。也就是说 ,p3∈(m-d,m],q3∈(m,m+d]。由于每个长度为d的半闭区间至多包含S1中的一个点,并且m是S1和S2 的分割点,由图2-1-1可以看出,如果(m-d,m]中有S中点 ,则此点就是S1中最大点。同理,如果(m,m+d]中有S中点,则此点就是S2 中最小点。因此,我们用线性时间就能找到区间(m-d,m]和(m,m+d]中所有点,即p3和q3。从而我们用线性时间就可以将S1的解和S2 的解合并成为S的解。
但是,还有一个问题需要认真考虑,即分割点m的选取,即S1和S2 的划分。选取分割点m的一个基本要求是由此将S进行分割,使得S= S1∪S2 ,S1≠Φ,S2 ≠Φ,且S1∈{x|x≤m },S2 ∈{x| x>m }。容易看出,如果选取m={max(S)+min(S)}/2,可以满足分割要求。然而,这样选取分割点,有可能造成划分出的子集S1和S2 的不平衡 。例如在最坏情况下,| S1|=1,| S2 |=n-1,这样的计算效率与分割前相比提高幅度不明显。这种现象可以通过递归法中“平衡子问题”的方法加以解决。我们可以适当选择分割点m,使S1和S2 中有个数大致相等的点。我们会想到用S中各点坐标的中位数来作为分割点。
由此,我们设计出一个求一维点集S的最接近点对的算法Cpair 1如下:
---------------------------------------------------------------
Bool Cpair 1(S,d)
{
N=|S|;
if(n<2){
d=∞;
return false;
}
m=S中各点坐标的中位数;
//构造S1和S2 ;
S1={x∈S | x≤m} ;
S2 ={ x∈S | x>m };
Cpair 1(S1,d1);
Cpair 1(S2 ,d2);
p=max(S1);
q
您可能关注的文档
- 赢在高考-冲2刺012数学.doc
- 赢在高考2013年高考轮三复习计划与策略.doc
- 赢文教育化学试精题选(二).doc
- 赣冠职业培训中安心装预算师模拟试题(A).doc
- 培训开发管理办法.doc
- 培训班教学参考大纲.doc
- 赣冠职业培训中心安装预算师模拟试题A.doc
- 赣南医学院推拿协会第四知届识竞赛题目.doc
- 培训认证体系典型案例调研报告.doc
- 赣南师范大学《分析化学》考试大纲2016年硕士研究生初试考试大纲及参考书目.doc
- 2025年中国锻铁围栏市场调查研究报告.docx
- 2025年中国椭圆型市场调查研究报告.docx
- 2025年中国无蔗糖原味豆浆市场调查研究报告.docx
- 2025-2031年中国泛在电力物联网行业发展运行现状及投资潜力预测报告.docx
- 2025年中国制袋机零件市场调查研究报告.docx
- 2025年中国智能除垢型电子水处理仪市场调查研究报告.docx
- 2025-2031年中国甘肃省乡村旅游行业市场深度研究及投资策略研究报告.docx
- 2025-2031年中国干海产品行业市场发展监测及投资战略规划报告.docx
- 2025年中国全铝图解易拉盖市场调查研究报告.docx
- 2025年中国人造毛皮服装市场调查研究报告.docx
文档评论(0)