最优化算法

2024-07-06

最优化算法(共12篇)

最优化算法 篇1

在社会发展的同时, 我国电力系统规模不断变大, 对电力系统稳定性, 可靠性, 经济性的要求也越来越高, 对电力系统的优化也越来越受到重视, 最优潮流指的是从所有潮流计算的方法中在满足安全性前提下综合经济性选出相适应的潮流计算方法。最优潮流是指在给定了各个结构参数和负荷的电力系统中, 优化选择控制变量, 在符合约束条件的前提下达到使目标函数最小化的目的的过程。最优潮流在电力系统的电网规划、经济调度、安全运行方面发挥了重要作用, 广泛运用在复杂电力系统的传输阻塞的经济控制, 可靠性分析中。目前的最优潮流算法主要分为最优潮流的经典算法和经典潮流的现代算法, 经典算法包括简化梯度法, 牛顿法, 内点法, 解耦法, 现代算法有遗传算法, 模拟退火算法等。

最优潮流计算的经典算法

根据潮流计算优化方法的不同, 可将其分为经典算法和现代优化算法两个种类。经典算法包含简化梯度法, 牛顿法, 内点法, 解耦法等等, 这几种算法是目前用得最广的。

最优潮流的一般数学模型:

在此模型中, f是所需要的目标函数, u是系统中的控制变量, x是状态变量。等式g是等式约束条件。在最优潮流计算过程中, 要满足基本的潮流方程, 这些所要满足的基本潮流方程就是等式约束条件。式子h是不等式约束条件, 同样在最优潮流中, 可控控制变量并不是任意变化的, 有他本身的取值范围, 不等式约束条件是用来约束控制变量以及潮流计算中得到的其他量。f, g是非线性函数, h中的大多数约束也是非线性的, 可以看出求解最优潮流计算就求解是一个有约束的非线性规划问题。

简化梯度法

在求解大规模电力系统潮流问题的过程中, 简化梯度法是第一个被广泛使用的算法, 直到目前为止, 在很多场合都还有其的应用。如果系统中仅仅只有等式约束条件, 利用以极坐标形式的牛顿潮流算法作为基础的简化梯度法通过拉格朗日乘子法, 把有约束的最优化潮流计算转化为无约束的最优化潮流计算, 再对其进行求导, 通过联立求解方程组的方法可求得此非线性规划问题的最优解。但是正常情况下会有很多的方程式, 而且这些方程式又为非线性, 用联立求解该方程组计算量会非常大, 很多时候会非常困难, 这个时候一般采用迭代下降法。迭代下降法, 先找一个初始点, 从这个初始点出发, 找到搜索方向, 沿着这个方向走动一步, 使其目标函数能够下降, 然后再把这个点当做起始点, 重复上面的步骤, 直到所求到的解满足收敛条件。上面解法只是建立在没有不等式约束的条件下, 在正常情况下, 最优潮流计算中会有很多的不等式约束条件, 有控制变量不等式约束和函数不等式约束。在不等式为控制变量不等式时候, 如果控制变量超过了限定值, 这个时候控制变量就会被强制限定在相应的边界上, 可达到目标函数进一步减小的效果。而如果不等式约束为函数约束不等式时候, 就不能采用这样的方法, 这个时候我们采用罚函数的方法。罚函数目标函数中引入约束条件形成新的函数, 这样把原来的有约束的最优潮流的计算解答变成了无约束的最优潮流计算的解答。这种方法原理简单, 计算过程中所需要的存储空间也比较小, 对程序设计的要求也比较简单。虽然这种方法有比较好的优点, 但其缺点也比较明显, 在用该算法进行计算时会出现锯齿现象, 收敛的效果也比较差, 在将要到达最优点附近时候收敛的速度非常慢, 每次进行迭代运算的时候都需要重新计算潮流, 这样计算量特别大, 计算所需要的时间也比较多。如果该算法采用罚函数处理约束不等式时, 选取不同的罚因子数值也会对该算法的收敛速度有不同的影响。目前为止, 对于这一类算法的研究已经很少了。

牛顿法

既然最优潮流是一个非线性规划的问题, 就可以利用各种非线性规划的方法来解答, 但最优潮流中综合了电力系统本身固有的物理特性, 在划分变量, 处理等式约束条件和不等式约束条件, 分解有功和无功, 选取变量修正方向等各个方面都可以选择不同的算法和方案。对于非线性规划解答, 也有许多不一样的算法, 牛顿法就是其中的一种, 是一种得到广泛认可和应用的用来处理最优潮流的算法。

牛顿法也是一种无约束求值的方法, 牛顿法利用对Kuhn—Tucker等式的直接求解来寻找最优解。牛顿法中, 对于等式约束用拉格朗日乘子法来处理, 对违约的变量的不等式约束用惩罚函数法来处理。通过这种方法可以把牛顿法和电力系统的稀疏性相结合, 从而能够大大减小储存空间, 减少计算量。牛顿法也有其弊端, 在利用牛顿法进行迭代时候, 计算过程中产生的中间变量并不满足潮流方程, 这样在修正迭代变量后, 并不能保证不等式约束不越界, 而一旦不能确定是哪些不等式约束越界了, 将无法使用罚函数来进行下一步处理, 还会对海森矩阵的某些对角元素造成影响, 对计算结果值会有一个比较明显的影响。为了避免违约不等式约束的影响, 对于它的处理, 一般使用实验迭代方法来修正违约变量。牛顿法还有另外一个弊端:对应的控制变量的海森矩阵对角元比较容易出现小值或零值, 从而导致矩阵奇异。对于这种情况, 可以用适应性移动罚函数来处理海森矩阵中的小或零对角元素, 这样的话, 牛顿法的收敛性会更好, 计算速度也会更快。利用牛顿法进行潮流优化计算时, 其有二次收敛速度, 不需要进行大量迭代, 进行几次迭代后便可以找到最优点。在迭代的过程中要尽量保持迭代矩阵的稀疏性从而减少内存和迭代过程中的计算量。总的来说, 牛顿法通过利用二阶求导, 收敛性比较好, 因为电力系统中迭代矩阵的稀疏性可以减少储存量, 节省内存空间, 可应用于大规模的电力网络潮流计算中。牛顿法也其有自身的缺陷:在计算过程中, 很难做到有效的确定约束集, 很多情况下用试验迭代法, 在进行编程时难度比较大, 对应的控制变量的海森矩阵对角元比较容易出现小值或零值, 会引起矩阵的奇异;利用拉格朗日乘子法的时候, 选取不同的初值会很大的影响迭代计算的稳定性。在应用牛顿法时, 必须要考虑这些缺陷, 才能够保证更好的利用牛顿法最优潮流。

内点法

内点法是经典最优潮流算法中一种运用比较普遍的算法, 在初始阶段, 内点法是用来解决单纯形法计算量随变量规模而剧增问题的一种线性规划算法。运用内点法时, 从第一个内点出发, 找到一条可行的方向, 并沿着这个方向找到使得目标函数下降的新的内点, 然后依照这样的步骤循环下去, 不断的向最优解迭代, 在此过程中, 可以得到一个由内点组成的序列, 保证目标函数单调下降。运用内点法计算最优潮流时候, 迭代次数的多少和电力系统的规模的大小没有关系。在开始阶段, 内点法是用来解答线性规划问题的, 现在在对于非线性规划和二次规划模型也可以利用内点法来解答。内点法因为向最优解迭代是在可行域内部进行的, 所以相对于牛顿法, 在识别起作用约束集方面并不存在困难。内点法又分为:仿射变换法、路径跟踪法和投影尺度法。

最优潮流解耦算法

为了再进一步减少计算量从而减少储存空间, 可以利用电系系统中无功功率和有功功率之间的弱相关性, 以上为对牛顿法最优潮流算法的分析, 在实际中, 为了再进一步减少计算量和所需要的内存, 还能够利用电力系统间有功及无功的弱相关性质, 把PQ解耦技术运用在海森矩阵法求解最优解迭代方程中。在潮流计算中, 可以运用快速解耦法, 同样在最优潮流计算中, 也可以加入有功无功解耦技术来进行解答。

在最优潮流解耦算法中, 通过发现电力系统中有功和无功的弱相关性, 把对最优潮流计算这个整体分为对有功功率的优化和对无功功率的优化两个部分, 分别迭代, 最后在对其进行综合, 这样通过对有功功率和无功功率分别的优化可以进一步优化算法性能, 将其分为两部分分别优化后, 就变为了对只有原来一般规模的系统进行迭代求解, 可以大大减少计算量, 节约内存, 提高计算速度, 特别是在大规模电力系统中, 计算量特别大, 可以利用这种方法。但最优潮流解耦算法将系统分为无功功率优化和有功功率优化两个部分, 可有些约束条件既和有功功率有关, 又和无功功率有关, 在这种情况下计算最优潮流时候就不适合将其分为两个部分。最优潮流计算解耦法精度不高。

最优潮流计算的现代算法

用最优潮流计算经典方法的时候, 需要搭建精确的数学模型, 而搭建的精确数学模型往往十分复杂, 难以满足实时控制的要求, 而如果搭建粗略的数学模型会不够精确, 会有比较大的误差。近年来出现看关于最优潮流计算的现代方法, 现代优化算法跟经典算法一样也是通过迭代进行处理的, 也会被叫做启发式算法, 这种方法可在广泛范围内得到应用, 可很好运用于现代大规模电力系统最优潮流计算中。最优潮流计算的现代方法以遗传算法、模拟退火方法为代表。

最优潮流遗传算法

遗传算法在在1975年被首先提出, 经过突变、选种、杂交等算子作用使这些潜在的解转化为具有更好适应度的解, 从而使得电力系统潮流能够得到更好的优化。遗传算法主要特点是:可以有多个初值点, 从这多个初值点出发, 沿多个途径使其能够完成最优目的, 运用遗传算法, 可以很好的解决混合整数离散型问题, 最优潮流遗传算法是一种很好的优化方法。以遗传算法为基础的最优潮流计算方法思路简单, 易于理解, 运行步骤规范, 易于运用, 优化函数连续性与否不影响该算法的搜索过程, 优化函数的是否可导也不影响该算法的计算结果。遗传算法通过多初值点, 多途径搜索, 可以很快速的找到目标函数最优解。以遗传算法为基础的最优潮流计算方法通过改进目标函数计算方法来提高该算法计算速度, 通过改进遗传算法的操作使得该算法整体收敛性变强, 寻优性能变好。与传统经典算法相比, 有了较大的提高, 但其缺点就是计算量比较大。

