迭代学习算法

2024-08-26

迭代学习算法(通用7篇)

迭代学习算法 篇1

2009年3月27日收到迭代学习控制[1,2]的使用对象是诸如工业机器人那样的具有重复运动性质的被控系统,它的目标是实现有限区间上的完全跟踪任务。迭代学习控制采用“在重复中学习”的学习策略,具有记忆和修正机制。它通过对被控系统进行控制尝试,以输出轨迹与给定轨迹的偏差修正不理想的控制信号,以产生新的控制信号使得系统的跟踪性能得以提高[3]。迭代学习控制的研究,对具有较强的非线性耦合﹑较高的位置重复精度﹑难以建模和高精度轨迹跟踪控制要求的动力学系统有着非常重要的意义[4]。

滑模控制(Sliding Mode Control,SMC)是变结构控制(Variable Structure Control,VSC)的主要理论和方法。从20世纪50年代开始出现至今,滑模控制已经得到了充分的完善和发展。滑模控制实现简单,对外界干扰和系统匹配不确定性有完全的鲁棒性和自适应性[5]。这两大优点使得滑模控制以及其相关的研究迅猛发展,成为控制理论界的研究热点之一。

1 模糊滑模迭代控制器设计

迭代学习显著的特点是控制算法非常简单,控制精度很高,可以以任意精度跟踪给定。但是其主要问题之一是鲁棒性问题。由于不确定项的客观存在,实际应用中的迭代学习控制的鲁棒性问题难以解决,而滑模变结构控制却能够很好地解决鲁棒性问题。基于此,设计出将两种控制方法结合的新方法,可以更有效地提高系统的性能[6]。

普通ILC的收敛速度比较慢,如何寻找一个合适算法来加快收敛速度是ILC一个重要的研究方向。变结构控制具有响应快、对参数变化及扰动不敏感等优点,但单纯的变结构控制容易引起抖动问题,为此将模糊滑模控制算法[7]引入迭代学习控制,提出FSMILC算法,算法原理如图1所示。

由图1可以看出,模糊滑模迭代学习控制算法和其它迭代学习算法不同,这种算法是利用模糊滑模控制进行控制量的增量计算。滑模函数的输入为误差eK(t)和误差变化率e˙K(t),其中e˙K(t)如(1.1)式所示:

e˙Κ(t)=eΚ(t)-eΚ(t-1)(1.1)

滑模函数sK(t)和滑模函数变化率s˙K(t)如(1.2)式、(1.3)式所示:

sΚ(t)=ceΚ(t)+e˙Κ(t)(1.2)

s˙Κ(t)=sΚ(t)-sΚ(t-1)(1.3)

采用控制的变化量Δu作为模糊滑模控制器的输出,可使滑模控制成为无模型控制,依赖于被控对象的程度较小[5,6]。

设模糊控制器的输入为s(t)和s˙(t),它们分别是sK(t)和dsK(t)的模糊变化量,模糊控制器的输出ΔuK(t)是控制变化量Δu的模糊化变量。

被控对象的输入为:

uK+1(t)=uK(t)+ΔuK(t) (1.4)

(1.4)式中,ΔuK(t)为第K个迭代周期模糊控制器的输出,即第K个周期产生的控制变化量。uK(t)为第K个迭代周期的控制量,uK+1(t)为第K+1个迭代周期的控制量。

2 神经网络等效滑模控制器设计

迭代学习控制存在鲁棒性差的问题,由于外界不确定因素的存在,使其成为很难解决的问题。而滑模控制来说,系统如果进入了滑模状态,系统参数扰动与外部干扰对系统无作用,系统的稳定性与动态品质仅取决于滑模面及其参数,所以滑模控制的鲁棒性强、可靠性高。但滑模变结构控制本身也存在不足之处,促使其与神经网络控制相结合,以使系统在保持对摄动和外部干扰强鲁棒性的同时,尽量消除抖振的发生。从20世纪后期开始,许多专家学者就结合神经网络和滑模控制进行了很多研究工作,在诸多方面得到了非常有意义的成果[8]。

由图2可知,神经网络等效滑模迭代学习控制算法和其它迭代学习算法不同,这种算法是利用滑模的等效控制ueq(k)和神经网络输出un(k)之和作为总控制律。ueq(k)称为系统在滑动模态区内的等效控制。等效控制往往是针对确定性系统在无外加干扰情况下进行设计的。针对带有不确定性和外加干扰的系统,一般采用的控制律为等效控制加切换控制,即其中切换控制实现对不确定性和外加干扰的鲁棒控制,所设计的控制律u需要满足滑模稳定条件。在此方案中切换控制部分选用神经网络控制器。

uK(k)为第K次迭代控制被控对象的输入量,yK(k)为第K次迭代被控对象的输出量。滑模函数的输入为系统的误差eK(k)和误差变化率deK(k)。这里神经网络控制器的输入不是系统的误差eK(t)和误差变化率deK(t),而是滑模函数sK(t)和滑模函数变化率dsK(t)。神经网络的输出为uΚn(k),第K+1个迭代周期的总控制律:

uK+1(k)=uΚeq(k)+uΚn(k) (2.1)

uK+1(k)作为下一个周期被控对象的输入存放在记忆存储器中。

3 仿真实验

设对象传递函数为

G(s)=133s(s+25)(3.1)

将(3.1)式转化为状态方程为

x˙=Ax+Bu(3.2)

(3.2)式中

x=[x1x2]A=[010-25]B=[0133]

将状态方程式(3.2)转化为离散状态方程

x(k+1)=A1x(k)+B1u(k),y(k)=C1x(k)+D1(k) (3.3)

0.1sA1=[1.00000.036700.0821]B1=[0.33674.8833]C1=[10]D1=0

。期望轨迹为yd(t)=4sin(0.5t),假设系统的初始状态为零。

图3.1为期望曲线yd与第5,10,20个迭代周期的输出曲线yK之间的关系图,从图3.1中可以看出随着周期数目增加,输出值越来越趋近于期望曲线。图3.2为前30个迭代周期,每个周期内每个采样点误差的绝对值之和,从图3.2可知在第26个迭代周期中,采样点误差的绝对值和趋近于零,随着迭代次数的增加,误差和逐渐减小并趋于平稳,得到较好的跟踪效果。

将状态方程(3.2)式转化为离散状态方程

x(k+1)=A1x(k)+B1u(k),

y(k)=C1x(k)+D1(k) (3.4)

0.1sA1=[1.00000.008800.7788]B1=[0.00611.1768]C1=[10]D1=0

。期望轨迹为yd(t)=4sin(0.5t),假设系统的初始状态为零。

图3.3为期望曲线yd与第2,3,4个迭代周期的输出曲线yK之间的关系,可以看出只需要很少的周期就可以趋近于期望曲线。图3.4为前5个迭代周期,每个周期内每个采样点误差的绝对值之和,从图3.4可知在第3个迭代周期中,采样点误差的绝对值和趋近于零。可以看出,此控制方法比模糊滑模迭代学习控制有更好的跟踪效果。

4 结论

迭代学习控制为难以建模,有高精度轨迹控制要求,特别是具有重复运动特性的对象提供了很好的控制方法。本文将迭代学习控制与滑模变结构控制相结合,提高了控制器的鲁棒性,随着迭代次数的增加误差逐渐减小,验证了方法的有效性。

参考文献

[1]Gunnarsson S,Norrlof M.On the disturbance properties of high orderiterative learning control algorithms.Automatica,2006;42(11):2031—2034

[2]Ahn Hyosung,Moore K L,Chen Yangquan.Stability analysis of dis-crete-time iterative learning control systems with interval uncertainty.Automatica,2007;43(5):892—902

[3]Seshagiri S,Khalili H K.On introducing Integral action in sliding mode control.Proceeding of the41st IEEE Conference on Decision and Control,2002;2(12):1473—1478

[4]Mainali K,Panda S K,Xu J X.Repetitive position tracking perform-ance enhancement of linear ultrasonic motor with sliding mode-cum-iterative learning control.Proceedings of the IEEE International Con-ference,2004;7(6):352—357

[5]Tong S,Li H X.Fuzzy adaptive sliding-mode control for a nonlinear system.IEEE Trans F S,2003;11(3):354—60

[6]陈杨,林辉.基于神经网络的迭代学习控制参数拟合.计算机仿真,2003;20(7):62—64

迭代学习算法 篇2

目前我国油田抽油机为分布式作业, 供电线路多、成本高。同时抽油机启动时为重型负载, 这样要求电动机的功率较大, 而在运行过程中又是轻型负载, 这样就造成了电机常工作在大马拉小车的状态[1], 从而导致了抽油无效行程增加、大量能源浪费、抽油设备损耗严重、维护成本提高等诸多问题。

