资源简介
matlab禁忌搜索算法解决背包问题,matlab环境编写,带注释
代码片段和文件信息
%修正函数滤掉无效解(解码法)
function vf=greedy(vcgm1)%返回50组有效解
[mn]=size(v);
for i=1:m
label=g;
label=label.*v(i:);%装入背包各物品的价值密度(.*对应元素相乘)
if sum(v(i:).*c)>m1%如果背包总重量大于阈值则修复无效解
%修复解
while sum(v(i:).*c)>m1%取出背包中价值密度小的物品,直到满足背包容量的约束为止
newlabel=label;
newlabel(0==newlabel)=inf;
[nlabelindex]=sort(newlabel);
v(iindex(1))=0;%将价值密度最小的物品取出
label(index(1))=0;
end
end
end
vf=v;
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4303 2017-06-25 16:52 tabu.m
文件 550 2017-06-14 16:41 greedy.m
- 上一篇:蚁群算法解决背包问题matlab
- 下一篇:matlab计算表面曲率
评论
共有 条评论