计算复杂性

课程 中国大学Mooc《大学计算机》 李凤霞、陈宇峰等 

第八讲 关于计算

目录

1. 关于计算

2. 什么是计算

3. 什么是可计算问题

4. 什么是计算复杂性

5. P类问题与NP类问题


1. 关于计算

图灵提出,如果解决问题的算法无法构建,则表明该问题一定是不可构建的;任何在算法上可计算的问题,同样可由图灵机计算

该问题的基本观点表明,任何在算法上可计算的问题可由图灵机计算.

2. 什么是计算

图灵和图灵机

图灵机包含了一条无限长的纸带和一个控制器。

(1) 控制器从纸带上读出一个符号;

(2)控制器向纸带中写入一个符号;

(3)使纸带可以向左边移动一个位置,或向右移动一个位置

(4)停机

                                           图灵机

在图灵机模型中,控制器就是计算者,可以是人,也可以是机器;

对于一条无限长的纸带上的符号,顺序执行,一步步改变纸带上某个位置的符号;

经过有限步骤,最后得到一个满足预先规定的符号串的变换过程。

计算

计算的科学定义:是构建在一套公理体系上的、不断向上演化的规则。

抽象的描述计算,基于规则的符号集合的变换过程,即从一个按规则组织的符号集开始,在按照既定的规则一步一步的改变这些符号集合。经过有限步骤之后,得到一个确定的结果。

举例:

从函数的概念来理解,任意的一个函数变换就是一个计算。比如y = f(x)函数,当给出一个x值,通过规则的计算就可以得到结果y的值。

计算永远是面向问题的。

3. 什么是可计算问题

可计算问题,是“当且仅当它在图灵机上经过有限步骤之后可以得到正确的结果”。

提出图灵问题的目的在于,对有效的计算过程进行形式化的描述,忽略模型的存储容量在内的一些枝节问题,只考虑算法的基本特征。

性质:

  • 具有有穷描述
  • 过程必须由离散、可以机械执行的步骤组成。

可计算理论的中心课题就是,将算法这一直观概念精确化,建立数学模型,研究哪些是可计算的,哪些是不可计算的,以此揭示计算的实质。

可计算性

设函数f的定义域是D,值域是R,如果存在一种算法,对D中任意给定的x,都能计算出f(x)的值,则称函数f是可计算的。

可计算问题的意义

使得人们不必浪费时间在不可能解决的问题上,集中资源在可以解决的问题上。

 一个典型的不可计算问题-停机问题

停机问题,对于任意的图灵机和输入,是否存在一个算法,用于判定图灵机在接收初始输入后可达停机状态。若能找到这种算法,停机问题可解;否则不可解。

举例

通俗的说,停机问题就是判断任意一个程序是否在有限时间内结束运行的问题。

4. 什么是计算复杂性

如果我们判定一个问题是可计算的,也不一定能最终算出来。

计算复杂性理论,计算复杂性理论研究各种可计算问题在计算过程中资源(如时间、空间等)的耗费情况。

时间算法复杂性,空间算法复杂性

常见的算法时间复杂度,指数时间,多项式时间

好的算法,多项式时间算法

5. P类问题与NP类问题

(1)确定性问题:只有肯定和否定答案

P类问题:具有多项式时间算法的确定性问题形成的计算复杂性类

P类问题包含了大量的已知自然问题,如计算最大公约数、计算\pi值、排序问题、二维匹配问题等。

(2)非确定性算法

  • 猜测一个变量的真值赋值
  • 检查该赋值是否满足

如果一个问题的潜在解答可以在多项式时间内被证实或证伪,则该问题属于NP问题。

NP类问题:由非确定性算法多项式时间内可计算的判定问题所组成的集合。

NP类问题数量巨大,如完全子图问题、图的着色问题、旅行销售员问题等。

(3)如何处理NP问题

随机算法

优化问题,以较大概率得到性能

好的解,性能不稳定

近似算法

不要最优,只求较优

时间复杂度低

例如:局部搜索、模拟退火、遗传算法。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值