算法合集之《参数搜索应用》

算法合集之《参数搜索应用》

ID:37887756

大小:513.99 KB

页数:27页

时间:2019-06-02

算法合集之《参数搜索应用》_第1页
算法合集之《参数搜索应用》_第2页
算法合集之《参数搜索应用》_第3页
算法合集之《参数搜索应用》_第4页
算法合集之《参数搜索应用》_第5页
资源描述:

《算法合集之《参数搜索应用》》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、参数搜索的应用芜湖市第一中学汪汀引言参数搜索是解决最优解问题的一种常见的方法。其本质就是对问题加入参数,先解决有参数的问题,再不断调整参数,最终求得最优解。下面通过几个例子来说明这一点。问题一分石子问题有N个石子,每个石子重量Qi;按顺序将它们装进K个筐中;求一种方案,使最重的筐尽量轻。问题一分石子问题N=9,K=3975684327

2、

3、161916最大为19975684327

4、

5、211812最大为21问题一分石子问题——分析本题可采用动态规划时间复杂度O(N2)太高了能否找到实现更简单,更优秀的算法呢?问题一分石子问题——分析965885?问题一分石子问题——分析引入参数P,求一个判定可行

6、解问题:判断是否存在最大重量不超过P的方案问题一分石子问题——分析可以用贪心法解决,具体方法如下:按顺序把石子放入筐,若一个筐中石子总重量不足P,我们就继续对这个筐加入新的石子;如果超过P,则我们将石子放入新的筐中。问题一分石子问题——分析N=5,K=3,P=1296583问题一分石子问题——分析回到最初的问题:从小到大枚举P,找到第一个可行解,该解即为问题所求令T=∑Qi,则这个算法的时间复杂度为O(TN)需要进一步优化!问题一分石子问题——分析若我们能找到一个最大重量不超过P的方案,则我们可以找出一个最大重量不超过P+1的方案二分法!问题一分石子问题——分析1MT尝试区间[1,M-1]尝

7、试区间[M+1,T]不断重复以上步骤即可找到问题的最优解。时间复杂度O(NlogT)特别地,由于答案必定为某一段连续石子的重量和所以可以得到一个时间复杂度为O(Nlog3N)的算法小结首先引入参数P,解决带参数的问题;用贪心法可以判断是否存在最大重量和不超过p的方案;枚举P求出问题的最优解;二分法降低了算法的时间复杂度,最终解决了问题。小结Ⅰ首先引入参数P,解决带参数的问题;判断是否存在结果优于P的方案Ⅱ调整P得到最优解。通过二分法或迭代法减少调整次数,降低算法时间复杂度。问题二最大比率问题有N道题目,每道题目有不同的分值和难度,分别为A,B(分值及难度均为正数);ii要求从某一题开始,连续

8、选至少K道题目,满足分值和与难度和的比最大。问题二最大比率问题例如N=7,K=3A43219899B22131121选择第3题到第6题,比为(9+8+9+9)/(1+1+2+1)=7这是上例的最优解问题二最大比率问题先来解决一个与之类似的简化版问题:在一个数列中找连续多个数(至少K个),总和最大。建立一个队列Q,开始时队列只有K个元素,按顺序往队列中添加新的元素,添加后计算Q1+Q2..+QL-K的和,记为S。若S<0,则将Q1,Q2..QL-K从队列中删除,否则暂时保留这些数。并不断更新最大值。问题二最大比率问题——分析-12-364-13扫描一遍的复杂度是线性的这就是最优解和为-1和为2

9、和为-1和为12问题二最大比率问题——分析现在我们已经能在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

10、…+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(NlogT)小结上例的难点在于每道题有难度和分值

11、两个数据,使我们无法确定它们对最终结果的影响,因此不能直接套用之前的扫描法。引入参数后,成功的消除了这个不确定因素,从而轻松的解决了问题。总结回顾两个例子:分石子问题:动态规划时空编程复杂度都很高参数搜索时空复杂度比较优秀效率比较高最大比率问题:直接扫描无法解决参数搜索问题豁然开朗降低思维复杂度总结参数搜索主要解决最优解问题,它的应用非常广泛,优点也十分突出,使得我们解此类问题又多了一种有力的武器。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。