diff --git a/evolute.m b/evolute.m index 40c9851..0e602c2 100644 --- a/evolute.m +++ b/evolute.m @@ -3,14 +3,14 @@ function [ selectedIndex ] = evolute( selectedIndex,randSNCount,snSolar ) changeN=1;%选择多少时段进行修改。 changedIndex=1:96; changedIndex=changedIndex( round(1+(96-1)*rand(changeN,1)) ); -for c=1:length(changedIndex) +% 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));%这是改变后的值 + if any(abs(snSolar(16,changedIndex)-(-100))<1e-5) + selectedIndex(:,changedIndex)=round(1+(4-1)*rand(randSNCount,length(changedIndex)));%这是改变后的值 else - selectedIndex(:,c)=round(1+(16-1)*rand(randSNCount,1));%这是改变后的值 + selectedIndex(:,changedIndex)=round(1+(16-1)*rand(randSNCount,length(changedIndex)));%这是改变后的值 end -end +% end % [ selectedWind,selectedSolar,candidateP ] = generateCandidate( snWind,snSolar,snP,randSNCount,selectedIndex ); end diff --git a/main.m b/main.m index 39f04a0..25b6cb8 100644 --- a/main.m +++ b/main.m @@ -22,7 +22,7 @@ end bestFitness=0; bestIndex=0; -for LOOP=1:500 +for LOOP=1:10 fprintf('第%d次迭代\n',LOOP); fprintf('最好适度函数%f\n',bestFitness); for I=1:gaCount