⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ga_remd.m

📁 王小平《遗传算法——理论、应用与软件实现》随书光盘
💻 M
字号:
%
% ga_remd.m
%
% GA to remove effects of dynamics
%
global stop;
stop=0;
da_front;
drawnow;


%
% Default values
%

mut_rat=0.2;
cro_rat=0.6;
scale_data=1;
save_data=0;
save_data_name='';
max_gen=50;
tr_split=50;
members=40;
fil_min=0;
fil_max=1;
fil_res=0.01;

set(w1,'NumberTitle','off','Name','Genetic Model: Removing dynamic effects from data');

%
% Print title
%

text1=da_text(w1,135,410,350,15,'Using previously select variables and I/Os for model building',[1 1 1],[1 0 0]);


%
% Genetic Algorithm Parameters
%
box1=uicontrol(w1,...
	'style','frame',...
	'position',[50 200 520 200],...
	'foregroundColor',[1 1 1],...
	'backgroundcolor',[0 0 1]);

text2=da_text(w1,55,380,200,15,'Genetic Algorithm parameters',[1 1 1],[1 0 0]);

%
% Stuff for popultaion size
%
text3=da_text(w1,60,350,100,15,'Population size:',[1 1 1],[0 0 1]);
sl1=uicontrol(w1,...
	'style','slider',...
	'position',[220,350,150,20],...
	'min',5,...
	'max',50,...
	'value',members,...
	'callback',[
		'set(sl1_current,''String'',[''Size = '' num2str(ceil(get(sl1,''value'')))]);',...
		'members=ceil(get(sl1,''value''));']);

sl1_current=da_text(w1,280,370,90,15,['Size = ' num2str(members)],[1 1 1],[0 0 1]);
sl1_min=da_text(w1,200,350,15,15,'5',[1 1 1],[0 0 1]);
sl1_max=da_text(w1,375,350,20,15,'50',[1 1 1],[0 0 1]);

%
% Mutation probability
%
text4=da_text(w1,60,305,120,15,'Mutation probability:',[1 1 1],[0 0 1]);
sl2=uicontrol(w1,...
	'style','slider',...
	'position',[220 305 150 20],...
	'min',0,...
	'max',1,...
	'value',mut_rat,...
	'callback',[
		'set(sl2_current,''String'',[''Probability = '' num2str(get(sl2,''value''))]);',...
		'mut_rat=get(sl2,''value'');']);

sl2_current=da_text(w1,250,325,120,15,['Probability = ' num2str(mut_rat)],[1 1 1],[0 0 1]);
sl2_min=da_text(w1,200,305,15,15,'0',[1 1 1],[0 0 1]);
sl2_max=da_text(w1,375,305,20,15,'1',[1 1 1],[0 0 1]);

%
% Cross over probability
%
text5=da_text(w1,60,260,130,15,'Cross over probability:',[1 1 1],[0 0 1]);
sl3=uicontrol(w1,...
	'style','slider',...
	'position',[220 260 150 20],...
	'min',0,...
	'max',1,...
	'value',cro_rat,...
	'callback',[
		'set(sl3_current,''string'',[''Probability = '' num2str(get(sl3,''value''))]);',...
		'cro_rat=get(sl3,''value'');']);

sl3_current=da_text(w1,250,280,120,15,['Probability = ' num2str(cro_rat)],[1 1 1],[0 0 1]);
sl3_min=da_text(w1,200,260,15,15,'0',[1 1 1],[0 0 1]);
sl3_max=da_text(w1,375,260,20,15,'1',[1 1 1],[0 0 1]);

%
% Maximum number of generations
%
text6=da_text(w1,60,215,130,15,'Max generations',[1 1 1],[0 0 1]);
sl4=uicontrol(w1,...
	'style','slider',...
	'position',[220 215 150 20],...
	'min',1,...
	'max',500,...
	'value',max_gen,...
	'callback',[
		'set(sl4_current,''string'',[''Max = '' num2str(ceil(get(sl4,''value'')))]);',...
		'max_gen=ceil(get(sl4,''value''));']);

