- 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.通用性
通用性即可移植性。一个算法,是只适合于一个特殊问题,还是可以适用于一类问题,这是组合算法评价的一个主要依据,有些组合数学问题,许多信息学竞赛或数学建模竞赛选手一看到题目后往往使用模拟法或构造产生式系统,然后用深度优先搜索(DFS),或广度优先搜索(BFS)求解,用这些方法设计的程序往往受到时间或空间的限制,而且由于在综合数据库中信息存储的数据结构不同,其算法实现时的规模也不同,这必然影响到算法的通用性问题。解决问题的办法是对原问题进行数学抽象,取其精华,去其糟粕。只有对原问题的数学模型仔细分析,抓住本质,才能建立高效的组合算法,只有这种经过数学抽象的算法,才能具有较好的通用性,能够应付较大的规模。
另外,在大规模组合算法的设计过程中,强调通用性的好处是显而易见的,它便于算法的优化和升级。在实际应用中的某些条件改变时,可以重写较少的代码。从软件工程学的角度来说,通用性是必需的。
2.可计算性
这里指的可计算性,是指能够在多项式时间内得出结果。一般来说,对于递归函数来说,由于计算机系统中的空间一定,因此对问题的规模有较严格的限制(例如在Turbo Pascal 7.0系统中,栈的最大空间只有65520字节)因此说,对于大多数的递归函数具有较差的可计算性。通过组合方法,求递归函数的非递归形式是解决这类问题有主要方法,但并不是所有的递归函数都可转化为非递归形式,双递归函数(如Ackermann函数)便不能转化为非递归形式,这类函数具有较小的可计算性。
当然,对于某些递归函数,通过寻找函数本身的组合意义进而将其转化为非递归函数也是一种方法。这种方法的应用读者将在后文中见到。
3、信息冗余量
在组合数学的建模过程中,大量的信息冗余是制约组合算法效率的一个重要因素,例如在递归程序运行的过程中,实际上产生了一棵解答树,同一棵子树的结点间的信息不相互关联,这样便产生了大量的信息冗余,解决的方法之一便是引入记忆机制,将已得出的信息记录下来。这种机制实际上起到了剪枝的作用,但它严格受到空间的限制,实际上是时空矛盾在算法设计中的体现。这便是我们在组合算法设计中倡导函数非递归化的原因。它可以达到零信息冗余。
当然,组合算法的通用性、可计算性与信息冗余程度在一定程度上是对立的。例如双递归函数作为一种数学模型,能够反映一类问题,具有通用性,但却具有较差的可计算性和较大的信息冗余量,而有些问题虽具有较好的可计算性和较低的信息冗余量,却具有较差的通用性。总之,算法的时间复杂度,空间复杂度,通用性,可计算性和信息冗余量应是衡量组合算法的几个主要标准。
三、组合算法的选择实例
组合算法的评价依据同时也是建立数学模型和优化算法的指导思想。那么应该如何设计高效,通用的组合算法呢?下面我们通过几个实际的组合问题来初步研究。
例1.核反应堆中有α和β两种粒子,每秒钟内一个α粒子可以反应产生3个β粒子,而一个β粒子可以反应产生1个α粒子和2个β粒子。若在t=0时刻的反应堆中只有一个α粒子,求在t时刻的反应堆中α粒子和β粒子数。
这是一个物理学中的简单问题。我们通过对两种算法的比较来说明组合算法的通用性。
模型I:本题中共涉及两个变量,设在i时刻α粒子数为ni,β粒子数为mi,则有:n0=1,m0=0,ni=mi—1,mi=3ni—1+2mi—1
本题便转化为求数列N和M的第t项,我们可用递推的方法求得nt和mt,此模型的空间需求较小,时间复杂度为O(n),但随着n的增大,所需时间越来越大,即:
T
您可能关注的文档
最近下载
- 质量管理体系基础知识培训完整版.pptx VIP
- 足球社团活动课教案(33页) .pdf VIP
- 2024年档案职称考试题库(含答案).pdf VIP
- 怪物之锤(coc跑团设定).pdf VIP
- 七年级英语上册(外研版2024)-【新教材解读】义务教育教材内容解读课件.ppt
- B∕T 3098.9-2020 紧固件机械性能 有效力矩型钢锁紧螺母(高清版).pdf VIP
- 光传输线路与设备维护课件74_光传输线路与设备维护学习情境六PPT课件.ppt VIP
- 尼康D850使用说明手册D850UM.pdf VIP
- [哲学/历史]四山摩崖石刻.doc VIP
- 小学语文部编版三年级下册《修改病句》专项练习(共63题,附参考答案).pdf VIP
文档评论(0)