clc;
clear;
%n=10
a=[95 4 60 32 23 72 80 62 65 46];%物品的体积
c=[55 10 47 5 4 50 8 61 85 87];%物品的价值
b=269;%背包的重量限制
%% 初始化程序:
Dim=10;%粒子的维数
xSize=20;%种群数
MaxIt=30;%最大迭代次数
c1=2;
c2=2;%定义加速因子
w=0.8;%定义惯性因子
%%
A=repmat(a,xSize,1);%将a扩展成一个30*10的矩阵
C=repmat(c,xSize,1);%将c扩展成一个30*10的矩阵
x=round(rand(xSize,Dim));%随机取一个30*10的0/1矩阵作为粒子的初始位置
v=rand(xSize,Dim);%粒子的初始速度
xbest=zeros(xSize,Dim);%单个粒子的初始最佳位置
fxbest=zeros(xSize,1);%xbest的适应度
gbest=zeros(1,Dim);%粒子群的初始最佳位置
fgbest=0;%gbest的适应度
%粒子群最优位置和单个粒子最优位置的选定
%% 迭代循环算法:
iter=0;
while iter<MaxIt
iter=iter+1;
fx=sum((C.*x)');%计算粒子群的适应度,即背包内物品的价值
sx=sum((A.*x)');%限制函数,背包内物品的体积
for i=1:xSize
if sx(i)>269
fx(i)=0;%当被包内物品的体积超过限制时,将期适应度设置为1
end
end
for i=1:xSize
if fxbest(i)<fx(i)
fxbest(i)=fx(i);
xbest(i,:)=x(i,:);%当粒子的适应度fx(i)大于其最佳适应度时fxbest(i),用其替代原来粒子的最佳适应度,并记下此解
end
end
if fgbest<max(fxbest)
[fgbest,g]=max(fxbest);
gbest=xbest(g,:);%当存在粒子的最佳适应度fxbest(g)大于种群的最佳适应度时,用其替代原来种群的最佳适应度,并记下此解
end
for i=1:xSize
if x(i,:)==gbest
x(i,:)=round(rand(1,Dim));%为防止算法陷入局部最优,若某个粒子的位置等于种群最佳位置,将对该粒子的位置重新初始化赋值
end
end
R1=rand(xSize,Dim);
R2=rand(xSize,Dim);
v=v*w+c1*R1.*(xbest-x)+c2*R2.*(repmat(gbest,xSize,1)-x);%用速度迭代公式产生新的速度
x=x+v;%更新粒子群的位置
for i=1:xSize
for j=1:Dim
if x(i,j)<0.5
x(i,j)=0;
else x(i,j)=1;
end
end
end%由于粒子的位置只有(0,1)两种状态,此处以0.5为分界点对函数值进行离散化
end
fgbest
sgbest=sum((a.*gbest)')
gbest
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【达摩老生出品,必属精品,亲测校正,质量保证】 资源名:求解背包问题的离散粒子群算法程序_采用0-1二进制编码_可以直接运行_matlab 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有一定经验的开发人员
资源推荐
资源详情
资源评论
收起资源包目录
求解背包问题的离散粒子群算法程序_采用0-1二进制编码_可以直接运行_matlab.zip (1个子文件)
ls_PSO.m 2KB
共 1 条
- 1
资源评论
- weixin_511019752022-06-29用户下载后在一定时间内未进行评价,系统默认好评。
- W2Y5222023-09-19资源内容总结地很全面,值得借鉴,对我来说很有用,解决了我的燃眉之急。
- sfy1015882024-04-02感谢资源主的分享,很值得参考学习,资源价值较高,支持!
- qq_568134932023-11-23感谢大佬分享的资源给了我灵感,果断支持!感谢分享~
- guangchengsishen2023-05-21资源不错,很实用,内容全面,介绍详细,很好用,谢谢分享。
阿里matlab建模师
- 粉丝: 3731
- 资源: 2812
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 生命太短暂,没有时间进行测试.zip
- 斐讯K2刷机包通用版本
- 此脚本在 Berkeley Deep Drive 数据集上执行 K-means 聚类,以找到适合 YOLOv3 的锚框 它最初有 9 个锚框,图像大小为 608x608 如有任何问题,请告诉我.zip
- tc3xx tool memtool
- Quartus时序分析与时序约束使用指导
- 此存储库提供了在 tensorRT 中以 int8 模式运行 yolov3 的示例.zip
- 此代码是与 TensorRT 框架一起使用的经过训练的 YOLO 神经网络的实现 .zip
- 检测并跟踪视频流中的车辆,并计算通过指定线路的车辆数量 .zip
- 根据 YOLO 格式标注在原始图片上绘制边界框 帮助检查标注的正确性并提取带有错误边界框的图片 .zip
- 标签文件转换器xml 到 yolo.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功