【算法设计与分析】02 货郎问题与计算复杂性理论
什么是NP系列问题?今天来看看这些问题。
文章目录
- 1 货郎问题
- 2 0-1背包问题
- 3 什么是NP-hard问题(NP难问题)
1 货郎问题
问题:有n个城市,已知任何两个城市之间的距离,求一条每个城市恰好经过1次的回路,使得总长度最小。
建模与算法:
- 输入:有穷个城市的集合C={c1,c2,…,cn},距离d(ci,cj)=d(cj,ci) ∈\in∈ Z+ ,1≤\leq≤i≤\leq≤j≤\leq≤n
- 输出: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=1n−1d(cki,cki+1)+d(ckn,ck1)}
- 现状:至今没有找到有效的算法。
2 0-1背包问题
- 0-1背包问题:有n个物品要装入背包,第i件物品的重量wi,价值vi,i=1,2,…,n。背包最多允许装入的重量是B。问如何选择装入背包的物品,使得总价值达到最大?
举个例子:
n=4, B=6,物品的重量和价值如下:
标号 | 1 | 2 | 3 | 4 |
---|---|---|---|---|
重量 wi | 3 | 4 | 5 | 2 |
价值 vi | 7 | 9 | 9 | 2 |
- 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≤\leq≤B
xi=0,1。i=1,2,......,n。x_i=0,1 。 i=1,2,......,n。xi=0,1。i=1,2,......,n。
0-1背包问题与货郎问题一样,至今没有找到有效的算法来解决。
3 什么是NP-hard问题(NP难问题)
像上面的货郎问题以及0-1背包问题,这样的问题有数千个,大量存在于各个领域。
- 至今没有找到有效的算法来解决该问题。(没有找到有效的算法意思是现有的算法的运行时间是输入规模的指数或者更高阶函数)
- 至今没有人能够证明对于这类问题不存在多项式时间的算法。
- 从是否存在多项式时间算法的角度看,这些问题彼此是等价的。这些问题的难度处于可有效计算的边界。
算法的研究目标主要是下面四点:
而本专栏的主要目标是下图中的下面的算法设计的部分:
我们主要学习的内容是算法分析与问题的计算复杂性,以及分治策略、动态规划、贪心算法、回溯与分支限界等的学习。
学习是漫长的,期待后面将算法知识学好。
【算法设计与分析】02 货郎问题与计算复杂性理论相关推荐
- 哈工大威海算法设计与分析_【斯坦福算法分析和设计02】渐进分析
点击上方蓝字,关注公众号 目录 1. The Gist 1.1 为什么要学它(Motivation) 1.2 High level idea 1.3 4个例子 2. Big-Oh Notation 2 ...
- 算法设计与分析复习--回溯法
算法设计与分析期末复习 主要参考: 算法设计与分析(北京航空航天大学MOOC) 算法设计与分析(北京大学MOOC) 华中科技大学 计算机科学与技术学院 算法设计与分析 课堂教学PPT 五. ...
- 【算法】算法设计与分析试题(含答案)
算法设计与分析试题 (中国科学院大学-陈玉福-2011秋) 一. 回答下列问题: (每小题5分) 1.陈述算法在最坏情况下的时间复杂度和平均时间复杂度:这两种评估算法复杂性的方法各自有什么实际意义? ...
- 【算法设计与分析】屈婉玲教授—课程笔记
网课地址与课件 B站:[北大公开课] 算法设计与分析 屈婉玲教授 (76p) 课件:来源于评论区小伙伴分享(百度云) 提取码:1111 笔记 课程知识框架 算法设计思想 设计思想:尽量选复杂度 ...
- 算法设计与分析(屈婉玲)网络课学习笔记(一)
2017.10.10 21:47 放一波课程的链接首先:http://www.chinesemooc.org/live/685712 华文慕课 北京大学屈婉玲女神的视频教程,非常推荐 学习算法 ...
- 山东大学软件学院2022年春算法设计与分析考试
山东大学软件学院2022年春算法设计与分析考试 时间:2022年6月9日14:00-16:00 试题 一. 选择题(单项选择题 5*2分) f ( n ) = 1 100 n 3 + 2 n + 3 ...
- 算法设计与分析课程的时间空间复杂度
算法设计与分析课程的时间空间复杂度: 总结 算法 时间复杂度 空间复杂度 说明 Hanoi $ O(2^n) $ $ O(n) $ 递归使用 会场安排问题 \(O(nlogn)\) \(O(n)\) ...
- 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述
晓强Deep Learning的读书分享会,先从这里开始,从大学开始.大家好,我是晓强,计算机科学与技术专业研究生在读.我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向 ...
- PHP第五周答案,算法设计与分析第五周作业——Word Ladder
算法设计与分析第五周作业--Word Ladder 上周找了一道深度搜索优先搜索的算法题来做,于是这周就选了一道广度优先搜索算法题来试试手. 本周所选题目:原题目链接 题目详情 题目大意:给出一个字符 ...
最新文章
- keras训练完以后怎么预测_使用Keras建立Wide Deep神经网络,通过描述预测葡萄酒价格...
- 刚发现Source Insight发布新版本了
- VS2017控制台工程日志输出到log文件的同时输出到屏幕
- C++三五法则,看看你能不能理解(推荐)
- 录入学员的身份证后控件焦点转移时根据身份证号码获得生日和性别
- 16年蓝桥杯省赛-方格填数(dfs+回溯)
- [渝粤教育] 盐城师范学院 光学 参考 资料
- 你的域名是如何变成 IP 地址的?
- Python GUI
- matlab使用tic 和 toc记录程序执行时间
- 加密Python脚本
- 赛尔笔记 | 通用领域条件性知识图谱数据集
- CA证书服务器(6) 利用CA证书配置安全Web站点
- 关于uniapp全量更新、增量更新-app端
- 微信小程序源码分享合集-1
- EA周报|刘强东案 9 月 11 日开庭听证;小鹏员工承认上传特斯拉源代码到个人账户;传新 iPhone 将抛弃刘海使用真全面屏...
- ZOJ 3987 Numbers(枚举)
- 计算机设计大赛英语怎么说,全国大学生计算机设计大赛国赛参赛指南
- 解决玩Minecraft时鼠标Dpi不稳定问题
- 服务器灰度部署和原理
热门文章
- 第二十一期:干货盘点!推荐程序员使用的5款工具软件
- Linux 进程通信 -- 信号
- java 盘符 系统_001-Java再回首开篇-入门基础
- 用python写helloworld_Python Helloworld程序简单实现
- Python——使用matplotlib绘制柱状图
- jquery在选择器中使用变量及innerText问题(转载)
- c# asp.net mvc 开发的正方教务助手(一)
- 《redis 设计与实现》读书笔记
- 小程序自带git方法提交时文件冲突的解决
- SpringBoot如何切换Redis默认库