首页 > > 详细

调试matlab设计、matlab编程解析、讲解Statistics统计、matlab辅导留学生

%=====================================
% GAsim.m: Genetic Algorithm for simulation, change index
% by zhangzf, 2017.11.17
%=====================================
clear all
system('taskkill /im simpson.exe /f'); % simpson
% about simpson
script='C15_ga12_2'; % no in
shape='vCN'; % values of params
ishape='iCN'; % index of values of params
params=[0:1:23]; % set values of params using index (iCN -> vCN)
%****************************************
% 1. initilize
%****************************************
pop_size=500; %pop_size:
chromo_size=12; %chromo_size:
index_MIN=1;index_MAX=24;index_incr=1; %
iter=50; %
elitism_percent=0.01; %
keep_num=1; %
keep_vCN=zeros(iter,chromo_size);
cross_rate=0.9; %
mutate_rate=0.1; %
TEMP=rand(pop_size,chromo_size);
part1=TEMP(:,1)*0+1;
part2=round(TEMP(:,2:end)*(index_MAX-index_MIN)/index_incr)*index_incr+index_MIN;
iCN=[part1 part2];
size(iCN)
clear part1 part2 TEMP;
vCN=params(iCN);
dlmwrite(strcat('.\',shape),vCN,'precision','%2d', 'delimiter', ' ');
dlmwrite(strcat('.\',ishape),iCN,'precision','%2d', 'delimiter', ' ');
%****************************************
% 2. simulation Round 0
%****************************************
%****** simulation ***************
sim_command=strcat('simpson',abs(32),script,'.in',abs(32));system(sim_command);
%***********************************
%****************************************
% 3. save
%****************************************
index=0;
dat=strcat(script,'_',shape,'.txt');
dat_new=strcat('GA_re_R',num2str(index),'.txt');
shape_new=strcat('GA_sh_R',num2str(index),'.txt');
ishape_new=strcat('GA_in_R',num2str(index),'.txt');
run_command=strcat('copy',abs(32),dat,abs(32),dat_new,abs(32)); system(run_command);
run_command=strcat('copy',abs(32),shape,abs(32),shape_new,abs(32)); system(run_command);
run_command=strcat('copy',abs(32),ishape,abs(32),ishape_new,abs(32)); system(run_command);
for index=1:iter
disp('***************************************')
disp(strcat(abs(9),abs(9),abs(9),'Round',abs(9),num2str(index)))
disp('***************************************')

%****************************************
% 4.
%****************************************
sim_result=load(dat);
paixu_result=sortrows(sim_result,-2); % ,
p_fitness=[paixu_result(:,1) paixu_result(:,2)/sum(paixu_result(:,2))]; %,
MAX(index)=[paixu_result(1,2)];

%****************************************
% 5.
%****************************************
P=p_fitness(:,2);num = length(P);select = zeros(1,num);
r = rand(1,num); %
for i=1:num
sumP = 0;
j = ceil(num*rand); %1~m
while sumP 0
select(1:elitism)=p_fitness([1:elitism],1); %
end
% value
keep_vCN(index,:)=params(iCN(p_fitness(1,1),:));

%****************************************
% 6.
%****************************************
%select_random=select;
select_random=select(randperm(length(select))); %
iCN_sel=iCN(select_random,:);

iCN_cross=iCN_sel;
for i=1:2:pop_size
if(rand 0
keep_vCN(all(keep_vCN==0,2),:)=[];
keep_vCN=unique(keep_vCN,'rows');
keep_iCN=keep_vCN*0;
[Sa Sb]=size(keep_vCN);
for i=1:Sa
for j=1:Sb
keep_iCN(i,j)=(find(params==keep_vCN(i,j))); %vCNiCN
end
end
iCN(1:Sa,:)=keep_iCN;
vCN(1:Sa,:)=keep_vCN;
end

dlmwrite(strcat('.\',shape),vCN,'precision','%2d', 'delimiter', ' ');
dlmwrite(strcat('.\',ishape),iCN,'precision','%2d', 'delimiter', ' ');

%************************* simulation *************************
sim_command=strcat('simpson',abs(32),script,'.in',abs(32));system(sim_command);
%***************************************************************

%****************************************
% save
%****************************************
dat_new=strcat('GA_re_R',num2str(index),'.txt');
shape_new=strcat('GA_sh_R',num2str(index),'.txt');
ishape_new=strcat('GA_in_R',num2str(index),'.txt');

run_command=strcat('copy',abs(32),dat,abs(32),dat_new,abs(32)); system(run_command);
run_command=strcat('copy',abs(32),shape,abs(32),shape_new,abs(32)); system(run_command);
run_command=strcat('copy',abs(32),ishape,abs(32),ishape_new,abs(32)); system(run_command);
end
plot(MAX);
 

联系我们
  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp
热点标签

联系我们 - QQ: 99515681 微信:codinghelp
程序辅导网!