最优潮流模拟退火算法

模拟退火法从固体退火思想得到启发, 通过组合优化来找到最优解。模拟退火法是根据热力学中的退火原理而建立的一种随机搜索算法, 该算法使用的是基于概率的双向随机搜索技术。如果该操作可以让当前的解提高其质量, 则把这个解当做一个新的解, 而相反, 如果这个操作所得到的解的质量并没有提高, 该算法就会以一定的概率把这个变差的解当作当前解。最优潮流模拟退火算法有很好的收敛性, 而且得到的解的精度也很高, 但也发现该方法中参数比较难确定, 计算所需要的时间比较长, 在需要实时计算时, 该方法不能够很好的完成需要。一般只能用于离线研究分析。

各种算法比较

目前为止, 对于电力系统最优潮流计算有很多种方法, 每种方法都有着其自身的特点, 在各个不同的方面发挥着其自身的优势, 可以按照其是否是通过导数优化角度对其进行分类比较。最优潮流计算经典算法中的简化梯度法、牛顿法和内点法是以导数为基础的优化求解方法, 而现代优化方法中的进化算法和模拟退火算法则属于非导数优化方法, 它们并不以梯度作为寻找最优解的主要路径和方法。以导数为基础的经典优化方法能在导数信息指导下, 快速建立搜索方向, 计算速度比较快, 对于该类型的算法研究时间比较长, 算法比较成熟, 计算结果比较精确, 在很多地方也得到了应用。但其易受到约束条件的限值, 在很多时候应用这种方法有一定的困难。

遗传算法, 模拟退火算法这一类的最优潮流计算的现代方法因其与导数无关, 而现在很多现实中的优化问题的目标函数并不能求导, 就体现出来该种方法的优势。而有时候在有些情况下, 目标函数会非常复杂, 运用该类方法不需要知道其导数信息, 不需要再进行额外的编程和计算, 可以提高运行速度, 适用于大型的电力网络最优潮流计算中。但这类方法不稳定, 在求解同一问题的不同实例时可能会出现不一样的结果, 运用该类算法所得到的结果的精确性不是很高, 得到的往往是接近最优解的次最优解。虽得到结果不是十分精确, 但可以满足大多数工程精度的要求。

对于最优潮流经典算法中的解耦算法, 其执行速度虽然较快, 但在一些不适合解耦的场合下, 这种方法就失去了他的作用, 这种方法是一种特殊的最优潮流的算法, 并不能通用在电力网络潮流计算中。

总结

伴随着社会发展, 电力工业也在不断进步, 电力系统规模越来越大, 对于电力系统最优潮流计算也要求能够完成大规模系统的计算, 能够实现实时控制, 在线计算。同时电力系统最优潮流还要考虑电力的经济性, 在实时电价计算、阻塞管理、输电费用计算、辅助费用计算等方面最优潮流都有应用。以现代优化算法为基础, 综合多点随机化的全局搜索思想和面向问题的局部优化的思想, 来达到最优潮流目的, 依据此并和其他方法相结合, 充分利用分布式处理技术和并行计算等现代计算机技术, 而这将会是解决最优潮流的潜在研究方向。

最优化算法 篇2

期望值算法通常是用期望值代替随机因素,将问题转化为确定性问题考虑。2.机会约束算法

主要是考虑概率问题,如在置信区间范围内考虑优化问题,就转化为概率约束的问题。3.相关机会规划算法

是在随机环境下使得事件的机会达到最优。4.智能优化

目前随机问题多用智能优化法。智能优化主要借鉴仿生学和拟物的思想,包括:遗传算法、粒子群算法、蚁群算法等。

(1)遗传算法属于进化算法的一种,它通过模仿自然界的选择与遗传的机理来寻找最优解.遗传算法有三个基本算子:选择、交叉和变异.但是遗传算法的编程实现比较复杂,首先需要对问题进行编码,找到最优解之后还需要对问题进行解码,另外三个算子的实现也有许多参数,如交叉率和变异率,并且这些参数的选择严重影响解的品质,而目前这些参数的选择大部分是依靠经验。(2)粒子群算法 粒子群算法,是一种基于迭代的优化进化并行算法,和模拟退火算法相似,系统从随机解出发,通过迭代寻找最优解,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”和“变异”操作,它通过粒子在解空间追随当前搜索到的最优值来寻找全局最优。(3)蚁群算法

粒群优化算法 篇3

关键词:粒群;算法;优化;压缩

中图分类号:TP301文献标识码:A文章编号:1009-3044(2007)16-31086-02

Particle Swarm Optimization

SUN Qi,ZHANG Fu-yu

(The Information Management Department of Henan Economy and Trade Vocational College, Zhengzhou 450000,China)

Abstract:first we simply intruduce about the common algorithm ofParticle Swarm,then we discuss the using、develop、prospect and optimize of it。Further more we provide a new CSV2PSO algorithm based on compressed space,give the details of it and analyse the differences compared to other algorithms.CSV2PSO enhances the Particle Swarm’s rate of convergence,reduces the ratio of forwardness convergence,and it has a very goodfuture of apply.

Key words:Particle Swarm;algorithm;optimize;ompress

粒子群优化算法PSO(Particle Swarm Optimization)由Kennedy和Eberhart于1995年提出,算法模拟鸟群飞行觅食的行为,通过鸟之间的集体协作使群体达到最优。与遗传算法类似,它也是基于群体迭代,但没有交叉、变异算子,群体在解空间中追随最优粒子进行搜索。

1 算法介绍

1.1 产生背景

复杂适应系统CAS(Complex Adaptive Sys2tem)理论于1994年正式提出,CAS中的成员称为主体。主体有适应性,它能够与环境及其他主体进行交流,并且根据交流的过程中“学习”或“积累经验”改变自身结构和行为。整个系统的演变或进化包括:新层次的产生;分化和多样性的出现;新的、更大的主体的出现等都基于此。CAS有4个基本特点:首先,主体是主动的、活的实体;其次,个体与环境及其他个体的相互影响、相互作用,是系统演变和进化的主要动力;再次,将宏观和微观有机地联系起来;最后,系统引入了随机因素。PSO源于对1个CAS:鸟群社会系统的仿真研究,也包含这4个基本特点。如何利用生物技术研究计算问题是人工生命研究的重要方向,现已有了很多源于生物现象的计算技巧,如人工神经网络和遗传算法等。“群智能”是对社会型生物系统的模拟,目前计算智能领域有3种基于群智能的算法:蚁群算法、文化算法和PSO。

1.2 基本PSO算法介绍

PSO初始化为一群随机粒子,然后通过迭代找到最优解。每次迭代,粒子通过跟踪2个“极值”:粒子本身所找到的最优解PBest和群体找到的最优解GBest来更新自己。

标准PSO的算法流程如下:

1.2.1 初始化:

1.2.1.1 设置常量c1,c2,w,NrVmax粒子数目P和最大迭代次数Kmax给定精度δ;

1.2.1.2 随机初始化粒子位置;

1.2.1.3 随机初始化粒子速度;

1.2.1.4 K=1,i=1;

1.2.2 优化:

1.2.2.8 转到步骤1.2.2.1

1.2.3 输出结果,程序终止。

1.3 算法分析与发展

与其他全局优化算法(如遗传算法)一样,粒子群优化算法同样存在早熟收敛现象,尤其是在比较复杂的多峰搜索问题中。为解决这一问题并提高算法的收敛速度,粒群优化算法的发展也经过了一系列的过程:

1.3.1 PSO参数改进与优化

基本PSO的参数是固定的,在对某些函数优化上的精度较差,因此,Shi提出惯性因子w线性递减的改进算法,使算法在搜索初期有着较大探索能力,而在后期又能得到较精确的结果,一定程度上提高了算法性能。2001年Shi又提出了自适应模糊调节w的PSO,在对单峰函数的处理中取得了良好的效果,但无法推广。Bergh通过使粒子群中的最佳粒子GBest始终处于运动状态,得到了保证收敛到局部最优的GCPSO,但其性能并不佳。

1.3.2 粒子群拓扑结构改进

在提出Local版之后,Kennedy等又进一步研究粒子群的拓扑结构,分析粒子间的信息流,提出了一系列的拓扑结构,并作实验研究,如图1所示。除静态拓扑结构外,也有研究者提出动态粒子群拓扑结构。

1.3.3 PSO混合算法

PSO和其他优化算法的结合是改进研究的热点。Angeline将选择算子引入PSO中,选择每次迭代后的较好粒子复制到下一代,以保证每次迭代的粒子群都具有较好的性能,这种算法对某些单峰函数效果良好。L?准vbjerg在粒子群每次迭代后,按几率在粒子间交换各维,通过交叉来生成更优秀的粒子,算法对某些多峰函数效果较好。Higashi等人分别提出了自己的变异PSO算法,基本思路均是希望通过引入变异算子跳出局部极值点的吸引,从而提高算法的全局搜索能力,得到较高的搜索成功率。高鹰等人则引入免疫机制的概念,提高粒子群的多样性和自我调节能力,以增强粒子的全局搜索能力。Baskar、Bergh等人各自提出了自己的协同PSO算法,通过使用多群粒子分别优化问题的不同维、多群粒子协同优化等办法来对基本算法进行改进尝试。Al-kazemi所提出的Multi-Phase PSO在粒子群中随机选取部分个体向GBest飞,而其他个体向反方向飞,以扩大搜索空间。

除以上的混合算法之外,还出现了量子PSO、模拟退火PSO、耗散PSO、自适应PSO等混合改进算法,也有采取PSO与基于梯度的优化方法相结合的办法。

2 一种基于压缩搜索空间的CSV2PSO算法

为了提高PSO算法收敛速度与收敛精度,降低早熟收敛的比率,本文提出了压缩搜索空间与速度范围的粒子群优化(CSV2PSO)算法,对基本PSO算法进行了以下改进。

2.1 惯性权重的确定

把惯性权重w引入到粒子群算法中,并研究了其对优化性能的影响,发现较大的w值有利于跳出局部最优点,而较小的w值有利于算法收敛,因此提出了自适应调整w的策略,即随着迭代的进行,线性地减小w的值,非线性地减少w的值:

