计算机科学典型问题示例.ppt
《计算机科学典型问题示例.ppt》由会员分享,可在线阅读,更多相关《计算机科学典型问题示例.ppt(48页珍藏版)》请在三一办公上搜索。
1、计算机科学典型问题示例,计算机科学典型问题示例,哥尼斯堡七桥问题,寻找走遍这7座桥且只许走过每座桥一次,最后又回到原出发点的路径,计算机科学典型问题示例,哥尼斯堡七桥问题,两岸的陆地与河中的小岛,都是桥梁的连接点,它们的大小、形状均与问题本身无关。因此,把它们看作是4个点;7座桥是7条必须经过的路线,它们的长短、曲直,也与问题本身无关。因此,任意画7条线来表示它们。,欧拉将七桥问题抽象成了一个“一笔画”问题。怎样不重复地通过7座桥,变成了怎样不重复地画出一个几何图形的问题。原先,人们是要求找出一条不重复的路线,欧拉接下来着手判断:这种不重复的路线究竟存在不存在?由于这么改变了一下提问的角度,欧
2、拉抓住了问题的实质。欧拉发现,凡是能用一笔画成的图形,都有这样一个特点:每当你用笔画一条线进入中间的一个点时,你还必须画一条线离开这个点。否则,整个图形就不可能用一笔画出。也就是说,单独考察图中的任何一个点(除起点和终点外),它都应该与偶数条线相连;如果起点与终点重合,那么,连这个点也应该与偶数条线相连。,计算机科学典型问题示例,哥尼斯堡七桥问题,计算机科学典型问题示例,哥尼斯堡七桥问题,结论(1)如果通奇数座桥的地方不止两个,满足要求的路线是找不到的;(2)如果只有两个地方通奇数座桥,可以从这两个地方之一出发,找到所要求的路线;(3)如果没有一个地方是通奇数座桥的,则无论从哪里出发,所要求的
3、路线都能实现。,欧拉的论文为图论的形成奠定了基础。今天,图论已广泛地应用于计算机科学、运筹学、信息论、控制论等科学之中,并已成为我们对现实问题进行抽象的一个强有力的数学工具。随着计算机科学的发展,图论在计算机科学中的作用越来越大,同时,图论本身也得到了充分的发展。,汉诺塔问题,1)每次只能移动一个盘子;2)盘子只能在三根柱子上来回移动不能放在他处;3)在移动过程中三根柱子上的盘子必须始终保持大盘在下小盘在上 天神说,当这64个盘子全部移到第三根柱子上后,世界末日就要到了。,用计算机求解一个实际问题,首先要从这个实际问题中抽象出一个数学模型,然后设计一个解此数学模型的算法,最后根据算法编写程序,
4、经过调试和运行,从而完成该问题的求解。从实际问题抽象出一个数学模型的实质,其实就是要用数学的方法抽取问题主要的、本质的内容,最终实现对该问题的正确认识。,汉诺塔问题是一个典型的用递归方法来解决的问题。递归是计算机学科中的一个重要概念。所谓递归,就是将一个较大的问题归约为一个或多个子问题的求解方法。而这些子问题比原问题简单,且在结构上与原问题相同。,根据递归方法,我们可以将64个盘子的汉诺塔问题转化为求解63个盘子的汉诺塔问题,如果63个盘子的汉诺塔问题能够解决,则可以将63个盘子先移动到第二个柱子上,再将最后一个盘子直接移动到第三个柱子上,最后又一次将63个盘子从第二个柱子移动到第三个柱子上。
5、,汉诺塔问题示意图,63个盘子的汉诺塔求解问题可以转化为62个盘子的汉诺塔求解问题,62个盘子的汉诺塔求解问题又可以转化为61个盘子的汉诺塔求解问题,直到1个盘子的汉诺塔求解问题。再由1个盘子的汉诺塔的解求出2个盘子的汉诺塔,直到解出64个盘子的汉诺塔问题。,按照上面的算法,n个盘子的汉诺塔问题需要移动的盘子数是n-1个盘子的汉诺塔问题需要移动的盘子数的2倍加1。于是 h(n)=2h(n-1)+1=2(2h(n-2)+1)+1=22h(n-2)+2+1=23h(n-3)+22+2+1=2nh(0)+2n-1+22+2+1=2n-1+22+2+1=2n-1,因此,要完成汉诺塔的搬迁,需要移动盘子
6、的次数为:264 如果每秒移动一次,一年有31536000秒,则僧侣们一刻不停地来回搬动,也需要花费大约5849亿年的时间。假定计算机以每秒1000万个盘子的速度进行搬迁,则需要花费大约58490年的时间。,证比求易算法问题,算法分析是计算机科学的一项主要工作。为了进行算法比较,我们必须给出算法效率的某种衡量标准。,很久以前,有一个年轻的国王,名叫艾述。他酷爱数学,聘请了当时最有名的数学家孔唤石当宰相。邻国有一位聪明美丽的公主,名字叫秋碧贞楠。艾述国王爱上了这位邻国公主,便亲自登门求婚。公主说:“你如果向我求婚,请你先求出48 770 428 433 377 171的一个真因子,一天之内交卷。
7、”艾述听罢,心中暗喜,心想:我从2开始,一个一个地试,看看能不能除尽这个数,还怕找不到这个真因子吗?,艾述国王十分精于计算,他一秒钟就算完一个数。可是,他从早到晚,共算了三万多个数,最终还是没有结果。国王向公主求情,公主将答案相告:223 092 827是它的一个真因子。国王很快就验证了这个数确能除尽48 770 428 433 377 171。,公主说:“我再给你一次机会,如果还求不出,将来你只好做我的证婚人了”。国王立即回国,召见宰相孔唤石,大数学家在仔细地思考后认为这个数为17位,如果这个数可以分成两个真因子的乘积,则最小的一个真因子不会超过9位。于是他给国王出了一个主意:按自然数的顺序
8、给全国的老百姓每人编一个号发下去,等公主给出数目后,立即将它们通报全国,让每个老百姓用自己的编号去除这个数,除尽了立即上报,赏黄金万两。,于是,国王发动全国上下的民众,再度求婚,终于取得成功。在“证比求易算法”的故事中,国王最先使用的是一种顺序算法,其复杂性表现在时间方面,后来由宰相提出的是一种并行算法,其复杂性表现在空间方面。直觉上,我们认为顺序算法解决不了的问题完全可以用并行算法来解决,甚至会想,并行计算机系统求解问题的速度将随着处理器数目的不断增加而不断提高,从而解决难解性问题,其实这是一种误解。,国王有众多百姓的帮助,求亲成功是自然的事。但是,如果换成是一个贫民百姓的小伙子去求婚,那就
9、困难了。不过,小伙子可以从国王求亲取得成功所采用的并行算法中得到一个启发,那就是:他可以随便猜一个数,然后验证这个数。当然,这样做成功的可能性很小,不过,万一小伙子运气好猜着了呢?由于一个数和它的因子之间存在一些有规律的联系,因此,数论知识水平较高的人猜中的可能性就大。,在算法计算复杂性的研究中,将所有可以在多项式时间内求解的问题称为P类问题,而将所有在多项式时间内可以验证的问题称为NP类问题,由于P类问题采用的是确定性算法,NP类问题采用的是非确定性算法,确定性算法是非确定性算法的一个特例,因此PNP。,对于大多数实际问题来说,找到一个解可能很难,检验一个解常常比较容易,所以都属于NP类问题
10、。现在计算机科学研究中一个悬而未决的重要问题是P=?NP。到目前为止,已经发现了一批可计算但有相当难度的问题是属于NP类问题,并且常通过证明一个问题与已知属于NP类中的某个问题等价,将其归入NP类问题。,计算机科学典型问题示例,哲学家共餐问题,哲学家的生活进程思考问题饿了停止思考,左手拿一支筷子(拿不到就等)右手拿一支筷子(拿不到就等)进餐放右手筷子放左手筷子重新回到思考问题的状态1,哲学家的生活进程的极端情况:当所有哲学家都同时拿起左手筷子时,则所有哲学家都拿不到右手的筷子,并处于等待状态,则哲学家将都无法进餐,最终饿死;改变进程,如拿不到右手筷子则放下左手筷子。在某一瞬可能所有的哲学家都拿
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机科学 典型 问题 示例
链接地址:https://www.31ppt.com/p-6342623.html