最新算法合集之用改进算法的思想解决规模维数增大的问题_第1页
最新算法合集之用改进算法的思想解决规模维数增大的问题_第2页
最新算法合集之用改进算法的思想解决规模维数增大的问题_第3页
最新算法合集之用改进算法的思想解决规模维数增大的问题_第4页
最新算法合集之用改进算法的思想解决规模维数增大的问题_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用改进算法的思想解决规模维数增大的问题用改进算法的思想解决规模维数增大的问题 广东韶关一中 张伟达一、概述一、概述 本文主要讨论如何解决规模维数增大的问题二、引子:从一道二、引子:从一道iq题说起题说起 有两根完全相同但分布不均匀的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段45分钟的时间二、引子:从一道二、引子:从一道iq题说起题说起 有两根完全相同但分布不均匀的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段45分钟的时间二、引子:从一道二、引子:从一道iq题说起题说起 有两根完全相同但分布不均匀的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段45分钟的时间二

2、、引子:从一道二、引子:从一道iq题说起题说起 有两根完全相同但分布不均匀的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段45分钟的时间二、引子:从一道二、引子:从一道iq题说起题说起 有两根完全相同但分布不均匀的香,每根香烧完的时间是一个小时,你能用什么方法来确定一段45分钟的时间模型a.不减小每根香的计时,两根香加在一起计时是45分钟;二、引子:从一道二、引子:从一道iq题说起题说起 显然不成立!模型a.不减小每根香的计时,两根香加在一起计时是45分钟;二、引子:从一道二、引子:从一道iq题说起题说起 模型b.只用一根香,使其计时减小,直接计时45分钟;模型c.把两根香的计时都减

3、小,使两根香加起来是45分钟。既然都必须把计时减小,不难看出有两头烧的方法:模型a.不减小每根香的计时,两根香加在一起计时是45分钟;二、引子:从一道二、引子:从一道iq题说起题说起 模型b.只用一根香,使其计时减小,直接计时45分钟;模型c.把两根香的计时都减小,使两根香加起来是45分钟。既然都必须把计时减小,不难看出有两头烧的方法:模型a.不减小每根香的计时,两根香加在一起计时是45分钟;二、引子:从一道二、引子:从一道iq题说起题说起 模型b.只用一根香,使其计时减小,直接计时45分钟;模型c.把两根香的计时都减小,使两根香加起来是45分钟。既然都必须把计时减小,不难看出有两头烧的方法:

4、如果我们两头一起烧,用一根香就能够计时30分钟分钟。模型a.不减小每根香的计时,两根香加在一起计时是45分钟;二、引子:从一道二、引子:从一道iq题说起题说起 模型b.只用一根香,使其计时减小,直接计时45分钟;模型c.把两根香的计时都减小,使两根香加起来是45分钟。再看模型b,显然30+30是不可能等于45分钟的排除!二、引子:从一道二、引子:从一道iq题说起题说起 c.模型+两头烧的方法 (*&)#(改进两头烧的方法:能够计时1小时计时30分钟能够计时间t计时t/2二、引子:从一道二、引子:从一道iq题说起题说起 1。分别点燃第一根的两头和第二根的一头;二、引子:从一道二、引子:从

5、一道iq题说起题说起 1。分别点燃第一根的两头和第二根的一头;二、引子:从一道二、引子:从一道iq题说起题说起 1。分别点燃第一根的两头和第二根的一头;二、引子:从一道二、引子:从一道iq题说起题说起 2。第一根烧完的时候,已经过了30分钟;第二根还剩30分钟,点燃第二根的另一头; 1。分别点燃第一根的两头和第二根的一头;二、引子:从一道二、引子:从一道iq题说起题说起 2。第一根烧完的时候,已经过了30分钟;第二根还剩30分钟,点燃第二根的另一头; 1。分别点燃第一根的两头和第二根的一头;二、引子:从一道二、引子:从一道iq题说起题说起 3。当第二根也烧完了,即时间又过了15分钟。那么我们计

