计算机科学典型问题示例_第1页
计算机科学典型问题示例_第2页
计算机科学典型问题示例_第3页
计算机科学典型问题示例_第4页
计算机科学典型问题示例_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机科学中的典型问题的例子,计算机科学中的典型问题的例子,科尼斯堡的七座桥,在这七座桥中寻找一次通过的路径,最后回到最初的起点,计算机科学中的典型问题的例子,科尼斯堡的七座桥,河岸上的陆地和河流中的岛屿是桥的连接点,它们的大小和形状与问题本身无关。因此,它们被视为四个点;七座桥是必须通过的七条路线,它们的长度和笔直度与问题本身无关。因此,任意画7条线来表示它们。欧拉把七桥问题抽象成一个“一杆”问题。如何不重复地跨越七座桥,就成了一个不重复地画几何图形的问题。最初,人们要求找到一条不重复的路线,然后欧拉开始判断这条不重复的路线是否存在。通过改变问题的角度,欧拉抓住了问题的本质。欧拉发现,每一个

2、可以用笔画出的图形都有这样一个特点:每当你在中间画一条线到一个点时,你必须画一条线离开这个点。否则,整个图形不能一笔就画出来。也就是说,图中的任何一点(除了起点和终点)都应该用偶数线连接;如果起点和终点重合,那么即使这个点也应该用偶数线连接。计算机科学中典型问题的例子,哥尼斯堡的七座桥,哥尼斯堡的七座桥,结论(1)如果有两个以上的地方通向奇数桥,则无法找到满足要求的路线;(2)如果只有两个地方有奇数桥,您可以从这两个地方之一找到所需的路线;(3)如果没有地方连接到奇数桥,则无论从哪里开始,都可以实现所需的路线。欧拉的论文为图论的形成奠定了基础。今天,图论已被广泛应用于计算机科学、运筹学、信息论

3、、控制论等科学中,并成为我们抽象实际问题的有力数学工具。随着计算机科学的发展,图论在计算机科学中发挥着越来越重要的作用,同时,图论本身也得到充分的发展。河内塔问题,1)一次只能移动一个盘子;2)板只能在三根柱子上来回移动,不能放在其他地方;3)在移动过程中,三根柱子上的板必须始终保持大板在小板的下方。上帝说,当所有的64个盘子都移到第三根柱子上时,世界末日就要来了。要用计算机解决一个实际问题,首先要从这个实际问题中抽象出一个数学模型,然后设计一个算法来求解这个数学模型,最后根据这个算法编写一个程序,并调试运行完成这个问题的求解。从实际问题中抽象出数学模型的本质,实际上,有必要用数学方法提取问题

4、的主要和本质内容,最终实现对问题的正确理解。汉诺塔问题是用递归方法解决的典型问题。递归是计算机科学中的一个重要概念。递归是一种将一个大问题简化为一个或多个子问题的方法。这些子问题比原问题简单,在结构上与原问题相同。根据递归方法,我们可以将64板的汉诺塔问题转化为63板的汉诺塔问题。如果63块板的河内塔问题可以解决,那么63块板可以首先移动到第二根柱子,然后最后一块板直接移动到第三根柱子,最后63块板可以再次从第二根柱子移动到第三根柱子。63板河内塔问题可以转化为62板河内塔问题,再转化为61板河内塔问题,直到单板河内塔问题得到解决。然后,从一个板的河内塔的解出发,我们可以找到两个板的河内塔,直

5、到我们用64个板解决了河内塔问题。根据上述算法,在汉诺威塔问题中有n块板要移动的板数是在汉诺威塔问题中有n-1块板要移动的板数的两倍。因此,h(n)=2h(n-1)1=2(2h(n-2)1)1=22h(n-2)21=23h(n-3)2221=2nh(0)2n-1 222 1=2n-1 222 1=2n移动盘子的次数是264-1=1844674073709551615。如果盘子每秒钟移动一次,一年有31536000秒,僧侣们将需要大约5849亿年才能一直来回移动。假设计算机以每秒1000万个板块的速度运行,大约需要58490年。算法分析是计算机科学中的一项主要任务。为了比较算法,我们必须给出一些

6、算法效率的度量。从前有一个年轻的国王,名叫艾树。他热爱数学,并聘请了当时最著名的数学家孔源氏为总理。邻国有一位聪明美丽的公主,她的名字叫比丘镇南。沂沭国王爱上了邻国的公主,所以他亲自上门求婚。公主说:“如果你向我求婚,请先找出4877042843377171的真因子,并在一天内把论文交上来。”艾舒听着,心里暗喜,心想:我从2开始,一个一个地试试看能不能除这个数,但恐怕找不到这个真因子。王一书非常擅长计算,他能在一秒钟内数出一个数字。然而,他从早到晚数了30,000多个数字,但最终没有结果。国王恳求公主,公主告诉她答案:223 092 827是一个真实的因素。国王很快证实这个数字可以除以4877