针对抽油机耗电量大的问题, 人们提出了“抽油机连续工作变为间歇工作的运行方式”[2,3]。由于抽油机交变负载的特点是非线性、时变、不确定的, 使得间歇过程的运行一般是在没有稳态工作点的过渡, 这样导致了间歇启停时间的不确定性, 对这样的系统, 传统控制理论和方法控制效果欠佳。为此, 在T-S模糊预测模型的基础上引人迭代学习算法, 设计了一种基于模糊预测的迭代学习控制器, 这种新的控制器不仅能抑制因参数改变引起的波动, 同时对信号的波动也能有比较好的跟踪性[4,5,6]。通过仿真表明, 该控制器比传统的PID控制具有更好的控制效果。

1 模糊预测学习控制器设计

1.1 结构设计

把预测控制的思想加入到反馈-前馈迭代学习控制算法中, 并将反馈机制加入到模糊预测迭代学习控制器中, 同时将控制分成二级, 即基本控制级和批次偏差消除级, 其中基本控制级采用的是常规的控制方法, 而偏差消除级则采用迭代学习的方法, 在迭代学习算法中加入预测迭代偏差, 保证学习的收敛性, 再由模糊预测模块得到预测迭代偏差。基于模糊预测的迭代学习控制器结构如图1所示。

1.2 基于模糊预测的迭代学习算法

在反馈-前馈迭代学习控制算法中引入模型预测控制的思想, 提出了一种基于模糊预测控制的迭代学习的新算法。

式中, uk (t) 为当前时刻迭代输入值;Gc (s) 为反馈控制器的传递函数;ek (t) 为当前输出与期望值的偏差;uf, k1 (t) 为迭代前馈项;t0, k为第k次循环的初始时间;ta为运行时间。

反馈控制器选用PI控制器, 其传递函数为:

式中, ψ、γ分别为积分时间和比例增益。

当前前馈输入项的算法变为:

式中, Γ (t) 为学习因子;τ为迭代偏差的预测时间。

为了能减少滞后, 将迭代偏差加入到式 (3) 中的当前控制输入中, 未来时刻的预测输出与给定的期望输出的差值就是该偏差。

式中, 为模糊预测 (FGP) 模块得出的未来时刻的预测输出。

控制器模糊预测模块的设计是基于T-S模糊模型, 可以逼近任意非线性系统。引入预测的思想后, 可得到P (预测时域) 步内的预测输出y赞k-1 (t+τ) (τ=1, 2, ……, P) 。

1.3 模糊预测模块

1.3.1 T-S模糊模型

该模型采用输入模糊划分的思想, 用于基于模型的控制系统的稳定性分析, T-S模糊系统一般采用输入变量的线性函数作为规则后件的多输入单输出 (MISO) T-S模糊系统;而一个MISO系统模型由多条模糊规则组成的集合来表示, 其模糊蕴含条件句为:

式中, xi为广义输入变量;m为xi数目;pji为结论参数, (j=1, 2, …, m) ;n为模糊规则总数。

第i条模糊规则的隶属度可由下式确定:

根据模糊规则的输出yi (i=1, 2, …, n) 然后对单个输出求加权平均可得到系统总输出, 其公式:

1.3.2 T-S模糊模型

控制器中的预测模型是采用T-S模糊模型, 样本集是由系统部分输入输出数据组成。

设样本为 (φj, yj) , j=1, 2, …, N

式中, φj为影响系统输出的递推向量;yj为系统的输出。

定义Zj=[φj, yj]T, 这样, 样本集可表示为:Z=[z1, z2, …, zN]

对模型规则的前后件参数进行交替辨识, 辨识步骤如下:

第1步:给出数据集Z, 初始化聚类数c=2, 初始隶属度矩阵为U0。

第2步:为了能得到隶属度矩阵U=[ui, j]C×N, 运用GK算法对样本Z进行分类, 然后将各子集中选取隶属度最大值进行聚类, 将Z分成c个聚类{Z1, Z2, …, ZN};

第3步:对聚类后的每个子集采用递推最小二乘算法, 利用式 (8) ~ (10) 可得出后件参数集θ:

式中, Pi为第i条模糊规则得出的值。

第4步:根据隶属度矩阵可得到相应输入Zj的系统输出为:

第5步:按式 (12) 计算当前系统性能指标值Sc, 如果满足Sc≤STN (STN为用户期望值) 条件, 则模型辨识过程完成;否则, 认为聚类失败, 转第6步重新进行聚类操作。

第6步:在样本集中, 按式 (13) 和隶属度矩阵U找出一个与各子集均不相似样本zn (n=1, 2, …, n) , 作为新的聚类中心vc+1。

第7步:以v1, v2, …vc, vc+1作为一个新的聚类中心, 重新计算相应初始隶属度矩阵U0。

第8步:令c=c+1, U=U0, 转向第2步。

设计中采用的基于T-S建模方法可以同时识别前后件参数, 并具有较强的辨识自适应性。

2 仿真研究

考虑到石油生产存在着非线性、不确定性等因素, 可用如下间歇过程模拟。

式中, m表示生产时间段, m=0, 1, 2, …l。

当t=10 (l+1) 时, 系统停止。

为了验证的方便, 设定系统曲线为方波信号。为了验证新控制器的效果, 先用常规的PI控制器进行试验, 取比例增益系数为2.0, 积分时间系数为1.5 s, 得到的控制效果如图2所示。然后用设计出的控制器进行仿真。取反馈控制器积分时间系数为1.0 s, 比例增益系数为1.5, 规则个数为2, T-S模糊型聚类数为2, 系统的T-S模糊预测模型为:

取τ=1, 由T-S模糊预测模型得到。

然后由式 (4) 得到l+1步的预测偏差:

在迭代学习模块中, 当运行次数K=6时, 控制效果如图3所示, 基本接近于方波信号。

由图3的仿真结果可以看出由于引入了迭代学习控制, 模糊预测学习控制器能对运行中因模型参数改变而引起的波动有较好的抑制, 与传统的PID控制相比, 模糊预测学习控制器不仅对信号的跟踪性要好而且对因参数改变引起波动具有很好的抑制效果[7,8]。

3 结论

为了达到油田抽油机节能的目的, 提出了间歇启停的控制方案。并针对抽油机间歇启停运行方案中对信号的跟随性差和由于参数改变而引起的波动抑制效果差的问题, 在模糊预测模型的基础上引入迭代学习算法, 设计了一种模糊预测学习控制器。通过仿真表明, 与传统PID控制相比, 模糊预测学习控制器算法不仅具有模糊控制的鲁棒性和动态品质好的特点, 而且对给定信号具有更好的跟踪效果, 能保证比较合理的间歇启停时间, 在油田现场测试中, 在保证采油量稳产的前提下, 设计的节能器的节电率将近30%。

参考文献

[1]李俊勇, 田作华, 钱华新.一种改进遗传算法在抽油机节能器中的应用[J].计算机仿真, 2006, 23 (9) :172-174.

[2]李敏, 何平, 孟臣.基于模糊神经网络的抽油机节能专家控制器设计[J].计算技术与自动化, 2009, 28 (4) :56-60.

[3]齐维贵, 朱学莉, 张延丽.抽油机节能的模糊神经网络控制研究[J].中国电机工程学报, 2004 (6) .

[4]黄永平, 郭凯, 金玉善.调压式抽油机节能控制器的研究[J].电子学报, 2013, 4 (1) :828-832.

[5]Yan Limen, Xu jianjun.The study on new energy saving controller for oil-pumping units in oilfield[J].ICFCC, 2010, 5 (1) :240-245.

[6]聂小涛.基于智能控制的抽油机变频节能控制系统[D].济南:山东大学, 2009.

[7]于德亮, 齐维贵, 邓盛川, 等.基于支持向量机沉没度预测的潜油泵冲次优化研究[J].中国电机工程学报, 2011 (27) .

观测迭代的插值滤波算法 篇3

虽然卡尔曼滤波器(KF)能够很好的处理线性滤波问题。然而在现实世界中我们所面对的问题大多是非线性问题。为解决非线性滤波问题,众多学者进行了大量的研究并取得了不少的成果。在众多研究成果中较为典型的算法有扩展卡尔曼滤波器(Extended Kalman filter),Unscented卡尔曼滤波(Unscented Kalman filter),基于Bayes理论的粒子滤波器(Particle filter),和基于Stirling,s内插公式的插值滤波器(DDF)。

