91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 81KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-16
  • 語言: Matlab
  • 標簽: 人工蜂群??matlab??

資源簡介

壓縮包中分為兩部分,一部分為全局優化問題,另一部分為matlab源代碼,每個代碼塊都有大量的注釋,很簡明,用戶也可用本代碼求解其他無約束優化問題。

資源截圖

代碼片段和文件信息

function?gy?=ABC_Algorithm(Food_Numlimitmax_iterDobjfunLowerUpperr)
%%?變量解釋
%?-----------------------------------------------------------------------------------------
%?NP?蜂群大小?(雇傭峰+觀察峰)*/
%?FoodNumber為食物源數量?=?蜂群/2
%?limit為食物源遺棄條件
%?max_iter???%?搜索次數
%Foods?[FoodNumber][D];?/*Foods[食物源數量][D維待優化參數].
%ObjVal[FoodNumber];????/*每個食物源的目標函數值
%Fitness[FoodNumber];???/*每個食物源的適應度值(質量)
%trial[FoodNumber];??????/*每個解沒有被提高的次數*/
%prob[FoodNumber];???????/*食物源被選擇的概率
%New_solution?[D];???????????/*新解有公式產生?v{ij}=x{ij}+a{ij}*(x{kj}-x{ij})?j是一個隨機參數且k與i不同*/
%ObjValSol;??????????????/*新解的目標函數值
%FitnessSol;??????????????/*新解的適應度值
%neighbour?param2change;?/*param2change與j對應?neighbour與k對應在公式v_{ij}=x_{ij}+\phi_{ij}*(x_{kj}-x_{ij})中*/
%GlobalMin;?/*ABC算法的最優解*/
%GlobalParams[D];?/*最優解的參數*/
%GlobalMins[runtime];?/*在多次運行后得每次最優解
%---------------------------------------------------------------------------

U_bound?=ones(1D)*Upper;%32.768;??????%參數的下界
L_bound?=ones(1D)*Lower;%32.768???%參數的上界

Foods_min=ones(max_iterD);
Select_P=zeros(1Food_Num);

Range?=?repmat((U_bound-L_bound)[Food_Num?1]);%?變量范圍
Lower?=?repmat(L_bound?[Food_Num?1]);
Foods?=?rand(Food_NumD).*?Range?+?Lower;??????????????%?食物源初始化;

Obj_Val=feval(objfunFoods);??????????????????????????????%目標函數值
Fitness=Cal_Fitness(Obj_Val);????????????????????????%適應度值
Global_Min=ones(1max_iter);???%每次迭代最優解
trial=zeros(1Food_Num);????%重置計數器

%------------記錄最好的食物源---------
Best_Ind=find(Obj_Val==min(Obj_Val));
Best_Ind=Best_Ind(end);
GlobalMin_iter=Obj_Val(Best_Ind);
GlobalParams=Foods(Best_Ind:);

%%?迭代開始
iter=1;
while?iter?<=?max_iter
????%%??%%%%%%%%%%%%%雇傭峰(偵查蜂)階段?%%%%%%%%%%%%%%
????for?i=1:(Food_Num)
????????Param2Change=fix(rand*D)+1;?????????%?參數是隨機改變
????????neighbour=fix(rand*(Food_Num))+1;???%?隨機選擇的解用于產生解i的變異解
????????
????????while(neighbour==i)?%隨機選擇一個與解i不同的解
????????????neighbour=fix(rand*(Food_Num))+1;
????????end
????????New_sol=Foods(i:);
????????%%??/*產生新解*/
????????
????????New_sol(Param2Change)=Foods(iParam2Change)+(Foods(iParam2Change)-Foods(neighbourParam2Change))*(rand-0.5)*2;
????????New_sol=bound_limit(New_solL_boundU_bound);%?邊界值處理
????????
????????%%?/*計算新解*/
????????
????????ObjVal_Sol=feval(objfunNew_sol);
????????Fitness_Sol=Cal_Fitness(ObjVal_Sol);
????????
????????%%?/*貪婪算法*/
????????
????????if?(Fitness_Sol?>?Fitness(i))???%if新解優于解i,則替代i解
????????????Foods(i:)=New_sol;
????????????Fitness(i)=Fitness_Sol;
????????????Obj_Val(i)=ObjVal_Sol;
????????????trial(i)=0;
????????else
????????????trial(i)=trial(i)+1;?%如果解i沒有提高trial+1
????????end
????????%%?%%%%%%%%%%%%%%%%%?計算概率?%%%%%%%%%%%%%
????????
????????%食物源是根據概率(質量)被選擇的
????????Pro=2;
????????switch?Pro
????????????case?1
????????????????Select_P(i)=Fitness(i)/sum(Fitness);
????????????case?2
????????????????Select_P(i)=(0.9.*Fitness(i)./max(Fitness))+0.1;
????????end
????end
????%%?%%%%%%%%%%%%%%?觀察蜂階段?%%%%%%%%%%
????
????i=1;
????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????5961??2016-06-22?20:54??人工蜂群算法求解無約束優化問題\ABC_Algorithm.m

?????文件????????214??2016-06-22?18:42??人工蜂群算法求解無約束優化問題\bound_limit.m

?????文件????????201??2016-06-22?18:42??人工蜂群算法求解無約束優化問題\Cal_Fitness.m

?????文件????????273??2016-06-11?19:18??人工蜂群算法求解無約束優化問題\Problem1.m

?????文件????????100??2016-06-11?18:51??人工蜂群算法求解無約束優化問題\Problem2.m

?????文件????????326??2016-06-22?09:39??人工蜂群算法求解無約束優化問題\Problem3.m

?????文件???????1074??2017-12-27?22:53??人工蜂群算法求解無約束優化問題\run_ABC.m

?????文件?????164352??2017-12-27?22:54??人工蜂群算法求解無約束優化問題\遺傳算法求解結果.doc

?????目錄??????????0??2017-12-27?22:55??人工蜂群算法求解無約束優化問題

-----------?---------??----------?-----??----

???????????????172501????????????????????9


評論

共有 條評論