2022年随机增量算法 .pdf

上传人:H****o 文档编号:34233458 上传时间:2022-08-15 格式:PDF 页数:9 大小:212KB
返回 下载 相关 举报
2022年随机增量算法 .pdf_第1页
第1页 / 共9页
2022年随机增量算法 .pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年随机增量算法 .pdf》由会员分享,可在线阅读,更多相关《2022年随机增量算法 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第 1 页随机增量算法解轶伦【摘要】随机增量算法是计算几何中一个重要的算法,它对理论知识要求不高, 编程复杂度低,而应用范围却十分广大。 本文通过两个经典例题, 详细阐述了本人一步一步理解随机增量算法的过程, 最后是本人对随机增量算法的总结以及思考过程中的感悟。【关键字】增量算法随机化计算几何【目录】摘要. 1关键字 . 1目录. 1引言. 2正文. 2例一 监视摄像机 . 2问题描述 . 2问题分析 . 3算法描述 . 5复杂度分析 . 5例二 最小外接圆 . 6问题描述 . 6算法一 . 6算法二 . 6算法三 . 7总结. 7参考文献 . 7附录. 7名师资料总结 - - -精品资料欢迎

2、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 第 2 页【引言】增量法( Incremental Algorithm)的思想与第一数学归纳法类似,它的本质是将一个问题化为规模刚好小一层的子问题。解决子问题后加入当前的对象。写成递归式是:ngnTnT1增量法形式简洁,可以应用于许多几何题目中。增量法往往结合随机化,以避免最坏情况的出现。【正文】例一 监视摄像机(CTSC 1998 第一试)问题描述一个著名的仓库管理公司ERKOI请你的公司为其安装一套闭路监视系统。

3、由于SERKOI 财力有限,每个房间只能安装一台摄像机作监视用,不过它的镜头可以向任意方向旋转。首要的问题是确定摄像机的位置以确保房间的每一个角落都能被它监视到。例如,图一和图二是某两个房间的示意图,每个房间用一个封闭的多边形表示,图中的每条边表示一面墙。 对于图一所示的房间, 我们将摄像机安置在标黑点的位置就能满足要求; 而对于图二所示的房间, 无论将摄像机安置在那里都无法使其满足要求。写一个程序, 对于给定的房间示意图, 判断是否有可能在这个房间中的某一位置安置一台摄像机,使其能监视到这个房间的任何一个角落。输入名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -

4、- - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 第 3 页输入文件包含一个或多个房间示意图的描述信息。每个描述信息的第一行是一一个正整数 n(4=n=100),表示该房间的示意图为一个n 边形。以下 n 行每行包括用空格符隔开的两个整数x,y, 按顺时针方向依次为这个n 边形的 n 个顶点在直角坐标系中的的横纵坐标,x,y, 的范围在: -1000 至 1000 之间。若 n 等于 0 则表示输入文件结束。输出对于每个房间,首先输出一行该房间的编号信息“Room k:”,k 按照输入次序从 1 开始计数。

5、紧接着一行是判断结果, 如果摄像机在房间中某处安置能满足条件,输出:“surveillance is possible 。”,否则输出“ surveillance is impossible 。” 每两个房间的输出结果之间用一个空行隔开。申明 :下面的分析与算法描述中, 半平面、直线、不等式、向量都可视为等价的。问题分析读完题目给人的第一印象是求半平面相交,由于题目按顺时针方向给出顶点,所以我们可以用向量来表示半平面:如图,如果点P 在边 ViVi+1内侧,那么从ViVi+1 转到 ViP 为顺时针,所以它们的叉积小于等于 0,于是我们可以很容易地得到每个半平面的代数形式。但如果直接做半平面这

6、令人感觉杀鸡用牛刀,因为问题只要求判断是否存在可行区域,并不要求具体解的情况,因此我们应该考虑更简单的方法。另一个直观的想法是, 枚举网格上的点, 看能否满足不等式组, 但这显然不会是一个有效算法。 上面的算法看上去 “很笨” ,但是会让我们产生一种改进的冲动。枚举网格上的点太盲目, 完全没有利用已知条件。 再来仔细分析一下问题, 半平面相交最后得到的一定是个凸多边形,而我们就是要找到一个点, 这个点属于这个凸多边形,那么我们可不可以加强一下命题,只考虑一些特殊的点呢?显然,凸多边形的顶点就是一类很特殊的点,它们拥有内部点所有的性质, 不同之处在于,它们必是两条线的交点。那么我们可以求出所有交