EKF简单容易实现特点使其被大量应用到现实工程中,但EKF实现性差,估计精度差的缺点限制了其进一步的应用。PF算法虽然有着较高的跟踪精度但其庞大的计算量和粒子退化问题限制其在现实工程应用。2000年由Magnus Nrgaard等人提出的DDF算法,该算法和EKF相类似:算法简单,容易实现。但与EKF相比DDF采用Stirling插值公式进行线性化处理,避免了求解微分应算过程,在非线性程度较高的系统中DDF的跟踪精度要好于EKF。

但标准DDF算法被应用到初始化误差大或弱观测性条件下的非线性系统,常出现收敛速度慢,稳定性不足及跟踪精度低等问题。为此本文对一阶DDF算法上进行改进。在一阶DDF观测更新过程中加入迭代过程取代近似条件估计用于量测预测数据更新。仿真结果表明该算法在大噪声,及初始误差较大的情况下有着更优的跟踪精度和收敛速度。

1插值滤波器

考虑如下非线性系统∑:

其中xk∈ℜn为n×1状态向量,yk∈ℜm为m×1观测向量。wk∈ℜq为q×1过程噪声,而vk∈ℜr为r×1观测噪声。并假设噪声序列均为高斯白噪声其均值和方差为:

DDF算法和EKF十分的相似,不同的是DDF采用Stirling插值公式对系统进行线性化处理而非泰勒公式,从而避免了求解Jacobin矩阵,在状态数据更新上和EKF完全一样,只是在对协方差进行更新的时候可以采取更为简单的方法:通过更新协方差的平方Cholesky因子来完成。DDF算法如下描述:

计算平方Cholesky因子:

其中Sx为x的协方差0P的平方Cholesky因子,Sw为过程噪声w的协方差Q的平方Cholesky因子,Sv为量测噪声v的协方差R的平方Cholesky因子。

sx,p表示为Sx的第p列,相同的定义其他几个因子则有下面等式:

上述式子中h为一区间长度参数在高斯环境下一般有h=3,xk+1为预测状态向量有下述式子计算得到:

Sx-(k+1)为平方Cholesky因子由(10)进行通过Householder三角变换转换得到:

量测数据更新:

Sv(k+1)也需要进行通过Householder三角变换转换。

则量测和状态的相关矩阵为:

计算增益进行数据更新:

在对协方差更新上注意到式子(9),(10),(12),(13)及(14)之间的关系则在协方差更新中有:

所以使用协方差的平方Cholesky因子(可以由(19)通过Householder三角变换转换得到)更新来取代协方差进行更新可以简化计算。

上述即为DDF算法,详细的推导过程可以参见文献。

2迭代内插滤波器

2.1观测迭代

DDF和EKF一样,在量测预测更新上由ˆy(k|k-1)=g(ˆx(k|k-1),k)得到,这样就由于使用ˆx(k|k-1)来代替x(k)从而无法避免的引入了对观测的误差,同时对非线性量测方程进行内插公式线性化的时候也不可避免的增加了观测的误差。

为了解决上述问题,本文在观测中加入一个迭代过程来取代单纯的近似条件均值估计,用于代替x(k)的xˆk,j通过迭代过程不断的逼近x(k)减小量测预测更新过程的误差,提高算法的鲁棒性及跟踪性能。

式子中的ey,j和ex,j有如下定义

算法通过上述条件不等式来判断xˆk,j是否达到精度要求从而判断是否结束本次迭代。迭代从xˆk,0开始直至满足不等式子要求,或者达到最大迭代次数N结束迭代,进入下一时刻的估计。

2.2 IDDF算法

本算法和DDF算法的最大差别在于量测更新,本算法通过迭代环节减小了量测更新的误差具体如下:

假设系统方程为(1)则:

1.初始化算法参数:j=1,Pk,j=Pk,xˆkj,=xˆk。

2.计算平方Cholesky因子:

3.状态和协方差计算:

4.量测及相关协方差更新:

5.计算增益进行数据更新:

6.定义如下等式:

7.判断是否结束迭代:

如果j≤N下不等式成立,则使j=j+1重复上述算法过程直至不等式不成立或j>N。

8.数据更新:在上述不等式不成立

当不等式于j>N依然成立时取:

上述即为IDDF算法,要注意的是如Sx,j+1等平方Cholesky因子必须要进行Householder三角变换转换。

2.3 IDDF收敛性

假设

由于Pk,j+1,Pk-,j及Pkv,jv为正定,则那么根据(36)式将有

在j=1,2,L<∞下成立。又因为Pk,j+1,Pk-,j的每个元素均有界,所以:

成立。则根据(36),(48)及(49)可以得到:

成立。与(47)矛盾。所以可知假设(47)不成立(50)成立。

假设κk,j→0当j>N时成立,则从(36)及(38)可以知道有:

成立,即说明随着迭代过程,算法是收敛的。和标准DDF算法比较,该算法通过修正量测提高对状态估计的精度,同时在初始化值和最优值相距较远时,算法自动校正状态及协方差矩阵以加快收敛速度。

由于Pk,j+1,Pk-,j及Pkv,jv为正定,则那么根据(36)式将有:

在j=1,2,L<∞下成立。又因为Pk,j+1,Pk-,j的每个元素均有界,所以:

成立。则根据(36),(48)及(49)可以得到:

成立。与(47)矛盾。所以可知假设(47)不成立(50)成立。

假设κk,j→0当j>N时成立,则从(36)及(38)可以知道有:

成立,即说明随着迭代过程,算法是收敛的。和标准DDF算法比较,该算法通过修正量测提高对状态估计的精度,同时在初始化值和最优值相距较远时,算法自动校正状态及协方差矩阵以加快收敛速度。

3仿真实验

假设如下非线性模型:

在上述模型中wk为高斯噪声其方差为Qk=diag⎡⎣0.220.32⎤⎦,时间间隔T=0.2s。xk中的变量分别表示为x方向的位移和速度,y方向的位移和速度。

其中量测包括方向角θk及方向角变化率θ&k,量测方程如下:

其中rk=xk2+yk2,nθk及nθ&k为独立高斯噪声其方差为Rk=diag⎡⎣0.120.82⎤⎦,对上述系统进行M=150独立实验仿真。

均方根误差为:

由下述仿真实验数据可以看出IDDF算法在精度和稳定性上的表现都要比DDF和EKF优秀。

4结论

DDF算法在应对非线性程度高的滤波问题上的不仅在精度上而且在稳定性都要优于EKF。在DDF基础上的改进算法IDDF其精度,稳定性则要好于DDF。IDDF虽然提高了算法的精度及稳定性,但其增加的迭代过程,将加大算法的计算负担。同时对DDF这中改进算法也只适用于高斯噪声的环境,在面对非高斯噪声环境也是无能为力。

摘要:针对非线性跟踪系统中由于弱观测性,大的初始化误差使的系统出现不稳定、跟踪收敛速度慢,鲁棒性能差的问题,本文在内插公式滤波器的基础上提出了基于观测迭代插值滤波器。该算法在插值滤波器基础上,利用观测迭代过程来取代单纯的近似条件估计进行预测,减小观测函数线性化所带来的误差影响具有更精确的状态和协方差估计性能。仿真结果表明该算法在大噪声和大初始化误差条件下拥有比传统算法更高的跟踪精度,和更快的收敛速度。

关键词:非线性滤波,插值滤波器,迭代插值滤波器

参考文献

[1]Kotecha,J.H,Djuric,P.M,Gaussian Particle Filtering[J].IEEE Transactions on Signal Processing.2003.

[2]Julier S J,Uhlmann J K.A New Method for The Nonlinear Transformation of Means and Covariances in Filters and Estimators[J].IEEE Transactions on Automatic Control,2000.

[3]Julier S J,Uhlmann J K.Unscented Filtering and Nonlinear Estimation[J].Proceedings of the IEEE.2004.

[4]袁泽建,郑南宁,贾新春.高斯-厄米特粒子滤波器[J].电子学报.2003.

[5]Ngarrd M,Poulsen N M,Ravn O.New Developments in State Estimation for Nonlinear System[J].Automatica.2000.

迭代学习算法 篇4

1 相互迭代的优化设计

1.1 Logistic映射混沌序列优化

Logistic模型一开始是表达昆虫种群增长量的模型,也叫做虫口模型。下面设计针对Logistic混沌序列进行优化,Logistic模型的动力学过程如下:

式中的参数较为经典的取值是σ=10,r=28,b=8 3。当σ,b仍取值为10和8 3,此时如果r>24.75,那么系统处于混沌状态。由于系统输出的实值混沌序列存在如下缺点:x,y,z的值域各不相同,不利于批处理;x,y,z局部取值呈现单调性,易受线性预测攻击;x,y,z自相关特性非理想的δ函数,互相关特性非理想的零特性,难以保证不可预测性,而且系统多输出特性也得不到充分利用。为了尽可能地避免这些缺陷,提出了一种改进方法对混沌序列做优化,设计了一个模型,方程如下所示:

