遗传算法求解01背包问题.docxVIP

  • 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)

1亿VIP精品文档

相关文档