离散点集最小包围圆算法分析与改进_李红军
obb最小包围盒算法
obb最小包围盒算法【实用版】目录1.OBB 最小包围盒算法的概述2.OBB 算法的原理3.OBB 算法的优点与应用场景4.OBB 算法的局限性与改进方向正文【1.OBB 最小包围盒算法的概述】OBB(Oriented FAST and Rotated BRIEF)最小包围盒算法是一种基于特征点匹配的图像配准算法,主要用于估计两张图像之间的单应性矩阵。
OBB 算法通过计算图像中的关键点(特征点)以及其对应的最小包围盒,达到对两张图像进行准确配准的目的。
相较于其他配准算法,OBB 算法具有计算速度快、配准精度高的特点,适用于实时场景和计算机视觉领域。
【2.OBB 算法的原理】OBB 算法的原理可以概括为以下几个步骤:(1)检测图像中的关键点:首先,在两张图像中分别检测出特征点,这些特征点通常具有独特的局部结构,例如角点、边缘等。
常用的特征检测算法有 SIFT、SURF、ORB 等。
(2)计算最小包围盒:以检测到的特征点为中心,计算其邻域内的像素点集,并将这些像素点集转换为欧氏空间中的凸包。
在欧氏空间中,凸包的直径即为该特征点的最小包围盒。
(3)匹配关键点:对于两张图像中的特征点,通过计算它们对应的最小包围盒之间的变换矩阵,从而找到匹配的特征点对。
通常采用 RANSAC 算法对匹配点进行筛选,以提高配准精度。
(4)估计单应性矩阵:根据匹配的特征点对,利用本质矩阵、基础矩阵等几何变换矩阵,估计两张图像之间的单应性矩阵。
【3.OBB 算法的优点与应用场景】OBB 算法具有以下优点:(1)计算速度快:OBB 算法在特征点检测和最小包围盒计算过程中,采用了高效的计算方法,使得整体计算速度较快。
(2)配准精度高:OBB 算法通过计算最小包围盒,能够较为准确地估计两张图像之间的变换关系,从而获得较高的配准精度。
(3)对图像的亮度、旋转、缩放等变化具有较强的鲁棒性:OBB 算法主要关注图像中的关键点及其局部结构,因此对于图像的亮度、旋转、缩放等变化具有较强的鲁棒性。
基于最小包含圆的无线传感器网络定位算法
基于最小包含圆的无线传感器网络定位算法周全;朱红松;徐勇军;李晓维【期刊名称】《通信学报》【年(卷),期】2008(29)11【摘要】提出一种新的无需测距定位算法--基于最小包含圆的定位(SECL).该算法根据目标周围的锚节点所决定的最小包含圆来估计目标位置.基于最小包含圆的算法考虑的不是坐标系中所有锚节点位置的平均值,而是覆盖所有锚节点区域的几何中心,能够有效地控制锚节点分布不均匀给定位带来的负面影响.仿真结果显示,相对于质心算法平均定位精度能提高10%以上.SECL在锚节点拓扑不均匀情况下,精度提升更高.【总页数】7页(P84-90)【作者】周全;朱红松;徐勇军;李晓维【作者单位】中国科学院,计算技术研究所,计算机系统结构重点实验室,北京,100190;中国科学院,研究生院,北京,100039;中国科学院,计算技术研究所,计算机系统结构重点实验室,北京,100190;中国科学院,研究生院,北京,100039;中国科学院,计算技术研究所,传感器网络实验室,北京,100190;中国科学院,计算技术研究所,计算机系统结构重点实验室,北京,100190【正文语种】中文【中图分类】TP393【相关文献】1.基于最小包围圆算法的原棉异纤定位及去除方法 [J], 王可;马倩2.基于RSSI-锚圆算法的无线传感器网络节点自定位研究 [J], 丁承君;柳瑛;段萍;付胜梁3.基于最小误差平方和的无线传感器网络多边定位算法 [J], 周海洋;余剑;张卫涛4.一种用于无线传感器网络的非线性最小二乘声源定位算法 [J], 崔晓宗;仝杰;刘弢;徐光圣;刘轶;钱德沛5.无线传感器网络中最优分割圆定位算法 [J], 喻嘉;闻英友;赵宏;周月侨因版权原因,仅展示原文概要,查看原文内容请购买。
基于最小包围圆的解体时刻精确计算方法[发明专利]
专利名称:基于最小包围圆的解体时刻精确计算方法
专利类型:发明专利
发明人:张炜,马鑫,崔文,王梁,张育卫,游经纬,王秀红,陈星伊申请号:CN202010705381.9
申请日:20200721
公开号:CN111831958A
公开日:
20201027
专利内容由知识产权出版社提供
摘要:本发明公开了航天测量与控制技术领域的基于最小包围圆的解体时刻精确计算方法,该计算方法包括S1:确定解体碎片的轨道;S2:使用数值法对轨道结果进行回推,轨道形式为积分时刻对应的位置和速度;S3:计算每一秒包含所有解体碎片空间位置的最小包围圆;S4:每一秒的最小包围圆半径计算结束后,找出半径最小的最小包围圆对应的时刻t,t即为解体事件发生时刻,本发明可以有效避免最近距离时刻分析方法结果分散的问题,可同时适用于解体初期短弧轨道结果精度低和事件后期编目轨道数据预报时间长等不同情况。
申请人:中国人民解放军32035部队
地址:710600 陕西省西安市临潼区环城东路2号
国籍:CN
代理机构:北京华际知识产权代理有限公司
代理人:曹书华
更多信息请下载全文后查看。
三维离散点最优空间圆拟合及实现
三维离散点最优空间圆拟合及实现背景介绍:在三维空间中,有一组离散的点数据,我们希望找到一个最优的圆曲线来拟合这些离散点。
拟合圆曲线可以用于各种应用,如图像处理、机器视觉和CAD设计等领域。
圆拟合的问题可以转换为求解圆心坐标和半径的最小二乘问题。
最小二乘问题通过最小化误差平方和来找到拟合圆的最优解。
圆拟合的算法:1.初始化圆心坐标和半径。
2.通过迭代的方式,最小化拟合误差。
3.循环直到达到预设的收敛条件或迭代次数。
圆拟合的具体实现:1.输入数据:三维空间中的一组离散点数据。
2.初始化圆心坐标和半径:可随机选择一组初值。
3.迭代过程:-计算每个点到当前圆的距离。
-将点按照与圆的距离进行排序。
-取出距离最小的前N个点(N为拟合数据的一部分)。
-根据这N个点,计算新的圆心坐标和半径。
-检查新的圆心坐标和半径与上一次的差异是否小于预设的收敛条件。
-如果满足收敛条件,结束迭代。
否则,返回第三步。
4.输出结果:得到了最优的圆心坐标和半径。
圆拟合的代码实现:以下是一个Python示例代码,用于实现三维离散点最优空间圆拟合的算法。
```pythonimport numpy as npdef fit_circle(points, max_iter=100, tol=1e-6):#初始化圆心坐标和半径center = np.random.rand(3)radius = np.random.rand(*10for _ in range(max_iter):#计算每个点到当前圆的距离distances = np.linalg.norm(points - center, axis=1)#按照距离排序sorted_indices = np.argsort(distances)#取出距离最小的前N个点N = int(len(points)*0.2) # 取前20%的点selected_indices = sorted_indices[:N]selected_points = points[selected_indices]#计算新的圆心坐标和半径new_center = np.mean(selected_points, axis=0)new_radius = np.max(np.linalg.norm(selected_points -new_center, axis=1))#检查收敛条件if np.abs(new_center - center).max( < tol andnp.abs(new_radius - radius) < tol:break#更新圆心坐标和半径center = new_centerradius = new_radiusreturn center, radius```总结:本文介绍了三维离散点最优空间圆拟合的算法和实现。
同轴度误差最小包容圆有限元后处理算法
同轴度误差最小包容圆有限元后处理算法
郑翔;阮志强;夏卫明;何小元
【期刊名称】《东南大学学报(自然科学版)》
【年(卷),期】2009(039)006
【摘要】针对工作状态下机械零部件同轴度误差数据采集难的特点,结合有限元后处理,提出了一种通过求解一组投影圆心坐标的最小包容圆(最小外接圆)来实现分析同轴度误差的计算方法.将轴套分为n段,将每段内边界变形后的节点坐标向同一平面投影,采用最小二乘法拟合成圆,即可获得n个圆心坐标.为求这平面点列(n个有限点)的最小包容圆,将问题转化为非线性约束最优化问题.通过分区优化搜索算法求解目标.同时采用了遗传算法来验证,两者计算结果一致.
【总页数】5页(P1156-1160)
【作者】郑翔;阮志强;夏卫明;何小元
【作者单位】东南大学土木工程学院,南京210096;扬州大学机械工程学院,扬州225009;扬州柴油机有限责任公司技术开发部,扬州225006;扬州大学机械工程学院,扬州225009;东南大学土木工程学院,南京210096
【正文语种】中文
【中图分类】TP301.6;TK422
【相关文献】
1.最小包容区域法处理圆度误差的程序算法 [J], 曾新勇
2.用遗传算法求平面点列的最小包容圆 [J], 王洪发;刘捷
3.一种基于计算几何方法的最小包容圆求解算法 [J], 张勇;陈强
4.圆度误差的最小二乘法、最小包容区域法和最优函数法评定精度之比较 [J], 田树耀
5.最小外接圆法和最大内切圆法圆度评估的快速算法 [J], 葛根焰;汤建勋
因版权原因,仅展示原文概要,查看原文内容请购买。
改进的最小包围球随机增量算法
改进的最小包围球随机增量算法李世林;李红军【摘要】三维空间中离散点集的最小包围球,在碰撞检测、计算几何和模式识别等领域都有广泛应用.为了更好地理解和构造最小包围球算法,首先对最小包围球的性质进行分析.然后,基于对随机增量算法的分析,提出了构造较大初始包围球和减少迭代过程中最小包围球更新次数两种策略.依据后一种策略提出的方法称为随机点组-重算最远点算法.计算机随机生成数据和现实三维模型采样数据的多组实验结果表明,随机点组-重算最远点算法相比于之前的经典算法能够有效地提高时间效率.【期刊名称】《图学学报》【年(卷),期】2016(037)002【总页数】6页(P166-171)【关键词】最小包围球;随机增量算法;随机点组-重算最远点算法【作者】李世林;李红军【作者单位】北京林业大学理学院,北京100083;北京林业大学理学院,北京100083【正文语种】中文【中图分类】TP391对于三维空间中的离散点集P,求解其最小包围球(minimum enclosing ball,MEB)以寻找一个半径最小的球,其包含P中所有的点,球体有许多良好的性质[1],因此在计算机图形学和计算几何中,与离散点集的凸包围多面体[2]相比,包围球常作为边界,可以更快地进行近似的碰撞检测、范围界定和形状分析。
在空间数据库中,MEB的求解可用于建立空间数据索引,以便提高查询速度[3]。
同时MEB问题在模式识别[4]、计算几何[5]、机器学习[6]等领域也有广泛应用。
模型局部的包围球可以用于模型裁剪[7]或者重采样,因这些领域处理的数据集通常都是大规模的,所以提高MEB算法运行效率是很有必要的。
MEB问题可以追溯到19世纪中期,Sylvester[8]在1857年提出了最小包围圆问题,并在1860年,给出了求解该问题的一种近似线性算法[9]。
之后人们开始系统地研究该问题,比如最近的基于α-壳的最小包围圆求解算法[10],并研究从二维平面到三维空间再到更高维空间的算法;1982年,Megiddo[11]首次给出了一种理论上的线性时间算法,其时间复杂度是最小的,但算法本身的实现却很复杂;1991年,Welzl[12]提出了一种简单快捷的随机算法,其时间复杂度是线性级的,并指出该算法易于推广到高维空间的 MEB和最小包围椭球(minimum enclosing ellipsoid)中。
散乱点云局部点集最小包围盒快速求解算法
散乱点云局部点集最小包围盒快速求解算法
刘健;孙殿柱;李延瑞;孙永伟
【期刊名称】《农业装备与车辆工程》
【年(卷),期】2010(000)006
【摘要】提出一种散乱点云局部点集最小包围盒快速求解算法,该算法采用主元分析方法对局部点集进行降维处理,将所降维度方向作为参考轴向,围绕该轴向旋转局部点集坐标系,并求解局部点集在各坐标系下的轴向包围盒,选择体积最小的作为该局部点集的最小包围盒,实例表明该算法在满足最小包围盒求解精度要求的同时,可显著提高算法的运行效率.
【总页数】3页(P27-29)
【作者】刘健;孙殿柱;李延瑞;孙永伟
【作者单位】山东理工大学机械工程学院,山东,淄博,255091;山东理工大学机械工程学院,山东,淄博,255091;山东理工大学机械工程学院,山东,淄博,255091;山东理工大学机械工程学院,山东,淄博,255091
【正文语种】中文
【中图分类】TP391.72
【相关文献】
1.散乱点云局部型面参考数据的快速查询算法 [J], 孙殿柱;朱昌志;李延瑞;田中朝
2.基于包围盒法的散乱点云数据的曲率精简 [J], 刘涛;徐铮;沙成梅;赵俊天
3.平面散乱点云凸包快速求解算法 [J], 杨宏伟
4.三维散乱点云凸包快速求解算法 [J], 孙殿柱;朱昌志;李延瑞;刘健
5.类长方物体的准最小包围盒的快速求解算法 [J], 熊毅;黄华;王蕾;朱凌穹
因版权原因,仅展示原文概要,查看原文内容请购买。
平面点集的最小包围圆
平面点集的最小包围圆平面点集的最小包围圆1、问题背景考察固定在工作平台上的一直机械手,要捡起散落在不同位置的多个零件,并送到别的地方。
那么,这只机械手的底座应该选在哪里呢?根据直觉,应该选在机械手需够着的那些位置的“中心”。
准确地讲,也就是包围这些点的那个最小圆的圆心----该位置的好处是,可使机械手的底座到它需要够着的那些点的最大距离最小化。
于是可得如下问题:给定由平面上n个点所组成的一个集合P(对应于机械手需要够着的工作平台的那些位置),试找出P的最小包围圆(smallest enclosing disc)----亦即,包含P中所有点、半径最小的那个圆。
这个最小包围圆必然是唯一的。
2、算法及原理算法介绍:我们本次算法的设计是基于这样一个简单直观的性质:在既定的给定点条件下,如果引入一张新的半平面,只要此前的最优解顶点(即唯一确定最小包围圆的几个关键顶点)能够包含于其中,则不必对此最优解进行修改,亦即此亦为新点集的最优解;否则,新的最优解顶点必然位于这个新的半空间的边界上。
定理可以通过反证法证明。
于是,基于此性质,我们便可得到一个类似于线性规划算法的随机增量式算法。
定义Di为相对于pi的最小包围圆。
此算法实现的关键在于对于pi∉Di-1时的处理。
显然,如果pi∈Di-1,则Di= Di-1;否则,需要对Di另外更新。
而且,Di的组成必然包含了pi;因此,此种情况下的最小包围圆是过pi点且覆盖点集{ p1 ,p2 ,p3 ……pi-1}的最小包围圆。
则仿照上述处理的思路,Di={ p1 ,pi },逐个判断点集{ p2 ,p3 ……pi-1 },如果存在pj∉ Di,则Di={pj,pi }。
同时,再依次对点集{ p1 ,p2 ,p3 ……pj-1 }判断是否满足pk∈Di,若有不满足,则Di={pk ,pj,pi }。
由于,三点唯一地确定一个圆,故而,只需在此基础上判断其他的点是否位于此包围圆内,不停地更新pk。
(李红军)负荷模型动态仿真误差评定准则研究
2 改进误差准则的提出
基于以上分析, 表征负荷数据间误差水 平的计算应解决两个方面的问题: 一是采用 合适的计算式计算时变量的各时间序列点 误差,二是选择合适的误差基准值。 本文以仿真量和实测量的信号误差能 量作为绝对误差值, 实测量的扰动能量作为 比较基准。整体的误差水平用动态变异率 (Dynamic Variation Ratio,简称 DVR)来 表示:
图 1 参数辨识原理图
计算式(1) ,采用实测点与仿真点的误 差平方和来表示误差的大小, 只能给出一个 量化的累积误差量,而不能反映误差水平。 所以,误差评定中不宜直接采用此式, 而需要 给出一个比较的基准来衡量该误差的水平。 计算式(2)式反映了仿真误差的均方 值, 也是绝对值误差表达式.用该式表示仿真 误差除具有(1)式的不足外,还易受时间 长度的影响。 即当稳态微小误差的时间序列 选取较长时, 均值将弱化局部误差较大的时 间段,出现 小数吃大数 的情况。 (3)式 利用对稳态数据和扰动数据加权, 尽量避免 时间长时间稳态微小误差对扰动误差的影 响。 但对电压稳态时间序列赋小权值可能使 仿真出的有功无功与实测数据在稳态时间
参数辨识的过程就是在同一扰动输入下, 根 据仿真系统和实际系统的响应误差来调整 优化系统模型参数,当二者误差趋于零时, 获得仿真模型的最优参数。 这里的误差即为 目标函数值, 其大小由不同的目标函数计算 式算得。根据该值的大小,可以在一定程度 上得出误差的大小。 误差目标函数的定义也因不同的辨识算法 而定。以最小而乘为基础的辨识算法,一般 采取仿真值和实测值的差方形式作为目标 函数,如(1)式所示[1]:
DVR
2 负荷模型动态仿真误差评定现状
负荷动态仿真的过程是模拟实际系统 在扰动条件下的响应过程。 典型的仿真误差 评估是对负荷模型 R (m1 , m2 ,...mn ) 输入图 1 所示的电压,输出功率响应变量(虚线) , 与实测功率响应变量相比较, 评定出二者的 差异。
离散点集最小包围圆算法分析与改进_李红军
2012年4月图学学报 April 2012第33卷第2期JOURNAL OF GRAPHICS V ol.33 No.2离散点集最小包围圆算法分析与改进李红军1, 2,张晓鹏2(1. 北京林业大学理学院,北京 100083;2. 中国科学院自动化研究所模式识别国家重点实验室&中法联合实验室,北京 100190)摘要:针对平面上的离散点集求取最小包围圆的问题,评述现有算法并给出一种改进算法,称为较远点对定义初始包围圆的增量算法。
首先概述了几条对算法理解和设计有直接影响的最小包围圆性质或判定;然后对求取最小包围圆的随机增量算法、最远点优先渐近算法、对偶决策算法等3种典型算法进行概述和简要分析;再对随机增量算法和最远点优先渐近算法进行改进;最后,以二维区域随机点集、一维共线随机点集和共线有序点集3类数据进行实验对比。
实验结果表明,最远点优先渐近算法是过去3种算法中效率最高的;论文提出的较远点对定义初始包围圆的增量算法大大提高了随机增量算法的时间效率,是该文所列举的方法中最快的算法,并且是一种确定性算法。
离散点集最小包围圆的快速计算有助于碰撞检测和机器人等领域的广泛应用。
关键词:最小包围圆;随机增量算法;最小包围圆性质;计算几何中图分类号:TP 301文献标识码:A 文章编号:2095-302X (2012)02-0034-05Analysis and improvement of smallest enclosing disk algorithm ondiscrete set of pointsLi Hongjun1, 2, Zhang Xiaopeng2( 1. College of Science, Beijing Forestry University, Beijing 100083, China;2. NLPR-LIAMA, Institute of Automation, CAS, Beijing 100190, China)Abstract: For calculating the smallest enclosing disk of a discrete set of points on the planar, three popular algorithms, i.e. the randomized incremental algorithm, the dual decision algorithm and the farthest point first progressive algorithm, are evaluated and an improvement of the randomized incremental algorithm is presented. The new algorithm employs the Axis-Aligned Bounding Boxes of the point set to optimize the initiate enclosing disk, which greatly improves the calculating efficiency. Numerical experiments show that the farthest point first progressive algorithm is the fastest one among the old three algorithms; the new algorithm is a fast and deterministic one, and can be helpful to the applications in computer graphics, facility locations, intelligent robot, and so on.Key words: smallest enclosing disk; randomized incremental algorithm; property of smallest enclosing disk; computational geometry收稿日期:2011-09-29基金项目:国家自然科学基金资助项目(60970093, 60902078, 60872120)作者简介:李红军(1969-),男,湖南郴州人,副教授,博士研究生,主要研究方向为计算机图形学,计算几何。
离散点集最小包围圆算法分析与改进
离散点集最小包围圆算法分析与改进
最小包围圆算法是一种用于求解离散点集的最小包围圆的算法,它可以用来解决许多实际问题,如最小面积覆盖、最小距离等。
本文将介绍最小包围圆算法的原理,分析其优缺点,并提出改进方案。
最小包围圆算法的基本思想是:首先,从离散点集中选取两个点,构成一个圆;然后,从剩余的点中选取一个点,如果该点在圆内,则继续选取下一个点;如果该点不在圆内,则将该点加入到圆的边界上,并重新计算圆的半径,直到所有的点都在圆内为止。
最小包围圆算法的优点是:它简单易行,可以在线性时间内完成,并且可以很容易地实现。
缺点是:它只能求解出最小的圆,而不能求解出最小的多边形;另外,它只能求解出最小的圆,而不能求解出最小的多边形。
为了改进最小包围圆算法,可以采用改进的算法,如果点集中有多个点,则可以采用分治法,将点集分成两个子集,分别求出最小包围圆,然后将两个子集的最小包围圆合并,得到最终的最小包围圆。
另外,可以采用模拟退火算法,将点集中的点按照一定的规则排列,然后求出最小包围圆,并不断优化,直到得到最优解为止。
综上所述,最小包围圆算法是一种简单易行的算法,可以在线性时间内完成,但是它只能求解出最小的圆,而不能求解出最小的多边形。
为了改进最小包围圆算法,可以采用改进的算法,如分治法和模拟退火算法,以获得更好的结果。
基于布尔搜索的空间目标分布最小包围盒规划
基于布尔搜索的空间目标分布最小包围盒规划卫星;韩江洪【摘要】为了降低对平面内无源目标进行定位产生的搜索代价,研究了确定覆盖所有随机部署的无线传感器网络节点的最小包围盒问题.首先提出基于布尔搜索的无线传感器网络节点最小包围盒规划方法,运用深度优先策略,使锚节点不断逼近目标节点的实际位置;然后根据前述算法完成时的锚节点坐标,设计了坐标最大-最小值规划算法以构造最小覆盖面积包围盒.最后通过仿真和算法分析得出,所提策略计算复杂度低于遍历方式的最小包围圆、包围盒算法,且能更准确地估计出覆盖面积最小的包围盒.【期刊名称】《华南理工大学学报(自然科学版)》【年(卷),期】2016(044)005【总页数】7页(P144-150)【关键词】无线定位;最小包围盒;覆盖圆;凸壳规划【作者】卫星;韩江洪【作者单位】合肥工业大学计算机与信息学院//教育部安全关键工业测控工程研究中心,安徽合肥230009;合肥工业大学计算机与信息学院//教育部安全关键工业测控工程研究中心,安徽合肥230009【正文语种】中文【中图分类】TP393.0在一些事故场景中,存在大量的目标物体需要被定位.例如,飞机的残骸碎片、战后遗弃的地雷、甚至是放射性的核泄漏物等.与通常的目标定位不同,它们大多是随机散落在一片空间内,都是无源的,无法通过测量目标与参照物之间的距离估计其位置坐标[1].对于类似的被动目标定位,划分出一块面积尽可能小的搜索范围,直接决定了目标定位所需要花费的代价[2].目前,以位置指纹匹配法为代表的诸多定位方法,均以目标位置与场景特征形成的一对一映射作为定位的先验条件[3- 5],这些方法都需要事先划分覆盖所有目标的规则形状.如此,最小覆盖面的划分问题就转化为包含全部目标的最小包围形状的规划问题[6- 7].在计算几何领域,研究最小包围形状的算法很多,经典的包括最小包围圆规划和最小包围盒规划[8- 9].其中,最小包围盒是一种覆盖面积最小的规则矩形,其规划算法的复杂度小于最小包围圆,广泛用于碰撞检测、模具分形设计与模式识别[10].在目标坐标未知情况下,根据深度优先搜索策略,文中提出了布尔搜索的锚节点位置规划算法,通过局部覆盖目标分布的外围区域,使得锚节点深度遍历过程中,不断迭代逼近外围的目标.根据迭代完成时的锚节点坐标,设计了坐标最大-最小值规划算法,构造了覆盖面积接近最小的包围盒.给定长宽均为L的矩形区域Ω,其4个顶点的直角坐标分别为O(0,0)、B(0,L)、C(L,L)和D(L,0).n个目标物构成的平面点集S分布在Ω内,S={s1,s2,…,sn}.∀si∈S的坐标值以均匀分布的随机方式产生,si=(Lθi,1,Lθi,2),θi,1,θi,2~N(0,1),表示极角.n≥3时,根据S构成的凸壳顶点BCH(S′)为一个凸多边形G,G的顶点均来自S.令P为包围S的最小凸多边形,即不存在凸多边形P′,使得P⊃P′⊃S成立.包围盒Σ为包含S的矩形盒,根据位置分为轴向矩形(AABB)和定向矩形(OBB) [11].如图1所示,五角星表示平面直角坐标系点集内的元素.轴向矩形的方向向量平行于Ω直角坐标系的Y坐标轴;而定向矩形的方向任意,方向向量可与Ω的直角坐标系形成一定的偏转角度,这样使得包围的面积尽可能地小.Σ存在最小包围盒的前提是没有其他包围盒Σ′,满足Σ⊃Σ′⊃P.S各点分布不变的情况下,计算偏转角度θ,使得方向偏转于Ω坐标轴的定向矩形能够形成最小包围面积.最小包围盒的计算通常被设计成一个随机增量算法,其思路是:将S各点随机排序,Σ2为包含s1和s2的最小包围盒.如果Σi-1包含si,则Σi=Σi-1;否则,minΣi ,s.t.Σi⊇si;Σn为输出的面积最小包围盒[12].Σn可在多项式时间t(n)完成求解,计算的代价随着目标个数的增加而递增.若已知凸壳顶点BCH(S),当n→∞时,其顶点个数m与目标个数n的关系为).因此,=0,BCH(S)的顶点集合代替S 能够减少计算Σ的代价[13].通过锚节点的信号接收范围,构建相应的覆盖圆,实现Ω局部区域的覆盖,完成S凸壳顶点BCH(S)的搜索.定义1 锚节点i部署在a(i)点,其信号接收半径为r(i),则i形成一个覆盖圆,记作[a(i),r(i)].如果锚节点i在覆盖圆[a(i),r(i)]内收到信号,则向Sink发送信息,表示至少存在一个目标δ(i)∈S,使得[a(i),r(i)]将其包含.由于发送的信息被锚节点i量化为1比特的局部消息M(i),定义2 ‖z‖0为序列z的非零个数,‖z‖0个比特的消息序列z构成了S位置分布的ζ-估计,给定阈值ζ,使得‖≤ζ.因此,锚节点位置规划的目标就是实现‖z‖0的最小化,使包含目标的覆盖圆个数达到最少.定义3 设覆盖圆a(i)和a(j)的中心距离为d(i,j),d(i,j)=‖a(i)-a(j)‖2,如果d(i,j)<r(i)+r(j),则a(i)和a(j)互为邻居.如图2所示,Ω内的一块子区域P被A内元素为圆心的覆盖圆集合所覆盖,假设初始的覆盖圆半径为γ,∀r(i)=γ时,存在任意两个邻居a(i)和a(j)的距离,使得P内任意点被A覆盖的程度≤2,从而实现最小代价的P平面覆盖,其实现过程如下.算法1 A←Anchor array(ω,d,P)输出:A为规划的覆盖圆心坐标集合;输入:d为ω与相邻覆盖圆心的欧式距离;过程:① 若(ω,d)没有节点,转向③;算法1根据深度优先搜索(DFS)生成覆盖圆集合A,其中子函数cover_search(·)是在覆盖圆[ω,γ]内继续布设子覆盖圆,使得子覆盖圆的中心能够逼近目标的位置.在[ω,γ]的圆周上,找到一个子覆盖圆的中心ω(1),ω(1)的覆盖半径减小为r(ω(1))←γ/[2cos(/6)].如果[ω(1),γ(1)]包含目标,且ζ≤γ/[2cos(/6)],则根据DFS,继续在ω(1)内规划子覆盖圆,经过f轮的规划得到ωf,覆盖半径r(ωf)=r(ωf-1)/[2cos(/6)].当ζ=0,f→∞时,ωf无穷逼近于‖ωf-s‖=0,函数cover_search(ω,r,ρ)的实现如下:函数A←cover_search(ω,r,ρ)输出:A为覆盖圆ω内规划的子覆盖圆心坐标输入:r为ω的半径;过程:① 以ωi为中心,以逆时针方向计算子覆盖圆的中心α=(r,0),β=(r,/3),T=(r,3/2),J=(r,),Q=(r,4/3),K=(r,5/3);选择位于Ω边界的4个点、和令符号表示矩形.如图3所示,O′B′C′D′顺时针偏转/4,其顶点内嵌在OBCD上,被O′B′C′D′分割出来的部分构成4个子区域△O′OD′、△O′BB′、△B′CC′和△C′DD′,根据算法1,分别从LD、LU、RD和RU出发,对所有子区域进行搜寻.同时,O′B′C′D′顺时针偏转/4,使得O″B″C″D″内嵌在O′B′C′D′,并继续搜寻△D′D″C″、△O″O′D″、△O″B′B″和△B″C′C″内的节点.完成上述区域搜寻,算法1输出覆盖圆集合A,a∈A,提取M(a)=1的覆盖圆中心点集,构成包含节点的覆盖圆子集A′.因为S均匀分布在Ω中,A′包含了S的凸壳顶点BCH(S),A′⊇BCH(S).A′的个数为m,存在a∈A′,以及∀s∉S,满足‖a-s‖2≤ζ.首先,运用Graham算法从A′提取构成凸壳边界BCH(A′)的顶点集合Π,凸壳顶点个数为η.根据Π的X坐标的最小值min_X和最大值max_X,以及Y坐标的最小值min_Y和最大值max_Y,建立顶点O(min_X,min_Y)、B(min_X,max_Y)、C(max_X,max_Y)和D(max_X,min_Y),顺序连接上述4个顶点,可以建立面积最小的轴向包围盒ΣZ,如图4所示.ΣZ的面积为S(ΣZ),S(ΣZ)=‖‖|max_X-min_X||max_Y-min_Y|如图4、5所示,取Π的两个相邻凸点构成向量在Ψ的极角为θ(i),Ψ顺时针绕Ω中心偏转θ(i),构成新的坐标系Ψ(i).平行于坐标系Ψ(i)的X轴,提取Ψ(i)的X坐标最大、最小值和Y坐标最大、最小值,据式(1)计算Ψ(i)的最小轴向包围盒Σ(i)的面积.坐标系Ψ偏转η-1次,得到η-1个包围盒.将每个包围盒据各自的偏转角还原至坐标系Ψ,就构成了η-1个定向包围盒,其中面积最小的minS(Σ(i))作算法2 V←maxmin_coordinate(A′)输出:最小包围盒Σ的顶点坐标V;输入:A′覆盖圆的中心集合;过程:①P←graham(A′),采用Graham算法求出A′中的凸壳边界顶点P;文中通过比较覆盖圆全覆盖方法与算法1的效率,证明算法1的覆盖圆部署代价小于一般性的方法.算法效率是指在给定的相同边长区域Ω和相同阈值ζ的情况下,满足每个目标至少被一个覆盖圆布尔覆盖时,算法输出的最大覆盖圆个数.其中,算法1输出的覆盖圆半径γ是变长的,在布尔搜索过程中,随着搜索深度的增加,γ逐渐减小,如定理1所示.定理1 给定阈值ζ、覆盖圆半径γ和Ω边长L,覆盖圆包含节点的概率为p,如果p=1,则算法1输出的覆盖圆个数m大约为⎣.证明γ=ζ时,覆盖圆在X轴(或Y轴)的间隔距离为,则覆盖圆个数约为2;γ>ζ时,每个覆盖圆可产生个子覆盖圆,Ω总覆盖圆个数为;根据定义1,最大覆盖圆个数=而一般的全覆盖方法是不再规划子覆盖圆,所有输出的覆盖圆半径均为阈值ζ.定理2 布尔搜索的全覆盖方法是不再规划子覆盖圆,所有输出的覆盖圆半径均为阈值ζ,覆盖圆的排列方式仍如图2所示,任意相邻覆盖圆的中心距离为,则输出的覆盖圆个数m′约为.证明,根据定理1的证明,最大覆盖圆个数.n→∞时,m′≪m,算法1的规划代价大于全覆盖的方法.如果Ω包含的节点个数很少,n→0时,覆盖圆包含节点的概率p=0,则m′≪m. 由定理2可知,全覆盖方法在搜索部署过程中,始终是以半径r满足小于等于ζ的覆盖圆实现Ω的全覆盖,该方法是固定尺度的搜索,与算法1的变尺度搜索策略相比,算法的时间复杂度低,且锚节点的感知半径是固定的,输出的覆盖圆个数必然大于算法1.因此,如果锚节点的感知范围在线性可调的情况下,算法1的算法效率明显优于全覆盖方法.采用Matlab 2013b作为仿真实验平台,正方形区域Ω给定的长宽均为100 m.根据算法1,对图3所示区域进行布尔搜索的锚节点部署.设定初始时的锚节点覆盖圆半径r=14.142 m,阈值ζ为2 m和3 m时,分别进行12组仿真.每组仿真随机生成的节点数为n,算法1产生的包含节点的覆盖圆个数为E,全覆盖方法包含节点的覆盖圆个数为EA.算法2规划的最小定向包围盒面积为ΣD,最小轴向包围盒面积为ΣZ.图6为固定节点个数n=100时覆盖圆个数随ζ的变化曲线,可见,阈值ζ越大,锚节点覆盖圆个数E和EA越大.由图7可知,随着节点个数增加,覆盖面积在初始阶段呈现折线增长的趋势,节点个数增加到一定程度后,覆盖面积的变化规律不明显.由图8可知:EA始终大于E;阈值ζ相同条件下,EA没有随着n的增加而递增,而E则随着n的增加而增大.这也验证了定理1所描述的,算法1的代价与n存在线性相关.同时,n存在一个门限值ε,Ω面积为100 m2时,根据定理1和定理2计算得出:ζ=2 m时,ε=371;ζ=3 m时,ε=249;当n>ε时,算法1的代价将超过全覆盖方法.因此,节点密度较小时,适合运用算法1的搜索策略.根据分析遗漏的节点个数R可知,n较小时,ΣD遗漏的节点数较多;随着n的增加,使得用于规划ΣD的覆盖圆个数E也增加,如果覆盖圆分布的广泛,则遗漏的节点数会下降.根据图9数据分析得出,R由覆盖圆分布的范围决定.ΣD的面积越大,覆盖圆的分布范围也就越大,而E也就越高.如图10所示,n=40时,算法2规划的最小定向包围盒为ΣD,最小轴向包围盒为ΣZ.根据前述结果可知,ΣD在任何情况下的面积均小于或等于ΣZ.由于覆盖圆的中心并非完全与S节点位置重合,所以ΣD之外仍存在少量的节点.根据深度优先搜索策略,实现了锚节点覆盖圆对节点平面的局部覆盖.随着搜索深度的增加,不断减小锚节点布尔感知范围,使得产生的覆盖圆中心点持续逼近节点的实际位置.仿真实验结果表明,基于DFS的布尔搜索得出的覆盖圆中心坐标,使得构建的最小包围盒仅将少量的节点排除在外.通过变换经纬度坐标系,根据提取的坐标最大、最小值所获得的包围盒面积均小于坐标系变换前的最小包围盒面积.同时,在相同低密度节点分布的情况下,基于DFS的布尔搜索代价小于以往的全覆盖方法.。
离散点云最小包围圆求解
离散点最小包围圆求解近年来激光雷达技术去得了快速的发展,由于它在数据上又精确度高,速度快,能够快速展现出地物原貌等特点,对于海量的数据我们可以通过简化为数学模型,进而确定地物的中心点。
点云数据在树木,电杆等地物的提取中,树木电杆的点云并不是无关的,而是具有高度的相关性,他们的投影可以看成平面的不规则图形,通过求取最小包围圆的中心和半径,进而判断出电杆和树木的中心位置,而这个过程就可以转化为离散点求最小包围圆的问题了。
在平面离散点数据中,树木和电杆的离散点急可以近似的看成一个类似圆的图形,通过求取圆形的中心就可以近似确定树木和电杆的中心达到获得地物中心点的目的。
目前,通用的做法就是根据最小二乘原理求出近似中心,再以此为近似值进行精确求取圆心坐标。
目前典型算法主要有Mark de berg的随机增量算法:1.随机打乱点集中的所有点的顺序2.以序列中前两个点构造最小包围圆d3.一次搜索其余的点,若某个点v在d外,则重新构造最小包围圆d’,是d’包含d中的所有点且以v为边界点。
重复执行第三步,直到求出最小包围圆。
随机增量算法,一般点是有序的,故打乱点顺序也需要耗费时间,然后构造圆并进行判断,满足在圆内是排除这些点,再根据剩下的点生成最小包围圆再一次判断,这个方法构造的包围圆相当于点集中距离最远的点形成的最小包围圆。
汪卫最远点优先渐进算法:1.在点集中任取三个点:A,B,C;2.以这三个点构造最小包围圆D;3.在点集p中查询距离D的圆心最远的点v;若v在D内则算法终止;否则4.在{A,B,C,D}中选取3个点,构造包含这四个点的最小包围圆D’,转至第二步,其中选取的这3个点尽可能是边界上的点。
这个算法第一步任取三个边界点可以用凸包求出边界点,然后进行构造最小包围圆,任取三个点可以改为任取两个点,因为根据凸包的性质,做小包围圆的边界肯定包含凸包的定点,然后只要判断剩下的点时候在圆内,如果在则终止算法,不在则根据新点和圆心重新构造最小包围圆Frank Nielsen对偶决策算法:1.计算所有点在x轴上的投影区间[min x , max x];2.计算所有点到第一个点的距离最大值d1;3.以r=3d1/4为初始半径,以ε=d1ε0/8为误差控制,搜索区间为[max x-r ,min x+r]构造对偶决策误差,并进行迭代求解。
最小包围球算法
最小包围球算法
最小包围球算法是一种用于找到一组点集的最小包围球的算法。
最小包围球是指包围给定点集的最小半径的球。
算法步骤如下:
1. 初始化一个球的中心和半径,将其置为一个初始点。
2. 对于点集中的每个点:
a. 如果该点在当前最小包围球内,则跳过该点。
b. 否则,将球的中心移到该点,并更新球的半径。
3. 将上述步骤重复多次,直到找到最小包围球。
4. 返回最小包围球的中心和半径。
最小包围球算法的复杂度为O(n),其中n是点集中的点数量。
算法的关键在于通过选择球的中心点和半径的方式来逐步缩小包围球的范围。
最小包围圆算法
最小圆覆盖是数学中的一个算法问题,研究如何寻找能够覆盖平面上一群点的最小圆。
这个问题在一般的n维空间中的推广是最小包围球的问题,即寻找能覆盖n维空间中某个点集的最小球。
最小圆覆盖问题最早由十九世纪的英国数学家詹姆斯·约瑟夫·西尔维斯特在1857年提出。
最小圆覆盖也是运筹学中设施选址问题的一种。
广义的设施选址问题研究的是当已知一些目标点(仓库、销售终端、供应商等等)的位置时,求满足与这些目标点的距离相关的点的某些极值。
最小圆覆盖可以看作是研究“到一些点的距离之最大值最小的点”的问题。
现有的算法可以在线性时间内计算最小圆覆盖或最小包围球的问题。
物体表面采样数据近似最小包围盒快速求解
[ 摘要 ] 出一种改进 的模型表面点云的近似最小包围盒求解方法, 提 该方法首先构建模 型表面采样数据的动 态 空间索引结构, 依据点云特 征型 面的曲率在保持 型面特征的基础上对原始数据进行精 简, 采用均值漂移算 法得 到新 的模式点集进行二次精 简, 计算精 简后数据 的凸包, 利用 0 R uk o re提 出的凸多面体 的最 小包围盒求解算 法获得凸 包的最小 包围盒并确定局部 坐标 系. 利用局部坐标 系求解原始点云数据的近似 最小包围盒 , 可在满足 最小包围盒体积精度的同时提高算法的运行 效率 . 能有效处理各种复杂型面的点云数据的最 小包围盒快速求
[ b tat Anaclr igagrh f p rxm t mii m bu dn o r a pe aao r c r oe . i t ,a A src] ce a n l i m o poi a nmu o n i bxf m lddt f uf ei po sd Frl et ot a e g os s a s p sy
d n mi p t li d x s u t r ft e s atr d p i t wa sa l h d w t {S t e h n t e s at r d p i t we e sr a y a c s a i n e t cu e o c t e on s a r h e se tb i e i R s h - r .T e h c t e on s e e r te m— l e a e n c r au e o h o a U rc n h a s i lo t m.T e mi i m b u d n o s s le sn h i d b s d o u v t r f t e l c lS t e a d t e Me n— h f ag r h n a t i h n mu o n i g b x wa ov d u i g t e O Rn r e Sag rtm t h o v x h l o o n sa d t e lc lc o d n t y t m sd t r n d a e s me t . h o u k lo i h wi t e c n e u l fp i t n h o a o r i a e s se wa ee mi e t h a i h t me T e b x o f t e o gn lp i t wa o v d i h o a o r i ae s se h r ia on s i s s le n t e l c lc o d n t y tm.I i p o e h tt i t o a mp o e t e mi i m o n i g t s r v d ta h s me h d c n i r v h n mu b u d n b x e ce t n n u e t e a c r c ft e s a tr d p i t wi o lx s ra e o f in l a d e s r h c u a y o c t e on s t c mp e u c . i y h e h f
城市轨道交通环线清分模型优化研究
运营管理李春晓,杨慧芳,孙 诗,李卫星,刘 超(武汉地铁运营有限公司,湖北武汉 430000)第一作者:李春晓, 女, 工程师引用格式:李春晓, 杨慧芳, 孙诗, 等. 城市轨道交通环线清分模型优化研究[J]. 现代城市轨道交通, 2024(04): 113-119. LI Chunxiao, YANG Huifang, SUN Shi, et al. Research on the optimization of circular line clearing and the sharing model of urban railtransit[J]. Modern Urban Transit, 2024(04): 113-119.DOI:10.20151/ki.1672-7533.2024.04.0171 引言随着武汉市轨道交通线网规模日益扩大,截至2023年12月,已开通运营线路达到12条,总里程达到487.77 km ,车站总数达300座。
12号线作为第一条环形线路的即将开通,以及PPP (政府和社会资本合作模式)多运营主体运营模式的预期实施,对票务清分系统的精准性提出更高的要求。
本文结合线网实际情况,对既有清分算法进行优化研究,旨在提高客流和收益清分的精准性,同时也有助于更准确地掌握线网客流的时空分布特征,对超大规模网络化运营下的行车组织也具有摘 要:随着城市轨道交通线网规模不断扩大,乘客的出行路径选择日益多样,城市轨道交通运营也由单一主体向多运营主体发展。
这些变化都对清分收益和客流精准性提出更高的要求。
文章以武汉市轨道交通线网为研究对象,通过对既有清分模型进行适用性分析,并结合乘客出行行为调查数据,深入探讨换乘便利性、路径迂回因素以及环形线路如何影响乘客路径的选择。
研究提出一种迂回路径的识别方法,优化清分模型中有效路径筛选规则,并通过构造换乘便利性函数、迂回因子函数优化路径效用计算方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012年4月图学学报 April 2012第33卷第2期JOURNAL OF GRAPHICS V ol.33 No.2离散点集最小包围圆算法分析与改进李红军1, 2,张晓鹏2(1. 北京林业大学理学院,北京 100083;2. 中国科学院自动化研究所模式识别国家重点实验室&中法联合实验室,北京 100190)摘要:针对平面上的离散点集求取最小包围圆的问题,评述现有算法并给出一种改进算法,称为较远点对定义初始包围圆的增量算法。
首先概述了几条对算法理解和设计有直接影响的最小包围圆性质或判定;然后对求取最小包围圆的随机增量算法、最远点优先渐近算法、对偶决策算法等3种典型算法进行概述和简要分析;再对随机增量算法和最远点优先渐近算法进行改进;最后,以二维区域随机点集、一维共线随机点集和共线有序点集3类数据进行实验对比。
实验结果表明,最远点优先渐近算法是过去3种算法中效率最高的;论文提出的较远点对定义初始包围圆的增量算法大大提高了随机增量算法的时间效率,是该文所列举的方法中最快的算法,并且是一种确定性算法。
离散点集最小包围圆的快速计算有助于碰撞检测和机器人等领域的广泛应用。
关键词:最小包围圆;随机增量算法;最小包围圆性质;计算几何中图分类号:TP 301文献标识码:A 文章编号:2095-302X (2012)02-0034-05Analysis and improvement of smallest enclosing disk algorithm ondiscrete set of pointsLi Hongjun1, 2, Zhang Xiaopeng2( 1. College of Science, Beijing Forestry University, Beijing 100083, China;2. NLPR-LIAMA, Institute of Automation, CAS, Beijing 100190, China)Abstract: For calculating the smallest enclosing disk of a discrete set of points on the planar, three popular algorithms, i.e. the randomized incremental algorithm, the dual decision algorithm and the farthest point first progressive algorithm, are evaluated and an improvement of the randomized incremental algorithm is presented. The new algorithm employs the Axis-Aligned Bounding Boxes of the point set to optimize the initiate enclosing disk, which greatly improves the calculating efficiency. Numerical experiments show that the farthest point first progressive algorithm is the fastest one among the old three algorithms; the new algorithm is a fast and deterministic one, and can be helpful to the applications in computer graphics, facility locations, intelligent robot, and so on.Key words: smallest enclosing disk; randomized incremental algorithm; property of smallest enclosing disk; computational geometry收稿日期:2011-09-29基金项目:国家自然科学基金资助项目(60970093, 60902078, 60872120)作者简介:李红军(1969-),男,湖南郴州人,副教授,博士研究生,主要研究方向为计算机图形学,计算几何。
平面点集的最小包围圆(smallest enclosing disk)问题的提出至少可以追溯至1857年[1]。
只是随着计算机技术的快速发展,点集的最小包围圆应用越来越广泛,比如在工业机器人的设计、碰撞检测、机器学习、计算机图形学等领域中都有应用,研究成果也越来越多。
仅就这个问题的算法设计而言,国内外也有不少文献。
本文对这些现有的典型算法给予简单的介绍并进行分析和比较。
为了避免重述,早期的研究结果可以参考Emo Welzl的有关工作[2]。
1991年,Welzl在这篇文章中对早期的一些研究方法和结果进行了简要评述并提出了新方法。
Welzl用随机增量算法求解平面点集的最小包围圆或椭圆(smallest enclosing ellipse ),并把这个算法推广到高维空间的最小包围球(smallest enclosing ball)、最小包围椭球(smallest enclosing ellipsoid)。
后来的Mark de Berg等作了进一步的改进[3],我们称之为改进的随机增量算法。
2005年,Frank Nielsen等也提出了一个基于对偶决策的、快速的、确定性算法[1],这里称之为对偶决策算法。
2000年复旦大学汪卫等提出了一个离散点集最小包围圆的快速算法,我们称之为最远点优先渐近算法[4]。
这3种算法思路清晰,不失为有代表性的经典算法。
本文将对这3种算法进行分析、比较。
1 离散点集最小包围圆和典型算法1.1 最小包围圆问题问题:对于给定的平面上n个点所组成的一个集合P,求出P的最小包围圆,即包含P中所有点、半径最小的那个圆。
也就是求出这个最小包围圆的圆心位置和半径。
对于这样的问题,为了便于理解各种算法,需要了解一些有关最小包围圆的性质:性质 1 有限点集P的最小包围圆是唯一的。
这里约定,若P中只有一个点v,则最小包围圆是退化的,其半径为0,圆心为点v。
这个定理的详细证明参见文献[2]。
性质 2 非退化最小包围圆可以由2个或者3个边界点定义。
显然,最小包围圆的构成有两种情况:第1种是距离最远的2个边界点定义了最小包围圆的直径。
如图1(a)所示,直径AB定义了这个最小包围圆,其余的点都是包含在这个圆的内部。
这意味着不能仅仅通过求最大三角形的外接圆来计算最小包围圆。
第2种情况是最小包围圆的边界上有3个以上的点,则任意3个边界点为三角形顶点所定义的外接圆确定了这个点集的最小包围圆。
如图1(b) 所示,这个最小包围圆由边界点A、B、C所形成的三角形的外接圆定义。
需要注意的是,边界线上可以有3个以上的点,只是任意3个边界点定义的外接圆是相同的。
因此,求点集P的最小包围圆等价于求这些边界点的最小包围圆。
(a)(b)图1 最小包围圆由2个或3个边界点确定性质 3 点集P中,距离最大的2个点A、B不一定都在边界上,但是必有d AB≥,这里d 为点集P的最小包围圆的直径,AB为线段AB 的长度。
如图2所示,点集P的最小包围圆由等边三角形ABC所定义,但是线段AD却是最大的边。
显然,线段AD为直径的圆小于点集P的最小包围圆。
引理 1 若{}i p,,p,pP21=的最小包围圆为i D,若点ii Dp∈+1,则点集{}1+=′i pPP∪的最小包围圆ii DD=+1;若点ii Dp∉+1,则点1+i p必定是在点集P′的最小包围圆1+i D的边界线上。
证明见文献[3]。
图2 最长线段不一定是最小包围圆直径性质 4直角三角形或钝角三角形的3个顶点的最小包围圆是以最长边为直径的圆;锐角三角形3个顶点的最小包围圆是三角形的外接圆。
A B第2期 李红军等:离散点集最小包围圆算法分析与改进 ·35·证明:(1)设直角三角形或钝角三角形ABC 的最大边为AB,则A、B两点确定的最小包围圆是以AB为直径的圆,则点C在圆上或者圆内,如图3(a)所示。
根据引理1的前一部分知,A、B、C3点确定的最小包围圆还是以AB为直径的圆。
(2)对于锐角三角形ABC,由于点C不属于以AB为直径的圆,因此,根据引理1的后一部分知点C在A、B、C三点确定的最小包围圆D ABC的边界上;同理B和C也在最小包围圆D ABC 的边界上。
不共线3点确定1个圆,所以D ABC 是A、B、C的外接圆,见图3(b)。
上述性质对于理解、构造或者实现最小包围圆算法有一定帮助。
下面对几个常用的、经典的算法思想进行简要介绍和分析。
(a)(b)图3 不共线三点确定的最小包围圆1.2 改进的随机增量算法Mark de Berg曾给出一种比较典型易于理解的随机增量算法(randomized incremental algorithm, 简记为RIA)[3]。
其主要思想是:第一,随机打乱点集中所有点的顺序;第二,以序列中前2个点构造最小包围圆D;第三,依次搜索其余的点,若某个点v在D外,则重新构造最小包围圆D',使D'饱含D中的所有点且以v为边界点。
重复执行第3步,直到求出最小包围圆。
这个算法的关键在于第3步,以v作为边界点构造最小包围圆,从而增加了构造约束,减少了自由度。
该算法的内存耗用少,速度快。
在随机点集的条件下,期望运行时间为O(n)。
但是,若原始输入序列是有序的,则打乱点集的顺序也是需要耗费时间的。
1.3 最远点优先渐近算法2000年汪卫等提出一种准确且快速的点集最小包围圆算法[4],即最远点优先渐近算法,简记为DFAA。
该算法的主要步骤是:第一,在点集中任取3个点:A、B、C;第二,以这3个点构造最小包围圆D;第三,在点集P中查询距离D 的圆心最远的点v;若v在D内则算法终止;否则,第四,在{A,B,C,v}中选取3个点,构造包含这4个点的最小包围圆D',转第二步骤,其中选取的这3个点尽可能是边界上的点。
该算法实际上是一个确定性算法。
主要的困难和时间耗费在第四步。
事实上,根据引理1,这一步是可以改进的,因为新加入的点v必定是新的最小圆的边界点。
于是这一步可以修改为:以v为边界点,并在{A,B,C}中选取2个点,构造包含这4个点的最小包围圆D',转第二步骤,其中选取的这3个点尽可能是边界上的点。