算法分析与复杂性理论实验报告求最近点对的问题_第1页
算法分析与复杂性理论实验报告求最近点对的问题_第2页
算法分析与复杂性理论实验报告求最近点对的问题_第3页
算法分析与复杂性理论实验报告求最近点对的问题_第4页
算法分析与复杂性理论实验报告求最近点对的问题_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、深 圳 大 学 实 验 报 告 课程名称: 算法分析与复杂性理论 实验项目名称: 实验二 分治法求最近点对问题 学院: 计算机与软件学院 专业: 软件工程 指导教师: 杨烜 报告人:文成 学号:2150230509 班级: 15级软工学术型 实验时间: 2015-10-22 实验报告提交时间: 2015-10-24 教务部制实验目的与要求:实验目的:(1)掌握分治法思想。(2)学会最近点对问题求解方法。实验要求1.在blackboard提交电子版实验报告,注意实验报告的书写,整体排版。2.实验报告的实验步骤部分需详细给出算法思想与实现代码之间的关系解释,不可直接粘贴代码(直接粘贴代码者视为该部

2、分内容缺失)。3.实验报告样式可从/guide.aspx表格下载学生适用在校生管理实践教学实验:深圳大学学生实验报告)4.源代码作为实验报告附件上传。5.在实验课需要现场运行验证。实验内容:1.对于平面上给定的N个点,给出所有点对的最短距离,即,输入是平面上的N个点,输出是N点中具有最短距离的两点。2.要求随机生成N个点的平面坐标,应用蛮力法编程计算出所有点对的最短距离。3.要求随机生成N个点的平面坐标,应用分治法编程计算出所有点对的最短距离。4.分别对N=100,1000,10000,100000,统计算法运行时间,比较理论效率与实测效率的差异,同时对蛮力法

3、和分治法的算法效率进行分析和比较。5.利用Unity3D 输出分治算法中间每个步骤的计算结果,并增设help按钮,详细解释算法思想。算法思想提示1.预处理:根据输入点集S中的x轴和y轴坐标进行排序,得到X和Y,很显然此时X和Y中的点就是S中的点。2.点数较少时的情形3.点数|S|3时,将平面点集S分割成为大小大致相等的两个子集SL和SR,选取一个垂直线L作为分割直线,考虑XL和XR,YL和YR,这里还需要排序吗?4.两个递归调用,分别求出SL和SR中的最短距离为dl和dr。5.取d=min(dl, dr),在直线L两边分别扩展d,得到边界区域Y,Y是区域Y中的点按照y坐标值排序后得到的点集,Y

4、又可分为左右两个集合YL和YR6.对于YL中的每一点,检查YR中的点与它的距离,更新所获得的最近距离实验过程及内容:(实验代码已作为附件提交,名为“算法实验二.cpp”)当点的数量小于3时,直接计算,当点的个数大于3时,采用分治法。当N=1时当N=2时只有两个点,最近点对就是这两个点测试数据为(1,1)(2,2)预期结果为d=1.414与预期结果相同使用蛮力法求最近点对,核心代码如下(计算两点之间的距离,分别将每个点与其它点的距离求出来,找出最近点距离)当N3时,使用分治法的情况核心代码如下:当N=6时,给定一组测试数据测试数据与与预期结果相同。下面随机生成N个点的平面坐标,求解最近点对。并计

5、算时间产生随机数代码:计算时间代码分治法例举:数据处理分析:扩大N的规模做测试n10100100010000100000蛮力法1秒9秒57秒分治法1秒9秒30秒由以上数据可知,随着N的增大,分治法效率比蛮力法效率越来越高。蛮力法求解最近对问题的过程是:分别计算每一对点之间的距离,然后找出距离最小的那一对,为了避免对同一对点计算两次距离,只考虑ij的那些点对(Pi, Pj)。 其实也就是组合的问题,即从n个点中选取两个点的所有组合情况的问题,共有(n*(n-1))种情况。因此时间复杂度为:治法求解含有n个点的最近对问题,其时间复杂性可由下面的递推式表示:合并子问题的解的时间f(n)O(n),根据通用分治递推式可得T(n)=O(nlog2n)。实验结论与体会:分治法的思想就是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。递归地解这些子问题,然后将各个子问题解合并得到原问题的解。通过本次试验我对分治法有了更深的了解。利用分治法可以将问题简化,这有助于我们在实际中解决一些复杂性较大的问题,提高程序的运行效率。指导教师批阅意

温馨提示

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

评论

0/150

提交评论