0-1背包算法和完全背包算法MATLAB代码实现
有10件物品,它们的重量分别是5,8,3,2,6,6,5,4,7,5,,它们的价值分别是2,4,7,7,3,6,3,5,4,6,现在给你个承重为30的背包,试用0-1背包、完全背包算法,分别计算如何让背包里装入的物品具有最大的价值总和?
0-1背包算法
clear all
clc
close all
v=[2,4,7,7,3,6,3,5,4,6];%物品价值
w=[5,8,3,2,6,6,5,4,7,5];%物品重量
m=zeros(10,31);%建立二维数组
for j=0:30if j>=w(1)m(1,j+1)=v(1);end
end%初始化第一行,数组编码从1开始,因此下标要加1
for i=2:10for j=1:30if j>=w(i)%背包可以装下当前物体m(i,j+1)=max(m(i-1,j+1),m(i-1,j-w(i)+1)+v(i));%1.不装 2.空出刚好可以放进去的容量elsem(i,j+1)=m(i-1,j+1);%容量不够不能装endend
end
disp(m(10,31))
矩阵最后一个元素即为价值最大值
完全背包算法
clear all
clc
close all
v=[2,4,7,7,3,6,3,5,4,6];%物品价值
w=[5,8,3,2,6,6,5,4,7,5];%物品重量
m=zeros(10,31);%建立二维数组
for j=1:31m(1,j)=floor(j/w(1))*v(1);
end %初始化第一行,数组编码从1开始,因此下标要加1
for i=2:10for j=1:30for k=1:floor(j/w(i))%最多可以取k个背包m(i,j+1)=max(m(i,j+1),m(i-1,j-k*w(i)+1)+k*v(i));%1、不取,2、取k个i背包endend
end
disp(m(10,31))
0-1背包算法和完全背包算法MATLAB代码实现相关推荐
- 货物配送问题的matlab,免疫算法求解配送中心选址问题matlab代码
免疫算法求解配送中心选址问题matlab代码 所属分类:matlab例程 开发工具:matlab 文件大小:31KB 下载次数:3 上传日期:2020-12-01 16:11:00 上 传 者:代码大 ...
- k-中心点算法(k-medoids)及Matlab代码实现
k-中心点算法(k-medoids)及Matlab代码 1. 提出: 上篇文章给出了 k-means算法的具体思想和代码实现:https://blog.csdn.net/qiu1440528444/a ...
- 非线性光纤光学中分步傅里叶算法(SSFFT)的matlab代码实现
非线性光纤光学中分步傅里叶算法(SSFFT)的matlab代码实现 SSFFT(分布傅里叶算法)函数代码如下: function [waveform, f_spectrum] = SSFFT_arra ...
- 【综合评价分析】熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列
[综合评价分析]熵权算法确定权重 原理+完整MATLAB代码+详细注释+操作实列 文章目录 1. 熵权法确定指标权重 (1)构造评价矩阵 Ymn (2)评价矩阵标准化处理 (3)计算指标信息熵值 Mj ...
- ADMM,ISTA,FISTA算法步骤详解,MATLAB代码,求解LASSO优化问题
ADMM,ISTA,FISTA算法步骤详解,MATLAB代码,求解LASSO优化问题 原创文章!转载需注明来源:©️ Sylvan Ding's Blog ❤️ 实验目的 了解 ADMM, ISTA, ...
- 快速行进算法(fast_marching_kroon)的matlab代码
快速行进算法(fast_marching_kroon)的matlab代码 快速行进算法用于求解程函方程得到走时场,源代码转载于link 文章目录 快速行进算法(fast_marching_kroon) ...
- k均值算法原理详细讲解以及matlab代码实现
有研究生物电信号处理和机器学习的欢迎加我qq429500506共同交流学习进步. 最近更新文章的频率太低了,主要原因是不想为了发文章而发文章,想潜心研究,写好文章,顺便想说一句开源万岁,最近一个月虽然 ...
- 【优化求解】基于蝗虫算法求解单目标问题matlab代码
1 简介 蝗虫算法( Grasshopper Optimization Algorithm,GOA ) 是 由 Saremi 等[1]于2017 年提出的一种元启发式仿生优化算法.具体原理如下: 2 ...
- 【车间调度】基于改进帝国企鹅算法求解车间调度问题附matlab代码
1 内容介绍 传统车间调度问题仅仅考虑工件的分配问题.而柔性车间调度问题在传统车间调度问题上做了一定的延伸,它更接近实际生产过程的原因是由于其在传统车间调度问题中加入了对加工机器的选择.因此对其的研究 ...
- 【优化调度】基于粒子群算法求解梯级水电站调度问题matlab代码
1 简介 粒子群算法( Particle Swarm Optimization, PSO)最早是由Eberhart和Kennedy于1995年提出,它的基本概念源于对鸟群觅食行为的研究.设想这样一个场 ...
最新文章
- 目标检测--DSOD: Learning Deeply Supervised Object Detectors from Scratch
- Ansible :一个配置管理和IT自动化工具
- mysql添加另一个表的某条数据库,在MySQL中,如何将一个表的内容复制到同一个数据库中的另一个表?...
- python教材目录_Python实用教程/高等院校信息技术规划教材简介,目录书摘
- 推荐美加版S3好用的两个ROM
- Asp.net MVC 仿照博客园的简单网站首页 列表设计
- 一个常用的Android工具库
- sprintf函数_C语言源代码展示:常用转换函数实现原理
- 使用async 和 await方法来
- Android-Parcelable理解与使用(对象序列化)
- 你靠什么在单位立足?此文堪称经典
- vue+element+node构建单片机控制系统
- 【Linux】Debian 连接惠普打印机并共享
- 2B市场 面向2025年技术趋势与5大机会
- 陀螺仪传感器的简单了解
- 关于注意力的自上而下和自下而上(top-down attention and bottom-up attention)
- 使用Clang作为编译器 —— Clang 中的Diagnostic flags
- 影像组学工作站:医学影像组学中多模态的任务类型
- Mac OSX中设置路由
- 修复固件损坏的RT-ICG2000-AC-CTC路由器(H3C生产)
热门文章
- linux mysql 装哪里_linux 下 mysql 安装目录在哪里
- Linux系统根目录解析
- C语言怎么实现atan2函数,实例讲解C语言atan和atan2函数
- c语言中atan2(a b)怎么运算,C语言中的atan和atan2(转)
- 深圳职业技术学院计算机应用技术代码,深圳职业技术学院2020年招生代码
- 软件刷的题目 (2)
- 我在北京找工作(一):理想到底有多重要?
- 铁道部12306火车票购票网站浅析
- 2022年十大接口测试工具合集《建议.收藏》
- 当下适合男人用的智能手机集合-转_我是亲民_新浪博客