repair.m
来自「遗传量子算法求解背包问题Matlab源码」· M 代码 · 共 29 行
M
29 行
%repair 修改超重的问题解,即选择的物品重量不能超过限重C
overfiled=0;%不超重
for j=1:n
if sum(x(j,:)*w')>C %超重
overfiled=1;%超重符号
end
while overfiled
k=fix(1+rand()*(m-1));%选择其中一个物品放弃
x(j,k)=0;
if sum(x(j,:)*w')<=C%不超重了
overfiled=0;
end
end
while ~overfiled %不超重
k=fix(1+rand()*(m-1));%尽可能的再多选一个物品
x(j,k)=1;
if sum(x(j,:)*w')>C %超重了
overfiled=1;
end
end
x(j,k)=0;%将刚才选择后导致超重的那个物品丢弃
x(j,:);
end
x;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?