已经提到了显示中大多数难解问题问题最后都被证明是NP-完全问题。这意味着,除非NP=P,它们是不可能有多项式时间算法的(而且,在 这篇文章提到即使NP=P,人们也可能找不到一个NP完全问题的「有效」算法)。

所以人们发展了各种工具来避开它们,最常用的两种方法是使用概率算法和近似算法,这两种方法也符合实际需要:在解决实际问题中,我们不需要结果绝对正确,也不需要结果绝对精确。

所谓概率算法,就是在算法的过程中引入随机数,使得算法在执行的过程中随机选择下一个计算步骤。它最后可能导致结果也是不确定的。一个结果不确定的概率算法叫做Monte Carlo算法,而总是得到准确解的概率算法叫做Sherwood算法(一个例子是引进随机因子的快速排序算法)。

为何引入随机数能够提升计算性能(事实上,理论计算机学家还没能证实随机因子本质上更有效率——指具有指数级别的效率提升),主要有下面两个原因:

首先,通常一个算法,它对于很多种情况是比较快的,但对于某些「特别差」的输入,它要找到一个解则特别困难。引入随机数之后,使得算法的时间复杂度平均化了,然后算得更快(评价一个随机算法的复杂性通常是考虑其平均复杂性)。

其次,对于Monte Carlo算法,它的输出是不精确的,这种牺牲使得算法能够在较短时间内完成。

需要指出的是,下面这个定理,使得一个不那么精确的Monte Carlo算法亦有实际的效用的:

如果一个判定问题的某个Monte Carlo算法有2/3的正确几率(这个2/3可以替换成任何一个大于1/2的数,当然小于等于1/2的随机算法一点意义都没有,因为还不如抛硬币),重复这个算法k次,取出现次数更多的结果作为问题的答案,则这个答案的正确率大于1-1/2(8/9)^k。

上面的结果由于k出现在指数上,所以只需要将一个Monte Carle算法重复很少的次数,便能得到很高的准确率。

近似算法从字面的意思来看似乎和上面的Monte Carle算法差不多,其实它们的考虑对象是不一样的,而且通常所指的近似算法是确定型算法。近似算法多用在组合优化的问题,而不是判定性问题上。组合优化问题,指的是那些需要求最优解的问题,比如下面这个

旅行商问题

有n个城市,一个推销员要从其中某一个城市出发,不重复地走遍所有的城市,再回到他出发的城市。问这个推销员的最短路程。

对于这种问题,如果最短路径是1000,而且我们能很快找到一个1000.1的路径,在实际运用中,我们还需要浪费巨大的计算资源去找那个1000的路径吗?近似算法便基于此思想而来。

近似算法指在解决优化问题中,最后得到的结果能保证在一定的误差之内的算法。

从近似算法的角度来说,同为NP完全问题,它们也有不同的可近似度。在多项式时间内,有些问题可以无穷小误差的逼近,但有些问题却连常数倍数之内的结果都没法得到。