其中w0为事先给定的正常数,k为飞行次数,n为以优化目标函数而定的正常数。

2.2 速度范围的确定

不同的vmax(最大飞行速度)对压缩因子PSO算法收敛速度有很大的影响。事实上,数值试验表明vmax对各种PSO算法收敛速度及收敛精度都有影响。为了便于问题的描述,假设粒子群在M维空间里飞行速度的上下限分别表示为矢量:

Vmax=[vmax1,vmax2,…,vmaxM]和vmin=[vmin1,vmin2,…,vminM]搜索空间的上下限分别用矢量[vmax1,vmax2,…,vmaxM]和vmin=[vmin1,vmin2,…,vminM]表示,则粒子群在M维空间里飞行速度的上下限可用下式表达:

式中,D=1,2,…,M,a大小可用下式确定:

其中,a0为事先给定的正常数,k为飞行次数,m为以优化目标函数而定的正常数

2.3 搜索空间的确定

大量的数值试验证明:随着粒子群体不断进化,粒子群体逐渐向问题空间的优秀解域靠近?因此,随着进化的进行,适当的压缩粒子群的搜索空间将有利于加速算法收敛,这在后面的数值仿真中得到验证?压缩搜索空间由式(7)和式(8)完成:

U’maxd=β0(U’maxd-Gcd)+Gcd(7)

D’mind=β0(D’mind-Gcd)+Gcd(8)

其中,0<β<1,U’maxd,D’mind和Gcd分别为粒子群在压缩空间中d维方向上的上下限及几何重心,Gcd由式(9)计算:

式中,Npop为粒子群的群体规模。

随着搜索空间的压缩,一方面问题的最优解有可能被排挤在压缩后的搜索空间之外,这样问题的最优解将无法被搜索到;另一方面粒子的飞行范围被大大缩减,降低了算法突破局部最优的能力。如果大部分粒子均在相同的局部极值附近飞行时,PSO算法容易出现暂时的“停滞”现象,突破局部极值的限制可能需要经过很长一段时间,也可能无法突破这一限制而陷入局部最优点。为此,当算法出现暂时“停滞”时,需重新对粒子进行初始化,本文把粒子分为两部分,一部分在压缩空间初始化,一部分在原始空间内初始化。数值试验证明了该方法的可行性CSV-PSO算法以目标函数的函数值为其适应值求函数的最优解,算法的具体流程如下:

(1)初始化惯性权重w0,学习因子c1和c2,群体规模Npop,停滞进化代数Ns,常数α0和β0及进化结束标志,进化代数Ng和ε0,进入步(2);

(2)在?骔Dmin,Umax」内随机初始化粒子的位置,由式(4)和式(5)确定粒子飞行速度的极限Vmin和Vmax,然后在[Vmin,Vmax]内随机初始化粒子的飞行速度;令群体进化代数N= 0,进入步(3);

(7)根据公式(4)和式(5)动态调整粒子飞行速度的极限,并由式(7)和式(8)压缩粒子的搜索空间,进行步(8);

(8)把粒子分为两部分,一部分在压缩空间?骔Dmin,Umax」内重新初始化,一部分在原始空间?骔Dmin,Umax」内重新初始化,进行步(3)。

2.4数值测试

为了验证改进算法的性能,选用了5个常用的非线性基准函数,函数基本特征如表1所示。最大进化代数Ng=10 000,学习因子c1=c2=2,群体规模Npop=30;变量维数、变量范围、优化目标函数值如表1所示;设置参数w0=1。本文引入的参数停滞进化代数Ns=50,α0=019和β0=018(对函数f6,α0=015)。随机运行20次,适应值达到目标函数值时的平均进化代数及进化代数范围如表2所示:

表1

表2中,Nave和Nr分别为20次运行中收敛情况下进化代数的平均值和进化代数的范围(例如,若20次运行中有3次不收敛,则Nave和Nr分别为17次收敛运行的进化代数平均值和进化代数的范围)。对函数f2,压缩因子法(Vmax=100 000)和改进压缩因子法(Vmax=Xmax),20次运行中各有1次不收敛(进化了10 000代适应值仍没有达到目标函数值);对函数f3,惯性权重法在目标函数值设置为0105时得到的表中结果,压缩因子法(Vmax=100 000)有3次不收敛,改进压缩因子法(Vmax=Xmax)有1次不收敛?由表中结果可以看出与惯性权重法、压缩因子法(Vmax=100 000)和改进压缩因子法(Vmax=Xmax)相比,CSV2PSO算法收敛速度更快,运行更为稳定(不易出现早熟现象)。

表2

2.5 算法总结

2.5.1 针对基本PSO算法的不足,对其进行了改进,提出了CSV2PSO算法,数值仿真结果表明该算法收敛速度更快,精度更高,运行更为稳定。

2.5.2 随着粒子群体不断进化,粒子群体逐渐向问题空间的优秀解域靠近,此时适当压缩粒子群搜索空间与粒子群飞行速度范围有利于加速算法收敛,提高收敛精度。

2.5.3 CSV2PSO算法在PSO算法的基础上引入了几个参变量,如Ns,α0,β0,这些变量如何影响PSO算法性能,有待于进一步研究。

3 PSO算法的应用

3.1 神经网络的训练:PSO用于神经网络的训练中,主要包含3个方面:连接权重、网络拓扑结构及传递函数、学习算法。每个粒子包含神经网络的所有参数,通过迭代来优化这些参数,从而达到训练的目的。

3.2 参数优化:PSO已广泛应用于各类连续问题和离散问题的参数优化。例如,在模糊控制器的设计、机器人路径规划、信号处理和模式识别等问题上均取得了不错的效果。

除了以上领域外,PSO在组合优化、多目标优化、自动目标检测、生物信号识别、决策调度、系统辨识以及游戏训练等方面也取得了一定的成果。

参考文献:

[1]蔡自兴,徐光祐.人工智能及其应用[M].清华大学出版社,2003.

[2]陈慧萍,赵跃华,钱旭.人工智能教程[M].北京:电子工业出版社,2001.

[3]何华灿.人工智能导论[M].西安:西北工业大学出版社,1988.

[4]罗建宏,张忠能.并行仿真的粒子群优化算法异步模式研究[J].计算机仿真,2005,22(6).

[5]谭皓,沈春林,李锦.混合粒子群算法在高维复杂函数寻优中的应用[J].系统工程与电子技术,2005,27(8).

[6]赵勇,岳继光,李炳宇,等.一种新的求解复杂函数优化问题的并行粒子群算法.计算机工程与应用,2005,16(6).

最优化算法 篇4

1 CA成本优化路径:计数策略和周期策略

CA可采用内嵌法和监控法两种, 由于种种因素的限制, 当前普遍采用的是监控法。所谓监控法, 是指在审计的开始阶段, 审计师要重新审计被审计单位的信息系统, 选择监控对象, 确定审计基准参照值和和拉响警报的临界点, 然后将这些参数写入审计模块, 并将审计模块嵌入被审计单位的信息系统, 以便对系统中的数据流进行连续的监督和分析。当数据流出现与标准不符的情况时, 审计模块拉响警报, 发出例外报告, 审计师就开始实施相应的详细审计。需要指出的是, 监控法下的CA并不等于实时审计, 因为, 如果对被审计单位的每笔业务都进行实时审计, 则会影响被审计单位业务处理的及时性, 从而造成“信息延迟”, 从而影响会计信息的及时性。因而内嵌审计模块对业务信息的审计通常采用两种策略, 即以一定的交易量来确定审计周期的计数策略 (Counting Strategy) 和以一定时间为间隔来确定审计周期的周期策略 (Periodic Strategy) 。

1.1 计数策略

在计数策略下, 当交易达到了一个固定的数量n时, 就激活内嵌的审计模块开始审计。该策略下, CA的成本与n的选择息息相关:n过大, 就很难发现错误;n过小, CA成本就会很高。计数策略的基本原理如图1和图2所示。图1中, 若n=3, 则代表每3笔业务完成后开始审计。两个CA开始的时间间隔被称为周期, 用C表示。周期C可以分为C1和C2两段, C1是当达到n笔交易后进行审计的时间, C2是前一次审计结束、后一次审计开始前的时间 (见图2) 。

1.2 周期策略

周期策略类似于技术策略, 唯一不同的是它以固定的间隔时间来确定审计周期。同样, CA的成本与固定的间隔时间 (P) 紧密联系:如果P过长, 该段时间内发生的数据、信息和报告就可能会包含大量错误从而降低会计信息的可靠性;如果P太短, 会增加CA的成本。

2 CA成本最优化算法:运用马尔可夫更新理论

根据马尔可夫更新理论:单位时间的长期平均运行成本=周期成本÷周期长度。将马尔可夫更新理论应用于CA成本研究, 必须满足以下假设:①所有进入被审计单位数据库中的交易都遵循单位时间r次交易的泊松过程;②每笔交易需要T单位时间进行处理和生效, 由于T取决交易的种类和难度, 因此它根据交易的不同而不同;③处理生效的一系列单位时间T1, T2, …, Tn, 是按照密度函数f分布的独立随机变量;④在每个审计周期中, 交易只被检查和执行一次。

2.1 计数策略

根据图2, 审计周期的数学期望E (C) =E (C1) +E (C2) 。设1/r为达到更新交易的平均概率, 交易是以泊松过程出现的, 例如, 每个交易到达的时间是相互独立的。如果在一个审计结束后处理线上达到了n笔交易, 在下次审计时没有检查到错误, 那么E (C2) =n/r。

假设每次执行审计的固定成本是A, 在审计过程中排队延迟而发生附加成本为a/单位时间, Dn为在C2的延迟成本, Xn代表每n笔交易完成后进行审计所需要的期望时间, 每单位时间的长期运行平均成本为undefined (s, r, n) 。则有

在计算Xn和Dn时, 必须决定在审计某项业务时其他业务同时发生的可能性。Pi定义为当其他交易正在审计时i个交易达到的概率。因为交易进入数据库是遵循泊松分布的, 所以

f (u) 代表某些交易生效所需要时间的概率密度函数, k代表给定交易正在审计时, 新交易进入数据库的数量。因此, 完成审计的期望时间为第一笔交易生效的时间加上 (n-1) +k笔交易列队等待的时间。把E (T1) 表示为审计每笔交易所需要的期望时间。利用这些参数, 计算Xn和Dn。

