扫雪问题数学模型.docVIP

  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文档。上传文档
查看更多
第22讲 扫雪问题的数学模型 □王树禾 AMCM—90的问题B,标题为“扫雪问题”,图22-1的地图上,实线表示马里兰州威考密科城中的马路,虚线是高速公路,一场雪后,从位于地图*标志的地点以西4英里的两车库派出两辆扫雪车,求用两辆扫雪车扫清马路上的雪之有效方法(假设扫雪车袋子不会发生故障,也不停顿,交叉路口不需特别扫雪方法). 这个题目是该城道路局局长兼工程师Kirk Banks 从该城实际扫雪工作中提出的. 下面我们对于单车道和双车道的两种道路情况,以及参加扫雪的车辆是一辆、两辆还是多辆(3辆以上)分别予发讨论,对于可解者,给出有效算法;对于难解者,证明其为NPC的. 1、地图是Euler 图的情形 这种情况,只需求出地图相应的图(graph)上的一条Euler回路,且按寻找这条Euler回路时边的出现顺序来安排扫雪的工作顺序即可(设寻Euler回路时从高速公路上一路口开始,把路口(例如十字路口,丁字路口)视为图的顶点,地图上的道路段视为边). 在Euler图上求取Euler回路,可用下面的Fleury算法. Fleury算法: (1). (2)设行迹已选定,则从中选一边,使得 (i)与相邻(共端);(ⅱ)除非已无抚摸余地,不要选的桥. (3)直到(2)不能进行为止. 所谓桥,即连通图G中一条边e,使得不连通. 2、地图不是Euler图的情形 这时,相应的图会有偶数个奇次顶,扫雪时某些边(路段)上要通过不止一次.如果一条边e需要走两次,就视为这里有两条有公共端点的它们的权(长度)也一样的边,设加入的新边集合为是Euler图.我们是求一个最小的新边集,即在保障是Euler图的前提下,使得,其中是边之权(长度). 下面我们用一个实例交代这种问题的解法.设道路系统如图22-2所示,边旁写的是边权(长度).记图22-2中的图为G. 1)求出G的奇次顶集{①②③④}. 2)用Dijkstra算法求得中各顶对之间的距离如矩阵D所示. 3)构作加权完全图见图22-3,边的权是矩阵D中号元素. 4)求的最佳匹配M,得M={①②③④}. 5)用Dijkstra算法求M顶对间最短轨: ①与②间是①⑦②;③与④间是③④. 6)在5)中之最短轨上每边皆加一个同权新边即得所求之Euler图,且. 7)在上用Fleury算法求一条Euler回路即为解答: ⑥②③⑦②⑦①⑦④③④⑤①⑥. 8)总工作量为即最小的工作量为38. §2 双车道单车扫雪 1、地图是书籍的情形 这时按右侧通行的交通规则,每顶的,此连通图G是有向Euler图,可用Fleury算法来安排扫雪工作. 2、地图是未知的情形 例如扫雪车的司机是从外地调来新到任的,对全城道路分布并不熟悉,对他而言,干完全城的扫雪工作,犹如逛迷宫一样.由于事先不知道道路相对应的图的结构,所以地法执行Fleury算法来预先制定工作路线,只能边扫雪边搜索未扫过的道路,又要使行程最少,这时首选的算法就是所谓纵深搜索法(Depth first Search)DFS. 我们逛迷宫游戏时,是这样玩的:从迷宫入口出发,每个走廊都要搜索到,最后再从入口处出来,为了不兜圈子,我们可以记个暗号,标志哪些走廊已经走过,沿着未走过的通道尽可能远地走下去,走到死胡同底或那里已无未走过的走廊时,再沿这条未走过的过廊尽可能地走下去,……最后便可搜索遍全部走廊与厅室,再由入口处出迷宫了. 上述过程启发人们设计出探索清楚一个未知图结构DFS算法. 1973年,Hopcrpft与 Tarjan 给出如下常用的 DFS算法: (1)标志一切边“未用过”,对每顶令 (2) (3)若无未用过的关联边,转(5). (4)选一条未用过的与关联的边,标志“用过了”;若转(3);否则,转(2). (5),止. (6),转(3). 其中是顶的编码,称为的父亲,以父为尾以子为头的边叫作父子边. 上述算法的时间复杂度. 图22-5所示的是DFS过程,容易证明,在DFS中每边恰通过两次,又返回出发点,且父子边们导出一棵生成树. 图22-5中箭头边是父子边,虚线是返回路线. 联系地图是未知的情形,这时扫雪车按右侧通行交通规则,依DFS算法的过程安排扫雪工作程序即可. §3双车道双车扫雪 若能把道路系统划分成两部分,使得两部分都是连通的.又第一部分的总长度与第二部分的总长度相等,两辆扫雪车都在各自分得的那部分单车扫雪问题.可惜对一般图(道路系统),这并不总是可行的,例如道路是“星形”的,如图22-6所示. 图22-6中任给了条边,每边之权皆自然数,欲在此图上实现上述“等分”,这是PART问题,我们知道(见本书第21讲),PART∈NPC.所以一般而言,这个两车扫雪问题,既使是双车道行驶,也是NPC问题! 当然,这次竞赛题只是这一问题中的一个实例,

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档