随机增量算法

随机增量算法

ID:40905841

大小:199.00 KB

页数:9页

时间:2019-08-10

随机增量算法_第1页
随机增量算法_第2页
随机增量算法_第3页
随机增量算法_第4页
随机增量算法_第5页
资源描述:

《随机增量算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

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

2、thm)的思想与第一数学归纳法类似,它的本质是将一个问题化为规模刚好小一层的子问题。解决子问题后加入当前的对象。写成递归式是:增量法形式简洁,可以应用于许多几何题目中。增量法往往结合随机化,以避免最坏情况的出现。【正文】例一监视摄像机(CTSC1998第一试)问题描述一个著名的仓库管理公司*ERKOI请你的公司为其安装一套闭路监视系统。由于SERKOI财力有限,每个房间只能安装一台摄像机作监视用,不过它的镜头可以向任意方向旋转。首要的问题是确定摄像机的位置以确保房间的每一个角落都能被它监视到。例如

3、,图一和图二是某两个房间的示意图,每个房间用一个封闭的多边形表示,图中的每条边表示一面墙。对于图一所示的房间,我们将摄像机安置在标黑点的位置就能满足要求;而对于图二所示的房间,无论将摄像机安置在那里都无法使其满足要求。写一个程序,对于给定的房间示意图,判断是否有可能在这个房间中的某一位置安置一台摄像机,使其能监视到这个房间的任何一个角落。输入第9页输入文件包含一个或多个房间示意图的描述信息。每个描述信息的第一行是一一个正整数n(4<=n<=100),表示该房间的示意图为一个n边形。以下n行每行包括

4、用空格符隔开的两个整数x,y,按顺时针方向依次为这个n边形的n个顶点在直角坐标系中的的横纵坐标,x,y,的范围在:-1000至1000之间。若n等于0则表示输入文件结束。输出对于每个房间,首先输出一行该房间的编号信息“Room#k:”,k按照输入次序从1开始计数。紧接着一行是判断结果,如果摄像机在房间中某处安置能满足条件,输出:“surveillanceispossible。”,否则输出“surveillanceisimpossible。” 每两个房间的输出结果之间用一个空行隔开。申明:下面的分析

5、与算法描述中,半平面、直线、不等式、向量都可视为等价的。问题分析读完题目给人的第一印象是求半平面相交,由于题目按顺时针方向给出顶点,所以我们可以用向量来表示半平面:如图,如果点P在边ViVi+1内侧,那么从ViVi+1转到ViP为顺时针,所以它们的叉积小于等于0,于是我们可以很容易地得到每个半平面的代数形式。但如果直接做半平面这令人感觉杀鸡用牛刀,因为问题只要求判断是否存在可行区域,并不要求具体解的情况,因此我们应该考虑更简单的方法。另一个直观的想法是,枚举网格上的点,看能否满足不等式组,但这显然

6、不会是一个有效算法。上面的算法看上去“很笨”,但是会让我们产生一种改进的冲动。枚举网格上的点太盲目,完全没有利用已知条件。再来仔细分析一下问题,半平面相交最后得到的一定是个凸多边形,而我们就是要找到一个点,这个点属于这个凸多边形,那么我们可不可以加强一下命题,只考虑一些特殊的点呢?显然,凸多边形的顶点就是一类很特殊的点,它们拥有内部点所有的性质,不同之处在于,它们必是两条线的交点。那么我们可以求出所有交点,再逐个判断。如果就此打住,我们可以得到一个的算法,足以将1998年国家队选拔的这道题解决了,

7、但你看到这篇文章时,起码2009年已经过了一半,倘若此题重现江湖,你难道指望它还像上个世纪时那么弱小吗?新世纪,强算法,我们还得继续思考。我们求出了所有的交点,之后逐一判断,这是不是很浪费呢?第9页如下图,显然A和D已经被排除了,只有BC之间的区域是有效的,也就是说交点中只有B和C是有效的。于是我们很自然地想到,每条直线,最终都只有2个交点是有效的,那么我们最终只需要判断2n个点是否满足不等式组。到这里我们已经得到了一个的算法了,似乎已经很优了,但实际上仍有更优的算法。我们一直是处理完所有直线后再

8、判断,如果我们每处理完一条直线就判断呢?假设前k条直线的交点中有一个点P满足前k个不等式,那么考虑第k+1条线时,先看点P在不在第k+1个半平面上。如果在,那么P就是满足前k+1个不等式的点,如果不在,那么无非两种情况。图A中,第k+1条线与前k条线交点中,必有满足前k+1个不等式的点。图B显然是无解的情况,此时第k+1条线必被前k条线截空。如果按照这个思路写出程序,似乎比刚才的更优了,因为这已经不是严格的第9页的算法了,但是这个算法的最坏情况仍是的,在理论上并不必上个想法优。可是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。