式中:x′,y′,z′是经过优化后的序列;m是控制参数,能够起到提升序列取值的不规则性;round()是最接近整数函数,能够实现混沌优化序列。

1.2 优化算法过程

通过式(2)可以得到经过优化处理的3个混沌序列x′,y′,z′,形成3个置乱矩阵,利用其分别对RGB彩色图像的3个分量做置乱加密处理。通过优化后的混沌序列可以形成对应的置乱矩阵PM×N。该置乱矩阵中的任意一个元素Pij都在[1,2,…,M×N]的范围里,如果有Pij=Pkl,且只有满足i=k,j=1时才成立。如果M=4,N=4时,那么P就是4×4的矩阵,通过优化混沌序列从而形成16个实数值的混沌序列,把这些序列按照从大到小进行排序,用1~16做标识,那么就能够得到序列:4,6,7,3,1,2,8,15,10,12,14,13,16,11,9,5。以行排列为4×4的置乱矩阵P4×4为:

通过使用非线性置乱的方法,把图像IM×N中子元素和对应的PM×N中的元素做置乱处理,这里设计的详细过程如下:

算法程序的过程如下:

先定义一个寄存器变量ch。

再进行加密处理。

2 数据加密的安全性的分析

一个较好的加密算法,不仅要其安全可靠性能高,而且要其运行的速率快。在前面的叙述中,已经知晓混沌方程进行迭代是能够生成伪随机数列的。密钥循环一次大概能够加密100 kb视频数据信息。又因为由于周期很长,并且还是伪随机数列,所以在安全方面的性能得到了较好的保障。另外,鉴别时效性主要是取决于验证程序能不能较为快速的加密。在进行验证时,选取了约1 GB大小的各种不同类型的视频文件。凭借较大信息量的视频文件能够很明确地显示出程序加密地速度的快慢。先对一个710 MB扩展名为“dvd.mp4”以及一个970 MB扩展名为“soldier.rmvb”视频文件进行测试,其测试所得数据结果见图1。

在做验证加密时会生成一些文件。其中,文件hundun1.mp4与hundun2.rmvb都无法打开,然而文件decode1.mp4与decode2.rmvb能够打开。经验证可以知道解密之后的视频和最初的视频是一样的。另外,还可知加密以及解密所需要的时间不超过1 min。该时间是把生成密钥流以及加密视频的所需时间计算在内的,其速率是超过10 MB/s。由此可知,利用混沌加密的算法的适用性强。该方法不仅能够确保安全,同时具有较快的加密速率。假如破解视频所耗的成本比视频自身所拥有的价值还要大,于是进行破解就显得多余。虽然对于安全要求非常高的场合是不适用的,然而在人们日常生活若需加密的视频文件时,使用该方法是较好的方法。加密系统的关键性能是自身抵抗外界攻击的能力,若抵抗能力越强,说明该系统安全系数越高。破解人员对加密系统的攻击实质就是此系统密钥流进行的攻击,因此混沌Logistic映射的抵抗攻击的性能实际上就是等同于整个加密系统抵抗攻击能力。如果N>μ,μ=3.569 945 6时,Logistic映射处于混沌状态,当周期N无限接近于∞时,如果攻击人员采用穷举法的方式做蛮力攻击,那么要进行2N次,所以考虑到实际情况以及成本的因素,都不可能顺利完成的。在实际应用里,不可能满足精度无穷大的要求,如果在没有采用参数μ动态累加产生器的情况下,序列周期是N′,此时有攻击人员采取穷举法做蛮力攻击,那么就得做N′次运行。然而,在采用参数μ动态累加产生器的情况下,序列周期是22′rN,此时有攻击人员采取穷举法做蛮力攻击,那么得做2′2rN次运行。加密算法,关键的优势功能是在整体的加密结构进行了优化处理、科学的安排及长度为128的密钥。如果进行强力攻击效果最突出,则以位方式得到密钥得进行2128次加密运算,就会耗费1012年的时间。面对IDEA采取强力的方式进行攻击,那么生成解密子密钥的速度远远不及加密子密钥速度。可以看出,解密需要耗费的时间会很多。综上所述,采用混沌利用混沌算法生成高性能的密钥,并且利用IDEA优质性能以及高质量的加密体系,确保了整个加密系统具备了很高的安全性能。

3 图像应用数据的加密实验

3.1 实验设计

本文图像采用图2(a)所示,把分量图合成为彩色图像后的加密图像见图2(b)。这里迭代过程应用了1 000次。

3.2 保密性测试优势

为了验证算法的保密性性优势,图3进行如下实验:(a)为参数r的偏差为10-10次方时的错误解密图像;(b)为初值xo的偏差为10-10次方时的错误解密图像。从算法改进结果来看图像已经发生了视觉方面的色彩改变,显然图像必将梗难破译,有理论分析可知对图像加密的需要进行3MN次操作,显然这一结果验证了算法保密性方面的优势。

3.3 抗攻击测试

为了分析图像的抗抗击性,图4分别进行如下实验:(a)加密后的图片经过压缩改进的解密图像;(b)则采用高斯噪声后的解密图像,从图片视觉表现来看,算法显然实现了解密图像效果保持,这验证了算法有较强抗攻击能力。

4 算法对比

空域复合加密算法与比特移位加密算法的比较如表1所示。

由表1可知,与改进的混沌加密算法对照,本文算法有主要的三个优点:第一,在有限精度下密钥空间从1016≈253扩大到1048≈2158,很大程度上提高了抗密钥穷举攻击的能力;第二,一次能加密多个比特,并且比特移位操作速度远远大于比特异或操作,所以该算法加密速度比空域复合算法的速度快。第三,因为xi的随机性,在加密的流程中破坏了原图像像素的独立性,使得破译的难度加大。

5 结语

设计过程中,采用复合混沌方程是形成密钥流的方式,由于混沌方程能够因为反复迭代生成类似的随机数列,把其数列当成是加密程序的密钥与加密算法的要求是相当吻合。若密钥完全是随机的,则想破译密很难实现。因此,密钥随机性越强,加密算法就越安全。设计加密时,直接使用异或方式加密,该方法的加密速率是很高的。另外,还要定义一个寄存器变量,采用此变量存取加密时形成的字符,同时也提升了加密的速度。最后,测试程序执行所需花费的时间,也验证了此程序能够快速加密的功能。

摘要:采用了Logistic和Henon的相互迭代的复合混沌的模型,通过混沌序列的优化和置乱算法完成混沌加密的设计。算法改进结果表明:其保证了安全性的同时实现了较快的加密速度;解密图像效果发现算法有很强的抗攻击能力。通过和传统的空域复合加密算法进行对比得出改进算法在抗密钥穷举攻击的能力、加密速度比、破译的难度等方面具有优势。

基于优化迭代的博弈树算法 篇5

机器博弈是人工智能研究的一个重要方面, 人类对机器博弈的研究衍生了大量的研究成果, 这些成果对更广泛的领域产生了重要影响。

从1990年末, 诺曼·施瓦茨科普夫利用美军的超级计算机对“沙漠风暴”行动进行战略模拟到1997年IBM公司的超级计算机“深蓝”与当时的国际象棋世界冠军卡斯帕罗夫进行了一场大肆渲染的比赛, 基于博弈树搜索技术的机器博弈已经取得了长足的发展, 并且形成了一整套提高搜索效率的办法。而且, 由于博弈技术衍生而来的多种应用, 在航空调度、天气预报、资源勘探、军事博弈、金融 (经济) 调控等领域, 也取得了大量引人瞩目的成果。

“二人零和、全信息、非偶然”是博弈中最简单的一种情况, 但是通过对它的研究仍然可以取得很多有用的成果, 并且在复杂情况下, 对原有的成果进行适当的变换, 就能应用于复杂的形式。当今世界上的主要机器博弈技术包括以下几种:基于α-β剪枝的极小窗口搜索、历史启发规则、置换表技术和基于多次搜索的迭代算法。它们各有优缺点, 并且存在着一定的互补作用。

文章将对各种技术进行细致的分析, 然后利用它们之间相互补充的关系, 提出一种改进的算法, 并且通过具体的实验数据说明改进的算法确实提高了搜索效率。

1 传统搜索算法分析