6、出的总的时间就为45分钟了。 2。第一根烧完的时候,已经过了30分钟;第二根还剩30分钟,点燃第二根的另一头; 1。分别点燃第一根的两头和第二根的一头;二、引子:从一道二、引子:从一道iq题说起题说起 c.模型+两头烧的方法 (*&)#(c.模型+改进的两头烧的方法 成功解决问题二、引子:从一道二、引子:从一道iq题说起题说起 小结一:做这类问题的主要流程:1.找出原始解法和可能改进的方向(即分析成a、b、c模型);2.分析算法的原理(由烧一根香计时半小时,引申为烧剩t的时候点两头就能计时t/2); 3.改进算法(改进的过程中,往往不是依靠算法改进算法本身,反而是利用算法的内涵、实质,

7、结合问题,构造算法);4. 解决问题(我们得出了正确的解法)。三、改进算法的途径三、改进算法的途径1.直接增加算法的规模,解决问题 2.用枚举处理增加的规模,从而解决问题 3.用贪心解决增加的规模,从而解决问题 4.多种途径的综合运用 为了能够简单明了地解释改进算法的途径,我们直接进入第4种情况,用一道例题详细讲解可以如何改进算法解决问题。【例题】【例题】 team selection (balkan oi 2004 day1) 【题目大意】ioi要来了,bp队要选择最好的选手去参加。幸运地,教练可以从n个非常棒的选手中选择队员,这些选手被标上1到n(3 n 500000)。为了选出的选手是最

8、好的,教练组织了三次竞赛并给出每次竞赛排名。每个选手都参加了每次竞赛并且每次竞赛都没有并列的。当a在所有竞赛中名次都比b前,我们就说a是比b better。如果没有人比a better,我们就说a是excellent。求:excellent选手的个数。如数据:96214510783109876543214961710835210例如5,没有选手次次竞赛都比5强,因为5在第一次竞赛中只输给了2,但是2又在第三次竞赛中输给了5 ,所以5是excellent【例题】【例题】 team selection (balkan oi 2004 day1) 原始算法枚举每一个选手x,判断x是否excellen

9、t。这可以通过另一重循环,枚举另一选手y,判断y是否比x better。判断是容易的,我们只需要简单地判断x和y的三次排名。 for(x从1到n)for(y从1到n)判断y是否比x bettertime:o(n2)【例题】【例题】 team selection (balkan oi 2004 day1) 【原始思路】【原始思路】改进一如果让x依照第一次竞赛的名次循环,枚举y时只需要枚举在第一次竞赛中排在x前面选手即可 。for(x从第一次竞赛的第1名到第一次竞赛的第n名) for(y从第一次竞赛的第1名到第一次竞赛的第(x-1)名) 判断y是否比x bettertime:o(n2)【例题】【例

10、题】 team selection (balkan oi 2004 day1) 【原始思路】【原始思路】改进二如果y不是excellent(因为有z比y better),当我们检查x是否excellent时,我们只需要检查了z是否比x better,可以不检查y。 for(x从第一次竞赛的第1名到第一次竞赛的第n名) for(y枚举当前已知的excellent) 判断y是否比x bettertime:o(nk) (设k是excellent选手的个数) 【例题】【例题】 team selection (balkan oi 2004 day1) 【原始思路】【原始思路】原始思路小结这里的原始算法是

11、直接根据原始模型模拟出来的,改进一和改进二都单纯地根据原始算法的设计缺陷来“改进”(这个改进没有利用问题的本质内容,不是本文所要阐述的“改进”),所以最后的时间复杂度没有质的进展。【例题】【例题】 team selection (balkan oi 2004 day1) 【原始思路】【原始思路】【降维思路】【降维思路】子问题子问题:n个选手进行两次竞赛,better和excellent的定义和原题一样,问有多少excellent选手?为了方便说明,我们设第一次竞赛排名依次为ai(表示第一次竞赛的第i名是ai), ai号选手在第二次竞赛中的排名的为bai(注意bai与ai的含义不同)。 【例题】

12、【例题】 team selection (balkan oi 2004 day1) 【降维思路】【降维思路】这样的子问题做法仍然可以参照改进三:for(x从第一次竞赛的第1名到第一次竞赛的第n名) for(y枚举当前已知的excellent) 判断y是否比x bettera1 a2 a3 a4 a5 a6 a7第1次竞赛:excellent:【例题】【例题】 team selection (balkan oi 2004 day1) 【降维思路】【降维思路】这样的子问题做法仍然可以参照改进三:for(x从第一次竞赛的第1名到第一次竞赛的第n名) for(y枚举当前已知的excellent) 判断