公式 (1) 中的n是线性函数, 即Xn=α+βn。由 (1) 中的平衡式给定的α和β得到一个新的函数形式:

假设rE (T1) <1和s=rE (T1) , 那么undefined, 在第一次交易审计的期望延迟成本由undefined给出的E (T1) 是T1二次矩阵。那么

方程 (2) 的解是n的一元二次函数Dn=α+βn+γn2。可用下列的函数形式代替方程 (2) , 同时得出α、β、γ的值。

综合以上结果, 得到期望的周期时间是:

把上面的Dn代入方程undefined (s, r, n) , 得到

简化上面方程得到

当s=rE (T1) 时, n的最优值是

2.2 周期策略

周期策略要求每个固定的时间P之后进行审计。审计时间包括两部分, 在审计开始之前时间P和进行审计时间E。E是一个随机数, 随着时间P和在审计时间内进入系统的交易不同而不同。图3说明了这些概念。期望周期E (C) =P+E。

假设在时间P内发生了n笔交易, E (C) =P+Xn, Xn代表完成审计所需要的期望时间, 那么undefined。同样, 令Pn代表在等待审计的过程中, n笔交易发生的概率, undefined, 那么:

令undefined。

可以看出在时间P发生平均延迟成本等于undefined, 假设在P中发生n笔交易, 期望的延迟成本是Dn。替换变量, 那么在一个循环周期内的期望延迟成本undefined, 其中, undefinedundefinedundefinedundefined。

设每单位时间的长期运行平均成本为undefined (s, r, P) , 那么

undefined

最优的间隔时间P=undefinedundefinedundefinedundefined。 (6)

3 CA成本最优化算法:一个改进

上述算法涉及线性非齐次差分方程的无穷序列, 它的分析仅仅依赖特解, 而特解是不完全的解, 因为它忽略了相应的齐次解, 因而有必要对上述算法进行改进, 其目的是为CA成本最优化算法提供一个通解。在改进的算法中放松了对审计处理生效时间独立性的假设, 其他假设与上述算法一样。

3.1 计数策略

根据总概率定律, Pi可以改写为:

undefined。

当X0=0时, undefined; (7)

当D0=0时, undefined。 (8)

当时间是一个非独立或者独立的结构时, 执行 (7) 和 (8) 差分方程。然而, 交易到达时间必须独立于执行时间。这样, Xn和Dn就是线性非齐次差分方程的无穷序列的解, 这个非齐次差分方程相应的齐次差分方程是:

当U0=0时, undefined。 (9)

根据Brand (1996) 的基本定律, 线性非齐次差分方程的通解等同于线性齐次差分方程的解加上特解。根据上述的基本理论, 上述算法的解在齐次部分是不完整的。为求方程 (9) 中齐次部分的解。我们把MT1 (t) 定义为T1的矩生成函数。例如, 当右边存在时, MT1 (t) =E (etT1) 。R为实数, 如|t|≤R, MT1[1-r (1-t) ]是有限的。使G (t) =MT1[-r (1-t) ]-t, |t|≤R, 齐次差分方程 (3) 的解为:

undefined。① (10) α1, α2, …, αn-1是不等于1的数, 也和函数G (t) 在|t|≤R的根不一样。函数g0, g1, g2, …, gh-1是多项式, 它的次数满足deg (gi) ≤mj-1 (j=0, 1, 2, …, h-1) , mj定义为aj的多重根 (m0是一重根) 。

设rE (T1) <1, 那么

(1) 方程 (7) 的特解undefined。

(2) 方程 (8) 的特解undefinedundefined。

用rE (T1) =s替代, 当s<1时, 非齐次线性方程 (7) (8) 的通解为:

undefined

undefined, n=0, 1, 2, … (12)

计算出了Xn*和Dn*, 设每单位时间的长期运行成本undefined, 计算得到

undefined

可以推导出:

undefined

得到结论:

(1) 如果undefined, 那么undefined。

(2) |aj0|>1在aj0=1, 2, …, h-1, 那么undefined。

(3) |aj|<1在aj=1, 2, …, h-1, 那么undefined。

比较传统算法和改进算法中的长期运行成本undefined和undefined, 可以看到在n的数量很大或者比较大即大于1时, 改进算法成本更低, 趋于1。

3.2 周期策略

根据假设, 得到undefined, 当undefined时, 那么undefined。

同理, 期望延迟成本undefined。

利用公式 (12) , 期望延迟成本

undefined

undefined代表改进算法下的周期策略的长期运行成本, 那么

undefined

undefined

得出结论:

undefined。

undefined, 那么undefined。

undefined, 那么undefined。

比较上述算法和改进算法中的长期运行成本undefined (s, r, P) 和undefined, 可以看到在undefined时, 改进算法成本更低, 趋于1。

4 结 论

综上, 本文研究发现在计数策略下能有效地降低审计的长期运行成本, 在周期策略下也能有效地降低成本。这一结论对连续审计的广泛使用有重要的意义。

摘要:为了满足会计信息及时性和相关性的要求, 连续审计应运而生。连续审计的目的就是为了尽可能缩短审计周期, 提高审计的时效性。当前的问题在于连续审计的实施成本过高, 阻碍了它的广泛使用。通常连续审计成本优化路径有两条:计数策略和周期策略, 本文从数理的角度来探求连续审计成本最优化算法。

关键词:连续审计,审计成本,计数策略,周期策略

参考文献

[1]Jagdish Pathak.Minimizing Cost of Continuous Audit:Counting andTime Dependent Strategies[J].Journal of Accounting and Public Poli-cy, 2005, 24 (1) :61-75.

[2]Jagdish Pathak.General Theory of Cost Minimization Strategies of Con-tinuous Audit of Databases[J].Journal of Accounting and Public Poli-cy, 2007, 26 (5) :621-633.

[3]L Brand.Differential and Difference Equations[M].John Wiley&Sons, New York, 1966.

[4]Michael G Alles.Restoring Auditor Credibility:Tertiary Monitoringand Logging of Continuous Assurance Systems[J].International Jour-nal of Accounting Information Systems, 2004 (5) :183-202.

[5]CICA/AICPA.Continuous Auditing[R].Toronto, Canada:The Cana-dian Institute of Chartered Accountants, 1999.

[6]R KElliott.Twenty-First Century Assurance[J].Auditing:AJournalof Practice&Theory, 2002, 21 (1) :139-146.

[7]MGroomer, UMurthy.Continuous Auditing of Database Applications:An Embedded Audit Module Approach[J].Journal of InformationSystems, 1989, 3 (2) :53-69.

[8]J Gregory Kunkel.Continuous Auditing by Exception[J].ManagementAccounting, 1974, 5 (1) :45-48.

基于拍卖算法的目标分配问题优化 篇5

基于偶图理论对目标分配问题进行数学描述,提出设立虚拟火力点和目标的方法对拍卖算法进行适当改进来解决目标分配问题.基于拍卖算法建立的目标分配模型,采用C语言编程实现,最后通过算例验证模型的正确性.该算法计算量小、优化性好,应用范围广,具有极大的.实用价值.

作 者:柳鹏 高杰 刘扬 LIU Peng GAO Jie LIU Yang 作者单位:柳鹏,LIU Peng(军械工程学院,河北,石家庄,050003)

高杰,GAO Jie(军械工程学院,63961部队,北京,100000)

刘扬,LIU Yang(中国电子科技集团第54研究所,河北,石家庄,050002)

循序渐进 优化算法 篇6

师:刚才我们学习了两位数加一位数,同学们想到了两种方法,你最喜欢哪一种?

生1:我最喜欢第二种。(先算4+9=13,再算20+13=33)

生2:我最喜欢第一种。(先算24+6=30,再算30+3=33)

生3:我也喜欢第二种。

师:是的,先把个位数和个位数相加比较简便。在今后计算时我们要学习运用。

在数学课堂中教师对算法多样化的关注度较高,也很重视算法的优化。那么,算法优化的主体是谁,学生还是教师,值得我们深思。

一、算法优化强求不得

算法的优化是指学生结合自己的生活经验和已有知识水平,在多样的算法中找到一个自己认为最好的、最为合适的过程。生活经验基于学生的层次,而非教师。在优化的过程中,教师只是一个旁观者,一个参与者,或者是一个等待者,观察着学生参与优化的表现,教师是唤醒、点拨,等待着优化算法的诞生。

对于算法优化,教师应在学生学情的基础上鼓励去比较,但不要强求。

一位教师教学 “165-97”的简便算法时,先出示例题,然后小组讨论汇报:

生1:165-97=165-100+3=68;

生2:165-97=160-97+5=68;

生3:165-97=167-97-2=68;

生4:165-97=165-95-2=68;

生5:165-97=100-97+65=68。

因为教材中使用的是第一种,所以教师直接在黑板上板书“多减几要加几”,接着学生齐读。用此方法进行练习,该教师的方法值得商榷。

青菜萝卜,各有所爱,一把钥匙开一把锁。也许教师从众多的算法中挑出一个最简单可行的算法是轻而易举的,但作为学生来说,对一般性算法的筛选和认可有着各自独到的认识和理解。教师应将主动权还给学生,允许他们出现不一样的声音,允许拥有个性化的思维,允许在课堂上存异,只要他们掌握方法即可。

二、算法优化着急不得

建构主义强调,学习中不同个体存在着时间差和路径差。差异,客观存在且不可回避。差异,既是教育的基础,也是学生个性发展的前提。在探索优化算法的过程中,学生之间的能力水平是有很大差异的。部分学生思维敏捷,即使没有教师的点拨或比较,就能优化出算法,但也有学生在教师的点拨中启而不发,山重水复却发现不了柳暗花明的又一村,作为教师不能急于求成。

我在执教“两位数加一位数的进位加法”一课中,学生计算26+8时,有三种思路:(1)6+8=14,20+14=34;(2)26+4=30,30+4=34;(3)22+8=30,30+4=34。学生对于上学期的“凑十法”印象深刻,使用(2)、(3)方法的学生居多,而第(1)种思路对后续学习将起到更大的积极作用。每一种方法我都挑选了一个学生说出解题的思路,接着出示三组题目:

A:6+7=? 26+7=? B:5+9=? 65+9=? C:7+8=? 37+8=?

学生在练习时发现,使用(2)、(3)方法有时不但耗时长,而且计算时会出现遗漏,练习、实践后,学生感悟出了第(1)种方法的优点。

