【算法设计与分析】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 …

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

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

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

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

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

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

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, …对数多项式级…

【算法设计与分析】07 算法的数学基础

接下来的几篇文章将是学习算法的数学基础内容。 具体的文章包括&#xff08;持续更新&#xff09;&#xff1a;

【算法设计与分析】08 序列求和的方法

本篇文章学习数列求和的一些方法。这些方法对后面学习算法的时间复杂度非常有帮助。 文章目录1. 数列求和公式1.1 二分搜索的时间复杂度求解2 估计和式上届的放大法3 估计和式渐近的界4 总结1. 数列求和公式 下面这几个数列求和公式都是高中学过的公式。 等差、等比数列和调和…

【算法设计与分析】10 差消法化简高阶递推方程

上一篇文章使用递推方程的方法求解了插入排序和二分归并的时间复杂度&#xff0c;本文来求解快速排序的时间复杂度&#xff0c;同样是利用了递推方程法&#xff0c;但是求解该递推方程的方法与以前不一样&#xff1a;差消法 文章目录1. 快速排序的时间复杂度求解2. 总结1. 快速…

python xpath定位打印元素_python基础教程:8种selenium元素定位的实现

前言selenium是一个非常厉害的爬虫利器,不,简直是神器了,它可以自动的控制浏览器,但是你得告诉浏览器,你想干嘛,爬哪里,这时候就要用到元素定位了,在HTML中都有着不同的标签和属性,selenium根据它们来确定你的意图,每个方式都对应两个方法8种方式1.通过 id 定位2.通过 name 定位…

【算法设计与分析】11 递归树

当前面所学习的迭代法、差消法等不太好解决的问题&#xff0c;可以使用递归树&#xff0c;来很方便的解决。 文章目录1. 递归树的概念1.1 迭代在递归树中的表示2. 递归树的生成规则2.1 递归树生成实例2.2 递归树应用实例3. 总结1. 递归树的概念 递归树是迭代计算的模型递归树的…

【算法设计与分析】12 主定理及其应用

主定理是一个非常有用的定理&#xff0c;前面我们学习的所有知识都可以用主定理来求解&#xff0c;而不必要使用复杂的计算方法来求解 文章目录1. 主定理1.1 主定理的应用背景1.2 主定理内容2. 主定理的应用2.1 求解递推方程 例12.2 求解递推方程 例22.3 求解递推方程 例33. 总…

迪普交换机清空配置_交换机环路详解

“ The more you know the more you know you dont know”背景近期在交换机配置中发生了一次接线错误导致交换机环路&#xff0c;从而引发广播风暴的一个例子。所以特意花时间了解一下交换机产生广播风暴的原理&#xff0c;并整理了此篇文章&#xff0c;一来可以梳理自己的知识…