最接近点对问题_第1页
最接近点对问题_第2页
最接近点对问题_第3页
最接近点对问题_第4页
最接近点对问题_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、三维空间最接近点问题三维空间最接近点问题v问题:给定平面上n个点,找其中的一对点,使得在n个点所组成的所有点对中,该点对间的距离最小。v说明:严格来讲,最接近点对可能多于一对,为简便起见,我们只找其中的一对作为问题的解。一个简单的做法是将每一个点与其他n-1个点的距离算出,找出最小距离的点对即可。该方法的时间复杂性是T(n)=n(n-1)/2+n=O(n2),效率较低。已经证明,该算法的计算时间下界是(nlogn)。分治法解决二维空间最接近点问题分治法解决二维空间最接近点问题选取一垂直线选取一垂直线l:x=m来作为分割直线。其中来作为分割直线。其中m为为S中各中各点点x坐标的中位数。由此将坐标

2、的中位数。由此将S分割为分割为S1和和S2。递归地在递归地在S1和和S2上找出其最小距离上找出其最小距离d1和和d2,并设,并设d=mind1,d2,S中的最接近点对或者是中的最接近点对或者是d,或者是某个,或者是某个p,q,其中,其中pS1且且qS2。v第一步筛选:如果最近点对由第一步筛选:如果最近点对由S1中的中的p3和和S2中的中的q3组成,则组成,则p3和和q3一定在划分线一定在划分线L的距离的距离d内。内。v第二步筛选:考虑第二步筛选:考虑P1中任意一点中任意一点p,它若与,它若与P2中的点中的点q构成最接近点对的候选者,则必构成最接近点对的候选者,则必有有distance(p,q)

3、d。满足这个条件的。满足这个条件的P2中的点一定落在一个中的点一定落在一个d2d的矩形的矩形R中中R中的点具有稀疏性中的点具有稀疏性uP2中任何中任何2个个S中的点的距离都不小于中的点的距离都不小于d。由。由此可以推出矩形此可以推出矩形R中最多只有中最多只有6个个S中的点。中的点。u在分治法的合并步骤中最多只需要检查在分治法的合并步骤中最多只需要检查6n/2=3n个候选点对!个候选点对!R中最多只有6个S中的点证明证明:将矩形R的长为2d的边3等分,将它的长为d的边2等分,由此导出6个(d/2)(2d/3)的矩形。 若矩形R中有多于6个S中的点,则由鸽舍原理易知至少有一个(d/2)(2d/3)