心急吃不了热豆腐,学习亦如此。所以在优化过程中,教师可以采取一定的措施,力争在学习结束时帮助学生感悟出并学会优化的算法。

三、算法优化“重比重悟”

算法优化的过程是一个促进学生学会反思、自我完善的过程。教师要为学生提供足够的时间和充分交流的机会,让其进行讨论交流,进而去发现最优的算法;或者安排学生汇报算法,知其然更要知其所以然,从而“悟出”属于自己的最佳方法。

在执教两位数乘以两位数的简便运算时,学生在做26×35时,小组代表汇报本组的计算方法,共出现以下四种方法:

(1)26× 35=910(用竖式计算);(2) 26×35 =26×30+26×5=780+130=910;(3)26×35=20×35+6×35=700+210=910;(4)26×35=26×5×7=130×7=910。

哪种方法更简单高效?在交流中,学生发现第(1)种竖式法需要笔算,不能算简单方法;第(2)、(3)、(4)种解题方法则是一种“再创造”。通过“转化”,把“两位数乘两位数”这个新问题转化成了两位数乘整十数、两位数乘一位数的“旧知识”,从而顺利地解决了问题。

在教学中,教师应做有心人,让学生对方法进行简单的反思、比较和归类。学生是课堂真正的主人,算法优化应该由学生说了算。教师应该在课堂上充分明确自己的角色地位,及时梳理,及时引导,避免学生走入思维的误区,让算法优化的过程缩水。

多一分宽容,算法多样化才能让课堂异彩纷呈;多一分耐心,算法优化才能让课堂精妙绝伦;多一分引导,算法优化才能让课堂绽放和谐之花。

算法优化是实现程序优化的关键 篇7

解决一个问题, 算法不必是唯一的。对表示问题的数据的不同组织方式 (数据结构) , 解决问题的不同策略 (算法思想) 将导致不同的算法。解决同一问题的不同算法, 消耗的时间和空间资源量有所不同。算法运行所需要的计算机资源的量称为算法的复杂性。一般来说, 解决同一问题的算法, 需要的资源量越少, 我们认为越优秀。计算算法运行所需资源量的过程称为算法复杂性分析, 简称为算法分析。所以一个优秀的算法要考虑正确性分析、时空效率分析、时空特征分析。

正确性分析:一个算法必须正确才有存在的意义。但什么样的算法是正确的呢?正确的第一要素是能够终结, 能够终结意味着如果输入或输出有限, 则算法将在有限步骤内终结;如果输入或输出无限, 则算法也就无需终结。比如计算圆周率π的算法在正常情况下就不应该终结, 除非我们告诉这个算法仅就按到小数点后的某特定位。算法正确的第二个要素是能够得出合理的结果, 即这个结果能够与实际世界相符合, 或者至少不相矛盾。在一般情况下, 一个算法运行的结果是否正确比较容易判断。例如, 排序算法是否正确, 可以通过检查排好序后的数据是否真是按照非递增或非递减排列来判断。但也存在某些情况, 正确性的判断并不直接。还是用π作例子, 计算π的有效位的算法是否正确就不是一件简单的事情。因为π的正确值由无限位构成, 任何计算出有限位的算法都不正确, 但计算无限位的算法则无法终结, 也就不可能计算出最后的结果。

时空效率分析:一个算法只有正确性并无太多意义。一个让人等上几百年的算法。就是在正确, 也不会令我们满意。因此, 算法的速度是非常重要的, 甚至在广义上可以判为正确性的一部分。当然, 这里的速度是一个抽象概念, 指的是算法计算所需要的的步骤, 而不是具体的多少小时、多少分钟等。除了速度外, 一个算法在实现的时候需要占用的空间也是一个考虑的问题。这里的空间指的是内存, 可以是物理内存, 也可以是虚拟内存, 但不包括磁盘。空间的节省可能转换为时间的节省。在其他因素相同的情况下, 节省空间的算法更优。

可读性分析:时空特性分析也是我们要考虑的, 例如稳定性、健壮性、实现难易性等, 一个算法在实现主要目的的同时, 还能实现一些附加目的, 那么这种算法就比只实现主要目的的算法更优例如, 在排序时, 有的算法是稳定的, 即值相等的数据其相对位置保持不变;有的是不稳定的, 即相等数据的相对位置在排序的过程中有可能发生变化。那么稳定的属性就是一个附件属性。另外, 算法还应该考虑到现实的难易性问题。有的算法在抽象上非常精妙, 但在具体实现起来则可能存在诸如难以理解、难以在计算机上表示、编程困难等问题。这样的算法就不如那种容易理解、容易表示、容易编程的算法好。

前面我们讨论了算法分析的重要性及算法分析的三个方面, 那如何进行算法设计呢?在设计上必须注重下面几个问题:

正确性:通过设计算法的运算, 最后能得到正确的结果。要考察一个算法的正确性, 最简单的方法就是设置各种条件的测试数据去测试。

步骤尽可能少:对于解决同一问题的多种算法, 执行时间短的算法效率高。要考察一个算法的执行效率, 通常关注算法进行的基本操作次数。例如, 对于嵌套循环, 若能减少一层嵌套, 其内循环执行的次数经显著减少, 效率将提高。

实现尽可能简单:最简单的算法往往不是最高效的, 其执行时间可能较长。但算法的简单性使程序的可读性增强, 易于调试和维护。考察算法的简单性时, 应考虑大多数程序员都能很好地理解程序。

空间占用尽可能少:在运算空间极其稀缺的情况下, 一个算法如果占用太大的空间是不经济的。比如, 我们用计算机计算1到100的加法, 如果用常规算法, 以此累加结果为5050, 比较耗时资源和占用空间资源。当然了, 我们从感觉上体会不出来。而用一简单算法, 1+100=101, 2+99=101, 判断一下一共50个101, 用101*50=5050, 就得出正确结果。从空间和时间上都是经济的。

算法多样化与最优化的和谐统一 篇8

一、鼓励算法多样化

从新课程理念的角度看:数学是为了每一位学生的发展, 让每一位学生都得发展。学生算法多样化了, 我们是应该鼓励的, 这样能够释放学生的创新思维。在低年级教学34-19时, 在放手让学生试算时, 学生中出现了多种方法, 有用竖式计算的, 有运用以前不退位减法的知识转化过来的, 如34-14-5=15、34-20+1=15、39-19-5=15。在解决这一计算的过程中, 不同的学生学到了不同的数学, 更多的学生体验到了成功的快乐。有了算法多样化, 就有了讨论交流的必要, 从而形成生生互动, 师生互动。

在高年级计算练习中有这样的一题:undefined, 要求是:能简算的要简算。

方法1:undefined

方法2:undefined

方法3:undefined

这样的几种做法, 我觉得都不错, 学生都是经过认真思考的, 值得肯定。简便计算的方法本就不是唯一的。在学生独立思考解决的基础上, 再让学生发表自己的观点, 倾听同学的解法, 进行交流、争论。并对一些基本的运算通过多种方式达到熟练。算法多样化的根本目的并不是让学生得到自己最喜欢的方法, 而是在于让学生感受解决问题策略的多样性, 并形成解决问题的基本策略。当然对学生在课堂上出现的算法多样化, 教师在课前要做充分的准备, 要能估计到学生会有什么什么样的答案, 才能在课堂上游刃有余, 对学生的想法才能作出客观的评价, 保护学生的有意义的、有价值的创新思维。

二、提倡算法最优化

鼓励算法多样化是尊重学生的个性需求, 是为学生留下更大的思考空间, 但多样化不等于不优化, 特别是对一些不利于学生今后发展、未经学生充分思索得出的学习方法, 就需要具体的指导。

以学生思维凭借的依据看, 可以分为基于动作的思维、基于形象的思维、基于符号与逻辑的思维。显然这三种思维并不在同一层次上, 不在同一层次上的算法就应该提倡优化, 而且必须优化, 在学生充分发表自己想法的同时, 教师组织学生讨论比较, 找出多种方法的区别, 选择出比较好而且又适合自己的方法。

即使有时是教材编排的算法, 但在实际教学中学生中没有出现, 即学生已经超越了的“低思维层次算法”, 教师可以不再出示, 没有必要走回头路。

例如有这样一条题目:黑板长34分米, 宽12分米, 在周围围花边, 花边至少长多少分米?

方法1: 34+12+34+12=92 (分米) 。

方法2: 34+34+12+12=92 (分米) 。

方法3: 34×2+12×2=92 (分米) 。

方法4: (34+12) ×2=92 (分米) 。

这样的四种方法都是对的, 都可以得到正确的结果。但这四种做法有着明显的优劣, 思维的凭借不在同一个层次上。像这里的方法1和方法2如果学生没有出现就没有必要引导学生做出这样的方法, 毕竟那是比较低层次的思维。方法4的优点是显而易见的。这里就要让学生通过讨论、交流让学生体验和感悟到它的优点, 并接受和运用。

当然教师在肯定其中一种方法的时候, 也要肯定其他方法的长处。

三、多样化的基础上巧妙最优化

什么是最优化?也就是在多种方法之中最好的那一种。所以要想最优化, 必须先有多样化。如果只有一种方法何以看出它的优来?比如上面提到的花边问题:如果没有前面的三种方法作比较也看不出第四种方法的优点啊!

再比如说, 我们在中高年级计算中作为重点教学的简便计算。为什么会有简便计算, 就是因为有比较繁琐的计算。“简”是相对于“繁”来说的。四则运算有它固定的运算顺序:先乘除后加减, 有括号的先算括号中的。我们在教学乘法和加法的运算定律之前, 学生已经能对四则运算进行计算了, 简便计算与不简便计算的计算结果是一样, 不同的只是过程。正因为有了前面的按顺序计算与运用运算定律计算两种不同方法的比较, 我们才看出了简便计算的优点。最优化是要以多样化为基础的, 最优化是多样化的升华。既然有好的方法, 我们有什么理由不用呢!通过这样的比较与提升, 学生的思维不断深入, 在热烈的交流中知己知彼, 智慧的火花不断闪现, 碰撞, 这样的学生交流才会有实效。这样的计算教学才会有实效。

