《计算复杂性:现代方法》——第一部分 基本复杂性类 第1章 计算模型——为什么模型选择无关紧要 1.1 计算的建模:你真正需要了解的内容...

本节书摘来自华章计算机《计算复杂性:现代方法》一书中的第1章,第1.1节,作者 [美]桑杰夫·阿罗拉(Sanjeev Arora),博阿兹·巴拉克(Boaz Barak),译 骆吉洲,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第一部分

基本复杂性类

第1章

计算模型——为什么模型选择无关紧要

screenshot

初看起来,为计算建立数学模型可谓难上加难。这是由于,历史上人类在解决各种计算任务的过程中用尽了各种各样的方法——从直觉和灵感到算盘或计算尺,再到现代的计算机。此外,自然界中其他生物或系统也时刻需要处理各种计算任务,而它们的解决之道也是纷乱繁杂。怎样才能找出一个能抓住这些计算方法共性的简洁的数学模型呢?如果再考虑到本书要关注的计算效率问题,则建模问题就更加无从下手了。考虑计算效率问题似乎必须小心地选择计算模型,因为即便是孩童也知道一款新的视频游戏是否能“高效运行”将依赖于他的计算机硬件。

令人惊讶的是,一个简洁的计算模型——图灵机足以研究关于计算及其效率的所有问题。将讨论范围仅限于这种计算模型的理由是充分的,因为它能够模拟所有能被物理实现的计算方法而仅在计算效率上略有损失。因此,图灵机“能高效解决”的计算任务至少与其他计算方法能高效解决的计算任务一样多(一个可能的例外是第10章讨论的量子计算机模型,但目前还不清楚它能否被物理实现)。

本章将给出图灵机的形式定义,并研究它的一些基本性质。1.1节概述了图灵机模型及其基本性质。该小节还为普通读者概述了1.2节至1.5节的结论,以帮助这些读者跳过图灵机模型杂乱的细节而直接从1.6节开始进入复杂性理论。

由于复杂性理论 “complexity”一词译做“复杂性”或“复杂度”。当比较抽象地论及“complexity”时译作“复杂性”,当用具体函数论及“complexity”的高低时,译作“复杂度”。关注的是计算效率,因此1.6节给出了本书最重要的几个定义之一,亦即复杂性类P的定义,它从数学上刻画了由所有能被高效求解的判定问题构成的集合。1.6节还就下面的问题展开了一些讨论:类P是否真的刻画了“高效计算”这一非正式概念的本质。该小节还表明了图灵机的定义是如何贯穿全书的;同时还指出,类P是定义很多其他模型的出发点,这些模型包括非确定型图灵机、概率型图灵机、量子图灵机、布尔线路、并行计算机、判定树和通信游戏,其中有些模型用于研究物理计算的有争议的实现模式,而另一些则主要用于深入理解图灵机计算的本质。

1.1 计算的建模:你真正需要了解的内容

形式地讨论图灵机将不可避免地遇到一些单调乏味的概念。我们先概述这些直觉概念,以便普通读者可以跳过正式的讨论而直接进入从1.6节开始的复杂性理论。当他们在阅读后续章节的过程中偶尔遇到确实需要图灵机模型的细节时,可以随时回头阅读跳过的小节。

千百年来,“计算”这个词曾一直被理解为将机械的规则作用于操作数上,其中完成操作的人或机器允许使用演草纸来记录中间结果。图灵机是这种直觉概念的具体实现。1.2.1节表明,图灵机等价于任何一种现代程序设计语言——除了对内存大小没有限制之外。

下面,我们按照本章开头所引用的图灵的话非正式地描述图灵机模型。令f是一个以位串(即{0,1}中的成员)为输入而以0或1为输出的函数。计算f的一个算法是一组机械的规则,根据这组规则我们可以为任意输入x∈{0,1}计算函数值f(x)。所采用的计算规则是固定不变的(即同一组规则必须适用于所有输入),尽管其中每条规则被使用的次数是任意的。每条规则将用到如下定义的一个或多个“基本”操作:

1.从输入中读取一个位;

2.从算法使用的演草纸或工作空间中读取一个位(也可能是某个更大的字母表中的一个符号,例如集合{0,…,9}中的一个十进制位)。

根据读取的值,

1.在草稿纸上写出一个位或符号;