sl4_current=da_text(w1,250,235,120,15,['Max = ' num2str(max_gen)],[1 1 1],[0 0 1]);
sl4_min=da_text(w1,200,215,15,15,'1',[1 1 1],[0 0 1]);
sl4_max=da_text(w1,375,215,30,15,'500',[1 1 1],[0 0 1]);

%
% Regression options
%
text10=da_text(w1,50,130,150,15,'Filter coefficients  - Min:',[1 1 1],[0 0 1]);
text11=uicontrol(w1,...
	'style','edit',...
	'position',[205 130 30 15],...
	'string',num2str(fil_min),...
	'backgroundcolor',[1 0 0],...
	'foregroundcolor',[1 1 1],...
	'callback',[
		'a=get(text11,''string'');',...
		'a=str2num(a);',...
		'if a ~= [];',...
			'set(text11,''string'',num2str(a));',...
			'fil_min=str2num(get(text11,''string''));',...
		'else;',...
			'set(text11,''string'',''0'');',...
		'end']);
text12=da_text(w1,250,130,80,15,'Resolution:',[1 1 1],[0 0 1]);
text13=uicontrol(w1,...
	'style','edit',...
	'position',[340 130 50 15],...
	'string',num2str(fil_res),...
	'backgroundcolor',[1 0 0],...
	'foregroundcolor',[1 1 1],...
	'callback',[
		'a=get(text13,''string'');',...
		'a=str2num(a);',...
		'if a ~= [];',...
			'set(text13,''string'',num2str(a));',...
			'fil_res=str2num(get(text13,''string''));',...
		'else;',...
			'set(text13,''string'',''0.01'');',...
		'end']);

text14=da_text(w1,420,130,30,15,'Max:',[1 1 1],[0 0 1]);
text15=uicontrol(w1,...
	'style','edit',...
	'position',[455 130 30 15],...
	'string',num2str(fil_max),...
	'backgroundcolor',[1 0 0],...
	'foregroundcolor',[1 1 1],...
	'callback',[
		'a=get(text15,''string'');',...
		'a=str2num(a);',...
		'if a ~= [];',...
			'set(text15,''string'',num2str(a));',...
			'fil_max=str2num(get(text15,''string''));',...
		'else;',...
			'set(text15,''string'',''1'');',...
		'end']);

%
% Option to scale data
%
check(1)=uicontrol(w1,...
	'style','check',...
	'position',[50 100 150 15],...
	'foregroundcolor',[1 1 1],...
	'backgroundcolor',[0 0 1],...
	'string','Scale data',...
	'horizontalalignment','left',...
	'value',scale_data,...
	'callback','scale_data=get(check(1),''value'');');

%
% Train/test split
%
text(14)=da_text(w1,50,70,150,15,'Train/Test split %',[1 1 1],[0 0 1]);

text(15)=uicontrol(w1,...
	'style','edit',...
	'foregroundcolor',[1 1 1],...
	'backgroundcolor',[1 0 0],...
	'position',[205 70 30 15],...
	'string',num2str(tr_split),...
	'callback','tr_split=str2num(get(text(15),''string''));');



%
% Save data check box and filename
%
check(2)=uicontrol(w1,...
	'style','check',...
	'position',[50 40 150 15],...
	'foregroundcolor',[1 1 1],...
	'backgroundcolor',[0 0 1],...
	'string','Save processsed data',...
	'horizontalalignment','left',...
	'value',save_data,...
	'callback','save_data=get(check(2),''value'');');

text(11)=uicontrol(w1,...
	'style','edit',...
	'position',[205 40 150 15],...
	'foregroundcolor',[1 1 1],...
	'backgroundcolor',[1 0 0],...
	'string',save_data_name',...
	'horizontalalignment','left',...
	'callback','save_data_name=get(text(11),''string'');');

%
% Begin button
%
but1=uicontrol(w1,...
	'style','push',...
	'position',[450 290 80 40],...
	'string','START !',...
	'callback','garun');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -