【優(yōu)化選址】基于遺傳算法結(jié)合爬山法求解停車位建設(shè)優(yōu)化問題附matlab代碼
1 簡介
遺傳算法受到局部極小值的吸引!通過改變計算參數(shù)+算法結(jié)構(gòu)和運算規(guī)模依然不能保證每次都收斂到全局最優(yōu)點!本文對遺傳算法每次的結(jié)果加以比較!消除次優(yōu)值!保留最優(yōu)值!用這種爬山算法和遺傳算法相結(jié)合!可以保證算法的收斂性.
和許多優(yōu)化算法一樣!遺傳算法也常常出現(xiàn)收斂到局部極小值的現(xiàn)象!人們從各種途徑"各個側(cè)面對算法進行改進!希望使算法每一次搜索都能收斂到全局極值點!許多對遺傳算法的改進往往從以下幾個方面進行。
算法的參數(shù)調(diào)整如交叉概率、變異概率的改變、編碼方式的改變,如浮點數(shù)編碼和符號編碼等;算法結(jié)構(gòu)的調(diào)整,如選擇策略的變化和點交叉的多少等;運算規(guī)模的改變,如個體長度的改變和種群規(guī)模的改變,參數(shù)調(diào)整通常只影響收斂速度,編碼方式和種群規(guī)模的改變會影響運算的精度;算法結(jié)構(gòu)的調(diào)整可以影響搜索方向,?改進的結(jié)果難以收到理想的狀態(tài)。
本文把爬山法與遺傳算法相結(jié)合對優(yōu)化過程進行調(diào)整,程序首先用遺傳算法進行搜索,記錄搜索的結(jié)果,再次搜索后把結(jié)果和前次搜索結(jié)果進行比較,保留較好的結(jié)果,直至不再出現(xiàn)更好的搜索結(jié)果為止。
2 部分代碼
function ?si=crossover_GA(population,seln,pcrossover)
a=rand;
lent_1=size(population,2);
si(1,:)=population(seln(1),:);
si(2,:)=population(seln(2),:);
if a<pcrossover
? ?for i=1:2
? b=randperm(lent_1,3);
? b=sort(b);
? si_1(1,:)=[si(1,1:b(1)),si(2,1+b(1):b(2)),si(1,b(2)+1:b(3)),si(2,b(3)+1:lent_1)];
? si_1(2,:)=[si(2,1:b(1)),si(1,1+b(1):b(2)),si(2,b(2)+1:b(3)),si(1,b(3)+1:lent_1)];
? si(1,:)=jiuzheng(si_1(1,:));
? si(2,:)=jiuzheng(si_1(2,:));
? ?end
end
3 仿真結(jié)果



4 參考文獻
[1]么衛(wèi)良, 李杰, 李宏,等. 利用遺傳算法求解公共停車場多目標(biāo)選址模型[J]. 土木工程與管理學(xué)報, 2006(s1).
[2]簡煒, 張友兵, 吳陽,等. 基于爬山法和遺傳算法的聯(lián)合搜索算法[J]. 湖北汽車工業(yè)學(xué)院學(xué)報, 2004, 18(2):3.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻,若有侵權(quán)聯(lián)系博主刪除。