13、y是否比x bettera1 a2 a3 a4 a5 a6 a7第1次竞赛:excellent:a1【例题】【例题】 team selection (balkan oi 2004 day1) 【降维思路】【降维思路】这样的子问题做法仍然可以参照改进三:for(x从第一次竞赛的第1名到第一次竞赛的第n名) for(y枚举当前已知的excellent) 判断y是否比x bettera1 a2 a3 a4 a5 a6 a7第1次竞赛:excellent:a1【例题】【例题】 team selection (balkan oi 2004 day1) 【降维思路】【降维思路】这样的子问题做法仍然可以参照

14、改进三:for(x从第一次竞赛的第1名到第一次竞赛的第n名) for(y枚举当前已知的excellent) 判断y是否比x bettera1 a2 a3 a4 a5 a6 a7第1次竞赛:excellent:a1 a2【例题】【例题】 team selection (balkan oi 2004 day1) 【降维思路】【降维思路】这样的子问题做法仍然可以参照改进三:for(x从第一次竞赛的第1名到第一次竞赛的第n名) for(y枚举当前已知的excellent) 判断y是否比x bettera1 a2 a3 a4 a5 a6 a7第1次竞赛:excellent:a1 a2【例题】【例题】 t

15、eam selection (balkan oi 2004 day1) 【降维思路】【降维思路】这样的子问题做法仍然可以参照改进三:for(x从第一次竞赛的第1名到第一次竞赛的第n名) for(y枚举当前已知的excellent) 判断y是否比x bettera1 a2 a3 a4 a5 a6 a7第1次竞赛:excellent:a1 a2 a3【例题】【例题】 team selection (balkan oi 2004 day1) 【降维思路】【降维思路】这样的子问题做法仍然可以参照改进三:for(x从第一次竞赛的第1名到第一次竞赛的第n名) for(y枚举当前已知的excellent)

16、判断y是否比x bettera1 a2 a3 a4 a5 a6 a7第1次竞赛:excellent:a1 a2 a3 【例题】【例题】 team selection (balkan oi 2004 day1) 【降维思路】【降维思路】这样的子问题做法仍然可以参照改进三:for(x从第一次竞赛的第1名到第一次竞赛的第n名) for(y枚举当前已知的excellent) 判断y是否比x bettera1 a2 a3 a4 a5 a6 a7ai第1次竞赛:excellent:a1 a2 a3 ai-1ai只要比只要比a1a2ai-1任何一个大就不是任何一个大就不是excellent【例题】【例题】

17、team selection (balkan oi 2004 day1) ai只要比只要比a1a2ai-1任何一个大就不是任何一个大就不是excellent比较min(aj)与ai改进三 对于两次竞赛的情况,当x=ai时,设besti=min(baj)(ji),则bai只需要与besti比较即可。 【降维思路】【降维思路】【例题】【例题】 team selection (balkan oi 2004 day1) 【降维思路】【降维思路】降维思路小结 在这次分析中,我们从两次竞赛简化后的问题出发,通过简单的观察和思考,得出了改进的算法,但是优化后的算法要应用到三维的情况还有很长的路要走。【例题】

18、【例题】 team selection (balkan oi 2004 day1) 【扩展思路】【扩展思路】x依照第一次竞赛的名次循环,x=ai时,因为besti=min(baj)(ji)中,ji,这样就保证了aj在第一次竞赛中名次一定比ai前;如果bestibai,这样就保证了aj在第二次竞赛中名次比x前;总之则必然有aj比ai better。【例题】【例题】 team selection (balkan oi 2004 day1) 改进三本质:2.bajbai1.ji3.比较比较min(caj) 和和cai(c表示第三次竞赛排名)ai是excellent 等价于)min(ijacac,|ijababijjj不存在这样的j改进四【扩展思路】【扩展思路】【例题】【例题】 team selection (balkan oi 2004 day1) 改进五 通过改进四,我们观察到,我们要在一个数列中找b小于某个数的元素,又要找出所有这些元素的c的最小值。【例题】【例题】 team selection (balkan oi 2004 day1) 【扩展思路】【扩展思路】也就是说,我们需要做这样的操作:插入:加入一对数插入:加入一对数(key,value)到数据结构中。到数据结构中。查询:查询查询:查询key小于小于x的最小的的最小的value显然,这里的key代表bai,value

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论