理论计算机初步:概率算法和近似算法相关推荐

  1. 【转】理论计算机初步:从hash函数到王小云的MD5破解

    转:http://zhiqiang.org/blog/science/computer-science/preliminary-computer-theory-xiao-yun-wang-from-t ...

  2. 经济学与计算机科学结合,理论计算机在物理学和经济学领域的重要作用

    信息技术特别是网络技术的发展给我们带来了极大的变化.当然有些人可能会觉得有些经典的学科可能没有太多的变化.事实并非如此.过去,证明(推导)与实验是科学发现中最重要的两个方式,现在计算已经越来越成为科学 ...

  3. 理论计算机图形渲染技术是否已经到了没有什么可以研究的地步了?

    理论计算机图形渲染技术是否已经到了没有什么可以研究的地步了? Offline渲染的各种技术理论已经完备,实时渲染技术除了实时GI之外已经没有研究价值? 添加评论 分享 按投票排序按时间排序 12 个回 ...

  4. 【Brain】登上国际顶刊 PNAS!科学家从理论计算机出发,提出了一个意识模型——「有意识的图灵机」...

    来源:墨玫人工智能 编译:AI 科技评论组 编辑:陈彩娴 深度学习三巨头之一的Yoshua Bengio也点头称赞. 5月下旬,国际顶刊<美国国家科学院院刊>(PNAS)发表了一篇其于去年 ...

  5. 【数据结构和算法设计】算法篇(11) 概率算法和近似算法

    文章目录 12.1 概率算法 12.1.1 什么是概率算法 1. 概率算法的特点 2. 概率算法的分类 3. 随机数生成器 12.1.2 蒙特卡罗类型概率算法 12.1.3 拉斯维加斯类型概率算法 1 ...

  6. 日本计算机科学家谷歌评审,高一被清华姚班录取, 高三委拒谷歌offer, 一个重度网瘾少年到理论计算机科学家的蜕变...

    原标题:高一被清华姚班录取, 高三委拒谷歌offer, 一个重度网瘾少年到理论计算机科学家的蜕变 今年的理论计算机顶会FOCS,一位来自浙江湖州的小伙子陈立杰一口气中了3篇论文,还拿下了最佳学生论文奖 ...

  7. 高一被清华姚班录取,高三委拒谷歌offer,一个重度网瘾少年到理论计算机科学家的蜕变...

    全世界只有3.14 % 的人关注了 爆炸吧知识 去年3月15日,ACM 计算理论年会(STOC)Danny Lewin 最佳学生论文奖揭晓,获奖论文作者为来自麻省理工学院的陈立杰和来自 Weizman ...

  8. 转《胡侃学习(理论)计算机》的心得

    今天推荐的是篇老帖,南京大学sir先生的<胡侃>以及后来的两篇补充帖子.算算是十几年前的帖子了,我知道帖子出自南京大学的BBS,百度了一下,却没有翻到原文.不过百度到了一大堆不负责任的转帖 ...

  9. 对话上海财经大学ITCS主任陆品燕教授:如何用一年时间,建设国际一流理论计算机研究中心?...

    在刚刚公布的国际算法顶级会议 SODA 2018 的接收列表中, 上海财经大学理论计算机科学研究中心(ITCS)有三篇论文被录用,占据中国大陆录用论文的半壁江山.而值得一提的是,这个在国际顶会大放异彩 ...

最新文章

  1. cocos2d-x在win7下的android交叉编译环境
  2. Linux下基于socket多线程并发通信的实现
  3. 字母全排列快速算法C代码
  4. nginx反向代理获取用户真实ip
  5. Devexpress使用记录
  6. 推荐一些socket工具,TCP、UDP调试、抓包工具
  7. 如果时间不够 ,无法进行充分的测试怎么办?
  8. AURIX TC397 Flash编程
  9. 阿里腾讯裁员、最高30%?计算机行业前景到底如何...
  10. java棋盘最短路径障碍物_(Eucledian最短路径)检测平面中障碍物的角落
  11. mysql语句按时间顺序排序_SQL语句怎么写?先按时间排序,再按姓名排序?
  12. windows下VS中各种C++库的集成
  13. 正则表达式re库 python3
  14. 吴恩达老师深度学习视频课笔记:总结
  15. 大数据中数据挖掘技术的挑战
  16. flag in flag.php,hgame2019解题记录
  17. 2018世界物联网与智能制造高峰论坛圆满落幕,“未来制造”成为大会热词
  18. 工作交接_java后端
  19. 获取XBOX360体感大冒险照片
  20. 如何更改计算机管理员用户名和密码,Win10系统下如何修改administrator管理员账户密码...

热门文章

  1. 【Android 异步操作】Handler 机制 ( Android 提供的 Handler 源码解析 | Handler 构造与消息分发 | MessageQueue 消息队列相关方法 )
  2. 【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 初始单纯形表 | 检验数计算 | 入基变量 | 出基变量 )
  3. 51Nod 1453 抽彩球
  4. 一步一步学习Bootstrap系列--表单布局
  5. GMM高斯混合模型学习笔记(EM算法求解)
  6. 模板元编程实现素数判定
  7. Thrust快速入门教程(二)——Vector的使用
  8. 使用ASP.NET Abstractions增强ASP.NET应用程序的可测试性
  9. 汇编实验:屏幕窗口程序(代码有较为详细的注释)
  10. 什么是断点,为什么要设置断点?断点的作用是什么?