《机器学习》基础概念之【P问题】与【NP问题】

news2024/12/26 12:21:35

《机器学习》基础概念之【P问题】与【NP问题】


这里写目录标题

  • 《机器学习》基础概念之【P问题】与【NP问题】
  • 一、多项式&时间复杂度
    • 1.1. 多项式
    • 1.2.时间复杂度
  • 二、P问题 & NP问题
    • 2.1. P问题
    • 2.2.NP问题
    • 2.3.举例理解NP问题-TSP旅行商推销问题
  • 三、NP-hard问题&NP-C问题
    • 3.1.NP-hard问题
    • 3.2. NP-C问题
  • 四、P&NP的联系
    • 4.1. 理想:NP问题 = P问题
    • 4.2.现实:我们仍然相信 P问题!=NP问题


一、多项式&时间复杂度


1.1. 多项式

a x n + b x n − 1 + c ax^{n} + b x^{n-1}+c axn+bxn1+c 形如这种形式的就被称为 x x x 的最高位为 n n n 的多项式。


1.2.时间复杂度

定义为:随着问题规模的增大,算法执行时间增长的快慢。

它可以用来表示一个算法运行的 时间效率 \red{时间效率} 时间效率

举个例子,冒泡排序的时间复杂度为 O ( n 2 ) O(n^2) O(n2) , 取其最高次,可以看出,这是一个时间复杂度为多项式的表示方式。


二、P问题 & NP问题


2.1. P问题

P(deterministic polynomial time question):

多项式时间问题,简称 P 问题,意思是能在多项式时间内解决的问题。

简单理解是算起来很快的问题。


2.2.NP问题

NP(No-deterministic polynomial time question):

非确定多项式时间问题,简称 NP 问题,就是能在多项式时间验证答案正确与否的问题。

简单的理解是NP问题算起来不一定快,但对于任何答案我们都可以快速的验证这个答案对不对。


2.3.举例理解NP问题-TSP旅行商推销问题

最著名的 NP 问题是TSP旅行商推销问题

题目是在以下条件下,求出访问所有城市的最短路径

  • 推销商有N个目的地城市
  • 他需要访问所有城市一次,即不能重复
  • 任意两座城市都是连接的,距离已知,即对应有权完全图

分析:

解决这个问题如果单纯的用枚举法来列举的话会有 ( n − 1 ) ! (n-1)! (n1)! 种,已经不是多项式时间的算法了。将会是N的阶乘的复杂度 O ( n ! ) O(n!) O(n!)

但是有快捷的方法,可以用猜的,假设人品爆炸猜几次就猜中了一条小于长度a的路径,TSP问题解决了,皆大欢喜。

可是,我不可能每次都猜的那么准,也许我要猜完所有种方案呢?

所以我们说,这是一个NP类问题。也就是这个问题能在多项式的时间内验证并得出问题的正确解,可是我们却不知道该问题是否存在一个多项式时间的算法,每次都能解决他(注意,这里是不知道,不是不存在,即能解决,但是无法找到一个多项式时间的算法的通解)。

  • 其他NP问题:

Edge Cover 边覆盖
Set Cover 集合覆盖
Steiner Tree(Forest) 斯坦纳树
Max cut 最大割
SAT 可满足性


三、NP-hard问题&NP-C问题


3.1.NP-hard问题

  • NP-hardness问题:

任意 NP 问题都可以在多项式时间内归约为一类问题,这类问题就称为 NP-hard 问题,这是比所有的NP问题都难的问题。

归约的意思是为了解决问题A,先将问题A归约为另一个问题B,解决问题B同时也间接解决了问题A。


3.2. NP-C问题

  • NP-Complete问题:

但若所有的NP问题都能多项式归约到一类问题X,则称X为NP-hard问题,进一步如果X是NP的,称X是NP complete的。

换句话说,只要解决了这个问题,那么所有的NP问题都解决了。其定义要满足2个条件:一是NP-hard的问题,二是NP问题。


四、P&NP的联系

4.1. 理想:NP问题 = P问题

N P = P NP=P NP=P 意思是,如果对于一个问题能在多项式时间内验证其答案的正确性,那么是否能在多项式时间内解决它。

因为如果将所有的NP问题都 多项式规约 到某一个NP Complete问题,且只要一个NP Complete问题能在多项式时间内得到解决的话,那么所有的NP问题都可以在多项式时间内得到解决了。这个问题的解决将会带来世界性的进步。


4.2.现实:我们仍然相信 P问题!=NP问题

P ≠ N P P {\not=} NP P=NP
至今并没有人能证明某个NP Complete问题是P的。而且目前主流的观点是P不等于NP,当然这也没有确切的证明。如左图所示。

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/403795.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PMP项目管理项目成本管理

目录1 项目成本管理概述2 规划成本管理3 估算成本4 制定预算5 控制成本1 项目成本管理概述 项目成本管理包括为使项目在批准的预算内完成而对成本进行规划、估算、预测、融资、筹资、管理和控制的各个过程,从而确保项目在批准的预算内完工。核心概念 项目成本管理旨…

vuex getters的作用和使用(求平均年龄),以及辅助函数mapGetters

getters作用:派生状态数据mapGetters作用:映射getters中的数据使用:方法名自定义,系统自动注入参数:state,每一个方法中必须有return,其return的结果被该方法名所接收。在state中声明数据listst…

PyTorch深度学习实战 | 计算机视觉

