组合优化基础

article/2025/11/9 8:28:03

组合优化问题(一)@TOC

p问题,NP问题,NP完全问题,NP难问题

时间复杂度并不是表示一个程序解决问题需要画多少时间,而是当程序所处理的问题规模扩大后,程序需要的时间对应增长的有多快。

时间复杂度

时间复杂度可以分为多项式复杂度和非多项式级复杂度

多项式复杂度

O(1), O(ln n), O(n^a)等

非多项式级复杂度

O(a^n), O(n!)等为非多项式级复杂度,其计算复杂度计算机往往不能承受。

P问题(Polynomial-time problem)(能解决)

P类:能在多项式时间(Polynomial time)内用算法求解的问题
P问题:有多项式时间算法的问题
比如:N个元素排序,时间复杂度为O(N^2)。
N^2是一个多项式。

NP问题(Nondeterministic polynomial-time problem)(能解决)

能够在多项式时间内使用非确定算法被解决的问题

不确定性问题:无法直接计算结果,但可以通过间接的猜测来得到结果。即:可以告诉你,某个可能的结果是正确的还是错误的。

NP是一类可以通过非确定图灵机在多项式时间内解决的决策问题的集合。
显然P是NP的子集,即任何可以被图灵机在多项式时间内解决的问题都可以被非确定性的图灵机解决。
NP类:指不确定是否存在多项式时间的求解算法,但可以在多项式时间内验证一个猜测解的正确定的问题。

NP-complete problem(Non-deterministic Polynomial complete problem)(无法解决,可以给出近似解)

只能通过非确定算法,在多项式时间内解决的问题,叫做NP完全问题。
如果一个决策问题S是一个NPC问题,那么S具有以下两个性质:

  1. S是一个NP类(即,给定一个解决NPC的方案,可以很快验证是否可行,但不存在已知高效的方案);
  2. NP里的任何问题都可以在多项式时间内转化为S。

NPC类:是NP的一个子集,且其中每一个问题都能由NP中的任何问题在多项式时间内转化。
如果所有NP问题可以在多项式时间内归约成某个NP问题(归约:解决后者也就相应的解决了前者),则该NP问题成为NPC问题。也就是说NPC包含了NP中最难的问题。

NP-Hard problem(Non-deterministic Polynomial hard problem)(无法解决,可以给出近似解)

如果说NPC还是在多项式解决一个问题的范畴,NP-hard 问题会涉及到非多项式的问题。
NP-hard:如果所有NP问题可在多项式时间内归约呈某个问题,则这个问题成为NP难问题。
注:NP-hard只需要具备NPC的第二个性质,所以NPC是NP-hard的子集.。

四者的关系如图(假设P!=NP)

在这里插入图片描述
在这里插入图片描述
参考:https://shijianfeng.blog.csdn.net/article/details/114755051?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.no_search_link


http://chatgpt.dhexx.cn/article/xVpgbc24.shtml

相关文章

组合优化中的全排列生成方法

组合优化中的全排列生成 之前有同学遇到组合优化(如0-1优化)问题,想采用穷举法,那么首先就要穷举产生所有的组合。 以0-1优化为例,假设当前有3个item,每个item有“选”或“不选”两种状态,那么…

机器学习求解组合优化问题强化学习笔记

目录 机器学习求解组合优化问题 求解组合优化问题的传统方法 精确算法: 启发式算法: 机器学习的相关知识 注意力机制 深度强化学习 主线奖励和稀疏奖励问题: 稀疏奖励问题: 辅助奖励函数设计 On-Policy 和Off-Policy问…

最新综述:用于组合优化的强化学习

©PaperWeekly 原创 作者 | 王馨月 学校 | 四川大学本科生 研究方向 | 自然语言处理 摘要 推许多解决组合优化问题的传统算法都涉及使用手工构造的启发式算法,这些启发式算法能够依次地构造解决方案。这种启发式方法是由领域专家设计的,且一般由于问…

【深度学习+组合优化】深度学习和强化学习在组合优化方面有哪些应用?

运筹优化博士,只做原创博文。更多关于运筹学,优化理论,数据科学领域的内容,欢迎关注我的知乎账号:https://www.zhihu.com/people/wen-yu-zhi-37 0 简介 2017年阿里巴巴的一篇用深度强化学习求解3维装箱问题的论文引发…

使用GNN求解组合优化问题

文章目录 1 论文内容1.1 先验知识1.2 论文方法1.2.1 大致原理1.2.2 源码关键实现 1.3 实际问题上的应用1.3.1 风险分散1.3.2 Interval Scheduling(不大懂译,区间调度?)1.3.3 配水管网的传感器布置 2 论文求解器源码的使用2.1 安装…

遗传算法的应用之函数优化和组合优化

目录 函数优化函数最值函数最值多个局部最优解问题 组合优化旅行商问题背包问题二进制表达法顺序表达式变长表达法适值函数的设计 转载原创 函数优化 函数最值 函数最值 该例子参考 深入浅出遗传算法,透析GA本质.(强烈安利)中的例子&…

单目标优化,多目标优化,数值优化,组合优化

何为优化? 措施: 对应方法 变得更优: 对应的结果更加的好 优化: 动词,一种行为方法----------->目的是获得更好的结果,总之有所改善 优化问题的三要素: (1) 决策变量 …

OM | 强化学习 + 约束规划求解组合优化问题

组合优化在航空航天、交通规划以及经济学等众多学科领域中有广泛应用,其目标是在有限集中寻找最优解。然而状态空间过大的问题让目前组合优化变得棘手。在过去的几年中,使用深度强化学习(deep reinforcement learning,DRL&#xf…

连续优化、离散优化、组合优化、整数优化和凸优化

optimization分类 4 Classification of optimization problem (IP: integer programming, MINLP: mixed integer non-linear programming, MILP: mixed integer linear programming, LP: linear programming, QP: quadratic programming, NLP: non-linear programming) 出自 其…

优化|深度学习或强化学习在组合优化方面有哪些应用?

来源:图灵人工智能 前 言 深度强化学习求解组合优化问题近年来受到广泛关注,是由于其结合了强化学习(Reinforcement learning)强大的决策(decision-making)能力和深度学习(deep learning)的各种模型(RNN、Transformer、GNN等等)强大的信息提取表征能力…

组合最优化

组合最优化(参考资料) 最优化问题 ​ 最优化问题涉及的应用领域很广,问题的种类与性质繁多,归纳起来,可分为函数优化问题和组合优化问题两大类。其中函数最优化问题的解是一定区域内连续取值的量,而组合优化问题的解则是离散取值…

进化算法——组合优化

离散优化问题,也被称为组合优化问题,我们可以视之为在候选目标的有限集中找出最优目标 被称为搜索空间的基数。在理论上我们可以通过评价这个解的每一个f(x)来求解上式,这种组合优化的方法被称为穷举搜索或蛮力。 目录 旅行商问题TSP 旅行商…

组合优化求解方法

1. 离散优化/整数规划 整数规划,或者离散优化(Discrete Optimization),是指数学规划问题中自变量存在整数。 混合整数规划(Mixed Integer Programming, MIP),即自变量既包含整数也有连续变量 …

【容器~原始真解】Docker —— 容器的使用

🔎这里是【秒懂云原生】,关注我学习云原生不迷路 👍如果对你有帮助,给博主一个免费的点赞以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 👀专栏介绍 【秒懂云原生】 目前主要更新微服务和容器&#…

一文搞懂“镜像“和“容器“

众所周知,在云原生技术领域中,容器这一概念显得尤为重要,但是我们在使用Docker或Kubernetes中时常也会听说镜像这一概念,因此我们就利用一篇文章讲述下容器和镜像的概念和相互关系。 1 什么是镜像 1.1 概念 镜像(Mi…

Docker容器的概念

一:Docker详情解释 Docker 包括三个基本概念 镜像(Image)容器(Container)仓库(Repository) 理解了这三个概念,就理解了 Docker 的整个生命周期 4.1 镜像(Image&#x…

Java的容器

1 容器简介 容器,是用来容纳物体、管理物体。生活中,我们会用到各种各样的容器。如锅碗瓢盆、 箱子和包等。如图所示: 程序中的“容器”也有类似的功能,用来容纳和管理数据。比如,如下新闻网站的新闻 列表、教育网站的课程列表就…

云计算——容器

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 目录 前言 一.容器简介 二.主流容器技术 1.docker (1)容器的组…

什么是容器

什么是容器 一:概念二:容器API类图2.1 Collection2.2 Set2.3 List2.4 Map 三:详细解释3.1 Collection接口3.1.1 Collection用法 3.2 Iterator接口3.3 List接口3.4 Comparable接口 四:如何选择数据结构4.1 衡量标准:读的…

什么是应用容器

转载自https://www.cnblogs.com/qcloud1001/p/9273549.html 一、什么是容器? 容器这个词,当你第一眼看它或许脑子里是这东西:瓶瓶罐罐、装水、装其他东西的玩意。 不管是什么,总的来说,容器给人第一印象就是——“装”…