在基础的α-β算法中, 存在着四个主要的问题。第一, 算法为了保证分析的节点值落在估计的范围内, 采取了全窗口搜索的策略——一般在区间 (-∞, +∞) 进行, 这样的策略使得区间的收敛速度较慢, 在极端情况下和极大极小算法的时间复杂度相同;第二, 研究发现α-β算法的效果对于节点的排列相当敏感, 在节点排列顺序良好的情况下, 算法的效率可以大大优于节点排列不好时的情况, 但是基础的α-β算法却没有提供任何意义上的排序手段去改善分析节点前, 搜索树的节点排列顺序;第三, α-β算法是基于递归模式完成的, 但是在算法分析的书中通过分析, 确定简单的递归模式会存在致命的问题, 导致同一节点的重复计算, 降低了算法的效率;第四, 博弈事件本身存在着一定的特点:在不同阶段, 局面的复杂性会存在明显的变化 (一般情况下随着时间的推移局面将越来越简单) ;这样在相同的硬件条件和相同的时间开销下, 在简单局面下就可以分析更多的层次来得到更加好的行动, 但是基础的α-β算法却没有考虑到这些, 仍然按照指定的深度进行搜索, 从而不能充分利用硬件资源。

1.1 极小窗口搜索

为了使得算法一开始就在一个较小的窗口内进行收敛, 存在着两个主要的算法:渴望搜索和极小窗口搜索。渴望搜索的基本思想是:在指定深度为n的情况下, 进行两次搜索。第一次在全窗口模式下计算深度为n-1的博弈树, 并且将得到的最佳步骤值X作为n层博弈树最佳步骤值的估计。然后在X两边取一个小窗口 (X-window, X+window) 进行计算。极小窗口搜索则是基于如下假设:假定第一个节点是最佳的行动, 其后继则次之, 直到另外一个节点被证明是最佳的。在搜索时利用极小窗口 (v, v+1) 进行, 这样可以大大提高搜索中剪枝的效率。极小窗口搜索在一般情况下是优于渴望搜索的, 其原因有两点:极小搜索是基于本层的节点, 这样它不会像渴望搜索那样在不同层次最优解值有巨大变化的情况下, 效率下降 (水平效应) ;其二极小搜索是在 (v, v+1) 中进行的, 它不需要像渴望搜索一样估计具体的窗口大小 (因为窗口的大小在渴望搜索中是很容易受到估值函数的影响的, 而搜索的命中几率却又依赖窗口的大小) 。根据基于象棋模型的研究发现, 在估值函数一样的情况下, 极小窗口搜索比一般的α-β算法效率提高了很多, 就是和渴望搜索相比也是占优势的。进一步测试发现极小窗口搜索在局面动荡情况下比渴望搜索能体现出更好的性能, 这是因为动荡的局面下, 水平效应会更加明显 (所谓动荡的局面就是类似在棋类中连续交换子力的情况) 。所以在一般的博弈算法中, 极小窗口搜索使用频率是高于渴望搜索的。

但是极小窗口存在的问题也是显而易见的:当节点的顺序不好的时候, 它的收敛速度会受到很大的影响 (这是α-β算法的一个特性) 。造成这个结果的原因是因为搜索中没有存储节点的历史信息, 不能在搜索之前对节点进行排序, 帮助搜索的进行。

1.2 历史启发搜索

上面指出, 研究发现α-β算法的收敛效率对于节点的排列相当敏感, 节点排列顺序的优劣直接影响α-β算法的剪枝效率。一个直接的说明就是:当测试棋类活动中对称点的相同行动时 (比如象棋中用左右两个炮分别使用“当头炮”作为开局) , α-β算法的效果就会有明显的差异。根据Knuth和Moore所做的研究表明, 在节点最理想的情况下搜索的节点数目约是最不理想情况下的平方根的2倍左右。所以在搜索之前能够对节点进行排序, 然后再进行搜索, 对剪枝时的收敛是有很大帮助的。历史启发规则就是为了在搜索前根据其他子树搜索的信息, 排列现有的节点。J·Schaeffer研究发现, 在α-β算法中对一个好的行动进行如下的定义:

· 由其产生的节点本身引发了剪枝

· 由其产生的节点是其兄弟节点中最佳者

然后根据节点所在层次给予这样的行动一定的得分 (具体的得分J·Schaeffer认为应该是2depth——depth是节点和叶子节点的距离) , 在搜索其他子树时, 按照行动的优劣重新排列所产生的节点, 就能够保证剪枝算法的高效进行。在实际环境的测试中, 数据证明利用了历史启发的搜索, 在相同博弈树中所花的时间比单纯的α-β算法随着深度增加带来指数级的减少, 从而也更加证明了节点的排列对剪枝效果是有很大影响的。

但是历史启发搜索有两个小的问题:第一, 它的历史仅仅局限于一次搜索, 不能从以前的搜索中带来启发, 所以在最上层的节点是没有历史信息可以用的。需要注意的是在博弈中, 最上层的节点所代表的行动才是真正可以实施的行动, 所以让最上层节点也有相应的历史信息是能够更好地提高剪枝效率的。第二, 对重复局面的多次分析。由于一个好的行动在不同子树中产生的节点都可能是其所在子树的最佳行动, 所以历史启发搜索会多次去分析这个节点, 并且调用其相应的估值函数。在估值函数简单或者高效的情况下, 问题不那么明显;但是, 当估值函数复杂时情况就会变得糟糕。

1.3 置换表

在基础的α-β算法存在的第三个问题是由于递归方法引起的。这是因为递归有时会有一个致命的弱点, 那就是最简单的直接递归实现, 会随着层次的增加带来时间指数级别的增长。在斐波纳契数的简单递归实现中, 就会有这样的问题。

程序1 斐波纳契数 (递归实现)

从上面的代码可以得知, 之所以时间会按照指数级别增加, 是因为在计算n时需要计算n-1和n-2, 在计算n-1时又要计算n-2, 同一个值可能在不同子树中被计算很多次。所以, 如果在搜索中记录分析过的局面, 在不同子树碰到同样局面时, 不再分析而是直接用存储的结果, 将会有利于搜索速度的上升, 而且随着搜索深度的上升, 命中率也将提高。置换表就是在这样的思想中加入的。置换表运用了哈希技术, 实现了节点的高效存储和读取, 在置换表的作用下, α-β算法的效率得到明显提升, 而且深度越大, 效果越明显 (这是因为随着搜索层次的增加, 命中概率也会增加的原因) 。

置换表算法也存在两个问题:1) 不能进行小窗口剪枝, 因为这个算法是基于基础α-β算法的, 搜索范围是全窗口。2) 没有运用历史启发, 它只是简单地记录分析过的局面, 而没有给予它相应的得分信息。

1.4 迭代深化

在硬件允许的条件下, 计算的层次越深考虑到的情况也就会越多。迭代深化就是一个不断求精的过程, 由从低到高的顺序进行对同一局面一系列的分析而构成, 同时通过计算搜索用的总时间, 来决定是否继续搜索 (这个时间依赖于具体博弈事件) 。这样做的好处是显而易见的:第一, 如刚才的分析所说, 博弈事件在不同阶段内复杂度会有较大的差异, 在复杂阶段由于考虑的因素较多, 所以搜索深度在较浅的情况下, 时间花费已经很高;但是在局势简单的情况下, 分析相同的层次时间花费就会下降。在局势简单时, 利用迭代可以在相同的时间内分析更多的层次, 甚至可以发现隐藏的动荡局面。第二, 第n-1层的结果可以对第n层的结果进行历史启发, 在一定程度上加快收敛的速度。通过测试迭代算法, 发现迭代算法不但在一层的搜索中优于α-β算法, 而且因为在简单局势下可以分析更多的情况, 在分析精度上也超过了基础的α-β算法。

但是迭代算法也存在着明显的缺点:最大问题在于, 在迭代中搜索的次数过于密集, 从深度1一直分析到深度n, 期间存在着大量的重复搜索;同时由于没有使用节点排序等技术, 在确定的层次中搜索效率低于上面的三种技术。

2 算法改善

2.1 算法建模

上面的四种技术各有各的优点, 但同时也存在着缺点。根据查看各自的特点, 合理整合它们, 是可以得到更加优秀的搜索算法的。首先分析一下每个技术对算法改善的程度。

从表1中可以清楚地看到, 历史启发搜索在同样的情况下对搜索效率的提升是最高的;极小窗口也有很好的效果, 而且极小窗口搜索可以解决历史启发收敛速度慢的特点 (这里指α-β剪枝和极小窗口剪枝的区别) , 所以将原来使用基础α-β的历史启发搜索代替为使用极小窗口的历史启发搜索会取得更好的效果。同时, 置换表也可以加入其中, 记录分析过的局面, 加快节点的分析速度。所以算法的基本思想是以极小窗口搜索算法为基础, 然后在其中加入历史启发的思想来进行节点排列, 提高收敛的速度, 同时应用置换表技术, 避免相同局面节点的重复分析。接下来, 用迭代深化多次调用这样的组合, 从而取得令人满意的效果。加入迭代算法的理由是:对于最上层的节点, 不论是历史启发还是置换表都不可能提供有利于最上层节点分析的内容。加入迭代算法后这个问题就能得到很好的解决。首先, 迭代可以产生浅层分析的最佳步骤, 作为深层分析中最上层节点排序的依据;其次, 迭代算法引起的置换表信息变化, 也可以被深层的分析应用;最后, 由于极小窗口搜索就是基于第一个节点是最佳节点的假设, 所以它能够提升极小窗口搜索算法的效率。

这个思想虽然很好, 但是仍然没有最大程度地利用迭代带来的好处。因为既然可以返回最优节点的结果, 为什么就不能返回次优节点的结果或者前面n个较好节点的结果呢?所以, 在迭代搜索前加入了一个节点数组记录, 用于记录所有第一层节点在上一次迭代中的得分可以起到返回多个节点分析值的结果。需要指出的是, 这个和历史启发算法中的得分含义是不同的。历史启发中的得分只可能是0或者正整数, 但是在用于记录第一层节点中节点得分的值可能是正、负或者零。它们的含义是:正, 说明在浅层的搜索中, 这样的行动能够带来对本方有利的局面;负, 说明在浅层的搜索中, 这样的行动能够带来对本方不利的局面;零, 说明这样的行动在上层中或者是双方均衡的局面, 或者是因为剪枝而没有分析的局面。在迭代n层时, n-1层的记录就能被用于排列第一层的节点, 从而在前几个节点中就能包含着最优的行动, 导致整棵博弈树迅速收敛。图1描述了加入了第一层节点全部排列的思想后程序的流程图。

2.2 算法分析

在完成后, 测试阶段发现了上述算法的两个问题:第一, 在和没有加入迭代深化思想的算法比较, 速度没有明显的优势, 而且在搜索深度较浅的情况下甚至不如原来的算法;第二, 算法在局面平稳阶段效果较好, 但是当局面不稳定时就会变差。

经过比较发现, 第一个问题是因为迭代太密带来的。跟踪发现, 第n层和第n-1层的时间比约为10∶1到10∶3, 虽然第n-1层的搜索结果对于第n层有良好的启发作用, 但是因为这10%-30%的额外开销, 抵消了原有的优势!进一步研究发现, 算法在平稳阶段和动荡阶段的差别是由于水平效应引起的 (在平稳阶段, 相邻深度的估计值相差较小, 到了动荡阶段, 相邻深度的估计值相差就会变大) 。所以迭代中不使用原来的从n-1到n的策略, 而是使用从n-2到n的策略, 这样可以大大减少第n-1层带来的开销, 同时一定程度上防止水平效应带来的问题 (因为当层次相差2时, 最后的行动方是相同的) 。综上所述改善后的算法有如下特点:算法继承了极小窗口、历史启发、置换表和迭代搜索的优点, 同时也弥补了原来存在的不足, 更加重要的是算法消耗了一个很小的内存用来记录博弈树第一层节点的优劣值, 就能对原来不能改善的搜索树第一层节点进行有效排序, 加快了搜索效率。

2.3 实验结果

在完成了上述的分析和调试后, 在基于PIII 866MHZ处理器, 196MB RAM, 操作系统为Microsoft Windows2000的环境下测试了这个算法的效率 (模型是象棋程序) , 从表2可以看出, 它不仅比原来的算法有了明显的改善, 就是比它们当中几个的联合也要强, 而且随着深度的增大, 效果更加明显, 这正是第一层节点排序和减少迭代次数带来的好处。

3 结 语

论文中提出的基于优化迭代的博弈树算法不但综合了原有算法的优点, 并且通过适当的加强对博弈效率和博弈精度也有所加强, 实验数据可以证明改善后的算法确实起到了良好的效果。

摘要:博弈是诸如下棋、打牌、战争等一类竞争性智能活动的通称。通过对机器博弈的研究衍生了大量实用的研究成果。分析当今国际上主流的加快博弈树搜索效率的算法, 根据它们的优缺点建立一种基于优化迭代的新算法, 并且通过实验数据证明算法的优势。

关键词:α-β剪枝,历史启发,迭代深化,极小窗口搜索,置换表

参考文献

[1]George F Luger.Artificial Intelligence:Structures and Strategies forComplex Problem Solving.Fifth Edition.机械工业出版社, 2005.

[2]NilsJ.Nilsson.Artificial Intelligence:A new Synthesis.机械工业出版社, 2000.

[3]Rivest.R.L Game Tree Searching by MinMax Approximation.Aritfi-cial Intelligence, 1998, 34 (1) .

[4]Jonathan Schaeffer.The history heuristic and alpha-beta search en-hancements in practice.IEEE Transactions on Pattern Analysis andMachine Intelligence, November 1989, pami-11 (1) :1203-1212.

[5]Ken Auer, Erik Meade, Gareth Reeves.The Rules of the Game.XP/Ag-ile Universe, 2003:35-42.

[6]Robert Sedgewick.Algorithms in C++Parts 1-4 Fundamentals, DataStructures, Sorting, Searching.中国电力出版社, 2004.

[7]Kishimoto A, Schaeffer J.Distributed Game-Tree Search using Transpo-sition Table Driven Work Scheduling.Proceedings of the 2002 Interna-tional Conference on Parallel Processing (31st ICPP 02) , Univ.of To-ronto, August 2002

渡河问题的矩阵表示与迭代算法 篇6

1 岸态矩阵及其构成

提出的岸态矩阵,是用于表征问题求解过程中任一时刻处于河流两岸的人员组合状态的。设:某一时刻滞留于河左岸的传教士和食人族的人数分别为xy,同一时刻位于河右岸的传教士和食人族人数分别为x′和y′;显然这里的xyx′、y′都应为大等于零的整数。于是可以构造如下的岸态矩阵Sk

Sk=(xyxy),k=1,2,,Κ(1)

式(1)中第一行为河流左岸的人员组合状态向量(x,y),第二行为同一时刻河右岸的人员组合状态向量(x′,y′);而矩阵的第一列为传教士在河流左右两岸的分布情况,第二列是此时食人族在左右两岸的分布。K为从初始状态S0达到目标状态G=SK所需的总迭代次数,亦即小船的摆渡次数,且K必为奇数。为满足人员组合的约束条件,即任一时刻在任何场所都不得出现食人族多于传教士人数的危险情况,则对于第一行有

{x=00ymx00yxm(2)

同样地,对于第二行的右岸人员组合也应符合这一约束

{x=00ymx00yxm(3)

岸态矩阵的列向量则应满足

{x+x=my+y=m(4)

那么,开始摆渡之前的初始岸态矩阵就是

S0=(mm00)(5)

完成摆渡任务时的目标岸态矩阵应为

G=SΚ(00mm)

(6)

在此前的讨论中曾经用二维坐标系中的点来表示河流左岸或者右岸的人员组合状态[2],即只能反映某一时刻单侧河岸的状态,这样在采用图解法求解时由于已经预先划出了非可行点的“禁区”,一般不会发生在此岸满足约束而在彼岸不满足约束的错误。但是在采用迭代计算法求解时,就要考虑在构成状态矩阵时绝对避免这类顾此失彼的错误。为此,文中将任一时刻左右两岸的人员组合状态合并于一个岸态矩阵之中;这样只要在每经过一次迭代(亦即一次摆渡)来构成新的岸态矩阵时,通过组合约束式(2)、式(3)的检验即可。通过此项检验的即为合法操作,就可转入下一轮迭代;否则即为非法操作,需要回到本次迭代的出发点,并寻求新的摆渡算子,直到获得合法的迭代结果,即新的岸态矩阵,才算完成了此次迭代,再继续转入下一次迭代,……,经过K次后获得整个解路径。

2 迭代式与摆渡算子设第k次迭代的公式为

Sk=Sk-1+(-1)kΔSk=Sk-1±ΔSk,k=1,2,…,K (7)

这里定义摆渡算子为

ΔSk=(uv-u-v)(8)

式(8)中,第一行的u和v分别为某次摆渡中小船上的传教士和食人族的人数;于是关于小船运载能力n的约束条件即可表示为

{u=00vnu00vu(9)

0<u+vn (10)

算子的第二行之所以设置为(-u-v),正是为了保证在每次摆渡中,该次迭代所导致的在此岸增加的人数,始终与彼岸减少的人数是对应相等的,也就使得迭代计算具有自检错功能,以保证求解过程的正确进展,这在算法上是易于实现的。

由常识可知,在总共K次的摆渡中,凡次序k为奇数的迭代都对应着从左岸向右岸执行人员输送任务的正行程,即算子前面的符号(-1)k=-1;而次序k为偶数的算子的符号对应于由右岸返回左岸的回程,即(-1)k=1。迭代式的运算规则与普通的矩阵加减运算法则是相同的,其差异仅仅是:为简化书写格式而将K次迭代运算连式写出,于是把迭代式(7)中的等号“=”改用箭头“→”,用于仅表示此次运算的结果。亦即将前后相邻的两次迭代计算Sk-1+(-1)kΔSkSkSk+(-1)k+1ΔSk+1→Sk+1连写成Sk-1+(-1)kΔSkSk+(-1)k+1ΔSk+1→Sk+1的形式,以此类推。于是,全部迭代过程就可表示为

S0=(mm00)-(u1v1-u1-v1)(m-u1m-v1u1v1)+(u2v2-u2-v2)(xΚ-1yΚ-1xΚ-1yΚ-1)-(uΚvΚ-uΚ-vΚ)(00mm)=G(11)

3 运载能力n的取值范围

在前篇《渡河问题的图解分析》中,曾就运载能力n的影响及取值作了初步说明;本文给出的矩阵表示和算法,为对n作较深入的讨论提供了方便。

3.1 n值上限(nmax)

首先,在m(实际渡河任务为2m)不变的条件下,显然运载能力n越大,则任务就越是简单,完成摆渡所需的总次数K就越小。故n 不能过大,亦即K不能太小,例如K=3就意味着小船在一个往返航行后即已趋于完成摆渡任务,否则就失去了智力训练或测试的意义,故在编拟此类题目时n应有一个上限。易于推证:当n=m时,不论m为何值,总能够在K=5步内完成摆渡任务,求解路径如式(12);为此文中建议取n的上限为nmax=m

S0=(mm00)=(nn00)-(0n0-n)(n00n)+(010-1)(n10n-1)-(n0-n0)(01nn-1)+(010-1)(02nn-2)-(020-2)(00nn)=(00mm)=G(12)

图1~图4分别给出了m=n=3、m=n=4、m=n=5及m=n=6时的解路径。图中,实线箭头表示从左岸驶向右岸的正行程,虚线箭头表示由右岸返回左岸的回程;S0为摆渡开始前的初始河岸状态,G为完成摆渡任务的最终目标岸态;对角线上下的三角形网格部分是非可行点区域,是为状态坐标迁移时不得停留的“禁区”即违反题目约束条件的情况。

具体地,可将图1(a)的解路径记为

S0=(3300)-(030-3)(3003)+(010-1)(3102)-(32-30)(0132)+(010-1)(0231)-(020-2)(0033)=G(13)

而图1(b)则为相同情况下的另一解路径

S0=(3300)-(11-1-1)(2211)+(10-10)(3101)-(30-30)(0231)+(010-1)(0330)-(030-3)(0033)=G(14)

图2(a)与图2(b)也是一题多解的例子,即在相同情况下的不同的解路径,图2(a)可用数式表示为

S0=(4400)-(22-2-2)(2222)+(11-1-1)(3311)-(22-2-2)(1133)+(11-1-1)(2222)-(22-2-2)(0044)=G(15)

图2(b)可表示为

S0=(4400)-(040-4)(4004)+(010-1)(4103)-(40-40)(0143)+(010-1)(0242)-(020-2)(0044)=G(16)

3.2 n值的下限

其次,再来讨论n 值的下限nmin。由常识可知:(1)小船运载能力n越小,在同样的摆渡任务m的场合,所需的摆渡次数K 就越多,问题求解就愈加复杂,反之亦然;(2)小船的运载能力至少应有 n≥2,才可能使得小船在首次从左岸摆渡到右岸后返回到左岸来,以使摆渡能够有效地继续进行下去;当n<2时每个往返航程的实际渡河人数为零,即渡河任务永远不可能完成,则题目无解;在编拟题目时应对此加以注意。

应用图解法进行试探,可以得到如表1的若干使问题有解的nmin值。

对表1作如下解释,如图5~图13所示:

(1)对于m=2,如图5所示和m=3,如图6所示,有nmin=2,这是符合n≥2 的常识的。

(2)对于m=4,假定也取n=2、并应用图解法求解,如图7所示。当在第6步到达了点(3,3)以后,则不论怎样选择路径,都会落到禁区内的点上;故初步确定对应于m=4的最小n值为3;再由图8所示m=4、n=3的一个解路径,即可确定:m=4时=3。

(3)对于m=5,先初步推断nmin≥3,进而用图解法,如图9所示的解路径确认了nmin=3。

类似于图7所示,在图10中表示了m=6、n=3时题目无解的情况,因其在第6步(k=6)之后,无论怎样选择求解路线,都不能跨越禁区;故与m=6对应的最小n可暂取为4;再用图解法,如图11所示可对m=6、nmin=4的推断予以确认。

(4)由表1可知,当m≥6 时总有nmin=4,对此说明如下,如图12,m=7、nmin=4:当应用图解法由距离原点最远的始点S0(m,m)出发,假定始终沿着45°对角线方向向坐标原点O(0,0)——亦即目标状态点G逼近,则每个正行程最多可渡过n=4人,而随后的回程则向左岸返回2人,这就意味着每一个往返行程实际向右岸输送了2人。若所需总的摆渡次数为K,则除去最后一次摆渡的单行程之外,此前共有(K-1)/2个往返行程,共可渡过2×(K-1)/2=(K-1)人;这时若左岸的滞留人数为:2m-(K-1)=4,亦即状态坐标点为对角线上的点(2,2),则可在最后的第K次完成任务。易于推知:与第K 次紧邻的第K-1次摆渡的回程只可能停留在状态坐标点(2,2)上,若是返回在坐标点(1,1)上,则说明此前的第K-2次是落在了原点(0,0)上,那么就已经完成了全部摆渡任务而无需返回了,这与总摆渡次数为K的假设相矛盾。

由此知,在m≥6、n=4的场合下所需的总摆渡次数K可由2m-(K-1)=4 得到

K=2m-3 (17)

在用图解法来寻求由始点S0→目标G的解路径时,特规定了搜索始终是沿着对角线方向作往返摆渡,这仅是为方便证明:当m≥6 时若取nmin=4,则有K=2m-3,亦即总有一个有限的、非零正整数解K是存在的。但是这并不意味着在m≥6、n=4的场合,所有的解路径必须是沿着对角线方向而往返的,图13即为m=6、n=4且K=9,即已知条件mn及解路径步数K与图11完全相同、而解路径的方向却并不沿着对角线方向的另一个解。如果从追求最高的运载效率的角度,来比较图11与图13的求解方案之优劣,显然图13的方案要优于图11的方案。原因是:在图13的回程中只有一次(k=4)是用2人把小船送回左岸的,即其中只包含了1人次的冗余;而图11的求解方案则在共4次的回程中各有一人次的冗余,总的冗余为4人次,当然所包含的无效消耗必定大于图13的求解方案。这种一题多解方案的比较,对于那些运载效率重要、而运载成本较高的工程问题是有着实际意义。

4 结束语

渡河问题在规模较小的情况下,求解较为简单,一般无需编程计算。但若将其应用于规划、管理等工程领域,则随着题目规模的增大其求解的难度便会增大;加之对于重大工程问题常需对多个方案进行比较选优,则计算更为复杂,还可能涉及智能运算;故应用计算机进行处理是必然选择。这就需要构建适合于这一潜在需求的数学表达形式及其算法。文中正是基于此,尝试用岸态矩阵来表征渡河问题求解过程中同一时刻河流两岸上人员的组合状态,并以小船上的人员组合作为摆渡算子,通过K次迭代来寻求解路径;这样即可应用Matlab求解数值较大的复杂的渡河问题。此外,还就小船运载能力n的取值范围作了较深入的讨论,并用图解法给出了多个算例来加以验证,以供编拟和审核此类智能问题时参考。对于摆渡算子ΔSk的选取,因涉及智能化图搜索技术;尚有待后续的研究进展。

摘要:为解决较复杂的渡河问题,提出用构建岸态矩阵来表示求解过程中左右河岸上同一时刻的人员组合状态;并引入表征小船上人员状况的摆渡算子,则问题的求解过程就可用从始点状态向着目标状态的逐次迭代来表示;而约束条件则由岸态矩阵的生成及算子的选取来实现。同时对运载能力n的取值范围作了较深入的讨论,并用图解算例加以验证。

关键词:渡河问题,岸态矩阵,迭代算法,摆渡算子,运载能力n

参考文献

[1]周义仓,赫孝良.数学建模实验[M].西安:西安交通大学出版社,1999.

[2]武藤佳恭,ニュ-ラルコンビュ-ティンゲ[M].東京:コロナ社,1996.

[3]李天瑞.安全渡河问题的计算机求解和模拟[J].工科数学,1999,15(1):119-122.

[4]敖志刚.人工智能及专家系统[M].北京:机械工业出版社,2010.

[5]陈汝栋,于延荣.数学模型与数学建模[M].北京:国防工业出版社,2009.

[6]堵秀凤,张剑,张宏民.数学建模[M].北京:北京航空航天大学出版社,2011.

排序框架下梯度下降迭代本体算法 篇7

从机器学习的角度来研究本体算法, 最早是将谱图理论的相关知识和本体相结合[4—6]:将高维流形中图拉普拉斯算子转化为低维本体图拉普拉斯矩阵, 通过逼近算法得到本体图拉普拉斯矩阵次小特征值对应的特征向量, 进而将整个本体图映射到一维实数空间中。从而本体图中每个顶点都被映射成了对应实数, 它们之间的相似度转化为它们在一维实数空间上的几何距离, 即实数间的差值。文献[7, 8]从统计学习理论的角度对此类算法进行了收敛性分析, 其中文献[7]将连续函数空间CS作为相似度函数的假设空间, 而文献[8]将Lipchitz s空间作为其相似度函数的备选空间。

近年来, 各种学习算法被用于本体相似度计算和本体映射的获得。由于本体图中所有顶点对的相似度可以构成一个对称相似度矩阵, 因此文献[9]将矩阵学习的思想引入本体相似度计算中, 提出基于核矩阵优化的本体相似度计算方法;文献[10]对基于最优ROC曲线的k-部排序本体算法进行了理论分析。

最近, 文献[11]提出了在二部排序学习框架下的梯度下降迭代算法。受到文献[11]的启发, 将梯度下降迭代模型的思想用于本体相似度计算和本体映射, 得到一般排序框架下梯度下降迭代本体算法。该算法从本体图的实际考虑, 其样本集由专家选定的边集合E来决定。

1 排序框架下的梯度下降迭代本体算法

首先, 本体图中每个顶点与之相关的所有信息用一个多维向量来表示。为了方便表示, 在不引起混淆的前提下用v来表示顶点以及该顶点对应的向量。进而, 分别为输入输出空间, 其中V独立随机服从未知分布ρ。给定。本体学习算法的目标是通过S的学习得到本体排序函数, 它将本体图中每个顶点映射成实数轴上的点。

对于排序算法而言, 其实例对应的排序得分的大小关系要尽量符合客观事实。因此本体图中任意两个顶点v, v'∈V, 它们在排序函数f下对应实数的大小关系应该和它们的标记的大小关系相一致。引入本体排序亏损函数l:用来衡量不一致的情况下 (即, sgn[f (v) -f (v') ]≠sgn (y-y') , 其中符号函数出于算法光滑性的需要, l是非负实值凸函数且l (f, (v, y) , (v, y') ) 关于 (v, y) 和 (v', y') 对称。

在给定本体排序亏损函数l的条件下, 本体排序函数f的质量通过用如下期望误差来衡量

在实际计算中, 由于概率分布ρ未知, 因此用如下经验误差来替换上述期望误差

式中F为可测本体排序函数空间, 即假设空间。为对称半正定核函数。与K相关联的再生核希尔伯特空间HK定义为, 其中内积〈·〉K定义为〈Kv, Kv'〉K=K (v, v') 。设。对于任意v∈V及任意再生核希尔伯特空间中的函数f∈HK, 有。

与再生核希尔伯特空间关联的本体排序算法可表示为如下经验模型

它的期望模型对应为

这里, λ‖f‖2HK称为平衡项, λ为平衡参数, 该项的作用是控制最优函数的光滑性, 防止其剧烈上下震荡, 从而提高算法的泛化性。根据亏损函数l的凸性可知, 其左偏导上是非递减的。

设为步长, {ηt}为步长序列。排序框架下的梯度下降本体算法可作如下迭代表示

上述算法中, 对于给定m个顶点的样本集, 需要对每一对样本点进行排序值的比较, 可知比较的次数为。可用一个边集合E (顶点对集合) 来取代样本集S中两两顶点的比较, 也就是说, 只对边集合中涉及的边对应的顶点对进行比较, 看它们对应实数的大小关系是否和它们的标记的大小关系一致, 这样的比较次数为E中边的数量, 即|E|。从而迭代计算模型 (3) 可边为

这里E中的边不一定是原本体图中的边。也就是说, E其实是本体图中一些顶点对构成的集合。但 (vi, vj) ∈E并不意味着 (vi, vj) 是原本体图G中的一条边。

2 排序框架下梯度下降迭代本体算法的描述

通过以上排序框架下梯度下降本体算法的分析可知, 当模型 (4) 中的一些参数被确定后, 只需要迭代优化计算模型 (4) 即可得到最优本体排序函数。由此, 得到将该模型应用于本体相似度计算和本体映射的具体算法步骤描述如下。

算法1

排序框架下梯度下降本体相似度函数迭代计算

步骤1

向量化本体图中每个概念对应顶点的相关信息。从而将V表示成高维空间的子集。

步骤2

从本体图中选取部分顶点对构成E。

步骤3

确定步长t和步长序列{ηt}。

步骤4

通过迭代求解优化模型式 (4) 得到最优本体排序函数f。

步骤5

根据步骤4得到的最优排序函数f将G中每个顶点映射到实数轴中对应点, 两顶点对应概念的相似度由它们对应实数轴上的距离来判断。

算法2

排序框架下梯度下降本体映射迭代算法

步骤1

将需要作映射的本体O1, O2, …, Oc的图结构分别用本体图G1, G2, …, Gc表示, 并令G=G1+G2+…+Gc。通过向量化顶点信息将V映射到高维空间的子集。

步骤2~步骤4:

与算法1一致。

步骤5

通过所得排序函数f确定G中每个顶点在实数轴中的对应点, 来自不同本体分支的顶点对应概念的相似度通过它们对应实数在实数轴上距离来判定。

步骤6

依据上述步骤5得到的概念对应顶点之间的相似度, 选择域值参数或其他恰当的本体映射策略生成不同本体间的映射。

3 实验分析

3.1 算法1在植物学中的应用

第一个实验采用植物本体PO (http://www.plantontology.org) 作为数据来验证算法1的效率。该本体是一个植物学词典, 它描述植物的解剖学和形态学, 以及在其发展阶段的所有植物。建立PO本体的目的是为从植物基因组学和遗传学的实验数据集上进行跨物种的查询建立有效的语义框架。PO本体结构是一个树型分层结构, 最上层为“plant anatomical entity”和“plant structure development stage”, 其中“plant anatomical entity”又分为“plant anatomical space”, “plant structure”和“portion of plant substance, 而“plant structure development stage”又分为若干个子类。所有的植物学相关概念逐层被细分。在查询时, 可根据专业关键词进行语义查询, 也可通过专业的植物学代码进行查询。其本体图大致分层结构图1所示。

由于算法模型是基于排序方法的, 因此采用P@N[12]平均准确率来对实验结果进行评价。其中步长t=3, 步长序列ηt的元素值均取1, 参数λ取0.1, 选取部分顶点对构成E。另外, 将基于快速排序方法的本体算法[13]和基于标准排序方法的本体算法[14]也分别作用于植物学PO本体, 并采用相同的P@N平均准确率对实验结果进行评价。对上述三种算法得到P@N平均准确率进行比较, 部分实验数据如表1所示。

通过表1的数据对比可知, 排序框架下梯度下降迭代本体相似度算法对于植物学PO本体的效率要高于基于快速排序技术的本体相似度算法和基于标准排序方法的本体相似度算法。

3.2 算法2在计算机软件本体中的应用

算法2的效率采用计算机软件本体作为本体数据来验证。图2和图3分别描述了两个计算机软件本体的结构。

由于排序算法一般只关注最相似的N个结果, 本实验使用与实验1相同的P@N平均准确率进行评价。步长t取2, 步长序列和平衡参数的选取和实验1一致, 同时选取大约1/3顶点对构成E。此外, 被用于算法1中的基于快速排序方法的本体算法和基于标准排序方法的本体算法也分别作用于计算机软件本体O2和O3。表2给出了三种算法下P@N平均准确率的部分数据。

通过表2的P@N数据对比可知, 排序框架下梯度下降迭代本体映射算法对于计算机软件本体的效率在N=1, 3, 5的情况下都要高于基于快速排序技术的本体映射算法和基于标准排序方法的本体映射算法。

4 总结

上一篇:改革政治理论课下一篇:跨文化品牌营销