深度学习领域技术的飞速发展,给人们的生活带来了很大改变。例如,智能语音助手能够与人类无障碍地沟通,甚至在视频通话时可以提供实时翻译;将手机摄像头聚焦在某个物体上,该物体的相关信息就会被迅速地反馈给使用者&…

【教学典型案例】21.面向对象复用、面向对象实现、立体化权限落地

目录一:背景介绍1、针对于激励配置的功能体现出来的:面向对象的思想就可以实现极大程度的复用性的问题2、脱离学习通设计图,过程化,如何用面向对象的思想来去组织管理流程图3、词云位置记录定制化二:思路&方案1、面…

CSDN每日一练(编程题)

目录1. 2023/1/31-非降序数组(类型:数组&排序 难度:中等)2. 2023/2/1- 走楼梯(类型:递归&循环 难度:中等)3. 2023/2/1-蛇形矩阵(难度:困难)4. 2023/2/2-奇偶排序(类型:数组&奇偶排序 难度&…

环境配置之Keepass

前言很久以前,就有了想要一个自己密码管理器的念头。毕竟,即使浏览器能记住各个网站的账号密码,但是在登录单独客户端的时候,仍然要翻找密码。为了省事,也曾经是一个密码走天下。然后被劫持了QQ给同学发黄色小网站&…

手写Mybatis

Mybatis总体流程 (1)加载配置并初始化触发条件:加载配置文件 配置来源于两个地方,一个是配置文件(主配置文件conf. xml, mapper文件*.xml),一个是java代码中的注解,将主配置文件内容解析封装到Configuration,将sql的配置信息加载成为一个mappedstateme…

ReentrantLock源码分析(一)加锁流程分析

一、ReetrantLock的使用示例 static ReentrantLock lock new ReentrantLock(); public static void main(String[] args) throws InterruptedException { new Thread(ClassLayOutTest::reentrantLockDemo, "threadA").start(); Thread.sleep(1000);…

Netty权威指南总结(二)

三、Netty代码相关:(四) EventLoop与EventLoopGroup:Netty的Nio线程是NioEventLoop。1. Reactor线程模型:Reactor模型的三个角色:Reactor:把IO事件分配给对应的Handler处理,功能像是调度器。Acceptor【饿渴…

【C++】C++核心编程(一)---内存四区

C程序在执行时,将内存大方向划分为4个区域 代码区 存放函数体的二进制代码,由操作系统进行管理全局区 存放全局变量和静态变量以及常量(字符串常量、全局常量)栈区 由编译器自动分配释放,存放函数的参数值、局部变量等堆区 由程序员分配和释…

jenkins问题

目录 python 不是内部或外部命令,也不是可运行的程序 ‘cmd’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 git 不是内部或外部命令,也不是可运行的程序或批处理文件。 pywintypes.com_error: (-2147024891, ‘拒绝访问。’, None,…

Qt实用技巧:Qt中浮点数的相等比较方式(包括单精度和双精度)

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/129464152 红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

Spring——AOP切入点表达式和AOP通知类型

切入点:要进行增强的方法 切入点表达式:要进行增强的方法的描述式 第一种方法的本质是基于接口实现的动态代理(jdk) 第二种是基于cglib实现的动态代理 AOP切入点表达式 而需要加载多个切入点时,不可能每个切入点都写一个切入点表达式 例子 下面的代理描述的是匹配…

条件语句(分支语句)——“Python”

各位CSDN的uu们你们好呀,最近总是感觉特别特别忙,但是却又不知道到底干了些什么,好像啥也没有做,还忙得莫名其妙,言归正传,今天,小雅兰的内容还是Python呀,介绍一些顺序结构的知识点…

Hadoop学习:Yarn

1.YARN介绍 一个通用的资源管理系统和调度平台 YARN不分配磁盘,由HDFS分配 相当于一个分布式的操作系统平台,为上层MR等计算程序提供运算所需要的资源(内存、CPU等) 2.YARN三大组件 不要忘记AppMaster,他是程序内部…

Android 进程间通信机制(二) mmap 原理

一. 前言 Binder中一次拷贝的实现就是利用mmap(memory mapping)内存映射机制,我们来看看它的工作原理. 二. 参考文章 下面这几篇文章建议先好好阅读一下,都是总结的很好的文章, 每个人理解可能不一样 笔者也是看了好多博客文章和B站视频讲解, 然后加上自己的理解后 输出的一…

程序的编译和链接

程序的编译和链接程序的编译和链接程序的两种环境翻译环境详解编译和链接预处理编译汇编链接运行环境程序的编译和链接 程序的两种环境 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 …

《数据分析-JiMuReport04》JiMuReport报表设计入门介绍-页面优化

报表设计 2 页面优化 如上图所示的报表,仅仅是展示数据,不过这样看起来似乎太草率了,所以再优化一下吧 保存报表后,在积木报表中就可以看到对应的报表文件 此时我们如果还需要编辑报表,就点击这个报表即可 2.1 居中…

如何设计企业节点的『工业互联网标识解析系统』

一、『星火 链网』体系架构 『星火 链网』以节点形式进行组织互联互通,其中包括三类节点:超级节点、骨干节点、业务节点。 其底层采用“1N”主从链群架构,支持同构和异构区块链接入主链。在全国重点区域部署『星火 链网』超级节点&#…

three.js的demo例子-STL加载对象组件

three.js的demo例子-STL加载对象组件 提示:demo示例中所涉及到的three.js安装插件方法这里就不单个说明了哈,有需要的网上有很多教程 文章目录three.js的demo例子-STL加载对象组件效果展示插件模型一、HTML部分二、script部分1.引入库2.初始化数据3.监听…