收藏 分享(赏)

论随机化在解题中的应用.ppt

上传人:暖洋洋 文档编号:1671345 上传时间:2018-08-17 格式:PPT 页数:14 大小:216.50KB
下载 相关 举报
论随机化在解题中的应用.ppt_第1页
第1页 / 共14页
论随机化在解题中的应用.ppt_第2页
第2页 / 共14页
论随机化在解题中的应用.ppt_第3页
第3页 / 共14页
论随机化在解题中的应用.ppt_第4页
第4页 / 共14页
论随机化在解题中的应用.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、论随机化在解题中的应用,对输入数据进行随机对当前解进行随机调整对贪心的随机,随机函数,random(x)的含义是随机选取0x-1中的整数。用随机函数的时候一般都加一个randomize在程序最前面进行初始化。,var i, x : integer; begin randomize; for i := 1 to 100 do x := random(10); end.,随机快速排序,快速排序是一种我们常用的排序方法(平均时间效率为O(nlog2n)),它的基本思想是递归式的:将待排序的一组数划分为两部分,前一部分的每个数不大于后一部分的每个数,然后继续分别对这两部分作划分,直到待划分的那部分数只

2、含一个数为止。 但是快速排序的时间效率对输入的依赖性是很大的。在最坏的输入情况下,时间效率为O(n2) 。,随机快速排序,所以我们对数据进行随机。 在每次递归时随机选择一个元素和第一个元素进行交换,然后执行通用的快速排序。,DANCER,问题描述HJS班开晚会,会上跳双人舞。全班共有2n个人。每个同学对其他人都有一定的满意程度。请你帮忙分配,使各人的满意程度之和最大。,DANCER,算法分析标准算法为一般图的最优匹配。也可以用搜索+减枝,但低效。 这里用一种简单的随机。将2n(编号为12n)人分成n组,随便分(也可以用随机),这里用(1,2),(3,4) 统计满意值。然后随机2个组号。,DAN

3、CER,由原始状态生出两种情况2,3交换舞伴;2,4交换舞伴。计算满意度,保留较优值,进行下一轮随机。,随机化的贪心算法,随机化贪心算法的基本思想是:设置贪心程度rate%(rate0,100),选一种较好的贪心标准为基础,每次求局部最优解的过程改为每次求在该贪心标准下贪心程度不小于rate%的某个局部较优解。,BOMB,问题描述在一个N*M的矩形房间中放炸弹,一个爆炸向四个方向无限延伸,直到它碰到混凝土墙,或者普(被炸毁)。求至少放置几个炸弹将全部普通墙炸毁。(所有炸弹同时爆炸)。样例3 13*#.#*,输出 3,BOMB,算法分析将所有可放炸弹的点.提出,将所有普通墙#提出。如果在该点能炸

4、到一面普通墙,则在这两点之间连一条边。由此建立一张二分图。找能炸墙最多的点,随机贪心程度,如果小于rata则在这个点放炸弹直到所有墙被炸完。多循环几次,保留较优解。for A局部最优解 to 局部最差解if RANDOM(101) = ratereturn A,BOMB,由于问题对解的约束不多,解的种类和个数就可能很多,因此要从理论上分析随机化贪心算法的性能较为困难。 但是,该算法也有较高的稳定性(注意,这里的稳定性是指获得某一范围内的解的概率,如得到与标准答案同样优的结果的概率,又如得到比标准答案稍好一点的结果的概率)。另外,其时间效率自然不会差。可见,这里的随机化贪心算法是解决BOMB问题的一个有效算法。,小结,我们设计随机化算法时,通常一某个算法为母板,加入随机因素,使得算法在难以作出决策时随机地选择。在设计执行结果受随机影响的算法时,我们还可以多次执行算法,使算法不断逼近正确解或最优解。 以上只是设计随机化算法的基本方式。实践中,随机化算法的设计没有公式可套。我们必须具体问题具体分析,深入研究,设计出好的随机化算法。,谢谢!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报