我们也应该认识到从算法多样化到最优化是孩子们自己体验和感悟的过程。算法的最优化也要讲究一定的方法, 当一个学生想出了自己的方法时, 他从心理上对别人的方法就会有一种抵触的情绪。如果在优化的时候一下子否定了他们的做法会对他们形成打击, 因此我们不一定在一节课上择决出最优的方法, 可以在练习中进一步比较。

如在下面“一个数除以分数”的教学中, 当学生在自己的独立思考、猜测、验证、计算的基础上, 提出了许多的计算方法, 再经历优化会效果就会更好一些。以“9÷”为例:

方法undefined (化小数)

方法undefined (商不变性质)

方法undefined (归一)

方法undefined (分数÷整除的迁移)

方法undefined

这时我们可以不急于择决, 而是让学生继续练习:如:undefined然后再次请学生把各自的计算方法展示出来, 然后进行质疑, 说说你对这些算法的感受。结果来了, 学生发现:解法①具有一定的局限性, 当分数不能化成有限小数时, 计算会出现近似数;解法②③都可以适用, 但比较麻烦;解法④⑤适用于各种题型, 而且操作起来方便, 并且解法⑤可以转化为解法④。所以, 分数除法的计算方法都可以归结到“一个数除以分数等于这个数除以这个分数的倒数”的规则。在多样化的基础上实现了比较自然的优化。

算法多样化与优化是既对立又统一的, 算法多样化追求思维的多样性和广阔性, 算法最优化强调的是计算方法的单一性和思维方式的集中性;但两者又是统一的, 算法多样化为算法的比较提供了对象, 为最优化方法的形成提供了依据, 才能使学生真正体会到怎样的方法是最优的;最优算法的形成又为提高学生思维的灵活性、深刻性和多样化打下良好的基础。关键是如何来把握优化的时机和过程, 如何处理优化与多样化算法的关系。

最优化算法 篇9

随着课改的不断深入, 部分教师在运用此理念的过程中走入了一些误区.

误区一:把“提倡算法多样化”理解为“一定要算法多样化”

案例两位数减一位数的退位减法.

首先教师通过问题情境出示例题“33-8”.然后在学生独立思考后, 教师组织交流算法的过程中, 在教师精心“引导”、一再追问下, 出现了多种算法:

算法一:33-3=30, 30-5=25.

算法二:33-10=23, 23+2=25.

算法三:13-8=5, 20+5=25.

……

老师:小朋友, 真了不起, 想出了这么多种计算的方法, 以后在计算时, 你喜欢用哪种方法就用哪种方法.

反思上述案例反映了在计算教学中老师对算法多样的认识模糊.算法多样化应是一种态度, 是一个过程, 算法多样化不是教学的最终目的, 不能片面追求形式化.老师不必煞费苦心“索要”多样化的算法, 也不必为了体现多样化, 刻意引导学生寻求“低思维层次算法”.即使有时是教材编排的算法, 但在实际教学中学生中没有出现, 即学生已经超越了“低思维层次算法”, 教师可以不再出示, 没有必要走回头路.片面地追求算法的数量, 而忽视算法背后所代表的学生真实的思维状态, 就很容易把学生引入钻牛角尖和生拼硬凑的误区, 对学生的发展是非常不利的.

误区二:把“算法多样化”理解为“一题多解”

案例苏教版第十一册“根据比例尺求图上距离或实际距离”.

教师出示例7:在一幅比例尺为1∶8000的地图上, 明华小学到少年宫的图上距离是5厘米, 实际距离是多少厘米?学生试做.交流汇报的过程中, 学生出现多种算法, 并都说出了自己的解题思路.

方法三:

解:设明华小学到少年宫的实际距离是x厘米.

方法四:

解:设明华小学到少年宫的实际距离是x米.

师:同学们, 对于以上的几种方法你们都理解吗?下面请同学们用刚才所介绍的几种方法来完成下面练习.

反思上述案例中老师显然误把“算法多样化”理解为“一题多解”.“一题多解”追求的是学生个体方法的多样化, 要求学生个体用多种方法解决同一问题;“算法多样化”追求的是学生群体方法的多样化, 是每一名学生经过自己独立的思考和探索, 提出各自的方法, 对某一个体学生而言, 方法可能只有一种, 但对众多学生而言, 方法就呈现出多样化.笔者认为我们不能简单地将“算法多样化”与“一题多解”混为一谈, 提倡算法多样化并非让学生掌握每一种算法, 而是要通过反馈交流、评价沟通, 让学生体验、学习别人的思维活动的成果, 掌握适合自己的一种或几种算法.这样才能呵护学生主体意识、创新意识, 实现“不同的人在数学上得到不同的发展”.

误区三:把“算法的优化”理解为“方法的固定化”

【案例】解决实际问题中, 学生尝试计算“25×12”的积在交流计算方法的过程中, 学生中出现了多种计算方法:

师:同学们真厉害, 一下子就想出了这么多的方法, 在这些方法中, 你最喜欢哪种方法?

生1:我觉得第一种方法简单, 25×2=50, 比较简单.

生2:我喜欢用第二种方法.

生3:第三种方法使用了乘法分配率, 使计算简便.……

师:其实前面四种方法都使用了运算定律, 使计算简便, 但是, 我们在用简便方法计算时, 凑成整百数最简便, 所以运用第二种方法比较好.下面请同学们运用第二种方法来练一练24×25.

最优化算法 篇10

在工程技术和科学计算中,经常会遇到求解数值积分∫abf(x)dx,除了几种有限类型外,被积函数f(x)往往很难甚至无法求出它的原函数,即使有的原函数能求出来,但是也相当麻烦不适宜于计算,这时常常需要借助近似方法求解近似数值解。数值积分虽然计算方法很多,如梯形求积方法[1]、抛物线求积方法[1]、Newton-Cotes方法、Romberg 方法、Gauss 方法等[2],但这些传统方法都有一定的局限性。其中梯形求积方法和抛物线求积方法适用于光滑性较差的被积函数,但是对于其它被积函数精度较低;Newton-Cotes方法是一种利用插值多项式来构造数值积分的常用方法,但高阶Newton-Cotes方法的收敛性没有保证;Romberg方法虽然收敛速度快,计算精度较高,但是计算量较大;Gauss方法积分精度高、数值稳定、收敛速度较快,但节点与系数的计算较困难。针对这些问题,本文基于对基本人工鱼群算法进行改进提出一种基于人工鱼群算法的优化分割数值积分算法。通过仿真实验与传统的数值积分方法比较表明新算法十分有效,可以看作是传统方法的补充和拓展,在工程中有较大的应用价值。

1 人工鱼群算法

1.1 基本人工鱼群算法

在一片水域中,鱼往往能自行或尾随其它鱼找到营养物质多的地方,因而鱼生存数目最多的地方一般就是本水域中营养物质最多的地方。人工鱼群算法AFSA(Artificial Fish-school Algorithm)[3]就是根据鱼群上述特点提出的一种新型仿生优化算法,通过构造人工鱼来模仿鱼群的觅食、聚群、追尾及随机行为,从而实现寻优,是群体智能思想[4]的一个具体应用。它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工鱼个体的局部寻优行为,最终使全局最优值突现出来。作为一种新型的全局寻优策略,它已应用于时变系统的在线辩识、鲁棒PID的参数整定和优化前向神经网络中,取得了较好的效果。

然而随着优化问题的复杂性,基本AFSA在应用中也存在不足:当寻优的空间维数高或区域较大或处于变化平坦的区域时收敛于全局最优解的速度减慢,搜索性能劣化,甚至会陷入局部极小;算法一般在优化初期收敛快,后期却往往较慢;得到的解是满意解,精度不高。因此在具体应用中常常要对它进行改进。

1.2 柯西变异人工鱼群算法

Gunter[5]通过理论分析表明柯西变异算子具有较强的局部逃逸能力。为了增强人工鱼群算法在高维复杂环境下的全局搜索能力和提高搜索效率,本文在基本人工鱼群算法中引入柯西变异算子来对人工鱼的状态Xi=(xi1,xi2,...,xin)进行变异,定义如下:

Xi=Xi·[1+k·Cauchy(0,1)] (1)

其中Cauchy(0,1)的一维概率密度函数为f(x)=1π11+x2,-<x<+,k是随迭代由1线性减为0的变量,迭代前期变异幅度大,后期变异幅度小。

ξ是[0, 1]上的服从均匀分布的随机变量,由随机变量生成函数定理[6],Cauchy(0,1)的柯西分布的随机变量生成函数为 η=tan[(ξ-0.5)π]。

为判断随迭代次数增加搜索结果是否有改进,种群迭代后将种群中最优鱼的状态的函数值与公告板[7]进行比较,如果优于公告板,则取代公告板状态。当在连续两次迭代过程中公告板没有改变或变化极小时,此时我们看作鱼群迭代停滞,则启用变异操作。此算法CMAFSA(Artificial Fish-school Algorithm Based on Cauchy Mutation)流程如下:

Step1 初始化群体:在控制变量可行域内随机生成Np条人工鱼,形成初始鱼群。

Step2 公告板赋初值:计算初始鱼群各人工鱼当前状态的函数值y,取y为最小值者进入公告板,并将此鱼位置状态也赋值给公告板。

Step3 行为选择:各人工鱼分别模拟追尾行为和聚群行为,评价行动后的值,选择y值较小的行为实际执行,缺省行为方式为觅食行为。

Step4 公告板更新:种群迭代后,如果种群最优鱼状态的y优于公告板的y,则更新公告板。

Step5 变异条件判断:若公告板在连续两次迭代过程没有改变或变化极小(<η),则执行Step6;否则执行Step7。

Step6 变异操作:用历史最优鱼替换当前群体的最差鱼形成中间种群,对中间种群的人工鱼按式(1)变异,计算变异后各状态的函数值与公告板比较,若优,更新公告板。

Step7 终止条件判断:判断是否已达到预置的最大迭代次数MaxIteration或判断最优值是否达到了满意的误差界内(<ε),若不满足,执行Step3,进行下一代鱼群优化过程;否则执行Step8。

Step8 算法终止:输出最优解(即公告板中人工鱼状态和函数值)。

1.3 CMAFSA性能测试

本文用一个典型的高维(30维)、多峰函数Ackley来测试CMAFSA的性能。算法参数设置如下:Np=100,Try_number=30,δ=0.618, η=10-4,最大迭代次数200次, Visual=5,Step=0.5。独立测试5次(随机生成5个初始群体分别用AFSA和CMAFSA运行), 运行结果如表1和图1(为了便于比较, 图中纵坐标是5次的每代最优值的平均值的常用对数)所示。

