2014-11-23 21:29:02 +08:00
|
|
|
|
clear
|
|
|
|
|
|
clc
|
|
|
|
|
|
data=dlmread('<EFBFBD><EFBFBD><EFBFBD><EFBFBD>.csv');
|
|
|
|
|
|
%% <EFBFBD><EFBFBD><EFBFBD>ݴ<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
%<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>T<EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
snWind=data(:,1:3:end);
|
|
|
|
|
|
snSolar=data(:,2:3:end);
|
|
|
|
|
|
snP=data(:,3:3:end);
|
2014-11-23 22:32:38 +08:00
|
|
|
|
snP(snP==-100)=1;
|
2014-11-24 11:50:06 +08:00
|
|
|
|
randSNCount=500; %ҪС<EFBFBD><EFBFBD>16^288 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
gaCount=20;%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
2014-11-23 21:29:02 +08:00
|
|
|
|
%% <EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>
|
2014-11-24 01:17:07 +08:00
|
|
|
|
ga=repmat(struct(),gaCount,1);
|
|
|
|
|
|
for I=1:gaCount
|
|
|
|
|
|
[ selectedIndex] = initGA( randSNCount );
|
|
|
|
|
|
% [ selectedIndex] = evolute(selectedIndex,randSNCount );
|
|
|
|
|
|
ga(I).selectedIndex=selectedIndex;
|
|
|
|
|
|
[ selectedWind,selectedSolar,candidateP ] = generateCandidate( snWind,snSolar,snP,randSNCount,ga(I).selectedIndex );
|
|
|
|
|
|
[ fitness ] = fitnessFun( selectedWind,selectedSolar,candidateP,randSNCount );
|
|
|
|
|
|
ga(I).fitness=fitness;
|
2014-11-23 22:32:38 +08:00
|
|
|
|
end
|
2014-11-24 01:17:07 +08:00
|
|
|
|
|
|
|
|
|
|
bestFitness=0;
|
|
|
|
|
|
bestIndex=0;
|
2015-02-02 17:29:39 +08:00
|
|
|
|
for LOOP=1:10
|
2014-11-24 01:17:07 +08:00
|
|
|
|
fprintf('<EFBFBD><EFBFBD>%d<EFBFBD>ε<EFBFBD><EFBFBD><EFBFBD>\n',LOOP);
|
|
|
|
|
|
fprintf('<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶȺ<EFBFBD><EFBFBD><EFBFBD>%f\n',bestFitness);
|
|
|
|
|
|
for I=1:gaCount
|
|
|
|
|
|
fitness=ga(I).fitness;
|
|
|
|
|
|
if fitness>bestFitness
|
|
|
|
|
|
bestFitness=fitness;
|
|
|
|
|
|
bestIndex=ga(I).selectedIndex;
|
|
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
for I=1:gaCount
|
2015-02-02 15:37:53 +08:00
|
|
|
|
[ selectedIndex] = evolute(selectedIndex,randSNCount,snSolar );
|
2014-11-24 01:17:07 +08:00
|
|
|
|
ga(I).selectedIndex=selectedIndex;
|
|
|
|
|
|
[ selectedWind,selectedSolar,candidateP ] = generateCandidate( snWind,snSolar,snP,randSNCount,ga(I).selectedIndex );
|
|
|
|
|
|
[ fitness ] = fitnessFun( selectedWind,selectedSolar,candidateP,randSNCount );
|
|
|
|
|
|
ga(I).selectedIndex=selectedIndex;
|
|
|
|
|
|
ga(I).fitness=fitness;
|
2014-11-23 22:32:38 +08:00
|
|
|
|
end
|
|
|
|
|
|
end
|
2014-11-24 11:50:06 +08:00
|
|
|
|
%<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ż<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µij<EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
newSnWind=zeros(randSNCount,96);
|
|
|
|
|
|
newSnSolar=zeros(randSNCount,96);
|
|
|
|
|
|
newSnP=zeros(randSNCount,96);
|
|
|
|
|
|
for I=1:randSNCount
|
|
|
|
|
|
onesIndex=sparse(bestIndex(I,:),1:96,1,16,96);
|
|
|
|
|
|
newSnWind(I,:)=sum(onesIndex.*snWind);
|
|
|
|
|
|
newSnSolar(I,:)=sum(onesIndex.*snSolar);
|
|
|
|
|
|
newSnP(I,:)=sum(onesIndex.*snP);
|
|
|
|
|
|
end
|
2014-11-24 01:17:07 +08:00
|
|
|
|
|
|
|
|
|
|
|