資源簡(jiǎn)介
進(jìn)化策略算法實(shí)現(xiàn)公交車(chē)調(diào)度,人工智能課程設(shè)計(jì),自己原創(chuàng),在MATLAB上調(diào)試通過(guò)

代碼片段和文件信息
%進(jìn)化策略算法?(μλ)-ES
%μ個(gè)父代進(jìn)化產(chǎn)生λ個(gè)子代,新產(chǎn)生的λ個(gè)新個(gè)體中擇優(yōu)選擇μ個(gè)個(gè)體作為下一代群體
%f(x)=x1+x2+x3+x4+x5+x6
clear?all;
close?all;
clc
%變量初始化
populationSize?=?15;???????%種群大小及子代個(gè)數(shù)?比例1/7
childrenSize?=?100;
best=0;????????????????????%存放父代最優(yōu)值及所在列
bestIndex=1;
fitness?=?zeros(?childrenSize?13);????%存放子代?其中(1:6)存放子代個(gè)體6個(gè)分量,(7:12)存放子代個(gè)體6個(gè)方差,(113)存放子代的適應(yīng)度函數(shù)
population=zeros(populationSize?13);??%存放父代
%?初始化父代
for?i?=?1?:?populationSize
????population(i?1)?=?round(rand?*?60);
????population(i?2)?=?round(rand?*?70);
????population(i?3)?=?round(rand?*?60);
????population(i?4)?=?round(rand?*?50);
????population(i?5)?=?round(rand?*?20);
????population(i?6)?=?round(rand?*?30);
????
????while?(population(i?1)+population(i?6))<60||(population(i?1)+population(i?2))<70||...
??????????(population(i?3)+population(i?2))<60||(population(i?4)+population(i?3))<50||...
???????(population(i?5)+population(i?4))<20?||?(population(i?6)+population(i?5))<30
????????population(i?1)?=?round(rand?*?60);
????????population(i?2)?=?round(rand?*?70);
????????population(i?3)?=?round(rand?*?60);
????????population(i?4)?=?round(rand?*?50);
????????population(i?5)?=?round(rand?*?20);
????????population(i?6)?=?round(rand?*?30);
????end
????for?j=7:13
????????population(ij)=3.0;%sigma初始化
????????if?j==13
????????????population(i?13)?=?population(i?1)+population(i?2)+population(i?3)+population(i?4)+population(i?5)+?population(i?6);
????????end
????end
????if?best>population(i?13)
???????best=population(i13);
???????bestIndex=i;
????end
end
bestFitness=population(bestIndex:);%精英保留
%?進(jìn)行100次迭代
for?t?=?1?:?100
????%?產(chǎn)生childrenSize個(gè)子代,并計(jì)算其方差、適應(yīng)度保存到fitness數(shù)組中
????for?i=1:childrenSize
????????populationIndex?=?round(rand?*?(populationSize-1))+1;%?從父代中隨機(jī)挑選一個(gè)用于產(chǎn)生子代?
????????
????????for?j=1:6
????????????fitness(i6+j)=population(populationIndex6+j)?*?exp(1?*?normrnd(0?1)?+?1?*?normrnd(0?1));?%?調(diào)整sigma參數(shù)
????????????fitness(ij)=round(population(populationIndex?j)?+?fitness(i6+j)?*normrnd(0?1));
????????end
????????fitness(i13)=fitness(i1)+fitness(i2)+fitness(i3)+fitness(i4)+fitness(i5)+fitness(i6);
????????%根據(jù)條件產(chǎn)生符合條件的子代
????????while?fitness(i1)?0?||?fitness(i1)?>?60?||?fitness(i6)?0?||?fitness(i6)?>?60?||?(fitness(i1)+fitness(i6))<60?||...
????????????(fitness(i1)+fitness(i2))<70?||?fitness(i2)<0?||?fitness(i2)>70?||?(fitness(i3)+fitness(i2))<60?||?fitness(i3)<0?||?fitness(i3)>60||...
????????????(fitness(i3)+fitness(i4))<50?||?fitness(i4)<0?||?fitness(i4)>50?||?(fitness(i5)+fitness(i4))<20?||...?
????????????(fitness(i6)+fitness(i5))<30?||?fitness(i5)<0?||?fitness(i5)>30
????????????for?j=1:6
????????????fitness(i6+j)=population(populationIndex6+j)?*?exp(1?*?normrnd(0?1)?+?1?*?normrnd(0?1));?%?調(diào)整sigma參數(shù)
????????????fitness(ij)=round(population(populationIndex?j)?+?fitness(i6+j)?*normrnd(0?1));
????????????end??
????????????fitness(i13)=fitness(i1)+fitness(i2)+fitness(i3
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件??????91648??2014-03-21?19:37??EvolutionStrategy\BusDispatch.doc
?????文件???????3624??2013-06-19?21:54??EvolutionStrategy\EvolutionStrategy.m
?????目錄??????????0??2014-03-21?19:51??EvolutionStrategy
-----------?---------??----------?-----??----
????????????????95272????????????????????3
評(píng)論
共有 條評(píng)論