可计算性问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
停机定理
给定任意一个图灵机程序P和任意一组输入数 据I,不存在一个图灵机程序,它能在有限多 步后停机,并告诉我们P是否会结束输入数据I 的处理。
P和NP问题
P (Polynomially)类问题:算法能在多项式时间 内完成的问题。 NP (Nondeterministic Polynomially)问题:可 以用多项式时间来验证一个解是否正确。 已经可以证明:P N P 需要证明:P=NP,或者P是NP的一个真子集
可计算性问题
陈虎 博士 副教授 Tel: 31984767 Email: tommychen74@yahoo.com.cn
计算复杂度
假设有N个数据形成的一个链表。查找x是否 在此列表中,采取顺序比较方式。 如果x在此列表中,且位置处于i,则需要比较i 次。则平均比较次数为 N ( N 1)
( i)
i 1 N
N
2 N
N 1 2
如果x不在此列表中,则需要比较N次。 因此该查找算法的平均查找复杂度为(N+1)/2, 最大复杂度为N
大O分析
为了简化数量级的分析,往往采用大O分析, 选取最重要的部分,即使用随着问题的大小增 长得最快的项表示计算时间(复杂度)。 例如f(N)=N4+100N2+10N+50, O(f(N))=O(N4) f(n)=(N+1)/2, O(f(n))=O(N)
常见的数量级
复杂度 O(1) O(logN) O(N) O(NlogN) O(N2) O(2N) O(N!) 二次时间 指数时间 阶乘时间 名称 有界时间 对数时间 线性时间 7 128 896 16,384 600,000倍于宇宙年龄 没有意义了 N=128 实例 向数组中写入数据 用二分检索方法在有序列 表中查找 在无序列表中顺序查找 快速排序的平均复杂度 简单排序的复杂度 可满足性问题 货担郎问题
可满足性问题
对于有N个变量的布尔表达式(仅仅包含AND, OR,NOT操作),可否存在一组变量使得该 布尔表达式的值为1
可计算问题的渊源
1928年德国著名数学家 希尔伯特(Hilbert)提出一 个问题:可否有一个算 法能对所有的数学原理 自动给予证明 1931年,奥地利数学家 哥德尔证明了:对于一 个相容的形式系统,存 在一个算术命题,它在 该系统中可以既未被证 明,也未被证否。
图灵机
用准确的数学形式来描述什么是“计算” 图灵机包含了一条无限长的纸带和一个控制器。 控制器可以:
从纸带上读出一个符号; 向纸带写入一个符号; 使带子可以向左边移动一个位置,或向右移动一个位置 停机
Church-Turing理论:任何能直观计算的问题都内被 图灵机计算。 如果证明了某个问题使用图灵机是不可解决的,那么 这个问题就是不可解决的。
大O分析
为了简化数量级的分析,往往采用大O分析, 选取最重要的部分,即使用随着问题的大小增 长得最快的项表示计算时间(复杂度)。 例如f(N)=N4+100N2+10N+50, O(f(N))=O(N4) f(n)=(N+1)/2, O(f(n))=O(N)
常见的数量级
复杂度 O(1) O(logN) O(N) O(NlogN) O(N2) O(2N) O(N!) 二次时间 指数时间 阶乘时间 名称 有界时间 对数时间 线性时间 7 128 896 16,384 600,000倍于宇宙年龄 没有意义了 N=128 实例 向数组中写入数据 用二分检索方法在有序列 表中查找 在无序列表中顺序查找 快速排序的平均复杂度 简单排序的复杂度 可满足性问题 货担郎问题
NP完全问题(NP-Complete Problems)
NP问题中有一组问题,如果其中有一个问题具有多 项式的算法可以完成,则这一组问题都可以使用多项 式时间完成。 NP完全问题的例子:
可满足问题; 货担郎问题:在一个图中,可否找到一个路径满足:所有的 节点经过且仅经过一次,而且最后可以回到起点; 装箱问题:有有限多个容量为1的箱子,以及N个货物(每个 货物的重量均小于1),需要最少的箱子把所有的N个货物完 全装完。 背包问题:背包的容量为C,有N个物体,体积分别为 s1,…,sn以及价值分别为p1,…,pn,寻找一个最大价值的装 背包的方案。
P和NP问题
P (Polynomially)类问题:算法能在多项式时间内完成 的问题。 NP (Nondeterministic Polynomially)问题:可以用多 项式时间来验证一个解是否正确。 已经可以证明:
P NP
需要证明:P=NP,或者P是NP的一个真子集 NP问题中有一组问题,如果其中有一个问题具有多 项式的算法可以完成,则这一组问题都可以使用多项 式时间完成。
图灵机
用准确的数学形式来描述什么是“计算” 图灵机包含了一条无限长的纸带和一个控制器。 控制器可以:
wenku.baidu.com
从纸带上读出一个符号; 向纸带写入一个符号; 使带子可以向左边移动一个位置,或向右移动一个位置 停机
Church-Turing理论:任何能直观计算的问题都内被 图灵机计算。 如果证明了某个问题使用图灵机是不可解决的,那么 这个问题就是不可解决的。
计算复杂度
假设有N个数据形成的一个链表。查找x是否 在此列表中,采取顺序比较方式。 如果x在此列表中,且位置处于i,则需要比较i 次。则平均比较次数为 N ( N 1)
( i)
i 1 N
N
2 N
N 1 2
如果x不在此列表中,则需要比较N次。 因此该查找算法的平均查找复杂度为(N+1)/2, 最大复杂度为N