7、042843377171。公主说我会再给你一次机会。如果你找不到,将来你必须做我的证人。国王立即回到家中,召见了宰相孔源氏。经过仔细思考,这位伟大的数学家认为这个数字是17。如果这个数可以分成两个真因子的乘积,最小的真因子不会超过9。于是他给了国王一个主意:按照自然数的顺序,给每个公民一个数字并把它发出去。公主给出号码后,立即向全国报告,并让每个公民用自己的号码删除号码。除了立即报告外,他还将得到两千金币的奖励。于是国王发动全国人民,再次求婚,最后成功了。在“寻找证明和比较之间的差别的算法”的故事中,国王首先使用了一种顺序算法,它的复杂性在时间上表现出来。后来,首相提出了一个并行算法,其复杂性

8、体现在空间上。凭直觉,我们认为顺序算法不能解决的问题可以用并行算法来解决,甚至认为并行计算机系统中解决问题的速度会随着处理器数量的增加而增加,从而解决了棘手的问题。事实上,这是一个误会。在许多人的帮助下,国王成功地寻找亲戚朋友是很自然的。然而,对于一个贫穷的年轻人来说,求婚是很困难的。然而,这个年轻人可以从国王采用的并行算法中获得灵感,成功地寻找亲戚和朋友,也就是说,他可以随机猜测一个数字并验证它。当然,成功的可能性很小,但是如果这个年轻人很幸运并且猜测呢?因为一个数和它的因素之间有一些规律性的关系,所以对数论有较高知识的人更有可能猜对。在算法计算复杂度的研究中,所有在多项式时间内可以解决的问

9、题都称为P问题,而所有在多项式时间内可以验证的问题都称为NP问题。由于P问题采用确定性算法,NP问题采用非确定性算法,而确定性算法是非确定性算法的一种特殊情况,所以PNP。对于大多数实际问题来说,可能很难找到解决方案,而且通常很容易检查解决方案,所以它们都属于NP类问题。目前,计算机科学研究中一个重要而尚未解决的问题是?NP .到目前为止,已经发现许多可计算但相当困难的问题属于NP类,并且通过证明一个问题等价于一个已知属于NP类的问题,该问题通常被分类为NP类。计算机科学中典型问题的例子,哲学家一起吃饭,哲学家的生活过程思考问题当他们饿的时候停止思考,用左手拿筷子(当他们拿不到筷子时等待),用

10、右手拿筷子(当他们拿不到筷子时等待),吃饭,把筷子放在右手,然后回到思考问题的状态。哲学家生活过程的极端情况:当所有的哲学家同时用左手拿起筷子时,所有的哲学家都不能用右手拿起筷子,处于等待状态。改变这个过程,如果你不能用右手拿起筷子,放下左手的筷子。在某个时刻,所有的哲学家可能会拿起他们左手的筷子,因为他们不能同时拿起右手的筷子和放下左手的筷子。如果这种情况持续下去,所有的哲学家也将无法进食。计算机科学中哲学家就餐问题所反映的问题:程序并发执行中的进程同步问题:死锁和饥饿为了提高系统的处理能力和机器的利用率,并发程序被广泛使用,因此必须彻底解决并发进程中的死锁和饥饿问题。饥饿、旅行商问题是19

11、世纪初由汉密尔顿爵士和英国数学家柯克曼提出的一个数学问题。这是一个典型的NP完全问题。总的想法是有几个城市,任何两个城市之间的距离是确定的。现在,旅行社被要求从某个城市出发,经过每个城市,在每个城市只停留一次,最后返回出发的原城市。询问如何提前确定最短路线,以最大限度地降低旅行成本。当人们考虑解决这个问题时,人们通常首先想到的最原始的方法是列出每一条可供选择的路线(即排列和组合给定的城市),计算每条路线的总里程,最后选择最短的路线。假设给定的四个城市是A、B、C和D,并且城市之间的距离是已知的,如图A和图B所示.从图中可以看出,有6条路线可供选择,总距离最短的一条可以很快选择。如果城市的数量是