从表1和图1可以看出AFSA在优化高维、多峰问题时效果很差,而CMAFSA的精度、收敛速度、稳定性有了非常明显的提高,实际上5次实验中CMAFSA最差的一次是在第114(从图1也可看出)代达到了理论最优值。

2基于人工鱼群算法的优化分割数值积分算法

在数值积分abf(x)dxi=1nf(ξi)Δxi的近似计算中,分割的优劣和f(ξi)的替代对求解结果的精度有很大的影响。我们的基本思想是在积分区间[a,b]上用柯西变异人工鱼群算法搜到一个最优的分割,考虑到函数值的变化关系和曲线的弯曲情况,在得到的最优分割对应的小区间上用一个合适的值代替f(ξi)来达到近似计算,算法步骤如下:

Step1 确定人工鱼个体的表达式:Xi=(x1,x2,...,xn),其中xi为积分区间[a,b]内的随机n个节点。

Step2 鱼群初始化:在[a,b]内随机生成Np条人工鱼, 形成初始鱼群。实际上就是在[a,b]上产生Np个随机分割。

Step3 公告板赋初值:计算初始鱼群各人工鱼当前状态的函数值y,取y为最小值者进入公告板,并将此鱼位置状态也赋值给公告板。其中函数值是这样计算的:将人工鱼的状态值置于积分区间的左端点和右端点之间,各自按照升序排好顺序。这样,积分区间[a,b]总共有n+2个节点和n+1个小区间,然后分别计算这n+2个节点相邻节点之间的长度Δxi,i=1, 2, …,n+1。再计算出这n+2个节点对应的函数值和每个小区间中点的函数值。找出每个小区间左端点、中点和右端点的函数值中的最小值wi和最大值Wi,i=1,2,…,n+1,则该个体所对应的函数值y=i=1n+1|Wi-wi|Δxi

Step4 行为选择:各人工鱼分别模拟追尾行为和聚群行为,评价行动后的值,选择y值较小的行为实际执行,缺省行为方式为觅食行为。

Step5 公告板更新:种群迭代后,如果种群最优鱼状态的y优于公告板的y,则更新公告板。

Step6 变异条件判断:若公告板在连续两次迭代过程没有改变或变化极小(<η),则执行Step7;否则执行Step8。

Step7 变异操作:用历史最优鱼替换当前群体的最差鱼形成中间种群,对中间种群的人工鱼按式(1)变异,计算变异后各状态的函数值与公告板比较,若优,更新公告板。

Step8 鱼群算法终止条件判断:判断是否已达到预置的最大迭代次数MaxIteration或判断y的最优值是否达到了满意的误差界内(<ε),若不满足,执行Step4,进行下一代鱼群优化过程;否则执行Step9。

Step9 得到最优人工鱼个体状态(xbest1,xbest2,...,xbestn),这n个数同a,b一起排序,从而得到最优分割。

Step10 输出积分abf(x)dxi=1n+1f¯iΔxbesti。其中f¯i是最优分割所得到的n+1个小区间每个区间左、右端点和三点对应的函数值的加权平均f¯i=fi+4f+fi6,Δxbesti是最优分割所对应小区间的长度。

3 积分仿真实验与分析

为了检验本文提出的数值积分算法的有效性和正确性,本文给出的一些实例,以下仿真均在Matlab 7.0下编程运行。参数设置如下:Np=50,Try_number=20,δ=0.618, η=10-4,ε=10-4,最大迭代次数200次,Visual=0.1,Step=0.01, n=100。每个函数独立运行5次,并与传统的梯形法、Simpson方法、Composite Simpson方法、Romberg方法和神经网络等比较。

例1 分别计算被积函数x2,x4,1+x2,11+x,sin(x),ex六个函数在[0,2]上的积分。与文献[8,9]的结果统计比较如表2所示。

由表2看出传统方法中只有Simpson法在求解函数x2时的结果优外,其他的在这6个函数上效果都不好,而本文的算法对每个函数均独立运行5次皆是精确值,可见精度高且很稳定。

例2 计算积分:

01e-x2dx

被积函数的原函数不是初等函数,本文算法(参数设置同前)5次运算与文献[9]分别用矩形法、梯形法、Simpson法给出结果统计如表3所示。

由表3看出对于被积函数的原函数不是初等函数的函数,本文的算法也是相当有效的。

例3 计算积分:

0481+(cosx)2dx

用传统的方法Romberg比较麻烦,不易处理,文献[9]用神经网络算法得到的结果是58.5205,文献[10]用Composite Simpson rule计算的结果是58.47082,而此积分的精确值是58.4704691。由于此被积函数是一个以π为周期的函数,48=15π+(48-15π),此积分可化为:

0481+(cosx)2dx=150π1+(cosx)2dx+048-15π1+(cosx)2dx

用本文的算法(参数设置同前)运行5次求得的积分值的最差值是58.47046674929646,最佳值是58.47046909676099,平均值是58.47046871265326,由此看出对于Romberg方法不易处理的函数积分,本文的算法也是很优的。

例4 计算奇异函数:

