- 11
- 0
- 约4.27千字
- 约 5页
- 2024-03-07 发布于上海
- 举报
一、 实例一:
问题描述
假设:背包最大重量为300,物品的数量为10,
物品的价值:[95 7523 7350226 5789 98],
物品的重量:[89 5919 431007244167 64]
Matlab代码
参数初始化,导入本问题的物品的价值和重量数据,并设定背包最大重量。
wei=[95752373 50226 578998];
val=[89 5919 431007244167 64];
w=300;%总重量约束值
随机产生数量为30的种群。生成30*10的0-1矩阵。
So=round(rand(30,10));
So=hardlim(So);%So为随机产生的矩阵,值为0或1[ZQ,Y]=size(So);
迭代次数为50代,交叉概率为90%,变异概率为5%.ds=50;pc=0.9;pm=0.05;
设置适应度函数,利用惩罚函数降低不合格解的适应度,惩罚因子设为1.5.pu=1.5;
syd=So*val-pu*So*val./(So*wei).*((So*wei-w)0).*(So*wei-w);figure(1);
holdon;
用轮盘赌进行选择操作,用选择出的个体构成的种群替代旧的种群better1=1;ip=1;updatef=-10;%betterl为当
原创力文档

文档评论(0)