考虑了-100的问题

Signed-off-by: dmy@lab <dmy@lab.lab>
This commit is contained in:
dmy@lab 2015-02-02 15:37:53 +08:00
parent d758ad5005
commit 015d4e2a89
3 changed files with 12 additions and 5 deletions

View File

@ -1,9 +1,16 @@
function [ selectedIndex ] = evolute( selectedIndex,randSNCount )
function [ selectedIndex ] = evolute( selectedIndex,randSNCount,snSolar )
%
changeN=1;%
changedIndex=1:96;
changedIndex=changedIndex( round(1+(96-1)*rand(changeN,1)) );
selectedIndex(:,changedIndex)=round(1+(16-1)*rand(randSNCount,changeN));%
for c=1:length(changedIndex)
% selectedIndex(:,changedIndex)=round(1+(16-1)*rand(randSNCount,changeN));%
if abs(snSolar(16,c)-(-100))<1e-5
selectedIndex(:,c)=round(1+(4-1)*rand(randSNCount,1));%
else
selectedIndex(:,c)=round(1+(16-1)*rand(randSNCount,1));%
end
end
% [ selectedWind,selectedSolar,candidateP ] = generateCandidate( snWind,snSolar,snP,randSNCount,selectedIndex );
end

View File

@ -1,6 +1,6 @@
function [ selectedIndex] = initGA( randSNCount )
%
selectedIndex=round(1+(16-1)*rand(randSNCount,96));
selectedIndex=round( [1+(4-1)*rand(randSNCount,5),1+(16-1)*rand(randSNCount,14),1+(4-1)*rand(randSNCount,9),1+(16-1)*rand(randSNCount,16),1+(4-1)*rand(randSNCount,9),1+(16-1)*rand(randSNCount,14),1+(4-1)*rand(randSNCount,11),1+(16-1)*rand(randSNCount,12),1+(4-1)*rand(randSNCount,6)] );
end

4
main.m
View File

@ -22,7 +22,7 @@ end
bestFitness=0;
bestIndex=0;
for LOOP=1:100
for LOOP=1:500
fprintf('%d\n',LOOP);
fprintf('%f\n',bestFitness);
for I=1:gaCount
@ -34,7 +34,7 @@ for LOOP=1:100
end
for I=1:gaCount
[ selectedIndex] = evolute(selectedIndex,randSNCount );
[ selectedIndex] = evolute(selectedIndex,randSNCount,snSolar );
ga(I).selectedIndex=selectedIndex;
[ selectedWind,selectedSolar,candidateP ] = generateCandidate( snWind,snSolar,snP,randSNCount,ga(I).selectedIndex );
[ fitness ] = fitnessFun( selectedWind,selectedSolar,candidateP,randSNCount );