第7讲matlab部分智能优化算法解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人工神经网络是由若干个人工神经元相互连接 组成的广泛并行互联的网络,见下图。因联结 方式的不同,有“前馈神经网络”(简称BP网 络)和“反馈神经网络”。 下图是BP网络拓扑结构图。
铜 陵 学 院
2、matlab命令与计算举例 (1) net=newff(PR,[S1,…,Sn],{TF1,…,TFn}) %生成一个BP网络,其中:PR是由R个输入中各 样本值的最小和最大构成的R*2矩阵;Si表示第 i层的节点数,共有n层;TFi表示第i层的传输函数 字符串,默认为’tansig’. (2) net=newlvq(PR, N, PC) %生成一个学习向量量化(lvq)神经网络,其中: PR含义同上;N表示隐层数目;PC表示各类别所 占的百分比. (3) [net,tr,Y,E]=train(net, P, T)
Fra Baidu bibliotek
二、人工神经网络
1、预备知识:人工神经网络基本知识 (1)生物神经元—大脑的一个重要成分是神 经网络,神经网络由相互关联的神经元组成.
铜 陵 学 院
(2)人工神经元与神经网络 1943年美国心理学家W.McCulloch和数学家 W.Pitts 提出了一个简单的神经元模型—MP模 型,如下图.
铜 陵 学 院
铜 陵 学 院
else
f= exp(x(1))*(4*x(1)^2+2*x(2)^2+4*x(1)*x(2)+2*x(2)+1);
end 例 3 运用遗传算法计算下列函数最大值: max f(x,y)=0.5-(sin^2(sqrt(x^2+y^2))-0.5)/ (1+0.01(x^2+y^2))^2. 函数 f(x,y) 的复杂度较高,它有无限个局部极 大值点,其中只有一个(0,0)为全局最大值点, 最大值为1。
铜 陵 学 院
function f=fitnessfun(x) f=f(x); 当求解有约束优化问题时,可将约束条件用 逻辑语句写进上述 fitnessfun 函数。如 function f=fitnessfun(x) if (x<=0|x>4), f=inf; else, f=f(x); end %即上述优化问题有约束x>0和x<=4.
铜 陵 学 院
如果用 fminunc 求解的话,由于对初值的高度 敏感性而难以得到全局最优解,而遗传算法的 整体优化搜索则可以得到或逼近整体最优值.
例 2 运用遗传算法计算约束非线性规划: min f(x)=e^x1*(4x1^2+2x2^2+4x1x2+2x2+1). s.t. 1.5+x1x2-x1-x2<=0, -x1x2<=10. 首先编写程序如下: function f=ga_exam2(x) if (1.5+x(1)*x(2)-x(1)-x(2)>0 | -x(1)*x(2)>10), f=100;
铜 陵 学 院
程度(简称为适应度)来作为以后遗传操作的 依据; 第三步,进行选择操作:选择的目的是为了 从当前种群中选出优良的染色体,判断染色体 优良与否的准则是各自的适应度,即染色体的 适应度越高,其被选择的机会就越多; 第四步,进行交叉操作:对选择出来的新种 群进行交叉操作; 第五步,进行变异操作:变异操作的目的是 为了挖掘种群中个体的多样性,克服有可能陷 入局部解的弊病。
铜 陵 学 院
%对上面生成的神经网络net的参数进行训练. 其中: P为n*N样本输入矩阵, n为输入变量维 数, N为样本组数; T为m*N输出矩阵,m为输出 变量维数; net返回训练后得到的神经网络; tr 为结构体数据, 返回训练的相关跟踪信息, tr.epoch为训练步数,tr.perf为各步目标函数值. (4) Y=sim(net,P) % 应用第(3)步训练后得到的神经网络net, 计 算新的输入数据的值Y,即是仿真(或称泛化). 另: nntool神经网络工具命令.
铜 陵 学 院
function f=ga_exam3(x) f=0.5-((sin(sqrt(x(1)^2+x(2)^2)))^2-0.5)/ (1+0.01*(x(1)^2+x(2)^2))^2
通过对比,遗传算法在整体最优化方面强于 matlab其他优化命令,但明显弱于1stopt .
铜 陵 学 院
铜 陵 学 院
格式二:[x,f,reason]=ga(@fitnessfun,nvars) %同时返回解 x 处的函数值 f 和算法终止原因. matlab还提供了遗传算法运算工具命令gatool.
例 1 分别用优化工具箱中的fminunc函数和遗 传算法计算非线性规划: max f(x)=xsin(10 pi x)+2, x\in [-1,2]. 首先用遗传算法求解,编写程序如下: function f=ga_exam1(x) if (x<=-1 | x>2), f=100; else, f=-x.*sin(10*pi*x)-2; end
一、遗传算法
1、算法简介 遗传算法是一种通过模拟自然进化过程搜索 最优解的方法。在解决复杂优化问题方面效果 显著。算法原理如下: 第一步,产生染色体:随机产生一定数目的 初始染色体(它们组成一个种群),种群中染 色体的数目称为种群的大小或规模; 第二步,评价染色体:用评价函数来评价每 一个染色体的优劣,即用染色体对环境的适应
铜 陵 学 院
进行了上述三个操作所产生的染色体称为后 代。对后代重复进行选择、交叉、变异操作, 经过给定次数的迭代处理以后,把最好的染色 体作为优化问题的最优解。 2 matlab指令与计算举例 格式一:x=ga(@fitnessfun,nvars) 求解:优化问题 min f(x),其中 nvar 为优化 问题中变量的个数. fitnessfun 写成如下的m函 数形式(fitnessfit.m):
铜 陵 学 院
第七讲
Matlab部分智能 优化算法
铜 陵 学 院
本章主要学习matlab中三个智能优化算法 及其实现. 一、遗传算法 1、算法的相关知识 2、ga及gatool 二、人工神经网络 1、算法的相关知识 2、newff,newlvq,train,sim及nntool 三、粒子群算法
铜 陵 学 院