12、n,那么组合路径的数量是(n-1)!显然,当城市数量较少时,寻找最短路径并不困难,但随着城市数量的增加,组合路径的数量将呈指数级增长,甚至达到无法计算的地步。这就是所谓的“复合爆炸问题”。假设现在城市的数量增加到20个,并且组合路径的数量是(20-1)!1.2161017,有这么多的组合,如果计算机每秒钟搜索1000万条路线,将需要386年。图灵测试问题,在计算机科学诞生后,为了解决人工智能中的一些激烈争论,图灵和席勒分别提出了两个能够反映人工智能本质特征的著名哲学问题,即“图灵测试”和席勒的“中国房间”。随着图灵对“智能”的理解,人们在人工智能领域取得了很大的进步,其中“深蓝”打败了国际上图

13、灵1950年在英国思维杂志上发表的计算机器与智能一文,该文提出“机器能思考吗?”这样的问题,并给出了一个被后来的人称为“图灵测试”的模拟游戏。这个游戏由三个人完成:一个男人(甲),一个女人(乙)和一个任何性别的提问者(丙)。提问者(c)呆在一个与另外两个玩家分开的房间里。这个游戏的目标是让提问者通过向另外两个人提问来辨别哪个是男人,哪个是女人。为了防止发问者通过他们的声音和语调轻易做出判断,发问者和两个玩家之间最好通过电传打字机进行交流。提问者只被告知两个人的代号是X和Y。在游戏结束时,他将做出“X是A,Y是B”或“X是B,Y是A”的判断。现在,用一台机器代替上面游戏中的人(a)来玩。如果发问

14、者在机器和女人的游戏中做出错误的判断,次数与在男人和女人的游戏中相同,那么可以判断机器能够思考。图灵关于“图灵测试”的论文引起了很大的争议,大多数学者在将来讨论机器思维时都会谈到这个游戏。“图灵测试”只从功能的角度来判断机器是否能够思考,也就是说,从行为主义的角度来定义“机器思考”。虽然图灵对“机器思维”的定义不够严谨,但他在“机器思维”定义上的开创性工作对后代具有重要意义。因此,一些学者认为图灵关于“图灵测试”的论文标志着现代机器思维讨论的开始。根据图灵的预测,这种机器将在2000年通过测试。现在,在一些特定的领域,比如游戏领域,“图灵测试”已经成功了。1997年,IBM公司开发的计算机“深

15、蓝”打败了国际象棋冠军卡斯帕罗夫。在未来,如果我们能够揭示人类思维的本质,就像图灵揭示计算的本质一样,也就是“能做”的思维,那么制造一台真正的思维机器的日子不会太长。不幸的是,要描述人类思维的本质还有很长的路要走。博弈问题和博弈问题属于人工智能的一个重要研究领域。从狭义上讲,游戏是指具有输赢性质的游戏,如下棋、打牌和掷骰子。一般来说,这个游戏只是一个对策或斗智。计算机中的博弈问题一直是人工智能领域的关键研究内容之一。1913年,数学家策梅洛在第五届国际数学大会上发表了一篇关于集合论在国际象棋中的应用的著名论文,首次将数学与国际象棋联系起来。此后,现代数学中出现了一种新理论,即博弈论。1950年

16、,“信息论”的创始人香农发表了下棋机器一文,阐述了用计算机编制象棋程序的可能性。1956年夏天,由J麦卡锡和香农共同发起的美国达特茅斯大学夏季学术研讨会首次正式使用了“人工智能”一词,这次会议的召开极大地推动了人工智能的发展。当时,IBM公司的工程师塞缪尔也应邀参加了达特茅斯会议。塞缪尔的研究专长是计算机象棋。早在1952年,塞缪尔就利用博弈论和状态空间搜索技术成功开发了世界上第一个跳棋程序。经过不断的改进,这个项目在1959年打败了它的设计者塞缪尔本人,并在1962年打败了一个美国州的冠军。从1970年到1994年(1992年曾中断过一次),ACM每年都举办一次电脑象棋锦标赛,并且每年都会产生一名电脑象棋冠军。1991年,冠军被IBM的“深层思考”获得。ACM的工作极大地促进了游戏问题的深入研究,促进了人工智能的发展。1997年5月初,在美国纽约的公平大厦,“深蓝”与国际象棋冠军卡斯帕罗夫进行了较量,前者以两胜一负三平击败了后者。“深蓝”是由美国IBM公司开发的高性能并行计算机。它由256个(32节点*8)微处理器组成,专门为国际象棋比赛设计。据估计,该系统每秒可计算2亿次移动。“深蓝”的前身是成立于1985年的“深度思考”。1989

温馨提示

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

评论

0/150

提交评论