论文--“分层图思想”及其在信息学竞赛中的应用.docVIP

论文--“分层图思想”及其在信息学竞赛中的应用.doc

  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文档。上传文档
查看更多
“分层图思想”及其在信息学竞赛中的应用 【摘要】本文通过对几道信息学竞赛题的解决,提出了一种解决问题的建模思想——分层图思想。该思想通过挖掘问题性质,将原问题抽象得出的图复制为若干层并连接形成更大的图,使本来难以用数学语言表达得图论模型变得简明严谨,为进一步解决问题打下了良好的基础。 【关键字】分层图思想 图论 数学模型 最短路 信息学竞赛 【正文】 引论 人们在借助计算机解决一个实际问题时,无非就是详细地告诉计算机应该怎么做,使它能通过人们给定的输入得到人们想要的输出。由于一般的计算机只能处理数字信号,所以只有把实际问题转化为数学问题,计算机才能帮助我们。这一步就是建立数学模型。 数学模型的建立在通过计算机解决问题的过程中非常重要。它把计算机无法理解的问题加以转化,使一切事物量化,最终变为只含数学过程的问题。它是人脑与计算机沟通的桥梁。不仅如此,数学模型的好坏直接影响着人与计算机之间的信息交流,影响着计算机对问题的“理解”。好的数学模型能够抓住问题的本质,表述简捷明了,易于人们找到有效的解决方法,并通过编制程序的方式将解决方法告诉计算机;相反,对于同一个问题,如果数学模型不能抓住问题本质,人们就可能无法解决问题,或者找不到有效的方法,更不用提告诉计算机如何做了。 由于建立数学模型是为了解决问题,所以人们在做这项工作时往往希望把问题归结为已经很好解决的经典问题或若干这样问题的有机结合。这样,只要应用前人的研究成果就可以了。比如,排序、求图的单源最短路、网络流等等都是经典问题,前人不仅给出一般解法,而且对各种特殊情况和变形作了深入的研究。但事情并不总像人们希望的那样,有的问题即使可以归结为已有问题,在其中加入一些干扰因素后,原有性质就会发生改变,原来建立起的数学模型难以再用严谨的数学语言表达。这样问题中的部分图论问题可以用本文提出的“分层图思想”解决。 该思想注重对原问题性质的挖掘,通过对原问题数学模型的扩展,将干扰因素融入新的数学模型之中,恢复了模型的严谨性,进而与已解决问题产生联系,得到有效算法。 提出“分层图思想” 一个问题的解决 例题1:拯救大兵瑞恩选自1999年 选自1999年国际信息学奥林匹克中国国家队组队选拔赛,题目全文见参考文献[1] 问题简述:有一个长方形的迷宫,被分成了N行M列,共N*M个单元。两个相邻(有公共边)的单元之间可以互通,或有一扇锁着的门,或者存在一堵不可逾越的墙。迷宫中一些单元存放着钥匙,且所有的门被分为P类,打开同类门的钥匙相同,打开不同类门的钥匙不同。(如右图) 要求从迷宫左上角走到右下角营救大兵瑞恩,每从一个单元移动到相邻单元记为一步。只有拿到钥匙,才能打开相应的门。试求最少步数。 此题的标准解法是动态规划:以拿到的钥匙种类划分阶段,时间复杂度为O(2PN2)。(详见[1]) 其实此算法可以用“分层图思想”做出更简明的解释。 首先忽略钥匙和门,那么问题就是在一个给定隐式图中求一条最短路,数学模型很简单:已知图G,其中顶点与地图中的单元一一对应。当且仅当两格相邻且之间无墙时,他们对应的顶点间有一条边(如右图)。求从左上角对应顶点到右下角对应顶点最短路长度。 加入钥匙和门的因素,则所求最短路有了一个限制因素,即只有先到存在钥匙的格子,才能通过相应的门。换句话说,通过图中某些边是有条件的。所以不能再简单地求最短路了,而是要考虑何时那些边能通过,何时不能通过。这就要记录拿到了哪些钥匙。 此时,我们需对原模型进行改造:将原图G复制2P个,记为G(s1,s2,…,sP),其中si=0表示未拿到第i类钥匙,si=1表示已拿到第i类钥匙,i=1,2,…,P。对每个图G(s1,s2,…,sP),若si=0,则将所有i类门对应的边去掉,因为没有此类钥匙不能通过此类门。再将其余所有边改为双向弧,权为1。对所有顶点对(u, v)及整数i,若它满足 u、v分别在G(s1,s2,… , si-1,0, si+1,…,sP)、G(s1,s2,… , si-1,1, si+1,…,sP)中,且均对应(x, y)单元 (x, y)格中有i类钥匙 则添加有向弧uv,权为0,表示走到(x, y)单元就可以由未拿到第i类钥匙转变为已拿到第i类钥匙,而不需要消耗额外的步数。 这样,这2P个图被连成了一个2P“层”的有向图(如下图)。问题转化为求由该图G(0,0,…,0)层表示左上角的顶点到每一层表示右下角的顶点的最短路长度的最小值。注意,这里需要求的不是到G(1,1,…,1) 层表示右下角的顶点的最短路长度,因为要成功营救大兵瑞恩很可能并不需要拿全所有的钥匙。 小结 可见,用此思想可以建立起更简洁、严谨的数学模型,进而很容易得到有效算法。重要的是,新建立的图有一些很好的性质: 由于层是由复制得到的,所以所有层都非常相似,以至于我们

文档评论(0)

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

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

1亿VIP精品文档

相关文档