【算法设计与分析】02 货郎问题与计算复杂性理论

什么是NP系列问题?今天来看看这些问题。

文章目录

    • 1 货郎问题
    • 2 0-1背包问题
    • 3 什么是NP-hard问题(NP难问题)

1 货郎问题

  • 问题:有n个城市,已知任何两个城市之间的距离,求一条每个城市恰好经过1次的回路,使得总长度最小。
    在这里插入图片描述

  • 建模与算法:

  1. 输入:有穷个城市的集合C={c1,c2,…,cn},距离d(ci,cj)=d(cj,ci∈\in Z+ ,1≤\leqi≤\leqj≤\leqn
  2. 输出:1,2,…,n的排列k1,k2,…,kn,使得:

min{∑i=1n−1d(cki,cki+1)+d(ckn,ck1){\sum_{i=1}^{n-1} d(c_{k_i},c_{k_{i+1}}) +d(c_{k_{n}},c_{k_1})}i=1n1d(cki,cki+1)+d(ckn,ck1)}

  1. 现状:至今没有找到有效的算法。

2 0-1背包问题

  • 0-1背包问题:有n个物品要装入背包,第i件物品的重量wi,价值vi,i=1,2,…,n。背包最多允许装入的重量是B。问如何选择装入背包的物品,使得总价值达到最大?

举个例子:

n=4, B=6,物品的重量和价值如下:

标号1234
重量 wi3452
价值 vi7992
  • 0-1背包问题数学建模:

问题的解:0-1向量<x1,x2,…,xn>,当xi=1时,代表物品i装入背包。

目标函数:max∑i=1nvixi{\sum_{i=1}^{n} v_ix_i}i=1nvixi

约束条件:∑i=1nwixi{\sum_{i=1}^{n} w_ix_i}i=1nwixi≤\leqB

xi=0,1。i=1,2,......,n。x_i=0,1 。 i=1,2,......,n。xi=0,1i=1,2......n

0-1背包问题与货郎问题一样,至今没有找到有效的算法来解决。

3 什么是NP-hard问题(NP难问题)

像上面的货郎问题以及0-1背包问题,这样的问题有数千个,大量存在于各个领域。

  • 至今没有找到有效的算法来解决该问题。(没有找到有效的算法意思是现有的算法的运行时间是输入规模的指数或者更高阶函数)
  • 至今没有人能够证明对于这类问题不存在多项式时间的算法。
  • 从是否存在多项式时间算法的角度看,这些问题彼此是等价的。这些问题的难度处于可有效计算的边界。

算法的研究目标主要是下面四点:
在这里插入图片描述

而本专栏的主要目标是下图中的下面的算法设计的部分:

在这里插入图片描述

我们主要学习的内容是算法分析与问题的计算复杂性,以及分治策略、动态规划、贪心算法、回溯与分支限界等的学习。

学习是漫长的,期待后面将算法知识学好。

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

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

相关文章

ad17编辑界面怎么检查未连线_软件账务处理流程之——凭证审核与检查

金蝶是我们财务人非常熟悉的财务软件&#xff0c;但是我们很多财务人只在应用软件的时候还是会出现很多的问题&#xff0c;为了帮助大家更好地应用这个软件&#xff0c;今天就来和大家讲讲关于金蝶软件凭证审核与检查的一些基本处理流程。凭证审核凭证输入完成后&#xff0c;更…

快速可扩展的Ajax流代理——提供持续下载跨域数据

简介 由于浏览器禁止跨域的XMLHTTP调用&#xff0c;所有的Ajax网站都必须有一个服务端代理来从外部域比如Flickr或者Digg来抓去内容。对客户端Javascript代码来说&#xff0c;一个XMLHttp的调用将请求传递给宿主在相同域里的服务端代理&#xff0c;然后由代理来从外部服务器上下…

Markdown编辑器 公式指导手册

#Cmd Markdown 公式指导手册 标签&#xff1a; Tutorial 2018-03-20 补档&#xff1a; 收到很多小伙伴对本文的源文档转载需求&#xff0c;故传了一份 md 文件&#xff0c;请按需 下载 。 本文固定链接: https://www.zybuluo.com/codeep/note/163962 点击跳转至 Cmd Markdown …

python建db文件_临时数据库之python用sqlite3模块操作sqlite

SQLite是一个包含在C库中的轻量级数据库。它并不需要独立的维护进程&#xff0c;并且允许使用非标准变体(nonstandard variant)的SQL查询语句来访问数据库。一些应用可是使用SQLite保存内部数据。它也可以在构建应用原型的时候使用&#xff0c;以便于以后转移到更大型的数据库。…

MDX as的使用

用到as的时候&#xff0c;如果用到了某个纬度&#xff0c;例如&#xff1a;withmember mydate as now()member [告警投诉数量a] as lookupcube("[ALARM_RECORD]","[Measures].[告警投诉数量]") member [故障总量啊] as lookupcube("[EOMS_FAULT_RECO…

【算法设计与分析】03 算法及其时间复杂度

在学习算法的时间复杂度之前&#xff0c;需要了解下面5条概念 什么是算法的时间复杂度&#xff1f; 针对指定基本运算&#xff0c;计数算法所做的运算次数。什么是基本运算&#xff1f;比较、加法、乘法、置指针、交换…什么是输入规模&#xff1f;输入串的编码长度&#xff0c…

用单片机测量流体流速的_影响超声波流量计(热量表)测量精度的主要因素

1、上下游直管段的影响由于时差式超声波流量计标定系数K值是雷诺数函数&#xff0c;所以当流体从层流过渡到紊流时&#xff0c;其流速分布不均匀&#xff0c;标定系数K值将产生较大的变化&#xff0c;从而影响测量准确度。根据设计要求换能器应安装在上游直管段为10倍管径、下游…

【算法设计与分析】04 函数的渐进的界

今天学习函数的渐进的界&#xff0c;会涉及多种数学符号。对以后学习分析算法复杂度有很大的帮助。 1 大OOO符号 定义&#xff1a; 设 f 和 g是定义域为自然数集N上的函数. 若存在正数 c 和 n0&#xff0c; 使得 对一切 n ≥\geq≥ n0有: c≤f(n)≤cg(n)c\leq f(n) \leq cg(n…

11月10日 14:00~16:00 上海敏捷开发沙龙

主题&#xff1a;火星人陈勇将赴上海主办线下沙龙&#xff0c;主题是“自组织团队与松结对编程”&#xff08;2011 微软 TechED演讲主题&#xff09;&#xff0c;演讲后有团队问答PK活动。日期&#xff1a;2011年11月10日时间&#xff1a;下午14&#xff1a;00&#xff5e;16&a…

c语言头文件和源文件_C语言头文件防卫式声明

C语言一般提供三种预处理功能&#xff1a;宏处理、文件包含、条件编译。头文件防卫式申明中会用到条件编译中 #ifndef、#define、#endif 的用法。所以&#xff0c;首先价绍下条件编译。1 条件编译一般情况下&#xff0c;在生成可执行文件的过程中&#xff0c;源程序文件中的所有…

tomcat原理,一个客户端请求的处理过程

假设来自客户的请求为&#xff1a;http://localhost:8080/wsota/wsota_index.jsp1) 请求被发送到本机端口8080&#xff0c;被在那里侦听的Coyote HTTP/1.1 Connector获得2) Connector把该请求交给它所在的Service的Engine来处理&#xff0c;并等待来自Engine的回应3) Engine获得…

python定义函数需要保留字def_定义函数时要用到哪一个python保留字?_学小易找答案...

【简答题】常见的足部畸形有哪些?例举6种以上。【其它】请将会计学小册子第四章完成情况(选择判断业务题2. 6.)的所有内容拍照上传嗷【其它】以小组为单位进行现场调研,对足球场外的广场区域植物造景进行统计,每个同学利用CAD软件对该场地进行绘图,掌握园林中自然式绿地的植物…

aop编程时出现错误信息:java.lang.NoClassDefFoundError

代码错误信息&#xff1a; org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘calImpl’ defined in file [/Users/lyy0217/Downloads/SSM/target/classes/com/cm/service/aop/CalImpl.class]: BeanPostProcessor before instantiat…

Firebug控制台详解

作者&#xff1a; 阮一峰 日期&#xff1a; 2011年3月26日 Firebug是网页开发的利器&#xff0c;能够极大地提升工作效率。 但是&#xff0c;它不太容易上手。我曾经翻译过一篇《Firebug入门指南》&#xff0c;介绍了一些基本用法。今天&#xff0c;继续介绍它的高级用法。 Fi…

标签 href 怎么拼接_【微信】用户-标签的兴趣建模

这一篇分享的是CIKM2020微信的learning to build user-tag profile&#xff0c;主要介绍了微信看一看&#xff08;"Top Stories"&#xff09;中&#xff0c;如何进行用户-标签的兴趣建模&#xff0c;提升推荐效果。1、背景看一下微信看一看场景下的推荐流程&#xff…

【算法设计与分析】05 有关函数的渐进的界的定理

上一篇文章学习了函数的渐近的界定义&#xff0c;本篇文章继续学习函数渐近的界定理。这些定理的证明&#xff0c;用到了函数渐近的界的定义。点击查看上一篇文章&#xff1a;【算法设计与分析】04 函数的渐进的界 文章目录1. 定理11.1 证明定理11.2 估计函数的阶1.3 一些重要的…

一般窗体的设计方式

一般窗体的设计方式&#xff1a; 包含有&#xff08;搜索框、数据列表框、分页框&#xff09;、由搜索返回的数据列表中是否包含“当前页码”、“页数量”的名称来决定显示分页功能。 如果你的搜索框经常性出现大于10个字段的搜索的话&#xff0c;那么应该采用HashTable的参数传…

hive 如何将数组转成字符串_教你如何将Power Logic的原理图转成Orcad的原理图

1、使用Power Logic软件打开pads的原理图(此处使用的是PADS9.5版本的)&#xff1b;2、执行菜单命令&#xff1a;File->Export->在弹出的对话框中点击“保存”按钮&#xff0c;然后选择“Select All”&#xff0c;并选择PADS Logic2005的版本输出&#xff0c;最后点击“OK…

【算法设计与分析】06 几类重要的函数

本篇文章中会用到上一篇文章的定理&#xff1a;【算法设计与分析】05 有关函数的渐进的界的定理 主要学习常见的一些函数的阶 1. 基本函数类 以下按阶的高低排序&#xff1a; 至少指数级&#xff1a; 2n, 3n, n!, …多项式级&#xff1a; n, n2, nlogn, n1/2, …对数多项式级…