组合算法的选择与应用.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
组合算法的选择与应用 【关键字】组合算法 评价依据 复杂性 选择 应用 【摘要】 本文提出了在组合算法设计和组合算法选择方面所应当遵循的三个原则,即 通用性、可计算性和较少的信息冗余量,并初步分析了它们之间的相互关系。这 三个原则是整个组合算法设计的主导思想,也是数学建模和算法优化的方向。通 过对三个问题的分析,提示了组合算法的设计方法,改进方向和优化技术,是对 一系列组合数学原理的实际应用,也是对组合算法设计的初步研究。 【正文】 一、引论 组合数学是一个古老的数学分支,也是当代数学中非常重要的数学分支。它发源于冇趣的 数学游戏,许多古典的组合数学问题,无论在理论数学或应用数学上都有很重要的研究价值。 今天,一方面,极为成熟的组合计数理论为物理学、化学、生物学的发展奠定了坚实的基 础,另一方面,曲于计算机软硬件的限制,组合计数理论的计算机实践又必然涉及到基于多项 式时间内的算法优化问题。本文正是基于以上情况,对一系列组合问题的算法设计做了一些初 步探索。 二、组合算法的评价依据 任何事物都有好坏Z分,算法也不例外。众所周知,时间复杂度与空间复杂度是算法评价 的主要依据。那么,除了这两点外,组合算法的设计还应遵循怎样的原则呢? 通用性 通用性即可移植性。一个算法,是只适合于一个特殊问题,还是可以适用于一类问题,这 是组合算法评价的一个主要依据,冇些组合数学问题,许多信息学竞赛或数学建模竞赛选手一 看到题目后往往使用模拟法或构造产生式系统I,然后用深度优先搜索(DFS),或广度优先搜 索(BFS)求解,用这些方法设计的程序往往受到时间或空间的限制,而且由于在综合数据库 中信息存储的数据结构不同,其算法实现时的规模2也不同,这必然影响到算法的通用性问题。 解决问题的办法是对原问题进行数学抽象,取其精华,去其糟粕。只有对原问题的数学模型仔 1见参考文献[6]第一章 2在本论文中,我们将规模定义为在一定时间内程序可以运行完毕的惰况下输入数据的最人暈。 细分析,抓住本质,才能建立高效的组合算法,只有这种经过数学抽象的算法,才能具有较好 的通用性,能够应付较大的规模。 另外,在大规模组合算法的设计过程中,强调通用性的好处是显而易见的,它便于算法的 优化和升级。在实际应用中的某些条件改变时,可以重写较少的代码。从软件工程学的角度來 说,通用性是必需的。 可计算性 这里指的可计算性,是指能够在多项式时间内得出结果。一般來说,对于递归函数來说, 出于计算机系统中的空间一定,因此对问题的规模冇较严格的限制(例如在Turbo Pascal 7.0 系统中,栈的最大空间只有65520字节)因此说,对于大多数的递归函数具有较差的可计算性。 通过组合方法,求递归函数的非递归形式是解决这类问题有主要方法,但并不是所有的递归函 数都可转化为非递归形式,双递归函数(如Ackermann函数彳)便不能转化为非递归形式,这 类函数具有较小的可计算性。 当然,对于某些递归函数,通过寻找函数木身的组合意义进而将其转化为非递归函数也是 一种方法。这种方法的应用读者将在后文中见到。 3、 信息兀余量 在组合数学的建模过程中,大量的信息冗余是制约组合算法效率的一个重要因素,例如在 递归程序运行的过程中,实际上产生了一棵解答树餐同一棵子树的结点间的信息不相互关联, 这样便产生了大量的信息兀余,解决的方法之一便是引入记忆机制,将已得岀的信息记录下來。 这种机制实际上起到了剪枝的作用,但它严格受到空间的限制,实际上是时空才盾在算法设计 中的体现。这便是我们在组合算法设计中倡导函数非递归化的原因。它可以达到零信息兀余。 当然,组合算法的通用性、町计算性与信息兀余程度在一定程度上是对立的。例如双递归 函数作为一种数学模型,能够反映一类问题,具有通用性,但却具有较茅的可计算性和较大的 信息兀余量,而有些问题虽具有较好的可计算性和较低的信息兀余量,却具冇较差的通用性。 总之,算法的时间复杂度,空间复杂度,通用性,可计算性和信息兀余量应是衡量组合算法的 几个主要标准。 三、组合算法的选择实例 3 Ackermann函数可川递推关系如下定义 A (m? 0) =A (m-1, 0) m=l, 2,… A (m, n) =A (m-L A (m, n-1)) m=l, 2,…n=l, 2,… 初始条件为 A (0? n) =n+l, n=0, I,… 4见参考文献[6]第二章(产生式系统的搜索策略) 组合算法的评价依据同时也是建立数学模型和优化算法的指导思想。那么应该如何设计高 效,通用的组合算法呢?下面我们通过几个实际的组合问题來初步研究。 例1?核反应堆中有CI和B两种粒子,每秒钟内一个Q粒子可以反应产生3个B粒子,而 一个B粒了可以反应产生1个a粒了和2个13粒了。若在t=0时刻的反应堆

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档