国家集训队2001论文集骆骥.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
国家集训队2001论文集骆骥

由“汽车问题”浅谈深度搜索的一个方面 ———搜索对象与策略的重要性 问 题 描 述 有一个人在某个公共汽车站上,从12:00到12:59观察公共汽车到达本站的情况,该站被多条公共汽车线路所公用,他依次记下公共汽车到达本站的时刻。 在12:00-12:59期间,同一条线路上的公共汽车以相同的时间间隔到站。 时间单位用“分”表示,从0 到59 。 每条公共汽车线路至少有两辆车到达本站。 公共汽车线路数K一定≤17,汽车数目N一定小于300。 来自不同线路的公共汽车可能在同一时刻到达本站。 不同公共汽车线路的车首次到站时间和到站的时间间隔都有可能相同。 请为公共汽车线路编一个调度表,目标是:公共汽车线路数目最少的情况下,使公共汽车到达本站的时刻满足输入数据的要求。 例如: 汽车编号 1 2 3 4 5 6 7 8 到达时间 0 3 5 13 14 14 21 25 那就可能存在这样一个解,由以下3条汽车线路组成: 解 析 经过一系列的分析,我们决定用深度搜索(由于通篇讨论的是深度搜索,以下就统一简称搜索)解这道题目。 对这样一个问题,首先提取出三个关键要素:时间、车、路线。 ☆车辆的特征是时间, ☆路线的特征是“首发车时间”和“间隔时间”,这等效于“第一辆车”和“第二辆车”。 面对这三个关键要素,下面就要从中确定搜索对象和搜索策略。可以看出,题目要求的是车和线路的关系,而时间在其中起的是描述作用和条件制约作用,因此,本题的搜索对象应该是车或线路这两个关键要素。 分析搜索对象及策略 1.对象—→ 车 由此对象而产生的搜索策略是:按到站时间顺序,依次枚举每辆车属于哪条路线。 注意路线的特征,若一路线的第一辆车和第二辆车确定了,那该路线也就确定了。 大致搜索方案为: 按到达时间顺序,依次对于那些没有确定属于哪条线路的车进行枚举,该车属于某新线路的第一辆车或属于某已有线路的第二辆车,若为后一种选择,则可确定路线上其他所有的车辆。 还是看先前给的那个简单例子来构造搜索树大致如下: 观察该搜索树,发现:随着搜索树层数的递增,每层节点所扩展出的树叉数目逐渐增大。从直观上说:该搜索树从根开始,“分叉”越来越多,“枝叶”越来越茂盛。 这就是搜索对象为车的搜索树的典型特点。 2.对象—→线路 由此对象而产生的搜索策略是:枚举每条路线包含哪些车,确定该路线。 实际上,对每条路线,我们只要枚举其特征:第一辆车和第二辆车。再根据“有序化”思想,固定所有路线是按照第一辆车的到达时间为关键字排序的。 大致搜索方案为: 搜索每层都要确定一条路线:将未确定归属路线的到达时间最小的车固定为新路线的第一辆车,其后枚举这条路线的第二辆车,从而确定该路线。 同样,根据先前给的那个简单例子我们也构造出了方法二的搜索树(见前页)。 观察这个搜索树,和方法一的搜索树对比,我们发现,两者特性截然相反,该搜索树从根开始,“分叉”越来越少。 两种搜索对象及策略是完全不同的,搜索树特性又截然相反。从宏观上,搜索树上节点多少,两者相差无几。如何抉择呢?这时就要从微观上比较: ● 比较哪个搜索对象和策略更优 既然是比较,就要有比较的标准。这里,确定了两个标准: 谁易于优化剪枝 ; 谁的操作量小 ★关于谁易于优化剪枝的比较: 本题的主要剪枝有三种,如下逐一分析。 可行性剪枝 当路线的特征确定了,就可以判断该路线是否成立。 方法一,搜索中,每层枚举当前车是哪条路线的第二辆车,都要用到该判断;方法二,每层是确定一条路线,也用到该判断。关键是,根据两者搜索树,方法一一旦剪枝,将剪去的是一大片“茂盛”的树枝,显然,相比之下,方法二剪枝的效果就差了许多。 故在此剪枝应用上,方法二比方法一逊色许多。 与已知最优解比较剪枝 这就要看谁能很快找到解了。显然,由于方法一可行性剪枝的优点,每次剪枝都能删去很多的不可行的节点,找到解的速度就不比方法二慢了。 此剪枝,方法二不比方法一要好。 排除重复剪枝 注意到题目中时间这个关键要素的范围为0~59,而车辆数目可达300,说明,在同一时间到达的车辆数目很多!前面那个简单例子中,就出现了两个14,而到达时间为14的两辆车各属于那条路线是等效的,这就有重复。 方法一对于同时到达的且未确定归属的车,若编号小的车为某路线的第一辆车,则编号大的车为也必为一条路线的第一辆车。 方法二,对到达时间相同的且未确定归属的车,固定只选编号最小的车为第二辆车。 两者剪去的都是重复的枝,所以,效果是一样的,故此剪枝上,双方平分秋色。 结论:由于方法一搜索树的良好特性,使得方法一在剪枝优化方面前景更广阔。 ★关于谁的操作量小的比较: 操作量是“主递归程序操作量”的简称,由主递归程序的枚举循环和剪枝函数决定的。 ◇主递归程序的枚举循环 方法一,每层利用循环来枚举一辆车是属于新

文档评论(0)

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

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

1亿VIP精品文档

相关文档