欢迎来到天天文库
浏览记录
ID:42005813
大小:848.00 KB
页数:36页
时间:2019-09-06
《《算法概述》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、算法设计与分析导论R.C.T.LeeS.S.TsengR.C.Chang著,王卫东译机械工业出版社第1章算法概述学习要点:理解算法的概念。理解什么是程序,程序与算法的区别和内在联系。掌握算法的计算复杂性概念。掌握算法渐近复杂性的数学表述。掌握用java语言描述算法的方法。电子计算机的出现是本世纪的一件大事,因为它改变了我们这个世界的面貌。可以毫不夸张地这么说,今天人们依赖于计算机,就象人们依赖于电力,如果它暂停了,社会就无法运转。快速电子计算机贵在神速,也就是它的运算速度快,同时它的发展之迅速也是惊人的。从每秒5000次
2、运算,发展到现在的运算速度每秒数千亿次运算。元器件从继电器、真空管、晶体管、集成电路、大规模集成电路,发展到超大规模集成电路。结构上从每台机器作为运算工具的“单兵作战”模式,发展到今天将范围遍及各大洲的计算机网络,算法也从单机的串行计算发展到网络上并行的分布计算。一台作109次/秒运算(1G)的计算机的效率超过10亿人同时工作。它可以作中期的天气预报,可以控制庞大的化工厂生产过程,以至于还可以驾驭现代化战争,从这个意义上来说它确实是近乎神奇的。不过必须强调的是这些都是在人的安排下进行工作的。比如人们利用计算机作天气预报,
3、必须依据天气变化规律,作出它的偏微分方程数学模型,以及编好程序,指导计算机按照人的安排一步步地工作,计算预报数据,绘制气象云图。这就是说,计算机虽然神通广大,还是在人的控制下工作。同时还应说明计算机并非什么都能做,有的事情理论上它根本做不了。讨论哪些事计算机能做,哪些事计算机做不了,属于可计算性理论研究的范畴。还有一些问题理论上计算机虽是能做,但实际上又是不可能完成的。比如拿最简单例子,26个英文字母全排列,它的排列数为:26!≈4×1026以每年365天计算,共有365×24×3600=3.1536×107秒以每秒能完
4、成107个排列的超高速电子计算机来做这项工作,需要4×1026/(3.1536×1014)≈1.2×1012年即使计算机运行速度随着技术的提高,恐怕也还是不可能实现的。因计算机的速度再提高也有它的极限。设距离矩阵如下:试一试求出最短路径。(2)皇后问题:这是高斯1850年提出的一个著名问题:国际象棋中的“皇后”在横向、直向、和斜向都能走步和吃子,问在n×n格的棋盘上如何能摆上n个皇后而使她们都不能互相吃。当n很大时,问题很难。对于n=8,现已知此问题共有92种解,但只有12种是独立的,其余的都可以由这12种利用对称性或旋
5、转而得到。设n=4,试一试。(3)设天平有一些25克的砝码,一些10克的砝码,一些5克的砝码和一些1克的砝码。现要称63克的物体,问至少需要用几个砝码。(4)背包问题1:有一旅行者要从n种物品中选取不超过b公斤重的行李随身携带,要求总价值最大。例:设背包的容量为50千克。物品1重10千克,价值60元;物品2重20千克,价值100元;物品3重30千克,价值120元。求总价值最大。(5)背包问题2:设有n=8个体积分别为54,45,43,29,23,21,14,1的物体和一个容积为C=110的背包,问选择哪几个物体装入背包可
6、以使其装的最满。(6)装箱问题:设有体积分别为v1,v2,…,vn的n种物品u1,u2,…,un装到容量为L的箱子里。不同的装箱方案所需的箱子数目可能不同,问如何装箱能装完这n种物品且使用的箱子数目最少。(7)平面图的四色猜想问题:一个平面图是否用四种颜色就可使相邻的区域颜色都不相同?2.研究算法的重要性假设某一负责人交给你一个很难的任务,几天后询问你问题解决了没有。可能会发生如下图这样的情况:问:“交给你的问题,解决方案设计出来了吗?”答:“我找不到一个有效的算法来解决它,没能完成任务。”问:“交给你的问题,解决方案设
7、计出来了吗?”答:“我找不到一个有效的算法来解决它,因为这样的算法是不存在的。”(不过,要证明一个问题不存在有效算法,往往跟寻找有效算法一样难。)问:“交给你的问题,解决方案设计出来了吗?”答:“我找不到一个有效的算法来解决它,但不是我不行,因为所有这些名人也都找不到解决它的有效算法。”如果是你的话,你愿意是哪种结果?3.问题解决的好吗?设计出解决问题的算法后,要知道算法的优劣好坏,是好算法则不必对其怀疑而再浪费时间进行研究。不是好算法则应再进行研究改进。而如何知道算法的优劣好坏,需要学习分析算法的方法。要设计出好算法,
8、需要学习算法设计的常用方法。算法(Algorithm)算法是指解决问题的一种方法或一个过程。算法是若干指令的有穷序列,满足性质:(1)输入:有外部提供的量作为算法的输入。(2)输出:算法产生至少一个量作为输出。(3)确定性:组成算法的每条指令是清晰,无歧义的。(4)有限性:算法中每条指令的执行次数是有限的,执行每条指
此文档下载收益归作者所有