f(x)={e-x0x<1e-x21x<2e-x32x3

在[0,3]上的积分该函数的积分精确值是1.546036,文献[9]用神经网络算法算得的结果是1.5467。用本文的算法(参数设置同前)运行5次求得的积分值的最差值是1.54554025335573,最佳值是1.54606116448507,平均值是1.54600370898978,可见本文算法也可求解奇异函数的积分。

4 结 论

本文在分析传统数值积分和人工鱼群算法的基础上提出了一种求解定积分数值解的新算法,此算法对被积函数没有太多的限制,通过四组积分算例实验表明此方法十分有效,此方法可以看作是传统方法的补充和拓展。在优化区间的每一段上如何再处理以及用此算法计算重积分是我们下一段要做的工作。

摘要:在分析传统求数值积分和基本人工鱼群算法不足的基础上,提出了一种基于人工鱼群算法的优化分割数值积分算法,该算法不仅能求解通常意义下函数的数值积分,还能计算奇异函数的数值积分。通过算例与传统数值积分方法比较,实验结果表明该算法是可行的和有效的。

关键词:人工鱼群算法,柯西变异,优化分割,数值积分

参考文献

[1]华东师范大学数学系.数学分析[M].北京:高等教育出版社,2001.

[2]薛密.数值数学和计算[M].上海:复旦大学出版社,1991.

[3]李晓磊,邵之江,钱积新.一种基于动物自治体的寻优模式:鱼群算法[J].系统工程理论与实践,2002,22(11):32-38.

[4]Bonabeau E,Theraulaz G.SwarmSmarts[J].Scientific American,2000,282(3):72-79.

[5]Gunter R.Local convergence rates of simple evolutionary algorithms withCauchy mutation[J].IEEE Transactions on Evolutionary computation,1997,4(1):249-258.

[6]王梓坤.概率论基础及其应用[M].北京:科技出版社,1979.

[7]李晓磊,路飞,田国会,等.组合优化问题的人工鱼群算法应用[J].山东大学学报:工学版,2004,34(5):64-67.

[8]Burden R L,Faires J D.Numerical Analysis[M].7th Edition.Brooks/Cole,Thomson Learning,Inc,2001:190.

[9]王小华,何怡刚,曾喆昭.三角基函数神经网络算法在数值积分中的应用[J].电子与信息学报,2004,26(3).

优化算法多样化的思考 篇11

教学案例:

师(出示情境图,左边9支铅笔,右边5支铅笔):一共有多少支铅笔?

(先让学生列出算式,再让学生用喜欢的方法独立计算)

生1:先画9个圆圈,再画5个圆圈,一共画了14个圆圈。

生2:大数记心里,从9往后数,再数5个是14。

生3:把5分成1和4,9+1=10,10+4=14。

生4:把9分成5和4,5+5=10,10+4=14。

生5:10+5=15,9+5=14。

生6:把9看成10,10+5=15,15-1=14。

……

师:同学们非常棒,想出了这么多的算法,这些算法非常好。请同学们说一说,你最喜欢哪种方法?

(很多学生都说喜欢前两种方法,觉得数数的方法容易)

师:用数数的方法来计算比较容易,但数字大了就比较麻烦。老师认为第三、第四种方法好,用“凑十法”计算方便。你可以用自己喜欢的方法计算。

……

问题诊断:

上述教学中,生1、生2是通过数数来计算的,生3、生4是利用“凑十法”来计算的,生5、生6是用推理的方法算出结果的。面对多种算法,教师既没有进行优化,也没有重点引导,任由学生用自己喜欢的方法去计算,导致部分学生对如何计算20以内的进位加法感到茫然。本节课的教学重点是引导学生运用“凑十法”进行计算,教师提出了用“凑十法”计算好,但对怎样运用“凑十法”计算却没有重点引导,这样不仅没有提高学生的计算能力,而且为学生以后学习多位数加法留下隐患。

问题对策:

引导学生选择“凑十法”进行计算,对他们后继学习有长远的影响。生1、生2通过低层次的数数方法进行计算,教师应适时引导或加以制止;生5、生6用推理的方法算出结果值得表扬,教师可以鼓励学有余力的学生运用这种方法进行计算;生3、生4利用“凑十法”计算是本节课的教学重点,教师应重点引导。但利用“凑十法”计算时,究竟是应该“拆小补大”,还是“拆大补小”,教师应借助实物让学生理解,使学生体会到“拆小补大”的方法好,从而引导学生加深对“凑十法”的理解,为后继学习打下良好的基础。

我的设计和教学:

引导学生对各种算法进行讨论、分析、比较,在理解中感悟各种算法的优点,体会“凑十法”中“拆小补大”的基本方法。

(1)出示情境图,让学生独立计算。

(2)反馈学生的计算方法。

(3)讨论交流每种算法。

(4)追问:你认为哪种算法比较好呢?

学生各抒己见,这时教师不直接把自己的意见说出来,而是先肯定各种算法都是好的,表扬学生爱动脑筋的精神。

(5)提问:9+1=10、10+4=14,对这种算法,你是怎么想的?

根据学生的反馈,教师实物演示分铅笔的过程,让学生体会到“凑十法”中“拆小补大”方法的简便性。

(6)引导学生比较各种算法,让学生在比较中深刻体会到“凑十法”中用“拆小补大”方法进行计算的优越性。

(7)师在演示用“凑十法”分铅笔的过程后追问:你想说些什么?(生答略)

师:“凑十法”是一种重要的计算方法,在以后的学习中经常用到。同学们计算时,要学会运用“凑十法”中“拆小补大”的方法。

……

我的思考:

1.鼓励算法多样化,加强优化指导

鼓励算法多样化,并非指方法多多益善为好。不同的学生对同一道计算题有时会想出很多种算法,这时需要教师进行有效、合理的调控和引导。如上述教学中,教师要根据学生的具体情况,指出其中的一种或两种算法好,目的是让学生明确所有的方法中,有些方法是简便的、可取的,如“凑十法”;有些方法虽然是对的,但并不简便或是低层次的,如数数方法,使学生对算法优法达成共识。课堂教学中,教师最忌讳说“用你自己喜欢的方法做”,因为学生自己喜欢的方法不一定是好的方法,也不一定是对以后学习有用的方法。如果学生一直通过数数方法进行计算,就会丢失基础的算法。这里,教师一定要把握好算法优化的时机,让算法优化的过程成为学生不断体验算法和感悟算法的过程。在算法优化的过程中,教师不能强制性地把自己认为最优化的方法传授给学生,而应选择适当的教学策略,引导学生在自我感悟的基础上实现算法优化的目的。同时,“用自己喜欢的方法算”绝不是简单地让学生想怎么算就怎么算。面对多样化的算法,教师应先在分析总结的基础上倡导科学、合理的算法,再让学生想怎么算就怎么算,真正体现算法多样化的本质要求。

2.重视基本算法,形成计算技能

学生掌握基本的计算技能是小学数学课程的重要教学目标之一。课堂教学中,教师应引导学生通过对多种算法的比较,从中择优选取。如上述教学中,生3、生4都是运用“凑十法”进行计算,但生3运用的是“拆小补大”方法,而生4是运用“拆大补小”方法,这时教师应引导学生比较两种“凑十法”的不同,选择较为简便的方法进行计算。算法多样化必须以算法优化为基础,通过引导学生比较算法,从而优选算法,使学生形成基本的算法,为今后学习和提高计算技能打下良好的基础。

3.加强同类练习,巩固优化算法

在计算教学中,让学生经历数学知识的形成和发展过程,促使他们主动体验、积极思考,其中适量的数学练习是必不可少的。如在学生学会“凑十法”中的“拆小补大”方法后,教师可出示9+8、9+7、9+6、8+4、8+5、8+6等同类习题,让学生在练习中进一步体会“凑十法”中“拆小补大”方法的简便性。

4.尊重个体差异,算法因人而异

优化算法并不是统一于一种算法。对于算法优化,教师应鼓励、尊重学生的选择,切勿强求,同时把优化算法的过程作为引导学生主动寻找更好算法的过程。如果有学生通过优化掌握更好的算法,教师应及时给予肯定和鼓励。如上述教学中,学生出现推理的方法后,教师鼓励学生运用这种方法进行计算。同时,教师要允许个别学习有困难的学生暂时用不简便或水平层次低的方法计算,如数数方法。如果有的学生在算法优化过程中暂时找不到最佳方法,教师也不要急于求成,应因材施教,尊重学生的思维,引导学生选择适合自己的方法。鼓励算法多样化,教师应尊重学生自主选择已经优化后的方法,真正体现教学是为了学生发展的宗旨。

计算教学中提倡算法多样化必须以算法的优化为基础,算法优化的过程是一个促进学生学会反思、自我完善的过程。因此,教师应把选择、判断的主动权交给学生,引导学生自主分析、讨论、比较,从而找到属于自己的最佳方法。算法多样化与算法优化,既有利于学生用自己的方法学习数学,让不同的学生在数学上获得不同的发展,也有利于每个学生都可以学好数学。

最优化算法 篇12

自从20世纪60年代末由John H.Holland教授及其学生提出遗传算法 (Genetic Algorithms) 开始, 智能优化方法逐渐成为一个非常活跃的研究领域.经典的智能优化算法主要有遗传算法、蚁群算法、粒子群优化算法、禁忌搜索法和模拟退火法等.台湾的大学教师潘文超博士最近提出一种新的智能优化算法——果蝇优化算法[1,2] (Fruit Fly Optimization Algorithm, FOA) .

一、果蝇优化算法

1. 算法原理

果蝇优化算法是一种模仿果蝇觅食行为的寻优新方法.果蝇寻找食物先依靠灵敏的嗅觉判断与食物的大致距离, 再利用视觉向食物方向靠近.多个果蝇一起觅食就构成一种群体智能寻优算法.

2. 算法过程

模仿果蝇搜寻食物的特性, 我们可以总结为以下几个主要步骤.

(1) 设果蝇群体规模为popsize, 随机初始果蝇群体位置 (x0, y0) .如果给定初始寻优范围, 可将此范围中点最为群体初始位置.

(2) 令果蝇群体在随机方向和距离 (xi, yi) (i=1, 2, …, popsize) 处利用嗅觉搜索.

其中rand表示一般的随机数.

(3) 计算味道浓度判定值, 即果蝇到原点距离的倒数.

(4) 将各个味道浓度判定值代入味道浓度判定函数fitness (或适应值函数) , 并找出群体最优果蝇位置和最优值 (以最小化最优问题为例) .

(5) 判断最优结果是否达到要求.若是, 则停止;若否, 果蝇群体利用视觉向最优果蝇位置飞去, 并将此位置作为群体位置, 即重置.

(6) 进入果蝇迭代寻优, 执行步骤 (2) ~ (4) , 并判断最优值是否优于前一迭代的最优值, 若是则执行步骤 (5) , 否则继续执行步骤 (2) ~ (4) .

3. 参数设置

影响果蝇优化算法的收敛速度的主要因素有初始点、种群大小和迭代步长.

一般而言, 初始点给的越精确, 种群规模越大, 迭代过程越平稳, 越早到达最优位置.增加迭代次数会使结果更精确, 但耗时更长, 并不能提高收敛速度;增加步长会使收敛速度加快, 但同时会影响搜索精度.

二、模型改进

1. 参数改进分析

种群初始点是初始条件, 无法通过算法来改进.增加种群规模虽可以提高收敛速度, 但同时会增加计算量并且提高程度有限 (见例1) .如何选取适当步长成为提高收敛程度的关键.

2. 步长改进原理

果蝇群体在初始位置 (x0, y0) 随机搜索方式为

其中h为搜索步长, rand为0~1之间的 (伪) 随机数.由于味道浓度判定值

考虑到yi也是待确定坐标, 因此xi的搜索数量级应在±1/Si.加上yi的影响, 可以用±k/Si作为步长 (k一般取0.1~10) .随机搜索方向2h*rand-h变化范围在 (-h, h) 上, 所以步长取

其中, Si是已知的群体最优味道浓度判定值.

三、实例分析

1. 一元函数优化问题

例1 min f (x) =-5+x^2 x属于 (-10, 10) .

应用常规FOA算法得到迭代结果如图2, 种群规模分别为20和30.

种群规模为20时, 迭代到75次函数值达到1e-4精度.种群规模为30时, 迭代到68次达到1e-4精度.可见增加种群规模对其收敛速度改进不大.

变步长FOA算法经过两步迭代即可达到1e-4精度, 收敛非常快, 步长加速效果很明显.

2. 多元函数优化问题

潘文超的相关著作中只提到关于一元函数的极值优化, 这里类似引入多元函数应用FOA求解最优值.

若种群规模为popsize, 初始群组位置 (n维) 为x0=[x1, x2, …, xn], 步长h=[h1, h2, …, hn], 群组随机搜索位置 (Matlab代码) 的坐标分别为

其中i=1, 2, …, popsize.

改进的变步长FOA多元函数优化问题只需令

其中bestindex为种群最优值的索引.

例2 Rosenbrock函数 其中, xi∈[-2.048, 2.048], 这里取D=3.

该函数全局最优点位于一个平滑、狭长的抛物线形山谷内, 由于函数为优化算法提供的信息比较有限, 使算法很难辨别搜索方向, 查找最优解也变得十分困难.函数在 (x1, x2, …, xn) = (1, 1, …, 1) 处可以找到极小值0.

常规FOA方法迭代时间较长, 效果不佳, 其原因主要在于步长固定, 不能产生有效的种群随机搜索位置 (不能产生比过去最优位置更好的位置) .

常规FOA方法在最优值进行到1附近后很难继续提高精度, 而变步长FOA方法 (这里取k=0.25) 的最优值与理论最优值的误差则以指数速度缩减, 运行时间约0.35秒.

使用遗传算法工具箱 (种群规模:20, 精度:1e-2) , 经过500次迭代后的结果如下表所示.

由上可见, 经过变步长的FOA算法收敛速度大大提高.相同条件下, 在处理多元函数求最值中此方法也比遗传算法表现要好.

四、小结

相比遗传算法和粒子群算法, FOA算法原理简便, 计算快速, 易于实现.改进的变步长FOA算法在一元函数和多元函数 (Rosenbrock函数) 的最优化实例中收敛速度和计算时间都大大提高且优于遗传算法, 可作为求解各类优化问题的一种实用高效的智能方法.

参考文献

[1]潘文超.果蝇最佳化演算法——最新演化式计算技术[M].沧海书局, 2011.

[2]潘文超.应用果蝇优化算法优化广义回归神经网络进行企业经营绩效评估[J].太原理工大学学报, 2011 (29) , 4:1-5.

[3]汪定伟, 王俊伟, 王洪峰等.智能优化方法[M].高等教育出版社, 2007:20-55.

[4]张琳, 郑忠, 高小强.多峰函数优化的混合遗传算法[J].重庆大学学报 (自然科学版) , 2005 (28) , 7:51-54.

[5]Pan, W.T., 2011.A new fruit fly optimizationalgorithm:Taking the financial distress model as an example, Knowledge-Based Systems, In Press.

[6]Eberhart, R.C.and Kennedy, J., new optimizerusing particle swarm theory, Proc, Sixth InternationalSymposium on Nagoya, Japan:39-43.

[7]Pan, W.T.A new evolutionary computation approach:Fruit Fly Optimization Algorithm[C].2011 Conference ofDigital Technology and innovation Management Taipei, 2011.

上一篇:信息的发展历程下一篇:半物理仿真平台