📄 gamain.m
字号:
function GAmain()
%本函数为主程序,主要调用其他函数。
clear all;
global x1 x2 x3 x4 x5 n nn
%其中n为样本量的大小,nn为初始种群规模大小。
format long e;
n=31; %此时样本量大小为31
nn=25; %初始种群规模大小为25
%读取原始事故数据文件
[filename,pathname]=uigetfile('*.txt','读取样本数据');
fit1=fopen(strcat(pathname,filename),'rt');
if (fit1==-1)
msgbox('文件未打开!!','Warning','warn');
return;
end
origdata=fscanf(fit1,'%f',5*n); %读取原始事故数据于origdata一维数组中
x1=origdata(1:5:end);
x2=origdata(2:5:end);
x3=origdata(3:5:end); % x1,x2,x3,x4,x5分别代表第一二三四五指标
x4=origdata(4:5:end);
x5=origdata(5:5:end);
% 原始数据归一化
x1=uniform(x1);
x2=uniform(x2);
x3=uniform(x3);
x4=uniform(x4);
x5=uniform(x5);
%读取初始解—初始种群
[filename,pathname]=uigetfile('*.txt','读取初始解');
fit2=fopen(strcat(pathname,filename),'rt');
if (fit2==-1)
msgbox('文件未打开!!','Warning','warn');
return;
end
for i=1:nn
tmp=fscanf(fit2,'%f',5); %得到了初始种群
p(i,1:5)=tmp'; % 注意写法
end
% 调用函数求最优解
%*****************************************************************************************************
%第一种:
[p_best,f_value,p_optive]=search_optimization(p,0.6,0.08,60);
aaa=p_best
xxx=sumsqr(p_best)
bbb=f_value(end)
yv11 = f_value;
%*******************************************************************************************************
%第二种:
[p_best,f_value,p_optive]=full_search_optimization(p,60);
aaa=p_best
xxx=sumsqr(p_best)
bbb=f_value(end)
yv22= f_value;
%*****************************************************************************************************
xv= 1:60;
plot(xv,yv11,'b.');
hold on; %此句将两条曲线放在一个图像文件中
plot(xv,yv22,'r.');
% msgbox('计算完成!!','Warning','warn');
% yv=[yv11;yv22];
% plot(xv,yv,'.');
fclose('all');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -