算法课堂笔记14—NP-COMPLETENESS
今天的算法课接着上一节,说的是NP问题。
1.关于什么是P和NP问题
所谓P问题是指所有能在多项式复杂度解决的问题,比如排序算法,n*n复杂度解决问题。而对于有些问题,目前可能没有多项式复杂度的解决方案,但是如果你给我一个解决方案,我可以在多项式时间内验证该算法是否正确,那么这类问题便是NP问题。P属于NP。这是很明显的,因为他们都是在多项式复杂度内去解决问题,区别在于NP只判断是和否。
2.NP-hardness和NP-completeness
NP-hard Problem:对于这一类问题,用一句话概括他们的特征就是“at least as hard as the hardest problems in NP Problem”, 就是NP-hard问题至少和NP问题一样难。
NP-Complete Problem:对于这一类问题,他们满足两个性质,一个就是在polynomial时间内可以验证一个candidate answer是不是真正的解,另一个性质就是我们可以把任何一个NP问题在polynomial的时间内把他的input转化,使之成为一个NP-complete问题(即规约)。NP-Complete Problem问题可以互相转换 (在多项式时间内),只要其中一个问题可以在多项式时间内解决,那么其他问题也都将可以在多项式时间内解决。
发现了一篇不错的博文来解释这个问题:P问题、NP问题、NPC问题的概念及实例证明。
算法课堂笔记14—NP-COMPLETENESS的更多相关文章
- 算法课堂笔记13—Online Algorithm
今天的算法课是学习离线算法,在计算机科学中,一个在线算法是指它可以以序列化的方式一个个的处理输入,也就是说在开始时并不需要已经知道所有的输入.相对的,对于一个离线算法,在开始时就需要知道问题的所有输入 ...
- 《linux就该这么学》课堂笔记14 Apache、SELinux、虚拟主机
1.目前能够提供Web网络服务的程序有IIS(Windows系统中默认的Web服务程序,是一款图形化的网站管理工具).Nginx和Apache(RHEL 7系统中默认的Web服务程序)等. Apach ...
- 九章算法系列(#3 Binary Tree & Divide Conquer)-课堂笔记
前言 第一天的算法都还没有缓过来,直接就进入了第二天的算法学习.前一天一直在整理Binary Search的笔记,也没有提前预习一下,好在Binary Tree算是自己最熟的地方了吧(LeetCode ...
- 九章算法系列(#5 Linked List)-课堂笔记
前言 又是很长时间才回来发一篇博客,前一个月确实因为杂七杂八的事情影响了很多,现在还是到了大火燃眉毛的时候了,也应该开始继续整理一下算法的思路了.Linked List大家应该是特别熟悉不过的了,因为 ...
- 九章算法系列(#4 Dynamic Programming)-课堂笔记
前言 时隔这么久才发了这篇早在三周前就应该发出来的课堂笔记,由于懒癌犯了,加上各种原因,实在是应该反思.好多课堂上老师说的重要的东西可能细节上有一些急记不住了,但是幸好做了一些笔记,还能够让自己回想起 ...
- 九章算法系列(#2 Binary Search)-课堂笔记
前言 先说一些题外的东西吧.受到春跃大神的影响和启发,推荐了这个算法公开课给我,晚上睡觉前点开一看发现课还有两天要开始,本着要好好系统地学习一下算法,于是就爬起来拉上两个小伙伴组团报名了.今天听了第一 ...
- ocp11g培训内部教材_051课堂笔记(047)_SQL
OCP 051课堂笔记 目录 OCP 051课堂笔记... 1 第一章.Oracle命令类别:... 4 第二章.SQL的基本函数... 4 2.1 单行函数与多行函数... 4 2.2 单行函数的几 ...
- ocp11g培训内部教材_052课堂笔记(042)_体系架构
OCP 052 课堂笔记 目录 第一部分: Oracle体系架构... 4 第一章:实例与数据库... 4 1.Oracle 网络架构及应用环境... 4 2.Oracle 体系结构... 4 3. ...
- FPGA_VHDL 学习课堂笔记001
FPGA_VHDL 学习课堂笔记 记录说明:本文档主要记录大学期间,老师FPGA授课课堂笔记. 代码语言:VHDL 编程软件:MAX+plus II FPGA硬件:FLE-843 03月05日 ...
随机推荐
- NSFileManager 遍历目录
NSFileManager *fileManager = [NSFileManager defaultManager]; NSString *documentPath = [NSHomeDirecto ...
- 安装eclipse与pydev
按照此文档 最简单的eclipse安装方法 sudo apt-get install eclipse 弊端:因为ubuntu默认安装的不是最新版本的eclipse,所以你也不能安装最新的pydev. ...
- MVC Action返回Json
Action [HttpPost] public ActionResult Edit(Study_CourseHourModel model) { ...
- 匈牙利命名法、骆驼命名法、帕斯卡(pascal)命名法
(2008-05-24 13:37:55) 转载▼ 标签: 杂谈 分类: 编程杂文 一.匈牙利命名法: 广泛应用于象Microsoft Windows这样的环境中. Windows 编 ...
- 让我们的svg起飞,兼容ie9的神器
<svg xmlns="http://www.w3.org/2000/svg" width="320px" height="200px" ...
- Openstack命令行删除虚拟机硬件模板flavor
openstack中,有一种概念叫flavor,其实flavor就是一种创建虚拟机的硬件尺寸模板化.比如我先创建一个flavor,该flavor包含的CPU数目,内存大小,硬盘大小都预先设置好,在创建 ...
- Web服务端软件的服务品质概要
软件品质概述 提供同样功能.产品和服务的服务者中, 竞争力来自功能的多样化和服务品质的差异化, 无论是个体.企业还是国家. 这里的服务指功能.产品的实现程度和处理能力,以及研发/客服提供的技术支持程度 ...
- static const vs. extern const
在实现文件(.m文件)中使用static const来定义“只在编译单元内可见的常量”(只在.m文件内可见),由于此类常量不在全局符号表中,所以无须为其名称加类名前缀(一般以k开头). 在头文件中使用 ...
- python学习之安装模块
安装pip下载python模块 yum -y install python-pip pip install pandas (pandas要安装的模块名) 默认使用的官方python源,这个在国内访问很 ...
- 深入对比数据科学工具箱:Python和R之争
建议:如果只是处理(小)数据的,用R.结果更可靠,速度可以接受,上手方便,多有现成的命令.程序可以用.要自己搞个算法.处理大数据.计算量大的,用python.开发效率高,一切尽在掌握. 概述 在真实的 ...