資源簡介
應用了禁忌搜索算法解決0-1背包問題!matlab實現
代碼片段和文件信息
%禁忌搜索求解0-1背包問題
clear?all;close?all;
%global?a;
%global?c;
a=[44383846892826443218?568325967048145892];
c=[469072914075358547840771561177529756344];
n=20;
b=878;
listlength=15;%禁忌長度
num=1;
bnum=1;
%初始化禁忌表
list=round(rand(120));
for?i=1:20
????list(i)=0;
end???
fxbest(bnum)=0;%記錄每次迭代最好的值
fxlbest(num)=0;%記錄當前最好的值
%m=200;
for?j=1:200
????k=1;%選擇初始可行解
????while(k)????
????????x0=round(rand(201));%產生初始x(1)->x(20)
????????x0(1)=1;%以x(1)為起點
????????w=a*x0;
????????if?w<=b
????????????k=0;
????????end
????end??
????????if?(c*x0)>fxbest(num)???????????
???????????fxbest(num)=c*x0;
???????????xbest=x0;
????????end
end
if?fxbest(num)>fxlbest(bnum)
????fxlbest(bnum)=fxbest(num);
end
x1=x0;
%nlist=list;
%產生鄰域解?禁忌對象選擇x的分量,并選擇最
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????118272??2012-12-14?20:17??030120642_陳洪杰_作業2\0-1背包禁忌搜索編程報告.doc
?????文件????????1426??2012-12-14?19:16??030120642_陳洪杰_作業2\main.asv
?????文件????????1493??2012-12-22?15:43??030120642_陳洪杰_作業2\main.m
?????文件?????????804??2012-12-14?18:49??030120642_陳洪杰_作業2\near.asv
?????文件?????????819??2012-12-14?19:34??030120642_陳洪杰_作業2\near.m
?????文件?????????204??2012-12-14?19:16??030120642_陳洪杰_作業2\newlist.asv
?????文件?????????204??2012-12-14?19:28??030120642_陳洪杰_作業2\newlist.m
?????目錄???????????0??2012-12-14?20:18??030120642_陳洪杰_作業2\
- 上一篇:壓縮感知MATLAB程序
- 下一篇:matlab牛拉法潮流程序
評論
共有 條評論