参数搜索的应用1.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
参数搜索的应用1

参数搜索的应用 芜湖市第一中学 汪汀   引言    参数搜索是解决最优解问题的一种常见的方法。其本质就是对问题加入参数,先解决有参数的问题,再不断调整参数,最终求得最优解。下面通过几个例子来说明这一点。   问题一 分石子问题 有N个石子,每个石子重量Qi; 按顺序将它们装进K个筐中; 求一种方案,使最重的筐尽量轻。   问题一 分石子问题 N=9,K=3 9 7 5 6 8 4 3 2 7 16 19 16 最大为19 9 7 5 6 8 4 3 2 7 21 18 12 最大为21   问题一 分石子问题——分析  本题可采用动态规划 时间复杂度O(N2)  能否找到实现更简单,更优秀的算法呢?   问题一 分石子问题——分析     问题一 分石子问题——分析 引入参数P,求一个判定可行解问题: 判断是否存在最大重量不超过P的方案   问题一 分石子问题——分析 可以用贪心法解决,具体方法如下: 按顺序把石子放入筐,若一个筐中石 子总重量不足P,我们就继续 对这个 筐加入新的石子;如果超过P,则我们 将石子放入新的筐中。   问题一 分石子问题——分析     问题一 分石子问题——分析 回到最初的问题: 从小到大枚举P,找到第一个可行解, 该解即为问题所求 令T=∑Qi,则这个算法的时间复杂度为O(TN) 需要进一步优化!   问题一 分石子问题——分析 若我们能找到一个最大重量不超过P的方案, 则我们可以找出一个最大重量不超过P+1的方案     二分法!   问题一 分石子问题——分析 不断重复以上步骤即可找到问题的最优解。 时间复杂度O(NlogT) 特别地,由于答案必定为某一段连续石子的重量和 所以可以得到一个时间复杂度为O(Nlog3N)的算法   小结     首先引入参数P,解决带参数的问题;  用贪心法可以判断是否存在最大重量和不超过p的方案;       枚举P求出问题的最优解; 二分法降低了算法的时间复杂度,最终解决了问题。   小结 Ⅰ首先引入参数P,解决带参数的问题; 判断是否存在结果优于P的方案 Ⅱ调整P得到最优解。 通过二分法或迭代法减少调整次数,降低算法时间复杂度。   问题二 最大比率问题 有N道题目,每道题目有不同的分值和难 度,分别为Ai,Bi(分值及难度均为正数); 要求从某一题开始,连续选至少K道题目, 满足分值和与难度和的比最大。   问题二 最大比率问题 例如 N=7,K=3 A 4 3 2 1 B 2 2 1 3 选择第3题到第6题,比为 (9+8+9+9)/(1+1+2+1)=7 这是上例的最优解   问题二 最大比率问题 先来解决一个与之类似的简化版问题: 在一个数列中找连续多个数(至少K个),总和最大。 建立一个队列Q,开始时队列只有K个元素,按顺序往 队列中添加新的元素,添加后计算Q1+Q2..+QL-K 的 和,记为S 。若S0,则将Q1,Q2..QL-K从队列中删 除,否则暂时保留这些数。并不断更新最大值。   问题二 最大比率问题——分析   问题二 最大比率问题——分析  现在我们已经能在O(N)的时间内解决简化后的问题了。  这个方法能不能应用于原题?  很遗憾,由于原题中每个数据有两个参数,故它们对  最终结果产生的影响是不确定的,因此对于原题我们  不能直接套用这个算法。  现在必须消除这个不确定因素。   问题二 最大比率问题——分析  为此,我们必须引入参数p,求一个判定可行解问题: 判断是否存在一个比大于p的方案   问题二 最大比率问题——分析 新的问题可以这样描述: 求两个下标i’,j’,满足 j’-i’+1≥k ① (Ai’+Ai’+1....+Aj’)/(Bi’+Bi’+1…+Bj’) p ② ② Ai’+Ai’+1....+Aj’ p(Bi’+Bi’+1…+Bj’) (Ai’-pBi’)+(Ai’+1-pBi’+1)…+(Aj’-pBj’) 0   问题二 最大比率问题——分析 (Ai’-pBi’)+(Ai’+1-pBi’+1)…+(Aj’-pBj’) 0 令Ci=Ai-pBi,Ci’+Ci’+1…+Cj’ 0 在数列C中找一段连续的数(至少K个),和为正数。 我们能在O(N)的时间内找到中和最大的一段,记为S: 若S>0则找到了一个可行方案 若S≤0,则问题无解   问题二 最大比率问题——分析 O(N)的时间判断出是否存在比不小于P的方案。 通过二分法,调整参数P的大小,不断逼近最优解。     时间复杂度O

文档评论(0)

f8r9t5c + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档