第2章计算学科的基本问题2015概要

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

算法复杂性的数量级(Order)
O(1) 称为常数级 O(logn) 称为对数级 O(n) 称为线性级 O(nc) 称为多项式级(c为常数),如O(n2) O(cn) 称为指数级(c为常数),如O(2n) O(n!) 称为阶乘级 当时间复杂性>多项式时,算法的执行时间随n增加而急剧增长。
第2章 计算学科的基本问题
内容提要ຫໍສະໝຸດ Baidu
对问题进行抽象的一个实例
可计算问题与不可计算问题
计算学科中的其他典型科学问题 计算学科的主领域及其基本问题
1、对问题进行抽象的一个实例
哥尼斯堡七桥问题
17世纪在哥尼斯堡城 ( 今俄罗斯 加里宁格勒 ) 的普莱格尔河上有 7 座 桥,将河中的两个岛和河岸连结,城 中的居民经常沿河过桥散步,于是提 出了一个问题:能否一次走遍 7 座桥, 而每座桥只许通过一次,最后仍回到 起始地点。这就是七桥问题,一个著 名的图论问题。 七桥问题也困绕着哥尼斯堡大学的学生们, 在屡遭失败之后,他们请当时28岁的著名数学 家欧拉解决这个问题。
是最有代表性的优化组合问题之一: 割平面法与分支限界法相结合。
旅行商问题与组合爆炸问题
旅行商问题与组合爆炸问题
如果有3个城市A、B和C,则有6种访问每个城市的次序: ABC,ACB,BAC,BCA,CAB,CBA;如果有4个城 市,则有24种次序,可以用阶乘来表示:4!=24;若有 5个城市,则有5!=5×4!=120。 如果n个城市,则有n!;20个城市:20!=1.2X1017。 即使用计算机来计算,这种急剧增长的数字也远远超过 计算资源的处理能力。Cook评论:“如果有100个城市, 需要求出100!条路线的费用,没有哪一台计算机能够胜 任这一任务。打个比方,让太阳系中所有的电子以它旋 转的频率来计算,就算太阳烧尽了也算不完。” 组合路线数呈指数阶急剧增长——组合爆炸问题。
哈密尔顿回路问题
该问题进一步被发展成为所谓的“货郎担问题”或 “旅行货郎问题”——TSP,即赋权汉密尔顿回路最小 化问题。这两个问题成为数学史上著名的难题,而后者 在工程优化、现场管理等现实生活中有重要作用。以电
站建设为例,如何使若干供货点的总运费最小,施工现
场如何使供货时间最短等等,最终都归结为赋权汉密尔 顿问题。
人工智能中的哲学问题
在计算学科诞生后,为解决人工智能中一些激烈争
论的问题,图灵和西尔勒又分别提出了能反映人工智能 本质特征的两个著名的哲学问题,即图灵测试和西尔勒 的“中文屋子”。 沿着图灵等人对“智能”的理解,人们在人工智能 领域取得了长足的进展,其中, “深蓝”战胜国际象棋大师卡 斯帕罗夫就是一个很好的例证。
梵天塔问题
假定每秒移动一次,一年有31536000秒,则僧侣们 一刻不停地来回搬动,也需要花费大约5849亿年的时间。 假定计算机以每秒1000万个盘子的速度进行搬迁,则需要花费 大约58490年的时间。 梵天塔问题算法的时间复杂度可以用一个指数函数O(2n)来表示, 显然,当n很大时,计算机是无法处理的。当算法的时间复杂 度的表示函数是一个多项式,则可以处理。 一个问题求解算法的时间复杂度大于多项式(如指数函数)时, 算法的执行时间将随n的增加而急剧增长,以致即使是中等规 模的问题也不能求解出来,在计算复杂性中将这一类问题称为 难解性问题。 理论上可以计算的问题,实际上并不一定能行。
当n=64时,移动次数=?花费时间=?
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 需要移动盘子的次数为: 264-1=18446744073709551615
则K(P)停机,反之K(P)死循环。即K(P)做与H(P, P)的输出相反的
动作。 因此,H不是总能给出正确答案,故而不存在解决停机问题的
方法。
难解性问题、P类问题和NP类问题
难解性问题:当时间复杂性>多项式时 P类问题:可以在多项式时间内求解的问题
NP类问题:可以在多项式时间内验证的问题
2、可计算问题与不可计算问题
梵天塔(又称汉诺塔)问题
在印度有这么一个古老的传说:印度教的天神梵天在创造地球 时建了一座神庙,神庙里竖有3根宝石柱子。梵天将64个直径大小 不一的金盘子,按照从大到小的顺序依次套放在第一根柱子上,形 成一座金塔,即所谓梵天塔。天神让庙里的僧侣们将第一根柱子上 的64个盘子借助第2根柱子全部移到第3根柱子上,将整个塔迁移。 迁移时满足以下3条规则: ① 每次只能移动一个盘子; ② 盘子只能在三根柱子上来回移动,不能放在他处; ③ 在移动过和中,三根柱子上的盘子必须始终保持大盘在下, 小盘在上。 天神说:“当这64个盘子全部移到第三根柱子上后,世界末日 就要到了”。 ???
哥尼斯堡七桥问题
欧拉图—对现实问题的抽象
欧拉解决问题采用了“数学模型”法。 欧拉认为,既然岛与陆地是靠桥来接连的, 那么不妨把4片陆地缩小(抽象)成4个点, 并把七座桥表示(抽象)成7条边,从而得
到了七桥问题的模拟图,这样当然未改变
问题的实质,于是人们试图一次无重复地 走过7座桥的问题就等价于一笔画出模拟图
直觉上认为顺序算法解决不了的问题完全可以用并
行算法来解决,并且,并行计算机系统求解问题的
速度将随着处理器数目的不断增加而不断提高,从 而解决难解性问题。这是一种误解。
阿姆达尔定律说明:当将一个问题分解到多个处理
器上解决时,由于算法中不可避免地存在必须串行 执行的操作,从而大大地限制了并行计算机系统的 加速能力。
西尔勒(J.R.Searle)的“中文屋”
1980年西尔勒在《行为科学和脑科学》杂志上发表 论文,在文中他以自己为主角设计了一个中文屋子 的假想试验,反驳了强AI的观点。 西尔勒给出的汉字符号与一个地道的中国人作出的 答案没什么不同。但是,我们能说西尔勒真的懂中 文吗? 结论:机器永远也不能
3、计算学科中的其他典型科学问题(3)
找零问题:设有不同面值的钞票,要求用最小数量的钞 票给顾客找某数额的零钱。 背包问题:给定n种物品和一个背包,要求在重量容量 的限制下,使装入的物品总价值最大。
找零问题、背包问题等是一类可以用贪心法来处理的典 型问题。
贪心法:是一种传统的启发式算法,它采用逐步构造最 优解的方法,即在算法的每个阶段,都作出在当时看上 去最好的决策,以获得最大的“好处”;换言之,就是 在每一个决策过程中都要尽可能的“贪”,直到算法中 的某一步不能继续前进时,算法才停止。
可计算问题:存在算法可解的问题
不可计算的问题:不存在可解算法的问题
一个不可计算的问题:停机问题,P32
这个问题是由图灵提出的一个不可解问题,即无法在 有限的时间内得到解的问题。停机问题就是能否设计一 个算法,判断任意一个程序是否会在有限的时间之内结 束运行。或者说,能否找到这样
一个测试程序,它能购判断出任意
的程序在接收了输入并执行后能不 能自动终止。
一个不可计算的问题:停机问题
证明:
设停机问题有解,即:存在过程H(P, I)可以给出程序P在输入I
的情况下是否可停机。假设若P在输入I时可停机,H输出“停机”, 反之输出“死循环”,即可导出矛盾:
显然,程序本身可以被视作数据,因此它可以被作为输入,故
H应该可以判定当将P作为P的输入时,P是否会停机。我们设过程 K(P)的流程如下:首先调用H(P, P),如果H(P, P)输出“死循环”,
图灵测试(Turing Test)
1950年,图灵提出:机器能思维吗? 一个人在不接触对象的情况下,进行一系列的提问, 如果他根据这些回答无法判断对象是人还是机器, 则这种计算机具有与人相当的智力。 模仿游戏的试验—称之为图灵测试 人类思维的本质?思维就是计算。 机器思维的定义?从功能的角度来判定机器是否能 思维,也就是从行为主义 这个角度对“机器思维”进 行定义。
证比求易算法
求出48 770 428 433 377 171的一个真因子 给出数进行验证:顺序算法 多人参加验证:并行算法 时间复杂性 空间复杂性 但并行运算也存在“瓶颈”问题:阿姆达尔定律 1 ≤ ------------------(倍) —— 加速能力 Sp 1-f f + ---------p 设f=1%, p ∞,Sp=100,最大100倍
旅行商问题与组合爆炸问题
将割平面法与分支限界法相结合,1998年科学家们成功 地解决了美国13509个城市之间的TSP问题, 2001年又解决了德国15112个城市之间的TSP问题。但 这一工程代价也是巨大的:共使用了美国Rice大学和普 林斯顿大学之间网络互连的、由速度为500MHz 的处理 器组成的110台计算机,所有计算机花费的时间之和为 22.6年。 由于TSP会产生组合爆炸的问题,因此寻找切实可行的 简化求解方法就成为问题的关键。 TSP应用:钻孔调度问题,运输问题,后勤服务问题。
3、计算学科中的其他典型科学问题(2)
旅行商问题与组合爆炸问题
旅 行 商 问 题 ( Traveling Salesman Problem , TSP ):一个旅行商从某 城市出发,必须经过每个城市一次切 仅一次,最后回到原出发城市。如何 确定一条最短的路线,使其旅行的费 用最少。 是典型的NP完全问题:本质上难以 求解。
哈密尔顿回路问题与欧拉回路问题
“哈密尔顿回路问题”与“欧拉回路问题”十分相似,
但却是完全不同的两个问题。“哈密尔顿回路问题”是 访问除原出发结点以外的每个结点一次且仅一次,而
“欧拉回路问题”是访问每条边一次且仅一次。
对任一给定的图是否存在“欧拉回路”,欧拉已给出了 充分必要条件(P23);而对任一给定的图是否存在“哈密 尔顿回路”,至今仍未找到满足该问题的充分必要条件。
3、计算学科中的其他典型科学问题(4)
计算机资源管理
生产者—消费者问题:使用资源,释放资源
使用共享资源的多进程同步问题 使用“信号灯”的概念解决进程间的互斥 “哲学家共餐”问题
程序并发执行时进程同步的
问题:“死锁”和“饥饿” 解决:并发程序语言、 Petri网
3、计算学科中的其他典型科学问题(5)
算法:C语言描述
hanoi(int n, char left, char middle, char right) { if(n==1) move(1, left, right); else { hanoi(n-1, left, right, middle); move(1, left, right); hanoi(n-1, middle, left, right); } }
欧拉对“七桥问题”的研究是图论研究的开始,同时 也为拓扑学的研究提供了一个初等的例子。
哈密尔顿回路问题
哈密尔顿图起源于一种游戏,英国数学家哈 密尔顿于1859年提出的“周游世界游戏”。用一 个正十二面体的20个顶点代替20个城市(图1,同 构于一个平面图,图2),要求沿着正十二面体的 棱从一个城市出发,经过每个城市恰好一次,然 后回到出发点,称为哈密尔顿回路。 抽象:在任一给定的图中, 能不能找到这样的路径,即从一 点出发不重复地走过所有的结点 (不必通过图中每一条边),最 后又回到原出发点。
型的问题。
欧拉经过三种抽象: 具体事物抽象成几何对象 实际关系抽象成几何关系 问题的要求抽象成一笔画的条件 —— 是否存在 “欧拉 回路”
通过这种抽象,显现出问题的本质,将实际问题转化 成数学问题,使研究的对象和对象间的关系准确无误地表 述出来,就可以先在已有的数学方法、理论中寻求解法。 在现有方法、理论中还未有解法时,就促使人们去寻找新 的数学方法和理论,甚至开拓出数学新的分支和领域。
P类问题采用的是确定性算法,NP类问题采用的 是非确定性算法(如通过猜算)。P⊆NP。 NP完全问题:NP=P? 是世界七大数学难题之一(首位) 哈密顿路径问题:可以在多项式时间类判断一个回路 是否是哈密顿回路,但目前没有多项式时间类算法直 接求解出哈密顿回路。
3、计算学科中的其他典型科学问题(1)
相关文档
最新文档