1 简介
将免疫算法的免疫算子思想引入到量子遗传算法中,提出了改进的算法:量子免疫算法.算法在保持量子遗传算法优点的同时,提高了算法的全局收敛性.并将此算法应用在0-1背包问题中,仿真结果表明,此改进算法具有良好的性能.
量子遗传算法是量子计算理论和遗传算法相结 合的产物具有较好的种群多样性和收敛性但对于 问题中给出的信息往往无法直接反映在算法迭代 过程中。将人工免疫中的疫苗接种思想引入到量子 遗传算法中提出量子免疫算法 (QuantumImmune AlgorithmQIA)可以较好的解决这个问题。背包问 题 (KnapsackProblem)是一种组合优化的经典问 题 。问题的名称来源于如何选择最合适的物品 放置于给定背包中。背包问题有着广泛的应用背 景如预算控制、项目选择、材料切割、货物装载 等。
2 部分代码
% TEH 0\1-KNAPSACK PROBLEM
clear;
C=[253 245 243 239 239 239 238 238 237 232 231 231 230 229 228 227 224 217 213 207 203 201 195 194 191 187 187 177 175 171 169 168 165 164 161 160 158 150 149 147 141 140 139 136 135 132 128 126 122 120 119 116 116 114 111 110 105 105 104 103 93 92 90 79 78 77 76 76 75 73 62 62 61 60 60 59 57 56 53 53 51 50 44 44 42 42 38 36 34 28 27 24 22 18 12 10 7 4 4 1];
W=[253 245 243 239 239 239 238 238 237 232 231 231 230 229 228 227 224 217 213 207 203 201 195 194 191 187 187 177 175 171 169 168 165 164 161 160 158 150 149 147 141 140 139 136 135 132 128 126 122 120 119 116 116 114 111 110 105 105 104 103 93 92 90 79 78 77 76 76 75 73 62 62 61 60 60 59 57 56 53 53 51 50 44 44 42 42 38 36 34 28 27 24 22 18 12 10 7 4 4 1];
V=6666;
a=2.40;
q=(sqrt(1/2)).*ones(20,100);
end
end
updatec=max1;
updatef=maxf;
media = mean(fit);
vx = [vx maxf]; vmfit = [vmfit media]; vw=[vw minf];
if rem(it,1) == 0 | it == 10,
disp(sprintf('Gen.: %d Av: %2.2f Be: %2.2f Wr;%2.2f',it,media,maxf,minf));
end;
it=it+1;
end
T = etime(clock,t0);
disp(sprintf('the total time is %2.4f',T));
disp(sprintf('Maximum found profit:%4.2f',maxf));
disp('决策变量:');
disp(max1);
figure(1); plot(vx);xlabel('Generations'); ylabel('Fittness');
hold on; plot(vmfit,':r');hold on; plot(vw,'-.g'); legend('MAX','AVERAGE','MIN',0);hold off;
3 仿真结果
4 参考文献
[1]李兆华, 李飞, 郑宝玉. 量子免疫算法及在0-1背包问题中的应用[J]. 南京邮电大学学报(自然科学版), 2011, 031(002):36-39.
部分理论引用网络文献,若有侵权联系博主删除。