4、的小矩形中有2个以上S中的点。 设u,v是位于同一小矩形中的2个点,则222223625) 3/2()2/()()()()(dddvyuyvxuxdistance(u,v)d。这与d的意义相矛盾。* 鸽舍原理(也称抽屉原理)鸽舍原理(也称抽屉原理)把把n+1个球,放入个球,放入n个抽屉,则一定有一个抽屉内至少有个抽屉,则一定有一个抽屉内至少有2个球。个球。P2中与点中与点p最接近这最接近这6个候选点的纵坐标与个候选点的纵坐标与p的纵坐标相差不超过的纵坐标相差不超过d.因此,若将因此,若将P1和和P2中所有中所有S中点中点按其按其y坐标坐标排好序排好序,则对,则对P1中所有点,对排好序的点列中所

5、有点,对排好序的点列作一次扫描,就可以找出所有最接近点对的候作一次扫描,就可以找出所有最接近点对的候选者。对选者。对P1中每一点最多只要检查中每一点最多只要检查P2中排好中排好序的相继序的相继6个点。个点。如何确定要检查哪6个点double cpair2(S) n=|S|; if (n 2) return ;1、m=S中各点中各点x间坐标的中位数间坐标的中位数; 构造构造S1和和S2; /S1=pS|x(p)m2、d1=cpair2(S1); d2=cpair2(S2); 3、dm=min(d1,d2);4、设、设P1是是S1中距垂直分割线中距垂直分割线l的距离在的距离在dm之之内的所有点组成

6、的集合;内的所有点组成的集合; P2是是S2中距分割线中距分割线l的距离在的距离在dm之内所有之内所有点组成的集合;点组成的集合; 将将P1和和P2中点依其中点依其y坐标值排序;坐标值排序; 并设并设X和和Y是相应的已排好序的点列;是相应的已排好序的点列;5、通过扫描、通过扫描X以及对于以及对于X中每个点检查中每个点检查Y中与中与其距离在其距离在dm之内的所有点之内的所有点(最多最多6个个)可以完成可以完成合并;合并; 当当X中的扫描指针逐次向上移动时,中的扫描指针逐次向上移动时,Y中的中的扫描指针可在宽为扫描指针可在宽为2dm的区间内移动;的区间内移动; 设设dl是按这种扫描方式找到的点对间

7、的最是按这种扫描方式找到的点对间的最小距离;小距离;6、d=min(dm,dl); return d;O(n)2T(n/2)常数时间O(n)常数时间O(n)复杂度分析v、用了O(n)时间;v用了2T(n/2)时间v、用了常数时间v在预排序的情况下用时O(n) nnOnTnnnOnTOnTlog44)()2/(2) 1 ()(选取一垂平面选取一垂平面l:y=m来作为分割平面。其中来作为分割平面。其中m为为S中各中各点点y坐标的中位数。由此将坐标的中位数。由此将S分割为分割为S1和和S2。递归地在递归地在S1和和S2上找出其最小距离上找出其最小距离d1和和d2,并设,并设d=mind1,d2,S中

8、的最接近点对或者是中的最接近点对或者是d,或者是某个,或者是某个p,q,其中,其中pS1且且qS2。分治法解决三维空间最接近点问题分治法解决三维空间最接近点问题v第一步筛选:如果最近点对由第一步筛选:如果最近点对由S1中的中的p3和和S2中的中的q3组成,则组成,则p3和和q3一定在划分平面一定在划分平面L的距离的距离d内。内。v第二步筛选:考虑第二步筛选:考虑P1中任意一点中任意一点p,它若与,它若与P2中的点中的点q构成最接近点对的候选者,则必构成最接近点对的候选者,则必有有distance(p,q)d。满足这个条件的。满足这个条件的P2中的点定落在一个中的点定落在一个d2d2d的长方体的

9、长方体R中中u重要观察结论:重要观察结论:P2中任何中任何2个个S中的点的距离中的点的距离都不小于都不小于d。由此可以推出长方体。由此可以推出长方体R中最多只有中最多只有24个个S中的点。中的点。u在分治法的合并步骤中最多只需要检在分治法的合并步骤中最多只需要检24n/2=12n个候选点对。个候选点对。R中最多只有24个S中的点distance(u,v)d。这与d的意义相矛盾。由d的意义可知, P2 中任何2个S中的点的距离都不小于d. 由此可以推出长方体R中最多只有24个S 中的点. 事实上,我们可以将长方体C的长为2d的两条边分别3等分和4等分,将它的长为d的边2等分, 由此导出24个大小

10、相等的( d /2) ( d /2) (2d /3) 的小长方体. 如图3所示:若长方体C中有多于24个S中的点,则由鸽舍原理易知至少有一个( d /2) ( d /2) (2d /3) 的小长方体中有2个以上S中的点. 设u, v是这样2个点,它们位于同一小长方体中, distance ( u, v)22222221817)3/2()2/()2/()()()()()()(ddddvzuzvyuyvxux为了确切地知道对于P1 中每个点p最多检查P2 中的哪24个点,我们可以将点p和P2 中所有S2的点投影到平面P: y = m上. 由于能与p点一起构成最接近点对候选者的S2 中点一定在长方体

11、R中,所以它们在平面P上的投影点与点p在P上投影点的距离小于d. 由上面的分析可知, 这种投影点最多只有24个. 因此,若将P1 和P2 中所有S的点依次按其x坐标和z坐标排好序,则对P1 中任意点p而言,对已经按照x坐标和z坐标排好序的点列作一次线性扫描,就可以找出所有最接近点对的候选者. 设点q ( x, y, z) 为P2 中可以与P1 中的一点p ( x0 , y0 , z0 ) 构成候选点对的排好序的24个点中的一点,则满足x ( x0 - d, x0 + d) , z ( z0 - d, z0 +d) ,即投影点在以p的投影点为中心的2d 2d的正方形区域中的点是我们要考察的候选点

12、. 这就意味着我们可以在O ( n) 时间内完成分治法的合并步骤.如何确定要检查哪24个点?double spair (S ) n =| S | ; /| S | 表示S中点的个数3 /if ( n 2) return ;1. m = S中各点y坐标的中位数;利用平面P: y = m 划分构造子集S1 和S2 ;S1 = p S | y ( p) m 2. d1 = spair (S1 ) ; d2 = spair (S2 ) ;3. dm = min ( d1 , d2 ) ;4. 设P1 是S1 中距垂直分割面P的距离在dm之内的所有点组成的集合; P2 是S2 中距垂直分割面的距离在dm 之内的所有点组成的集合; 将P1 和P2 中点依其依次按照其x坐标值和z坐标值排序; 并设X1、X2 是P1、P2 依据x坐标值排好序的点列; Z1、Z2 是X1、X2 再 依据z坐标值排好

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论