《算法之道》精华 难解问题部分

  • 本书作者邹恒明,作者另有一本书《数据结构之弦》,以及《操作系统之哲学原理》都是很好的书
  • 这本书可以算得上是深入浅出,文笔很好,作者添加了很多自己的思考
  • 本文包括难解问题部分

第十三章 易解与难解

  • 易解指的是多项式问题,难解指的是指数级问题
  • 决策问题
    • 需要输出答案是/否
    • 若回答为是,通常需要一个证人来证明。对一个潜在证人,证明之后即为真证人
    • 优化问题和决策问题之间可以相互转化
  • P类问题
    • 确定性多项式时间可解
    • 对于一个决策问题,输入的大小为n,能在n的多项式时间内解决,正确输出是/否
  • NP类问题
    • 非确定性多项式时间可解
    • 对于一个决策问题,大小为n的潜在证人,能在n的多项式时间内解决,正确输出此证人是否为真
    • P类问题指的是能否多项式时间给出答案,NP类问题指的是能否在多项式时间内判断一个潜在答案是否正确
  • (确定性)图灵机
    • 图灵机为一个状态机,根据当前状态、下一个输入字符确定输出、磁头移动方向、下一个状态
    • 任一个问题、算法都能表述为一个字符串,因此图灵机可以解决很多问题
  • 非确定性图灵机
    • 与确定性图灵机相比,给定状态与输入可以有多种选择
    • 能够同时进入所有状态路径,且能做出最好的选择以达到接受状态
    • 非确定性算法:在非确定性图灵机上运行的算法
    • NP问题的另一个定义:使用非确定性算法,在多项式时间内解决
  • P与NP的关系
    • 所有P类问题都是NP的
    • 所有NP不一定是P,直觉如此,但无法证明
    • 部分NP为P,目前已经找到多项式解法,目前没有找到多项式解法的NP问题称为NP-hard

第十四章 NP完全问题

  • 如果NP里每一个问题都可以多项式时间规约到S,则S称为NP难(严谨的定义)。S不比NP里面任一问题容易
  • 如果问题S既是NP难,又是NP里的问题,则称为NP完全问题
  • NP完全的属性
    • 非确定性算法多项式时间可解
    • 完全:解决一个就解决了所有NP完全问题
  • 若找到一个NP完全问题的确定性解法,就证明了NP=P
  • 若找到一个NP难优化问题的多项式时间解,就证明了NP=P
  • NP完全的意义:若能证明一个问题为NP完全问题,则无需再寻找精确解,找到启发性的近似解即可
  • 常见NP完全问题
    • 3-SAT
    • 整数分割
    • 顶点覆盖
    • 汉密尔顿回路 可规约至旅行商问题
    • 完全子图
    • 图的着色
    • 旅行商
    • 整数规划属于NP难问题,但不是NP问题,因此不是NP完全问题

第十五章 无解与近似

  • NP完全只是NP里最难的问题,目前没有找到多项式解法
  • 难解问题不存在多项式解法
  • 不可决定问题:是无解的,即使是指数级也无济于事。但又潜在证人
  • 对于NP完全和难解问题,可以尝试找出次优解
    • 智能穷举

      • 能找的最优解
      • 两种剪枝策略:回溯法、分支限界
      • 如八皇后问题
    • 近似算法
      • 能找到近似的解
      • 如聚类问题、启发式搜索、模拟退火、遗传算法
    • 本地搜索
      • 一种贪婪策略
      • 不断向更优的可行解移动,可能仅能找到局部最优解

  
  

转载请注明作者:Focustc,博客地址为http://blog.csdn.net/caozhk,原文链接为点击打开
  
  