2.要么停机并输出0或1,要么重新选择下一步要执行的计算规则。

最后,图灵机的运行时间指的是上述基本操作被执行的次数。我们采用渐进术语描述运行时间。因此,如果图灵机在长度为n的输入上至多执行T(n)个基本操作,则称该图灵机的运行时间为T(n)。

下面列举图灵机模型的一些简单事实。

screenshot

screenshot

4.简单地利用前面两个事实可以证明,存在不能被任何图灵机计算的函数,见1.5节。不可计算性与著名的哥德尔不完全定理关系密切,见1.5.2节。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 基于QPLMTS算法的边缘计算场景下的任务调度器源码+项目说明.zip QPLMTS算法 一种融合 Q-Learning、优先级列表与线性加权法的调度长度、服务成本多目标协同优化任务调度算法。 面向静态DAG任务集,将边缘计算场景下的任务调度问题分为**任务排序、节点绑定**两阶段,具体步骤如下: 1. 以任务排序、节点绑定为两个阶段,基于 Upward Rank 评估任务的紧要程度 2. 引入时间差分的强化学习机制进行任务优先级排序 3. 采用 β 权重因子对各优化目标加权打分 QPLMTS_Vapour调度器 运行环境 - 语言环境:Python3.6+ - 依赖环境:(Python)matplotlib、sympy、pymysql、numpy、tqdm;(Other)Daggen 运行方法 - 为QPL生成对象 - 采用数据集发生器/边缘计算系统API初始化DAG任务数据、边缘节点数据 - 运行QPLMTS算法核心模块,产生调度结果 - 执行实验分析模块,分析调度结果 主要函数与功能 # 数据预处理区 1. **数据集发生器:** ReadDataSet_Auto(Scale=任务集规模,EdgeNum=边缘节点数,fat=任务链宽度) - 基于Daggen产生对应规模(Scale)、链宽度(fat)的静态DAG任务集 - 产生边缘节点集 # QPLMTS算法核心区 2. **Upward Rank值计算模块:** CalUR() - 基于任务计算量、任务间通信成本,计算所有任务的Upward Rank值 - 递归结构+LRU_Cache高效计算 3. **调度Q表产生模块:** Q_Process(IterCount=Q表迭代次数) - 以任务Upward Rank为Q-Learning Reward,产生调度Q表 - 给出Reward变化过程记录表 4. **任务分发次序产生模块:** CalCTPS(CurrentTask=入口任务) - 根据最大Q值原则,基于收敛的调度Q表,计算任务分发次序CTPS 5. **边缘节点绑定模块:** AllocateNode(CTPS=任务分发次序,a1=MakeSpan的β权重因子,a2=ServiceCost的β权重因子) - 基于CTPS,针对每个任务进行节点打分,依次遍历所有任务,产生边缘节点-任务绑定表 - 边缘节点-任务绑定表数据上行MySQL # 一体化调度区 6. **QPLMTS算法一步调度模块:** QPLMTS(a1=MakeSpan的β权重因子,a2=ServiceCost的β权重因子,IterCount=Q表迭代次数) - 直接产生一次QPLMTS调度结果 7. **HEFT算法一步调度模块:** HEFT() - 直接产生一次HEFT(经典算法)调度结果 # 实验分析区 8. **学习率实验模块:** ParaOpt_LearningRate(IterCount=Q表迭代次数) - 执行学习率参数设计实验,产生学习率图表 9. **β权重因子实验模块:** ParaOpt_Weight(IterCount=Q表迭代次数,Accuracy=β权重因子变化步长) - 执行β权重因子参数设计实验,产生β权重因子图表 10. **Q表迭代次数实验模块:** ParaOpt_Q(Scale=任务集规模列表,Curve=是否绘制稳定性曲线,IterCount=Q表迭代次数) - 执行Q表迭代次数实验,产生Q表迭代次数图表 # 功能模块 11. **MySQL操作模块:** __InputMysql(mode=数据模式,List=数据列表) 12. **更新结果模块:** UpdateResult(List=数据列表) 13. **最早完成时间计算模块:** __ETFT(Task=任务,Edge=边缘节点)、__ETIT(Task=任务,Edge=边缘节点)、__EEAT(Edge=边缘节点) 14. **服务成本计算模块:** __Cost(Task=任务,Edge=边缘节点)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值