摘要:本文主要在微计算机的基础上,提出一种对复杂系统进行智能优化控制的非线性解决方案,首先采用神经网络对欲控制的复杂系统进行建模,然后采用实际数据构建针对性的神经网络模型,最后用混合遗传算法对神经网络模型进行制定参数寻优,从而获得对复杂系统的智能优化控制。本文给出了此优化控制方法在实际微计算机上应用的相关MATLAB程序,只要针对具体问题稍加调整,相信此程序能较好地解决实际中复杂系统的优化控制问题。
关键词:微计算机;神经网络;混合遗传算法;非线性优化控制
中图分类号:TP183 文献标识码:A
0 前言
智能优化控制是人工智能领域中的重要部分,方法多种多样,而非线性方法就是其中的一个研究热点,如神经网络,支持向量机,遗传算法等等,从其本质来看,其实都是实例学习方法,即从一个预先分好类的实例集中学习规则的方法,这类学习方法也称为概念学习方法。本文基于非线性的方法,从广泛意义上提出一个优化控制的完整解决方案:采用神经网络对欲控制的复杂系统进行建模,通过实际数据构建针对性的神经网络模型,然后采用混合遗传算法对神经网络模型进行制定参数寻优,从而获得对复杂系统的智能优化控制【1】。
1 神经网络
人工神经网络是从结构上模仿生物神经网络,是一种通过训练来学习的非线性预测模型;它通过合理的样本训练、学习专家的行为,并通过引入非线性转换函数来解决各种复杂的非线性问题,从而具有很强的模式识别能力【2】,它已广泛应用预测、特征挖掘等各种数据处理。人工神经网络是由多个具有非线性输入、输出特性的人工神经元、按照一定的方式连接构成的,误差逆传播神经网络是由输入层、输出层和若干中间层构成的多阶神经网络,网络上下层之间各种神经元相互全连接,每层的神经元相互之间无连接。图1为典型的3层BP神经网络构成示意图。
图1 3层BP神经网络构成示意图
BP网络是一种前馈神经网络,由1个输入层、若干隐层和一个输出层构成;如果输入层、隐含层和输出层的单元个数分别为n、q、m,则该网络可表示BP(n,q,m),利用该网络可实现n维输入向量Xn=(X1,X2,Xn)到m维输出向量Ym=(Y1,Y2,Ym)T的非线性映射。一般情况下,增加隐层的层数,不会对网络的精度和表达能力产生大的影响,基本网络采用BP的典型设计,即三层前向网络:输入层、隐层和输出层。隐层单元数目的确定是一个难题,目前还没有明确而广泛适用的结论,一般根据的经验取得【3】;网络神经元传递函数可以采用S型正切函数tansig,也可采用S型对数函数logsig。
2 混合遗传算法
2.1优化数学模型
在对复杂系统进行神经网络建模之后,要根据建立好的神经网络模型来优化指导复杂系统参数控制。实际上应用已训练好的神经网络模型来优化系统恰好与神经网络模型的训练过程相反。训练过程是从输入到输出,而应用其解决问题的优化过程是从输出到输入,即求取在某给定参数有极值时,输入参数所对应的值。以某一参数C极小化为例,系统优化控制问题即转化成求目标函数C最大值的优化问题:
其中,C和 Xi均为归一化参数,f表示由已训练好的神经网络所建立的映射关系。
C——给定参数;
Xi——网络输入层第i个变量;
Ei——第i个输入变量的取值范围。
其中 ,且W1,W2,B1,B2分别为神经网络第一、二层权值矩阵和阈值。
因为优化目标是由神经网络建立的模型,输入和输出之间的函数关系具有高度的非线性特性,对其求导相当困难,所以需要寻求优化目标函数的直接算法来满足实际要求。在工程领域,有多种直接优化方法可以应用,遗传算法是基于生物进化过程中优胜劣汰规则与群体内部染色体信息交换机制、处理复杂优化问题的一类通用性强的方法。与传统的优化方法相比,遗传算法可以更有效地找到全局最优,而且运行过程简单而计算结果丰富,特别适合于处理复杂优化问题。
2.2遗传算法
遗传算法作为一种模拟生物进化和遗传的规律搜索寻优方法在优化领域表现出了其强大的能力,它从多个初始点开始寻优,沿多路径搜索实现全局或准全局最优,而且优化求解过程与梯度信息无关,对优化问题没有太多的数学约束,可以处理任意形式的目标函数和约束条件。由于其运算简单和解决问题的有效能力而被广泛应用到众多领域,但同时它也出现了一些不尽如人意的地方,主要是它容易出现早熟现象和局部搜索能力较差【4】。
2.3复合形法
复合形法是求解约束非线性优化问题的一种应用比较广泛的直接局部搜索算法。它是在n维空间的约束可行域内,对复合形各顶点的目标函数值逐一进行比较,不断去掉最坏点,代之以既能使目标函数值有所下降,又能满足所有约束条件的新顶点,逐步调向局部最优点。然而复合形寻优的关键是初始复合形的产生和复合形顶点的改善性移动,对于低维凸域的优化问题,该方法收敛相当迅速。对于多维非线性和约束条件比较多的问题,由于可行域变得复杂,采用一般的随机方法产生的初始复合形很难构成,同时不能保证中心点落入可行域,致使非可行点很难落入可行域或映射失败,收敛速度比较慢,且容易收敛于局部最优解。
2.4 混合遗传算法
通过将遗传算法与复合形法结合可以得到一定的互补效果:遗传算法是全局优化算法,这意味着遗传算法能够在含有多个局部最优解的解空间中找到全局最优解的位置。但是,当解空间比较大时,遗传算法由于内在的一些性质无法以足够的精度收敛到全局最优解。复合形法,采用不同的策略,根据相邻点的信息,可以以较高的精度收敛到局部最优解。利用遗传算法搜索到的可行个体作为复合形的初始点,避免了初始复合形产生问题,同时可以保证初始复合形的形心落在可行域内,这样既实现了遗传算法的低精度、全局搜索,也实现了复合形法高精度、局部搜索,加快算法收敛速度【5】。
3 MATLAB的实现
在理论分析的基础上,本文基于MATLAB给出了相关的应用程序,即归一化程序、神经网络程序和遗传算法程序。
3.1 基于MATLAB的归一化程序
[r,n]=size(q);
for j=1:r
min(j)=q(j,1);
for i=1:(n-1)
if min(j)>q(j,i+1)
min(j)=q(j,i+1);
end
end
end
for j=1:r
max(j)=q(j,n);
for i=1:(n-1)
if max(j)<q(j,i)
max(j)=q(j,i);
end
end
end
for j=1:r
for i=1:n
p1(j,i)=(q(j,i)-min(j))/(max(j)-min(j));
end
end
t1=p1(r,:);
for i=1:(r-1)
p2(i,:)=p1(i,:);
end
3.1 基于MATLAB的神经网络程序
神经网络程序主要是调用MATLAB所自带的工具,可以通过界面操作,也可以通过以下函数建立神经网络模型并对其进行训练,假设已有实际数据向量。
net=newff(minmax(p),[m n],{'logsig' 'logsig'},'traingdx');% 建立神经网络模型
net = init(net);
net.trainParam.show=100;
net.trainParam.lr=0.85;
net.trainParam.mc=0.5;
net.trainParam.lr_inc=1.15;
net.trainParam.lr_dec=0.45;
net.trainParam.epochs=20000; %迭代
net.trainParam.goal=0.0008; %误差
[net,tr]=train(net,p,t);训练神经网络
3.2 基于MATLAB的混合遗传算法程序
在建立、训练完神经网络后,即可采用混合遗传算法对指定参数进行寻优。
bounds=ones(m,n)*[0,1];
initPop=initializega(X,bounds,'dmbtuoliu');%设定种群数目X
[x endPop bestPop trace]=gaopt(bounds,'dmbtuoliu',[],initPop,[1e-6 1 1],'maxGenTerm',100,'normGeomSelect',[0.08],['arithXover'],[2],'nonUnifMutation',[2 25 3]);
plot(trace(:,1),-1*trace(:,3),'b-') %作图
hold on
plot(trace(:,1),-1*trace(:,2),'r-')
xlabel('遗传代数');
ylabel('适应度');
legend('指定参数 ','平均适应度'); %指定参数的优化值和平均值的对比
4 结论
本文的创新点:将神经网络对非线性问题建立模型,然后采用复合形法和遗传算法结合的混合遗传算法对模型进行寻优,建立了完整的基于非线性的优化控制智能系统。
5 参考文献
[1]杨丽娜。 浅析VC++与MATLAB混合编程方法在图像处理中的应用[J]. 大众科技。 2006,88(2):73-74.
[2]商俊燕。 MATLAB神经网络在图书资源管理中的应用[J]. 微计算机信息。 2006,22(3):63-64.
[3]黄钟。 MATLAB与VC++联合编程在船舶计算中的应用[J]. 造船技术。 2005,267(5):41-44.
[4]隋慧敏。 基于VC++与MATLAB混合编程的数控软件开发[J]. 数控技术。 2006,22(1):49-51.
[5]黄江华。 人工神经网络的短期负荷预测模型[J].企业管理。 2006,46(1):41-42.
|