7、点,再逐个判断。如果就此打住,我们可以得到一个)(3nO的算法,足以将1998 年国家队选拔的这道题解决了,但你看到这篇文章时,起码2009 年已经过了一半,倘若此题重现江湖,你难道指望它还像上个世纪时那么弱小吗?新世纪,强算法, 我们还得继续思考。我们求出了所有的交点,之后逐一判断,这是不是很浪费呢?如下图,显然 A 和 D已经被排除了,只有BC之间的区域是有效的,也就是说交名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 第

8、4 页点中只有 B 和 C 是有效的。于是我们很自然地想到,每条直线,最终都只有2个交点是有效的,那么我们最终只需要判断2n个点是否满足不等式组。到这里我们已经得到了一个)(2nO的算法了,似乎已经很优了,但实际上仍有更优的算法。我们一直是处理完所有直线后再判断,如果我们每处理完一条直线就判断呢?假设前k 条直线的交点中有一个点P 满足前 k 个不等式,那么考虑第k+1 条线时,先看点 P在不在第 k+1 个半平面上。如果在,那么 P就是满足前 k+1个不等式的点,如果不在,那么无非两种情况。图 A中,第 k+1 条线与前 k 条线交点中,必有满足前k+1个不等式的点。图 B显然是无解的情况,

9、此时第k+1 条线必被前 k 条线截空。如果按照这个思路写出程序,似乎比刚才的更优了,因为这已经不是严格的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 第 5 页)(2nO的算法了, 但是这个算法的最坏情况仍是2n的,在理论上并不必上个想法优。可是凭我们的直观感觉, 达到最坏情况的可能性微乎其微,在平均情况下这个算法应该是很优的。 这段话是不是很熟悉?在哪里听过?快排!我们只要像快排一样加入一句随机化,就可以得到一个期望效率)

