- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法输油管道问题代码及分析
基于分治法的输油管道问题
温杰
摘要 本实验,我们通过综合应用算法解决了实际生活中的输油管道问题,通过比较各种算法的时间复杂度以及解决效率,采用了算法中以分治法为基础的随机划分来解决问题,利用随机选择方法找到各个油井的中位数,通过讨论论证了中位数即最优管道位置。
信息奥赛中一个问题有多个算法解决,通过比较不同算法解决问题的效率,选择最高效的一个。在输油管道问题这个实验中得到运用。
关键词 算法设计,分治法,随机划分,随机选择,中位数
1 实验内容
某石油公司计划建造一条由东向西的主输油管道。该管道要穿过一个有n口油井的油田。从每口油井都要有一条输油管道沿最短路经(或南或北)与主管道相连。如果给定n口油井的位置,即它们的x坐标(东西向)和y坐标(南北向),应如何确定主管道的最优位置,即使各油井到主管道之间的输油管道长度总和最小的位置?证明可在线性时间内确定主管道的最优位置。
给定n口油井的位置,编程计算各油井到主管道之间的输油管道最小长度总和。
2 解题思想
设给定的n口油井的位置坐标为:x[0],y[0]),(x[1],y[1]),(x[2],y[2]),…(x[n-1],y[n-1])。
由于平面上的距离满足三角不等式,故每个油井到主管道的最短距离就是该油井到主管道的垂直距离。由此可知,所述问题可表述为求平面上的一条直线到若干点的最短路径,通过总体设计中的解题思路我们论证得出只要该条直线处在所有点的中间位置就能保证最后的距离最短。
根据题意,给定了n个油井的位置,因此首先读取每个油井的坐标,再在这个基础上对各个油井的y坐标进行排序,通过随机选择算法找到它们的中位数,即可得到求出最短距离。
求取中位数
求出最短距离
随机划分
油田位置
3 问题分析
如何确定主管道的最优位置?
由于主管道是由东向西,显然,主管道的铺设位置只和各油井位置的y坐标有关,设各个油井的y坐标为:y[i] ,主管道的y坐标为:dy,各油井到主管道之间的输油管道长度总和应是:sum ,要使这个值最小,主管道的位置y坐标应是各个油井y坐标的中位数(一组数据按从小到大的顺序依次排列,处在中间位置的一个数(或??中间两个数据的平均数)。
证明(反证法):
①油井数目为奇数:假设主管道的最优位置y坐标值为y_val,不是各个油井位置y坐标的中位数y_median,我们可以假设y_valy_median(不失一般性),y坐标小于y_val的油井数目为m,y坐标大于y_val的油井数目为n,显然有mn。当我们将主管道位置下移距离x时(假设此时仍满足y_val=y_median),各油井到主管道之间的输油管道长度总和应增加nx-mx,显然nx-mx0(mn),即存在一个比y_val更优的位置使得各油井到主管道之间的输油管道长度总和更小,这与假设矛盾。
②油井数目为偶数:证明情况同奇数情况。不同的是主管道的最优位置y坐标可以是各油井y坐标的两个中位数之间的任一整数。
4 算法思想
分治算法的基本思想是将一个规模个为N的问题分解为K规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。
分治算法是很多高效算法的基础,如 HYPERLINK /wiki/55@b;S%18 排序算法( HYPERLINK /wiki//%5C;I55@b 快速排序、 HYPERLINK /wiki/)Y%22%1255@b 归并排序)、HYPERLINK /wiki/(%251%12B!T++傅立叶变换( HYPERLINK /wiki//%5C;I(%251%12B!T++ 快速傅立叶变换)。
快速排序是由HYPERLINK /wiki/%06%7C4Q%11%14+d%10%06东尼·霍尔所发展的一种 HYPERLINK /wiki/55@b;S%18 排序算法。在平均状况下,排序 n 个项目要HYPERLINK /wiki/$cOk*5Ο(n lg n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n lg n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实作出来,且在大部分真实世界的资料,可以决定设计的选择,减少所需时间的二次方项之可能性。
在此题中,我们考虑到时间复杂度,对于中位数这类选择问题的解决,不一定要先排序然后遍历(事实上这是比较慢的做法,排序的时间复杂度决定了它不可能比O(nlgn)快。通常选择问题只是要求知道第i大/小的元素,所以我们可以将本实验的问题当成排序算法的简化。我们就以上述的快速排序为例,我们以划分的区间判断,选择问题我们只追究可能出现问题解的一个区间,而快速排
您可能关注的文档
- 威特单体泵教材1.pdf
- 射频电容式连续测量物位计.pdf
- 布置设计2.pdf
- 开博尔播放机连接方式.pdf
- 开尔文连接.doc
- 循环水处理设备项目可行性研究报告(目录).doc
- 常见的接线方法.pdf
- 心肌梗死后抑郁大鼠心室肌细胞L型钙电流的动力学改变_阮兵.pdf
- 手机连接电脑蓝屏解决方法.pdf
- 提高连续式控制气氛热处理炉炉温均匀性.pdf
- 浙江大学《大学英语》2025学年第二学期期末试卷(A卷).pdf
- 浙江农林大学暨阳学院《大学英语》2024-----2025学年期末试卷(A卷).pdf
- 温州医科大学仁济学院《C语言程序设计》2024-----2025学年期末试卷(A卷).pdf
- 基于springboot的个人博客网站-毕业论文.docx
- 基于springboot的在线云音乐系统的设计-毕业论文.docx
- 基于SpringBoot心理咨询预约管理平台的设计与实现-毕业论文.docx
- 基于springboot的宠物领养管理系统-毕业论文.doc
- 基于Spring Boot的酒店客房管理系统的设计与实现-毕业论文.doc
- 基于Spring Boot+Vue的水果商城设计与实现-毕业论文.docx
- 基于Springboot的宠物领养系统的设计与实现-毕业论文.docx
最近下载
- 中考英语词汇表-初中英语词汇表3500词.pdf VIP
- 导热硅脂TLZ-304测试报告.pdf VIP
- 红餐产业研究院-火锅产业发展报告2025.pdf VIP
- 人民大2024教学课件-徐世勇人员素质测评第2版PPT第10章.pptx VIP
- 中国成人中枢神经精神狼疮临床实践专家共识(2024版).pptx VIP
- 17J008 挡土墙(重力式、衡重式、悬臂式)(最新).pdf VIP
- 软单元测试计划模板.docx VIP
- T∕CASSSP 0003-2025 高等学校重大科技基础设施项目文件归档与档案管理规范.docx VIP
- 人民大2024教学课件-徐世勇人员素质测评第2版PPT第08章.pptx VIP
- TZS 0628-2024 生物安全二级实验室门设置技术规范(水印版).pdf VIP
原创力文档


文档评论(0)