算法设计与分析学习报告(优秀)_算法设计与分析报告
算法设计与分析学习报告(优秀)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“算法设计与分析报告”。
算法课程学习报告
持续13周的高级算法设计与分析课程结束了。选修了这门课程的同学们即将迎来最后的考试。回顾这半年以来关于这么课程的学习情况,我体会最深的是:不论是从深度还是从广度上,现在所习的算法比曾经学习的算法难度增加了很多。但是邓教授极富经验的教学和详细的课件,为我的学习提供了很大的方便。可是毕竟我以前的底子不够厚,基础不够劳,在听课中会出现跟不上教师思路的现象。我也积极的采取措施,争取处理好这种情况。总体说来,上完算法课,我还是学到了很多东西的。下面我就对所学的内容进行梳理归纳,总结一下我在学习中的体会和研究心得。
算法课程的开课阶段,邓教授为我们简单介绍了算法,课堂上可能用到的参考资料,以及一些著名的算法方面的书籍,为我的学习提供潜在的工具。我购买了一本教材——《算法导论》。这本书够厚,够详细。但是我一直没有机会仔细的研读。我想有一天希望能够好好读一下。在介绍算法的课堂上,我还了解了算法相关的一些基本概念,算法的重要性,还有算法的历史。我印象最深的就是一个叫图灵的外国人。对计算机科学与技术这个领域做出了图书贡献。我个人认为,堪比爱因斯塔发现相对论的贡献。都揭示了某个领域的本质。开辟的一个领域的发展。对于整个人类来说,他们这类人都是功不可没的。已经不能简单的用伟人来形容他们。但是人类社会需要这样的人,社会需要一些人的推动才能进步。说到这里,我不禁要想,算法到底有什么用,也许答案是简单的,为了方便写程序实现系统功能。这只是表面的用途。我觉得最本质的作用是为了社会进步。辩证唯物主义自然观中有关于科学技术的详细定义。之所以产生科学技术是为了发挥人的主观能动性去改造自然。学习和研究算法正是为了让人在一定的限度内改造自然。我不是在扯,而是在写算法报告和背自然辩证法资料的时候产生的心得体会,不知道算不算邓教授要求的心得。介绍完算法历史以后,就进入的真正的算法设计与分析的学习。首先是算法的定义和时间复杂度等。然后,为了方便以后的课程学习,我学到了一些必要的数学知识,既是为了以后的学习打基础,也是为了弥补在曾经的学习中的不足。这些数学知识包括生成函数和主定理等。这些数学知识都是连在高等数学里都没有接触过的。不知道属于哪个范畴的数学,反正用两个字形容就是“厉害”。我学的不亦乐乎,晕头转向。
几堂课后,对算法这一概念有了基本的了解,也对数学知识进行了补强。我们在邓教授的带领下,进入了实际的算法技术的学习。一共有六种常用技术:分治法,贪心法,周游法,回溯法,动态规划法,分支界定法。最先学习的是六种技术之首,应用最广泛的,分治法。分治法的算法思想真的很神奇,不止分治,这几种算法常用技术都很神奇,可以将问题的求解进行很大程度上的优化,而且有些还是反人类的想法。对我的智商着实是一个考验。当然了,算法的学习不只是靠智商的,更要靠辛勤的汗水,即便有时候汗水没有智商有用,但是你还是要付出汗水。因为这是一种福报。能力有多大,就享有多大的成果。这就好比一个人中了500万的头彩。这个人有能力享有这500万的财富吗?如果他有足够很好的驾驭这笔财富的能力,那么在未来,他会让这笔财富继续增长,直到达到他的能力的极限情形。如果他没有驾驭的能力,用不了多久,他就会分崩离析。我的思维再一次被学科外的体会占据了。言归正传,我学了很多利用分治法结局的问题,比如寻找最近点对,求数组的第k小元等。这些都是利用分治法解决的。在这之中,出现了平衡的概念,和分治法是密切相关,甚至是不可分的。在这部分
中,最后学习了离散傅立叶变换和快速傅立叶变换。
接下来的学习的算法技术是动态规划法。这种技术和分治法有很多相同点,最基本的就是都是讲问题分解为若干子问题,不同点是分治的子问题是相互独立的,动态规划的子问题是重复的,这也决定了,一个用递归的计算方式,一个用递推的计算方式。我也学到了利用动态规划法解决的很多问题,简单的如矩阵连成问题,复杂一点的有最长公共子序列问题,最有二分搜索树和流水作业问题。在这部分知识中,还有一点,就是备忘录方法,可以说是对动态规划法的一个完善和改进。
随着课程的进行,我又学到了集合算法。主要知识点有平摊分析,合并算法,2-3树,以及一些概念如字典,可并堆和可连接队列等。需要注意的是这部分留过作业的FIND()和FIND_DEPTH()两个函数。还有有穷自动机问题。
接下来学习的是随机算法。应该说这部分内容还是相当重要的,而且应用也非常广泛。在日常生活中更是随处可见。举一个最简单的例子,当我在看NBA比赛的时候,每节的休息时间都要抽奖,那个随机显示的中奖观众就是基于随机算法实现的功能。在这部分内容中,我学到了3个重要的随机算法:KMP、Monte Carlo和Las Vegas算法的评价和比较。这也是作为作业研究过的。也学习的素数判定随机算法。这里,要明白Miller-Rabin算法,是Rabin在Miller提出的基础上,研究出来的很常用的算法。
在课程的最后阶段,我学到了RAM和RASP这两个概念。应该说这部分知识是我学的最不好的地方。算法本质还没有了解。还需要进一步的研究。最后是NP-C和NP-hard问题。
以上简单回顾的整个算法过程中学到的知识和自己的一些心得体会。都是一字一字码出来的。觉悟抄袭。当然,有很多不足也有很多不全面的地方。但是,总的说来还是收货颇丰的。这也归功于邓教授优秀的教学质量。在这里感谢教授的教导,祝春节快乐,身体健康。