《算法之道》精华 难解问题部分相关推荐

  1. 《算法之道》精华 经典算法部分

    <算法之道>精华 经典算法部分 本书作者邹恒明,作者另有一本书<数据结构之弦>,以及<操作系统之哲学原理>都是非常好的书 这本书能够算得上是深入浅出,文笔非常好.作 ...

  2. 芯片短缺困局难解汽车巨头被迫停工减产---道合顺大数据

    汽车巨头丰田汽车公司16日宣布,因为半导体短缺而无法采购足够的必要零件,决定从下个月2日起暂停爱知县丰田市工厂的部分生产线运营5天.预计该生产线生产的"卡罗拉"和"卡罗拉 ...

  3. 从决策树学习谈到贝叶斯分类算法、EM、HMM - 结构之法 算法之道

    转载自:http://scm.zoomquiet.io/data/20121220000040/index.html 第一篇:从决策树学习谈到贝叶斯分类算法.EM.HMM (Machine Learn ...

  4. 算法之道:形而之上谓之道

    1966年3月的一天,美国加州大学洛杉矶分校的Andrew J. Viterbi教授在给研究生讲解缠绕编码的时序译码算法SDCD.但不管他如何讲解,学生就是听不明白.思来想去,Viterbi觉得学生不 ...

  5. 算法为啥子那么难【转】

    转自:http://blog.csdn.net/azheng51714/article/details/8094626 广大码农同学们大多都有个共识,认为算法是个硬骨头,很难啃,悲剧的是啃完了还未必有 ...

  6. 为什么L0正则化是一个NP难解问题?

    1. 矩阵的L0范数 矩阵的L0范数就是非0元素的个数,通常用它来表示稀疏,L0范数越小0元素越多,也就越稀疏.例如 A=[-1, 2, -3; 4, -6, 6]的L0范数就是:6. 2. 为什么L ...

  7. STP/RSTP/MSTP 精华详解

    STP/RSTP/MSTP 精华详解: STP 概述 : 因为二层设备的互联,并因为交换机的转发原理,会导致物理环路的产生.这时就会使用到STP协议 STP:在有环的拓扑里面形成一个无环的逻辑拓扑(从 ...

  8. 模拟退火算法(Simulated Annealing)详解

    问题提出 旅行商问题(Travelling Salesman Problem, 简记TSP,亦称货郎担问题):设有n个城市和距离矩阵D=[dij],其中dij表示城市i到城市j的距离(i,j=1,2 ...

  9. 【Joy of Cryptography 读书笔记】Chapter 4 基于难解计算(Intractable Computation)的密码学

    Chapter 4 基于难解计算(Intractable Computation)的密码学 John Nash提出一个观点:如果破解一个密码算法的计算耗费时间很长,那么这个密码算法从实用的角度上是安全 ...

最新文章

  1. g-gdb工具使用图谱(持续更新)
  2. 浅谈java内存分配和回收策略
  3. LeetCode Power of Three
  4. 802.11协议之BA/BAR帧
  5. i7跑服务器系统,i7主机做服务器
  6. ABAP-获取用户的组织结构权限
  7. python语法错误概述_Python 错误和异常代码详解
  8. mysql 5.0 php_PHP 5.0的新特性
  9. 查看tcp连接的命令
  10. python数据库sqlite3_Python数据库之SQLite3
  11. mysql update实质,UPDATE注射(mysql+php)的两个模式
  12. 数据流被污染?数据质量不高?蚂蚁金服数据资产管理平台了解一下
  13. 升级无法登录_JeeSite v4.2.2 发布,代码生成增强、Boot 2.3、短信登录、性能提升...
  14. javaScript的arguments传参数
  15. pku 2251 Dungeon Master
  16. 超好用的录屏软件 captura
  17. LAMMPS学习总结1
  18. pytest生成测试报告
  19. [CATARC_2017] 第一周
  20. 坐标计算机在线使用,caslo计算器计算坐标的方法

热门文章

  1. 【前端基础知识】chrome安装React Devtools
  2. Windows平台下sbt的安装设置
  3. Jade/Pug模板引擎
  4. nodejs后端使用art-template
  5. poi读取excel导入mysql_poi读取xlsx表格内容并插入到mysql中,OutOfMemoryError
  6. Python3小程序:把连续的16进制UTF8编码转换为字符串
  7. Python练习:快乐的数字
  8. 安工大计算机学院肖维民,安工大路由器实验报告.docx
  9. Android 自动扫描歌曲,Android扫描本地音乐文件开发案例分享
  10. mac osx 下的 mysql_Mac OSX下的MySQL数据库升级