算法设计与分析耿国华第八章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
语言类两种方式表示 ,其中可以定义一些计算模型 所用的基本运算,最终使问题的计算复杂性分析有 一个共同的客观尺度。
• 2.实质: • 计算模型的设计与分析,本质上是用符号和公式、
公理等数学方法对人的思维过程和规律进行研究, 以形式化系统进行处理。
• 3.用途: • 计算模型为各种计算提供了硬件和软件界面,在
Chapter 8
8.1.2 随机存取机(RAM)模型
操作码 LOAD STORE
ADD SUB MULT DIV READ
WRITE JUMP JGTZ JZERO HALT
表8-1 RAM基本指令集
操作数类型
指令含义
=i
i
*i 取操作数放入累加器
i
*i 将累加器中数据存入内存
=i
i
*i 加法运算
8.5小结
Chapter 8
引言----P、NP类问题描述
• P、NP类问题的特性
(1) P类问题是可在多项式时间内解决的 “易解” 问题,而NP类问题是需要指数函数时间解决的 “难解”问题。
(2)研究NP类问题可以计算和分析该问题的复杂
性,具体而言,用分类方法归结计算复杂性相同 的P类和NP类,在共同尺度下分析计算复杂性 。
(3)程序的控制部件由指令计数器、
指令译码器构成,用来控制程序走
向执行。
图8-1 RAM计算模型
Chapter 8
8.1.2 随机存取机(RAM)模型
• (4)程序存储部件用来存储程序; • (5)内存储器由一系列寄存器r0,r1……rn(n可无限大)组成,
其中的r0主要用来作为累加器;
• 3.RAM指令集 • RAM模型中,指令系统结构如下:
例如2513=75+250=325带子可设想为磁带,带被划
为方格,方格放一个符号。
• <2>人在运算时一般注视一次5,6个符号,图灵规定一
次“注视”1个符号,注视由读写头执行。
• <3>一组运算法则存放在有限状态控制器中,根据
磁头注视符号和当前状态来决定下一步动作。
Chapter 8
8.1.1什么是计算模型
• 1.RAM定义
•
随机存取机RAM所描述是一
台不能进行自身修改的单累加器计
算机。
• 2.RAM构成
•
RAM由只读输入带,只写输出
带,程序存储部件,内存储器和指
令计数器五个部分组成,结构如图 8-1。
(1)只读输入带由一系列方格和带头 组成,每读一次,带头右移一格;
(2)只写输出带由一系列方格和带头 组成,每输出一次,带头右移一格, 输出符号一经写出,则不能进行修 改;
(3)进行问题计算复杂性分析的第一步是建立求解 问题所用的计算模型,以揭示不同问题的固有计 算难度 。
Chapter 8
8.1 计算模型
8.1.1 计算模型的概念 8.1.2 RAM模型 8.1.3 RASP模型 8.1.4 RASP模型和RAM模型的关系 8.1.5 RAM和RASP模型的简化 8.1.6 图灵机模型 8.1.7 图灵机模型与RAM、RASP模型的关系
=i
i
*i 减法运算
=i
i
*i 乘法运算
=i
i
*i 除法运算
i
*i 读入数据
=i
i
标号
标号
标号
*i 输出数据 无条件转移到标号处 正(>0)转移到标号处 零(=0)转移到标号处 停机
Chapter 8
8.1.2 随机存取机(RAM)模型
算法 设计与分析 算法设计与分析
第八章 NP完全性理论
主编 耿国华
Chapter 8
本章内容
8.1 计算模型
• 8.1.1 计算模型的概念 • 8.1.2 RAM模型 • 8.1.3 RASP模型 • 8.1.4 RASP模型和RAM模型的关系 • 8.1.5 RAM和RASP模型的简化 • 8.1.6 图灵机模型 • 8.1.7 图灵机模型与RAM、RASP模型的关系
操作数地址 操作码
• 其中常用操作码如表8-1,操作数地址有以下三种类型: • =i 直接数,即i本身。 • i 直接地址型,表示ri中的内容。 • *i 间接地址型,表示中的内容。 • 若c(i)表示寄存器ri中的内容,操作数的值为V,则V(=i)=i,
V(i)=c(i),V(*i)=c(c(i))
Chapter 8
8.1 计算模型
• 下面将讨论几个典型的计算模型,包括: • 随机存取计算机RAM ; • 随机存取存储计算机RASP; • 图灵机TM(Tuning Machine); • 通过讲解这三个模型,比较它们的计算能
力和算法复杂度的关系。
Chapter 8
8.1.1什么是计算模型
• 1.定义: • 计算模型用模型可计算的函数集与模型可识别的
图灵第一次把计算过程和自动机建立对 应,得到最原始的计算机器(图灵机)图 灵的图灵机理论奠定了通用电子计算机设 计的理论基础。这种理论准备同电子技术 的结合才最终产生了20世纪最伟大的奇迹。
1912-195 4
Chapter 8
8.1.1什么是计算模型
• 5.图灵机的设计和构造: • <1>将运算介质确定为线性带子,而不是二维的纸。
8.2 P类与NP类问题
• 8.2.1 非确定性图灵机 • 8.2.2 P类与NP类语言
8.3 NP完全问题
• 8.3.1 多项式变换与问题规约 • 8.3.2 NP完全问题的定义 • 8.3.3 一些典型的NP完全问题的证明
8.4 NP完全问题的近Hale Waihona Puke Baidu算法
• 8.4.1 近似算法的性能 • 8.4.2 顶点覆盖问题的近似算法 • 8.4.3 集合覆盖问题的近似算法
• 6.图灵机的构成:
•
图灵机包括一个控制器,一条可无限伸延的带子
和一个在带子上左右移动的读写头。运算介质(线性
带子),注视当前符号(一次只看一个符号)以及一
组放在状态控制器中的规则,根据当前符号与当前状
态决定下一步动作。这种概念上的简单机器,理论上
可以计算任何直观可计算函数。
Chapter 8
8.1.2 随机存取机(RAM)模型
模型界面约定下,设计者可以开发对整个计算系统 的硬件和软件支持机制,从而提高整个计算系统的 性能。
Chapter 8
8.1.1什么是计算模型
• 4. 图灵关于计算的定义:
早在计算机出现之前1936年英国数学家 图灵提出的计算模型被称为图灵机,它结 构简单,用它可以确切地表达任何运算, 可计算函数和计算复杂性,是描述NP的简 单工具,图灵给出了计算的精确定义实质 是模拟人的动作。
• 2.实质: • 计算模型的设计与分析,本质上是用符号和公式、
公理等数学方法对人的思维过程和规律进行研究, 以形式化系统进行处理。
• 3.用途: • 计算模型为各种计算提供了硬件和软件界面,在
Chapter 8
8.1.2 随机存取机(RAM)模型
操作码 LOAD STORE
ADD SUB MULT DIV READ
WRITE JUMP JGTZ JZERO HALT
表8-1 RAM基本指令集
操作数类型
指令含义
=i
i
*i 取操作数放入累加器
i
*i 将累加器中数据存入内存
=i
i
*i 加法运算
8.5小结
Chapter 8
引言----P、NP类问题描述
• P、NP类问题的特性
(1) P类问题是可在多项式时间内解决的 “易解” 问题,而NP类问题是需要指数函数时间解决的 “难解”问题。
(2)研究NP类问题可以计算和分析该问题的复杂
性,具体而言,用分类方法归结计算复杂性相同 的P类和NP类,在共同尺度下分析计算复杂性 。
(3)程序的控制部件由指令计数器、
指令译码器构成,用来控制程序走
向执行。
图8-1 RAM计算模型
Chapter 8
8.1.2 随机存取机(RAM)模型
• (4)程序存储部件用来存储程序; • (5)内存储器由一系列寄存器r0,r1……rn(n可无限大)组成,
其中的r0主要用来作为累加器;
• 3.RAM指令集 • RAM模型中,指令系统结构如下:
例如2513=75+250=325带子可设想为磁带,带被划
为方格,方格放一个符号。
• <2>人在运算时一般注视一次5,6个符号,图灵规定一
次“注视”1个符号,注视由读写头执行。
• <3>一组运算法则存放在有限状态控制器中,根据
磁头注视符号和当前状态来决定下一步动作。
Chapter 8
8.1.1什么是计算模型
• 1.RAM定义
•
随机存取机RAM所描述是一
台不能进行自身修改的单累加器计
算机。
• 2.RAM构成
•
RAM由只读输入带,只写输出
带,程序存储部件,内存储器和指
令计数器五个部分组成,结构如图 8-1。
(1)只读输入带由一系列方格和带头 组成,每读一次,带头右移一格;
(2)只写输出带由一系列方格和带头 组成,每输出一次,带头右移一格, 输出符号一经写出,则不能进行修 改;
(3)进行问题计算复杂性分析的第一步是建立求解 问题所用的计算模型,以揭示不同问题的固有计 算难度 。
Chapter 8
8.1 计算模型
8.1.1 计算模型的概念 8.1.2 RAM模型 8.1.3 RASP模型 8.1.4 RASP模型和RAM模型的关系 8.1.5 RAM和RASP模型的简化 8.1.6 图灵机模型 8.1.7 图灵机模型与RAM、RASP模型的关系
=i
i
*i 减法运算
=i
i
*i 乘法运算
=i
i
*i 除法运算
i
*i 读入数据
=i
i
标号
标号
标号
*i 输出数据 无条件转移到标号处 正(>0)转移到标号处 零(=0)转移到标号处 停机
Chapter 8
8.1.2 随机存取机(RAM)模型
算法 设计与分析 算法设计与分析
第八章 NP完全性理论
主编 耿国华
Chapter 8
本章内容
8.1 计算模型
• 8.1.1 计算模型的概念 • 8.1.2 RAM模型 • 8.1.3 RASP模型 • 8.1.4 RASP模型和RAM模型的关系 • 8.1.5 RAM和RASP模型的简化 • 8.1.6 图灵机模型 • 8.1.7 图灵机模型与RAM、RASP模型的关系
操作数地址 操作码
• 其中常用操作码如表8-1,操作数地址有以下三种类型: • =i 直接数,即i本身。 • i 直接地址型,表示ri中的内容。 • *i 间接地址型,表示中的内容。 • 若c(i)表示寄存器ri中的内容,操作数的值为V,则V(=i)=i,
V(i)=c(i),V(*i)=c(c(i))
Chapter 8
8.1 计算模型
• 下面将讨论几个典型的计算模型,包括: • 随机存取计算机RAM ; • 随机存取存储计算机RASP; • 图灵机TM(Tuning Machine); • 通过讲解这三个模型,比较它们的计算能
力和算法复杂度的关系。
Chapter 8
8.1.1什么是计算模型
• 1.定义: • 计算模型用模型可计算的函数集与模型可识别的
图灵第一次把计算过程和自动机建立对 应,得到最原始的计算机器(图灵机)图 灵的图灵机理论奠定了通用电子计算机设 计的理论基础。这种理论准备同电子技术 的结合才最终产生了20世纪最伟大的奇迹。
1912-195 4
Chapter 8
8.1.1什么是计算模型
• 5.图灵机的设计和构造: • <1>将运算介质确定为线性带子,而不是二维的纸。
8.2 P类与NP类问题
• 8.2.1 非确定性图灵机 • 8.2.2 P类与NP类语言
8.3 NP完全问题
• 8.3.1 多项式变换与问题规约 • 8.3.2 NP完全问题的定义 • 8.3.3 一些典型的NP完全问题的证明
8.4 NP完全问题的近Hale Waihona Puke Baidu算法
• 8.4.1 近似算法的性能 • 8.4.2 顶点覆盖问题的近似算法 • 8.4.3 集合覆盖问题的近似算法
• 6.图灵机的构成:
•
图灵机包括一个控制器,一条可无限伸延的带子
和一个在带子上左右移动的读写头。运算介质(线性
带子),注视当前符号(一次只看一个符号)以及一
组放在状态控制器中的规则,根据当前符号与当前状
态决定下一步动作。这种概念上的简单机器,理论上
可以计算任何直观可计算函数。
Chapter 8
8.1.2 随机存取机(RAM)模型
模型界面约定下,设计者可以开发对整个计算系统 的硬件和软件支持机制,从而提高整个计算系统的 性能。
Chapter 8
8.1.1什么是计算模型
• 4. 图灵关于计算的定义:
早在计算机出现之前1936年英国数学家 图灵提出的计算模型被称为图灵机,它结 构简单,用它可以确切地表达任何运算, 可计算函数和计算复杂性,是描述NP的简 单工具,图灵给出了计算的精确定义实质 是模拟人的动作。