全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
算法分析与设计课程课外学习论文概率算法的介绍与分析摘要:介绍概率算法,以主元素问题与n皇后问题为例重点介绍并分析蒙特卡洛算法以及拉斯维加斯算法,以及算法应用方法。关键词:概率算法;蒙特卡洛算法;拉斯维加斯算法一、引言很多算法的每一个计算步骤都是固定的,而概率算法允许算法在执行的过程中随机选择下一个计算步骤。许多情况下,当算法在执行过程中面临一个选择时,随机性选择常比最优选择省时。因此概率算法可在很大程度上降低算法的复杂度。概率算法大致分为:数值概率算法,蒙特卡罗(Monte Carlo)算法,拉斯维加斯(Las Vegas)算法和舍伍德(Sherwood)算法。本文将重点介绍蒙特卡洛算法以及拉斯维加斯算法。二、蒙特卡洛算法1、 产生随机数的机制随机数在概率算法设计中扮演着十分重要的角色。在现实计算机上无法产生真正的随机数,因此在概率算法中使用的随机数都是一定程度上随机的,即伪随机数。产生随机数最常用的方法是线性同余法。由线性同余法产生的随机序列a1,a2,.,an满足 其中,b=0, c=0, d=m。d称为该随机序列的种子。当a,c,m确定后,随着d的不同产生不同的随机数列,为了使随机数数列的随机性能好,我们通常取m充分大的素数,而且取gcd(m,a)=1。2、 蒙特卡洛算法如果一个蒙特卡罗算法对于问题的任一实例得到正确解的概率不小于p,则称该蒙特卡罗算法是p正确的,且称p-1/2是该算法的优势。对于一个一致的p正确蒙特卡罗算法,要提高获得正确解的概率,只要执行该算法若干次,并选择出现频次最高的解即可。例:主元素问题设T1:n是一个含有n个元素的数组。当|i|Ti=x|n/2时,称元素x是数组T的主元素。判断所给数组是否含有主元素。对于任何给定的0,算法majorityMC重复调用log(1/) 次算法majority。它是一个偏真蒙特卡罗算法,且其错误概率小于。算法majorityMC所需的计算时间显然是O(nlog(1/ )。源码见附录一。3、 拉斯维加斯算法拉斯维加斯算法思想:void obstinate(Object x, Object y) / 反复调用拉斯维加斯算法LV(x,y),直到找到问题的一个解y bool success= false; while (!success) success=lv(x,y); 例:n 皇后问题n 皇后问题:在nn 格的棋盘上放置彼此不受攻击的n 个皇后按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子n 皇后问题等价于在nn 格的棋盘上放置n个皇后,任何2 个皇后不放在同一行或同一列或同一斜线上对于n 皇后问题的任何一个解而言,每一个皇后在棋盘上的位置无任何规律,不具有系统性,而更像是随机放置的由此想到可采用拉斯维加斯算法,在棋盘上相继的各行中随机地放置皇后,并注意使新放置的皇后与已放置的皇后互不攻击,直至n 个皇后均已相容地放置好,或已没有下一个皇后的可放置位置时为止方法queensLV ( ) 实现在棋盘上随机放置n个皇后的拉斯维加斯算法通过反复调用随机放置n 个皇后的拉斯维加斯算法queensLV ( ),直至找到n 皇后问题的一个解源码见附录二四、算法比较蒙特卡罗算法用于求问题的准确解。对于许多问题来说,近似解毫无意义。例如,一个判定问题其解为“是”或“否”,二者必居其一,不存在任何近似解答。又如,我们要求一个整数的因子时所给出的解答必须是准确的,一个整数的近似因子没有任何意义。用蒙特卡罗算法能求得问题的一个解,但这个解未必是正确的。求得正确解的概率依赖于算法所用的时间。算法所用的时间越多,得到正确解的概率就越高。蒙特卡罗算法的主要缺点就在于此。一般情况下,无法有效判断得到的解是否肯定正确。拉斯维加斯算法求得的解肯定是正确的,不会得到不正确的解,但是有时候用拉斯维加斯算法可能找不到解。使用拉斯维加斯算法求解同一问题的同一实例,能够得到相同的结果,但算法的执行时间会不一样。 拉斯维加斯算法的一个显著特征是它所作的随机性决策有可能导致算法找不到所需的解。五、学习心得和体会(黑体小四号两端对齐)概率算法在求解诸如定积分,非线性方程以及诸多实际问题中应用广泛,很多情况下可以减小算法时间空间复杂度。把随机性注入到算法中,使得算法设计与分析的灵活性及解决问题的能力大为改观,但准确性较低,正所谓鱼和熊掌不可兼得。参考文献:(黑体小四号两端对齐)1. 概率算法. /view/1082614.htm2. 王晓东. 计算机算法设计与分析.(第二版). 电子工业出版社. 2006 3. 朱 珣. 分班问题的拉斯维加斯算法实现. 江汉大学学报(自然科学版)第35卷第4期. 2007年12月4. 邓宏涛,朱 珣. N皇后问题LasVegas优化算法的实现. 江汉大学学报(自然科学版)第34卷第4期. 2006年12月 附录一:主元素问题源码templatebool Majority(Type *T, int n)/ 判定主元素的蒙特卡罗算法 int i=rnd.Random(n)+1; Type x=Ti; / 随机选择数组元素 int k=0; for (int j=1;jn/2); / kn/2 时T含有主元素templatebool MajorityMC(Type *T, int n, double e)/ 重复调用算法Majority int k=ceil(log(1/e)/log(2); for (int i=1;i=k;i+) if (Majority(T,n) return true; return false;附录二:n皇后问题源码:private static Boolean queensLV ( ) /随机放置n 个皇后的Las Vegas 算法rnd=new Random ( );int k=1;int count=1;while (k0) count=0;int j=0;for ( int i=1; i0) x k+ =j;return (count0); / count0 表示放置成功public static void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 季度安全巡查工作复盘总结
- 2026 年静脉治疗护理质量安全管理质控教育课件
- 档案室防火防潮安全管控
- 2026中国心血管疾病用药行业发展现状与未来趋势预测报告
- 智能信贷风控技术-第5篇
- 2026中国新能源产业技术创新联盟运作机制与成效评估
- 2025文物执法业务理论知识测试题(含答案)
- 2026中国游戏动漫行业市场竞争及IP运营分析
- 智能化理赔流程优化-第31篇
- 大数据在银行运营中的价值挖掘-第2篇
- DLT 593-2016 高压开关设备和控制设备
- 机械基础 课件 项目九 轴承的类型及选用
- 备战2024年高考政治答题技巧与模板构建必修一 《中国特色社会主义》(思维导图+核心考点+易混易错)
- DB11-T 2205-2023 建筑垃圾再生回填材料应用技术规程
- 足球-脚内侧踢球
- 2019县级国土资源调查生产成本定额
- 穴位埋线疗法疗法
- 矿井维修电工高级技师理论培训2
- 卡西欧dh800电吹管说明书
- 《插花与茶艺》课程标准
- 湖南省社会保险费申报测算管理系统
评论
0/150
提交评论