10、(nO的算法了。算法描述 随意找一点作为初始解,并用随洗牌法打乱半平面顺序。 如果没有型的半平面可以加入,输出有解。否则转。 加入一个新的半平面,如果当前点在半平面上,转,否则转。 对于新加入的第 k+1 条直线,用前个半平面去截, 如果截后有剩余, 保留剩余部分 最下方 一点,转,否则输出无解。复杂度分析用 p(i )表示第 i 个半平面加上去时最优点发生变化的概率,则总的时间复杂度的期望为nipiO1)(*)(我们可以想到, 一个最下方的点是由两个半平面相交得到的,而在加上第 i 个半平面后,最下方的点发生变化, 那么第 i 个半平面必是确定最下方点的两个半平面之一,由于前 i 个个半平面

11、的顺序是随机的, 所以第 i 个半平面是确定该点的两个半平面之一的概率是i2( 这就是选最下方点的原因 ) 。 因此总的时间复杂度的期望为niiiO12*)(=)(nO虽然只是在最后加入了随机化,但是却把时间复杂度降低了一个数量级,并且几乎没有增加编程复杂度,这可以说是最合算的优化了。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 第 6 页例二 最小外接圆问题问题描述给定平面上一组点,求一个最小的圆,包含所有这些点。算法一张角

12、法首先,易知至少有两个点在圆上(除非总共只有一个点)。我们首先枚举这两个点(设为 A, B) 。初中的平面几何知识告诉我们对于同一段弧,圆周角小于圆内角 (如) ,设AB上方最小的张角为,下方最小的张角为,则当时,ABC或ABD的外接圆可以覆盖所有的点。特别地,当时 ABCD 四点共圆。可以看到,该算法的时间复杂度为3nO,并且是一个确定性算法。算法二随机增量法在算法一基础上进行改进, 先任取两点, 求出覆盖它们的最小圆, 然后每次增加一个点,如果该点仍在圆内,考察下一个点,否则扩张当前圆。这里要用到一个定理:新加入的点不在当前圆内,那么必在扩张后的圆上。(证明见附录。)这样我们就可以再枚举另

13、外一个点,再使用张角法。若每次新加入点都在当前圆内,那么算法为)(nO。那么新加入点不在圆内的概率为多大呢?就像例一 “两线定一点” 一样,这里“三点定一圆”, 所以概率为i3。因此期望的时间复杂度为niinO223*)()(2nO名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 第 7 页算法三很明显算法二对增量法的应用并不彻底,实际上我们在求新圆时可以再用一次增量算法:假设在加入pi 时重新计算,那么先以覆盖pi 和 p1的最

14、小圆为开始,将 p2 到 pi-1 依次加入,如果加入的点pk 不在圆内,说明该点必在新圆上,再从 p1 到 pk-1 枚举第三个点以确定新圆。不难算出,当加入pi 后,重新求出新圆的时间复杂度为)(iO,于是总的时间复杂度为niiiO23*)()(nO【总结】增量算法蕴含一种步步为营的思想,希望改进当前解以逐步解决问题。计算几何往往是巨量代码的代名词, 但是我们可以看到随机增量算法实现非常简单,如果比赛中可以使用, 我觉得它应该是首选算法。 增量算法与随机化的结合, 更是得到了令人意外的结果,例二中竟然将一个O(3n) 的算法优化到O(n),这让我们见识到了随机化在确定算法中的独特作用。【参

15、考文献】1 算法艺术与信息学竞赛作者:刘汝佳、黄亮2 计算几何 - 算法设计与分析作者:周培德3国家集训队 2008年论文: 浅谈随机化在几何问题中的应用作者:顾研【附录】设 P为平面上的一个点集; 设 R为另一个 (允许为空的)点集, 而且RP;设Pp,则下列命题成立: 如果存在某个圆覆盖了P,而且其边界穿过R中的所有点,那么这样的圆名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 第 8 页中必然存在唯一的最小者。我们将其记作

16、RPmd,。 如果RpPmdP,,那么RpPmdRPmd,。 如果RpPmdp,,那么pRpPmdRPmd,证明 如图所示,假设存在半径相同的两个不同的覆盖圆D0和 D1,其圆心分别在 x0和 x1。显然 P中的所有的点必然落在交集10DD中。我们将按照下面的方法,构造出一系列连续的圆10D。取 D0和 D1的边界的一个交点z,D的圆心是点10)1(xxx,其半径为zxdr,,对于任何满足 01 的,都有DDD10,因此作为一个特例,=0.5 时也成立。于是鉴于D0和 D1都分别覆盖了P 中的所有点,故21D也必然如此。此外21D也必然经过0D和1D的每个交点。由于10DDR, 故有21DR。

17、也就是说,21D不仅是 P的一个覆盖圆,而且其边界同样会穿过R中的所有点。然而,就半径而言,21D要严格小于 D0和 D1。因此,一旦出现了半径相等的两个圆,而且它们的边界都各自穿过R中的所有点, 就说明肯定存在另一个半径更小的覆盖圆,而且它们的边界都各自穿过R 中的所有点。于是,最小覆盖圆RPmd,是唯一的。 令RpPmdD,,若Dp,则D必然包含P,而且其边界穿过R中图 17 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - -

18、第 9 页的所有点,不可能有任何更小的圆可以覆盖P,而且其边界穿过R中的所有点。否则,这样的一个圆必然是pP的一个包围圆,同时其边界穿过 R中的所有点,这与 D的定义矛盾。因此可以得到RPmdD,。 令RpPmdD,0,取RPmdD,1。再次考虑前面所定义的一系列D。注意到,00DD,11DD。实际上,由这一系列的圆,定义了从D0到 D1的一个连续变形的过程。根据假设,有1Dp。因此,由其连续性,必然存在某个10*,使得 p 正好落在*D的边界上。与的证明同理,我们可以得到*DP和*DR,对于任何 01,D的半径必然会严格地小于D1的半径。然而根据其定义, D1是 P的最小覆盖圆,因此我们只有一种选择1*。也就是说, D1的边界必然穿过 p。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