资源简介

遗传算法函数优化,内含两个函数优化实例,加matlab遗传算法工具箱,供初学者学习

资源截图

代码片段和文件信息

clc
clear all
close all
%% 画出函数图
figure(1);
hold on;
lb=1;ub=2; %函数自变量范围【12】
ezplot(‘sin(10*pi*X)/X‘[lbub]);   %画出函数曲线
xlabel(‘自变量/X‘)
ylabel(‘函数值/Y‘)
%% 定义遗传算法参数
NIND=40;        %个体数目
MAXGEN=20;      %最大遗传代数
PRECI=20;       %变量的二进制位数
GGAP=0.95;      %代沟
px=0.7;         %交叉概率
pm=0.01;        %变异概率
trace=zeros(2MAXGEN);                        %寻优结果的初始值
FieldD=[PRECI;lb;ub;1;0;1;1];                      %区域描述器
Chrom=crtbp(NINDPRECI);                      %初始种群
%% 优化
gen=0;                                  %代计数器
X=bs2rv(ChromFieldD);                 %计算初始种群的十进制转换
ObjV=sin(10*pi*X)./X;        %计算目标函数值
while gen   FitnV=ranking(ObjV);                               %分配适应度值
   SelCh=select(‘sus‘ChromFitnVGGAP);              %选择
   SelCh=recombin(‘xovsp‘SelChpx);                  %重组
   SelCh=mut(SelChpm);                               %变异
   X=bs2rv(SelChFieldD);               %子代个体的十进制转换
   ObjVSel=sin(10*pi*X)./X;             %计算子代的目标函数值
   [ChromObjV]=reins(ChromSelCh11ObjVObjVSel); %重插入子代到父代,得到新种群
   X=bs2rv(ChromFieldD);
   gen=gen+1;                                             %代计数器增加
   %获取每代的最优解及其序号,Y为最优解I为个体的序号
   [YI]=min(ObjV);
   trace(1gen)=X(I);                            %记下每代的最优值
   trace(2gen)=Y;                               %记下每代的最优值
end
plot(trace(1:)trace(2:)‘bo‘);                            %画出每代的最优点
grid on;
plot(XObjV‘b*‘);   %画出最后一代的种群
hold off
%% 画进化图
figure(2);
plot(1:MAXGENtrace(2:));
grid on
xlabel(‘遗传代数‘)
ylabel(‘解的变化‘)
title(‘进化过程‘)
bestY=trace(2end);
bestX=trace(1end);
fprintf([‘最优解:\nX=‘num2str(bestX)‘\nY=‘num2str(bestY)‘\n‘])

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-03-28 12:13  chapter1\
     文件      423860  2015-06-14 16:27  chapter1\Sheffield的遗传算法工具箱.rar
     文件        1909  2010-10-31 21:26  chapter1\example1.m
     文件        2113  2010-10-31 21:25  chapter1\example2.m
     目录           0  2015-06-13 13:30  chapter1\gatbx\
     目录           0  2015-06-13 13:01  chapter1\gatbx\DOC\
     文件       12501  2005-11-28 15:21  chapter1\gatbx\DOC\GA TOOLBOX FREQUENTLY ASKED QUESTIONS.txt
     文件         273  2005-12-02 09:07  chapter1\gatbx\DOC\GATBXA0.LOG
     文件       16715  2005-12-02 09:07  chapter1\gatbx\DOC\GATBXA0.PDF
     文件       53484  1998-04-22 11:14  chapter1\gatbx\DOC\GATBXA0.PS
     文件         458  2005-12-02 09:10  chapter1\gatbx\DOC\GATBXA1.LOG
     文件      109101  2005-12-02 09:10  chapter1\gatbx\DOC\GATBXA1.PDF
     文件      204230  1998-04-22 11:14  chapter1\gatbx\DOC\GATBXA1.PS
     文件         273  2005-12-02 09:16  chapter1\gatbx\DOC\GATBXA2.LOG
     文件      101958  2005-12-02 09:16  chapter1\gatbx\DOC\GATBXA2.PDF
     文件      200234  1998-04-22 11:14  chapter1\gatbx\DOC\GATBXA2.PS
     文件       98687  2005-11-28 16:18  chapter1\gatbx\DOC\The MathWorks - 1-18GTU Why do I get an error in MATLAB 6_0 (R12) where I got a warning in R11 with reference to uninitialized variables.mht
     文件       18351  2005-11-28 15:25  chapter1\gatbx\DOC\gpl.txt
     文件        1525  2005-11-28 15:25  chapter1\gatbx\DOC\readme.txt
     目录           0  2015-06-13 13:01  chapter1\gatbx\TEST_FNS\
     文件        5035  1998-04-22 10:44  chapter1\gatbx\TEST_FNS\DEMOGA1.M
     文件        4726  1998-04-22 10:44  chapter1\gatbx\TEST_FNS\MPGA.M
     文件        2529  1998-04-22 10:44  chapter1\gatbx\TEST_FNS\OBJBRAN.M
     文件        4077  2005-12-04 17:23  chapter1\gatbx\TEST_FNS\OBJDOPI.M
     文件        2427  1998-04-22 10:44  chapter1\gatbx\TEST_FNS\OBJEASO.M
     文件        2632  2005-11-29 23:05  chapter1\gatbx\TEST_FNS\OBJFUN1.M
     文件        2501  1998-04-22 10:44  chapter1\gatbx\TEST_FNS\OBJFUN1A.M
     文件        2360  1998-04-22 10:44  chapter1\gatbx\TEST_FNS\OBJFUN1B.M
     文件        2522  1998-04-22 10:44  chapter1\gatbx\TEST_FNS\OBJFUN2.M
     文件        2735  1998-04-22 10:44  chapter1\gatbx\TEST_FNS\OBJFUN6.M
     文件        2449  1998-04-22 10:44  chapter1\gatbx\TEST_FNS\OBJFUN7.M
............此处省略49个文件信息

评论

共有 条评论