粒子群算法优化不同维数的连续函数以及离散函数的最小值问题.

粒子群算法优化不同维数的连续函数以及离散函数的最小值问题.
粒子群算法优化不同维数的连续函数以及离散函数的最小值问题.

引言 (2)

一、问题描述 (3)

1.1 函数优化问题 (3)

1.2 粒子群算法基本原理 (3)

二、算法设计 (5)

2.1算法流程框图 (5)

2.2 算法实现 (5)

2.3 算法的构成要素 (6)

2.4 算法的改进 (7)

三、算例设计 (8)

3.1 测试函数介绍 (8)

3.2 优化函数特点 (8)

四、仿真实验设计 (10)

4.1 实验参数设计 (10)

4.2 基本粒子群算法在测试函数中应用 (11)

五、仿真实验结果分析 (12)

5.1 实验结果汇总 (12)

5.2 实验结果分析 (13)

六、总结与展望 (14)

6.1总结 (14)

6.2展望 (14)

附录一 (15)

附录二 (17)

引言

本文主要利用粒子群算法解决连续函数以及离散函数的最小值问题,粒子群优化是一种新兴的基于群体智能的启发式全局搜索算法,粒子群优化算法通过粒子间的竞争和协作以实现在复杂搜索空间中寻找全局最优点。它具有易理解、易实现、全局搜索能力强等特点,倍受科学与工程领域的广泛关注,已经成为发展最快的智能优化算法之一。

惯性权重是PSO标准版本中非常重要的参数,可以用来控制算法的开发(exploitation)和探索(exploration)能力。惯性权重的大小决定了对粒子当前速度继承的多少。较大的惯性权重将使粒子具有较大的速度,从而有较强的探索能力;较小的惯性权重将使粒子具有较强的开发能力。关于惯性权重的选择一般有常数和时变两种。算法的执行效果很大程度上取决于惯性权重的选取。

本文介绍了粒子群优化算法的基本原理,分析了其特点,并将其应用于函数优化问题求解。此外,本文根据惯性权重对粒子群优化算法性能影响的研究,提出了三种不同的惯性权重。通过仿真实验,验证了各自的收敛性.同时也说明了惯性权重在粒子群优化算法中有很大的自由度。

一、问题描述

1.1 函数优化问题

目标优化问题可以描述为:

f(1)S

max x

)

(

x∈

或:)

m i n x

f(2)S

(

x∈

这里S→Rn称为搜索空间,f(x):S→Rn称为目标函数。

(1)式描述的优化问题称为极大化问题,(2)式描述的称为极小化问题。

当把f(x)看成是一序列的函数时,上述的问题就转变为多目标优化问题。

对很多实际问题进行数学建模后,可将其抽象为一个数值函数的优化问题。由于问题种类的繁多、影响因素的复杂,这些数学函数会呈现出不同的数学特征,比如连续的、离散的、凸的、凹的、单峰值的、多峰值的函数等等,经常遇到的函数还有这些不同数学特征的组合,除了在函数是连续、可求导、低阶的简单情况下可解析地求出其最优解外,大部分情况需要通过数值计算方法来进行近似优化计算。尽管人们对这个问题研究了很多年,但至今仍无一种既能处理各种不同的复杂函数、又具有良好求解结果的数值计算方法。特别是当问题的规模比较大时,优化计算时的搜索空间急剧扩大,人们认识到要严格地求出其最优解不太现实。所以需要研究出一种能够在可接受的时间和可接受的精度范围内求出数值函数近似最优解的方法或通用算法。粒子群优化由于其算法的简单,易于实现,无需梯度信息,参数少等特点在连续优化问题和离散优化问题中都表现出了良好的效果,特别是因为其天然的实数编码特点适合于处理实优化问题。近年来成为国际上智能优化领域研究的热门。

1.2 粒子群算法基本原理

粒子群优化算法PSO(Particle Swarm Optimization)是一种基于群体的自适应的搜索优化方法。是由James Kennedy和Eberhart在1995年提出的。PSO 中,

每个优化问题的潜在解都是搜索空间中的一只鸟,称之为粒子。所有的粒子都有一个由被优化的函数决定的适值( fitness value) ,每个粒子还有一个速度决定它们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。

PSO 初始化为一群随机粒子(随机解),然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己;第一个就是粒子本身所找到的最优解,这个解称为个体极值;另一个极值是整个种群目前找到的最优解,这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。

假设在一个D 维的目标搜索空间中,有N 个粒子组成一个群落,其中第i 个粒子表示为一个D 维的向量

)

,,,(21iD i i i x x x X =,N i ,,2,1 =。

第i 个粒子的“飞行 ”速度也是一个D 维的向量,记为

)

,,21i iD i i v v v V ,(=,3,2,1 =i 。

第i 个粒子迄今为止搜索到的最优位置称为个体极值,记为

)

,,,(21iD i i best p p p p =,N i ,,2,1 =。

整个粒子群迄今为止搜索到的最优位置为全局极值,记为

)

,,,(21gD g g best p p p g =

在找到这两个最优值时,粒子根据如下的公式(1.1)和( 1.2)来更新自己的速度和位置:

())

(2211id gd id id id id x p r c x p r c v w v -+-+*= (1.1)

id

id id v x x += (1. 2)

其中:1c 和2c 为学习因子,也称加速常数(acceleration constant),1r 和2r 为[0,1]范围内的均匀随机数。式(1.1)右边由三部分组成,第一部分为“惯性(inertia)”或“动量(momentum )”部分,反映了粒子的运动“习惯(habit)”,代表粒子有维持自己先前速度的趋势;第二部分为“认知(cognition)”部分,反映了粒子对自身历史经验的记忆(memory)或回忆(remembrance),代表粒子有向自身历史最佳位置逼近的趋

势;第三部分为“社会(social)”部分,反映了粒子间协同合作与知识共享的群体历史经验。

二、算法设计

这部分内容主要是针对本文主要研究问题的类型确定粒子群算法具体实现过程和一些参数的选择。

2.1算法流程框图

2.2 算法实现

算法的流程如下:

① 初始化粒子群,包括群体规模N ,每个粒子的位置i x 和速度i V ② 计算每个粒子的适应度值][i F it ;

③ 对每个粒子,用它的适应度值][i F it 和个体极值)(i p best 比较,如果)(][i p i F best it > ,则用][i Fit 替换掉)(i best p ;

④ 对每个粒子,用它的适应度值][i Fit 和全局极值b e s t g 比较,如果

)(][i p i F b e s t it >则用][i F it 替best g ;

⑤ 根据公式(1.1),(1.2)更新粒子的速度i v 和位置i x ;

⑥ 如果满足结束条件(误差足够好或到达最大循环次数)退出,否则返回②。

2.3 算法的构成要素

对于构成粒子群算法的各个参数进行设定。本算法中主要的参数变量为惯性权值w ,学习因子1c ,2c ,群体的大小 N ,迭代次数 M ,粒子维数 D 。 (1)群体大小

通常,群体太小则不能提供足够的采样点,以致算法性能很差,容易陷入局部最优;群体太大尽管可以增加优化信息,阻止早熟收敛的发生,但无疑会增加计算量,造成收敛时间太长,表现为收敛速度缓慢。本文对函数的优化选择种群规模为500。

(2)最大迭代次数

迭代次数越多能保证解的收敛性,但是影响运算速度,本文对函数的优化选最大迭代次数为1000次。 (3)惯性权值

惯性权重w 表示在多大程度上保留原来的速度。w 较大,全局收敛能力强,局部收敛能力弱;w 较小,局部收敛能力强,全局收敛能力弱。 (4)学习因子

加速常数1c 和2c 分别用于控制粒子指向自身或邻域最佳位置的运动。建议

0.421≤+=c c φ,并通常取221==c c 。本文中取221==c c 。

(5)粒子维数

粒子维数取决于待优化函数的维数,例如本文主要有三个函数主要:第一个函数是2维的,第二个函数是10维的,第三个函数是30维的。

(6)粒子空间的初始化

较好的选择粒子初始化空间,将大大缩短收敛的时间。在本文中我们主要是选用随机对粒子进行初始化。

2.4 算法的改进

对于函数的优化我们主要选择的是对于惯性权重的优化。惯性权重是粒子优化算法的重要参数,算法的成败很大程度上就取决于参数的选取和调节,本文采用固定权重、时变权重和随机权重三种权重。 (1)固定权重

即赋予惯性权重以一个常数值,一般来说,该值在0和1之间。固定的惯性权重使粒子在飞行中始终具有相同的探索和开发能力。显然对于不同的问题,获得最好优化效果的常数是不同的,要找到这个值需要大量的实验。通过实验发现:种群规模越小,需要的惯性权重越大,因为此时种群需要更好的探索能力来弥补粒子数量的不足,否则粒子极易收敛;种群规模越大,需要的惯性权重越小,因为每个例子可以更专注于搜索自己附近的区域。 (2)时变权重

希望粒子群在飞行开始的时候具有较好的探索能力,随着迭代次数的增加,特别是在飞行后期,希望有较好的开发能力。所以使用动态调节惯性权重。可以通过时变的惯性权重来实现。设惯性权重的取值范围为:],[max min ωω,最大迭代次数为max _Iter ,则第i 次迭代时的惯性权重可以为:

i Iter i ?--

=max

_min

max max ωωωω

(3)随机权重

随机权重是在一定范围内随机取值,在本文中我们采用的是:

2

5.0Random

+

其中Random 为0-1之间的随机数。这样惯性指数将在0.5-1之间随机变化。均值为0.75。对于动态优化问题来说,不能够预测在给定的时间粒子群于要更好的探索能力还是更好的开发能力。所以,可以使惯性权重在一定范围内随机变化。 需要说明的是,本文的程序允许改变除惯性权重以外的其他参数,因为本文编写的程序参照MATLAB 工具箱,留给用户解决这类问题一个接口函数,上述的各个参数正是接口函数的参数,因此允许改变。另外对于c 也可采用变参数法,即随迭代次数增加,利用经验公式使它们动态调整,本文采用固定值。

三、算例设计

3.1 测试函数介绍

本文主要选取三个函数:一个2维连续函数、一个10离散函数、一个30维离散函数,利用MATLAB 编写粒子群算法程序来优化它们。本文选取了三个函数,分别如下:

()()()

2

22

212

22

2

11001.015.0sin

5.0x x

x

x f ++-+-

=

)10)2cos(10(210

1

2+-=∑=i i i x x f π

∑∏==+-=

301

30

1

231)cos(

4000

1i i i i i

x x f

其中f1求最大值,f2和f3为求最小值。

3.2 优化函数特点

(1)Schaffer 函数:()()()

2

22

212

22

211001.015.0sin

5.0x x

x

x f ++-+-

=求其最大值。

目标函数的效果图如图3.1下:

图3.1 Schaffer 函数的效果图

由图知此函数是个二维函数,常用于测试粒子群算法性能的测试函数,全局在(0,0)处取得最大值,具有强烈震荡的状态,而在Xi (-3.14,3.14)范围内,有无限个次全局最大点。

(2)Rastrigrin 函数:)10)2cos(10(210

12+-=∑=i i i x x f π

目标函数的效果图如图3.2所示:

图3.2 Rastrigrin 函数的效果图

由图知此函数是10维多峰值函数,存在大量按正弦拐点排列的、很深的局部最优点。其在(0,0,…0)处取得全局最小值,在Xi ∈(-5.12,5.12)范围内大约有10个局部极小点,不难优化查找到全局最优值。

(3)Girewank 函数:∑∏==+-=

30

1

30

1

231)cos(

4000

1i i i i

i x x f

目标函数的效果图如图3.3所示:

图3.3 Girewank 函数的效果图

由图知此函数为一个多峰值函数,为30维函数,变量之间有相互关系,该函数有很多局部最优点,其全局最优点全局最小值在(X 1,X 2,……Xn )=(0,0,……0)取得,目标函数最优为0。

四、仿真实验设计

4.1 实验参数设计

(1)权重参数设计

本文对每个测试函数将使用三种不同的惯性权重策略进行实验,分别为固定

权重:6.0=ω;随机权重:2

5.0Random +=ω;时变权重:

i Iter i ?--

=max

_min

max max ωωωω,其中2.09.0min max ==ωω,。

(2)其他参数设计

对于Schaffer 函数,种群规模N=500,最大迭代次数M=1000,学习因子

221==c c ,1f 函数是2维的,粒子维数取21

=D 。对于Rastrigrin 函数,种群规模

N=500,最大迭代次数M=1000,学习因子221==c c ,2f 函数是10维的,粒子维数。102=D 对于Girewank 函数,种群规模N=500,最大迭代次数M=1000,学习因子221==c c ,3f 函数是30维,粒子维数303=D 。

4.2 基本粒子群算法在测试函数中应用

以Schaffer 函数、Rastrigrin 函数、Girewank 函数为例来说明基本粒子群算法在函数优化中问题中的效果。

步骤1:首先依据基本粒子群算法的流程图编写粒子群算法的MATLAB 程序(见附录一);

步骤2:分别编写各个函数的适应值函数程序(见附录二);

步骤3:在MATLAB 环境中用基本粒子群算法分别调用三个函数的适应值程序,得到收敛效果图。

Schaffer 函数、Rastrigrin 函数、Girewank 函数的收敛效果图分别如图4.1、4.2、4.3所示:

0.9988

0.9992

0.9994

0.9996

0.9998

图4.1 Schaffer 函数收敛效果图

图4.2 Rastrigrin 函数收敛效果图

0.01

0.02

0.03

0.04

0.05

0.06

0.07

图4.3 Girewank 函数收敛效果图

五、仿真实验结果分析

5.1 实验结果汇总

表1统计了固定迭代次数为1000次时,三个测试函数分别在固定权重、随机权重和时变权重三种惯性权重策略下求解的平均值和最差的的一次求解结果。

表1 算法运行100次搜索到的解的平均值和最差值

惯性权重 Schaffer Griewank Rastrigrin 平均值

最差值

平均值 最差值

平均值

最差值

固定权重 6.0=ω 1

1

8.26

16.91 1.82e-006 2.04e-005

随机权重

25.0Random

+

=ω 1 1 6.21 15.92 2.14e-006 1.74e-005

时变权重

i Iter i ?--

=max

_min

max max ωωωω

1 1 7.7

2 18.9 3.20e-009 2.16e-008

5.2 实验结果分析

惯性权重是粒子群优化算法标准版本的重要参数,算法的成败很大程度上取决于该参数的选取和调节。本文重点研究了惯性权重对优化效果的影响。从表1可以看出,(1)在其他参数选择适当的条件下,利用三种不同惯性权重策略的PSO 算法得到的平均值和最差值相差不太,较为稳定。(2)固定权重、随机权重以及时变权重对Schaffer 函数都具有较好的优化效果,并能较快地迭代到最优值。(2)对于Rastrigrin 函数,三种惯性权重策略下都未能搜索到目标函数的理想最优点,但相比之下利用随机权重进行函数优化具有较好的效果,时变权重并未取得比固定权重好的优化效果。(3)对于多峰函数Girewank 函数,惯性权重采用时变权重优化效果明显比固定权重、时变权重好,取得了不错的收敛结果。

六、总结与展望

6.1总结

本文主要用粒子群算法优化不同维数的连续函数以及离散函数的最小值问题,主要有以下几个方面:

⑴首先介绍了粒子群的算法在智能优化中的地位,也介绍了粒子群算法的主要特点,并通过对粒子群算法的学习和了解为下面粒子群改进算法在对不同维数的函数优化问题打下了很好的基础。

⑵其次对粒子群算法解决最优化问题的统一框架进行了分析,在此基础上提出了粒子群优化算法的设计步骤;又对粒子群优化算法的原理进行了分析,从而对粒子群算法有了更深刻的了解。

⑶最后将基本的粒子群算法与改进的粒子群算法分别对函数的优化问题在MATLAB中进行了仿真,从而将基本算法和改进算法在函数优化问题中的仿真结果进行了对比,从而验证了改进算法的相对优越性,并且验证了改进算法的实际可行性。

6.2展望

本文中主要利用改变权重的方法来对函数进行优化,实际用粒子群算法对函数进行优化还有很多方法:改变邻域拓扑结构、改变学习因子,对于离散函数的优化可以采用二进制编码和顺序编码来实现同时也可以使用基于遗传策略和梯度信息的集中改进方法例如:基于选择的改进算法。基于交叉的改进算法、基于变异的改进算法、带有梯度加速的的改进算法,同时智能优化方法处理约束的一般性策略都可以借鉴到粒子群算法中,也可以根据粒子群优化的特性来设计专门的约束处理方式,可以通过以上的优化方法来解决函数优化问题。

附录一

主函数

%fitness-是要优化的目标函数,N-种群数,c1,c2-学习因子,w-惯性权重,M-迭代次数,D-粒子维数。

format long;

%初始化种群

%c1=2;

%c2=2;

%N=500;

%w=0.6;

%M=1000;

c1=2;

c2=2;

N=500;

%w=0.6;

M=1000;

D=30;

x=randn(N,D); %随机初始化位子y=randn(N,D);

v=randn(N,D); %随机初始化速度

p=rand(N,1);

%先计算各个粒子的适应度,并初始化pi-粒子个体极值和pg-全局极值

for i=1:N

p(i)=fitness(x(i,:));

y(i,:)=x(i,:);

end

pg = x(N,:); %pg为全局极值

for i=1:(N-1)

if fitness(x(i,:))<(pg)

pg=x(i,:);

end

end

%进入粒子群算法主要循环

for t=1:M

%wmin=0.2;wmax=0.9;w=wmax-(wmax-wmin)/M*t

for i=1:N

w=0.5*randn(0,1)/2;

v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:));

x(i,:)=x(i,:)+v(i,:);

if fitness(x(i,:))

p(i)=fitness(x(i,:));

y(i,:)=x(i,:);

end

if p(i)

pg=y(i,:);

end

end

Pbest(t)=fitness(pg);

end

xm = pg';

fv = fitness(pg);

t=[1:M];

plot(t,Pbest)

%------最后给出计算结果

disp('*************************************************************') %Solution=pg';

disp(pg')

disp(fitness(pg))

%Result=fitness(pg,D);

disp('*************************************************************') %------算法结束---DreamSun GL & HF-----------------------------------

附录二

三个测试函数的适应值函数程序

function f=fitness(x)

%f=sum(x.^2);

%f=0.5-(sin(sqrt(sum(x.^2)))^2-0.5)/(1+0.001*(sum(x.^2)))^2; %f=sum(x.^2-10*cos(pi*2*x)+10);

f1=1;

for i=1:30

f1=f1*cos(x(i)/sqrt(i));

end

f=1/4000*sum(x.^2)-f1+1;

end

粒子群优化算法综述

粒子群优化算法综述 摘要:本文围绕粒子群优化算法的原理、特点、改进与应用等方面进行全面综述。侧重于粒子群的改进算法,简短介绍了粒子群算法在典型理论问题和实际工业对象中的应用,并给出了粒子群算三个重要的网址,最后对粒子群算做了进一步展望。 关键词;粒子群算法;应用;电子资源;综述 0.引言 粒子群优化算法]1[(Particle Swarm Optimization ,PSO)是由美国的Kenned 和Eberhar 于1995年提出的一种优化算法,该算法通过模拟鸟群觅食行为的规律和过程,建立了一种基于群智能方法的演化计算技术。由于此算法在多维空间函数寻优、动态目标寻优时有实现容易,鲁棒性好,收敛快等优点在科学和工程领域已取得很好的研究成果。 1. 基本粒子群算法]41[- 假设在一个D 维目标搜索空间中,有m 个粒子组成一个群落,其中地i 个粒子组成一个D 维向量,),,,(21iD i i i x x x x =,m i ,2,1=,即第i 个粒子在D 维目标搜索空间中的位置是i x 。换言之,每个粒子 的位置就是一个潜在的解。将i x 带入一个目标函数就可以计算出其适 应值,根据适应值得大小衡量i x 的优劣。第i 个粒子的飞翔速度也是一个D 维向量,记为),,,(21iD i i i v v v v =。记第i 个粒子迄今为止搜索到的最优位置为),,,(21iD i i i p p p p =,整个粒子群迄今为止搜索到的最优位置为),,,(21gD gi g g p p p p =。 粒子群优化算法一般采用下面的公式对粒子进行操作

)()(22111t id t gd t id t id t id t id x p r c x p r c v v -+-+=+ω (1) 11+++=t id t id t id v x x (2) 式中,m i ,,2,1 =;D d ,,2,1 =;ω是惯性权重, 1c 和2c 是非负常数, 称为学习因子, 1r 和2r 是介于]1,0[间的随机数;],[max max v v v id -∈,max v 是常数,由用户设定。 2. 粒子群算法的改进 与其它优化算法一样PSO 也存在早熟收敛问题。随着人们对算 法搜索速度和精度的不断追求,大量的学者对该算法进行了改进,大致可分为以下两类:一类是提高算法的收敛速度;一类是增加种群多样性以防止算法陷入局部最优。以下是对最新的这两类改进的总结。 2.1.1 改进收敛速度 量子粒子群优化算法]5[:在量子系统中,粒子能够以某一确定的 概率出现在可行解空间中的任意位置,因此,有更大的搜索范围,与传统PSO 法相比,更有可能避免粒子陷入局部最优。虽然量子有更大的搜索空间,但是在粒子进化过程中,缺乏很好的方向指导。针对这个缺陷,对进化过程中的粒子进行有效疫苗接种,使它们朝着更好的进化方向发展,从而提高量子粒子群的收敛速度和寻优能力。 文化粒子群算法]6[:自适应指导文化PSO 由种群空间和信念空间 两部分组成。前者是基于PSO 的进化,而后者是基于信念文化的进化。两个空间通过一组由接受函数和影响函数组成的通信协议联系在一起,接受函数用来收集群体空间中优秀个体的经验知识;影响函数利用解决问题的知识指导种群空间进化;更新函数用于更新信念空间;

粒子群优化算法及其参数设置

毕业论文 题目粒子群算法及其参数设置专业信息与计算科学 班级计算061 学号3060811007 学生xx 指导教师徐小平 2016年 I

粒子群优化算法及其参数设置 专业:信息与计算科学 学生: xx 指导教师:徐小平 摘要 粒子群优化是一种新兴的基于群体智能的启发式全局搜索算法,粒子群优化算法通过粒子间的竞争和协作以实现在复杂搜索空间中寻找全局最优点。它具有易理解、易实现、全局搜索能力强等特点,倍受科学与工程领域的广泛关注,已经成为发展最快的智能优化算法之一。论文介绍了粒子群优化算法的基本原理,分析了其特点。论文中围绕粒子群优化算法的原理、特点、参数设置与应用等方面进行全面综述,重点利用单因子方差分析方法,分析了粒群优化算法中的惯性权值,加速因子的设置对算法基本性能的影响,给出算法中的经验参数设置。最后对其未来的研究提出了一些建议及研究方向的展望。 关键词:粒子群优化算法;参数;方差分析;最优解 II

Particle swarm optimization algorithm and its parameter set Speciality: Information and Computing Science Student: Ren Kan Advisor: Xu Xiaoping Abstract Particle swarm optimization is an emerging global based on swarm intelligence heuristic search algorithm, particle swarm optimization algorithm competition and collaboration between particles to achieve in complex search space to find the global optimum. It has easy to understand, easy to achieve, the characteristics of strong global search ability, and has never wide field of science and engineering concern, has become the fastest growing one of the intelligent optimization algorithms. This paper introduces the particle swarm optimization basic principles, and analyzes its features. Paper around the particle swarm optimization principles, characteristics, parameters settings and applications to conduct a thorough review, focusing on a single factor analysis of variance, analysis of the particle swarm optimization algorithm in the inertia weight, acceleration factor setting the basic properties of the algorithm the impact of the experience of the algorithm given parameter setting. Finally, its future researched and prospects are proposed. Key word:Particle swarm optimization; Parameter; Variance analysis; Optimal solution III

(完整word版)基本粒子群算法的原理和matlab程序

基本粒子群算法的原理和matlab程序 作者——niewei120(nuaa) 一、粒子群算法的基本原理 粒子群优化算法源自对鸟群捕食行为的研究,最初由Kennedy和Eberhart提出,是一种通用的启发式搜索技术。一群鸟在区域中随机搜索食物,所有鸟知道自己当前位置离食物多远,那么搜索的最简单有效的策略就是搜寻目前离食物最近的鸟的周围区域。PSO 算法利用这种模型得到启示并应用于解决优化问题。PSO 算法中,每个优化问题的解都是粒子在搜索 空间中的位置,所有的粒子都有一个被优化的目标函数所决定的适应值,粒子还有一个速度值决定它们飞翔的方向和距离,然后粒子群就追随当前的最优粒子在解空间中搜索。 PSO 算法首先在给定的解空间中随机初始化粒子群,待优化问题的变量数决定了解空间的维数。每个粒子有了初始位置与初始速度。然后通过迭代寻优。在每一次迭代中,每个粒子通过跟踪两个“极值”来更新自己在解空间中的空间位置与飞翔速度。第一个极值就是单个粒子本身在迭代过程中找到的最优解粒子,这个粒子叫做个体极值。另一个极值是种群所有粒子在迭代过程中所找到的最优解粒子,这个粒子是全局极值。上述的方法叫全局粒子群算法。如果不用种群所有粒子而只用其中一部分作为该粒子的邻居粒子,那么在所有邻居粒子中的极值就是局部极值,该方法称为局部PSO 算法。 速度、位置的更新方程表示为: 每个粒子自身搜索到的历史最优值p i ,p i=(p i1,p i2,....,p iQ),i=1,2,3,....,n。所有粒子搜索到的最优值p g,p g=(p g1,p g2,....,p gQ),注意这里的p g只有一个。 是保持原来速度的系数,所以叫做惯性权重。 是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为2。 是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。 是[0,1]区间内均匀分布的随机数。 是对位置更新的时候,在速度前面加的一个系数,这个系数我们叫做约束因子。通常设 置为1 。

粒子群算法综述

粒子群算法综述 【摘要】:粒子群算法(pso)是一种新兴的基于群体智能的启发式全局搜索算法,具有易理解、易实现、全局搜索能力强等特点,倍受科学与工程领域的广泛关注,已得到广泛研究和应用。为了进一步推广应用粒子群算法并为深入研究该算法提供相关资料,本文对目前国内外研究现状进行了全面分析,在论述粒子群算法基本思想的基础上,围绕pso的运算过程、特点、改进方式与应用等方面进行了全面综述,并给出了未来的研究方向展望。 【关键词】:粒子群算法优化综述 优化理论的研究一直是一个非常活跃的研究领域。它所研究的问题是在多方案中寻求最优方案。人们关于优化问题的研究工作,随着历史的发展不断深入,对人类的发展起到了重要的推动作用。但是,任何科学的进步都受到历史条件的限制,直到二十世纪中期,由于高速数字计算机日益广泛应用,使优化技术不仅成为迫切需要,而且有了求解的有力工具。因此,优化理论和算法迅速发展起来,形成一门新的学科。至今已出现线性规划、整数规划、非线性规划、几何规划、动态规划、随机规划、网络流等许多分支。这些优化技术在诸多工程领域得到了迅速推广和应用,如系统控制、人工智能、生产调度等。随着人类生存空间的扩大,以及认识世界和改造世界范围的拓宽,常规优化法如牛顿法、车辆梯度法、模式搜索法、单纯形法等已经无法处理人们所面的复杂问题,因此高效的

优化算法成为科学工作者的研究目标之一。 1.粒子群算法的背景 粒子群算法(particle swarm optimization,pso)是一种新兴的演化算法。该算法是由j.kennedy和r.c.eberhart于1995年提出的一种基于群智能的随机优化算法。这类算法的仿生基点是:群集动物(如蚂蚁、鸟、鱼等)通过群聚而有效的觅食和逃避追捕。在这类群体的动物中,每个个体的行为是建立在群体行为的基础之上的,即在整个群体中信息是共享的,而且在个体之间存在着信息的交换与协作。如在蚁群中,当每个个体发现食物之后,它将通过接触或化学信号来招募同伴,使整个群落找到食源;在鸟群的飞行中,每只鸟在初始状态下处于随机位置,且朝各个方向随机飞行,但随着时间推移,这些初始处于随机状态的鸟通过相互学习(相互跟踪)组织的聚集成一个个小的群落,并以相同的速度朝着相同的方向飞行,最终整个群落聚集在同一位置──食源。这些群集动物所表现的智能常称为“群体智能”,它可表述为:一组相互之间可以进行直接通讯或间接通讯(通过改变局部环境)的主体,能够通过合作对问题进行分布求解。换言之,一组无智能的主体通过合作表现出智能行为特征。粒子群算法就是以模拟鸟的群集智能为特征,以求解连续变量优化问题为背景的一种优化算法。因其概念简单、参数较少、易于实现等特点,自提出以来已经受到国内外研究者的高度重视并被广泛应用于许多领域。

粒子群算法的研究现状及其应用

智能控制技术 课程论文 中文题目: 粒子群算法的研究现状及其应用姓名学号: 指导教师: 年级与专业: 所在学院: XXXX年XX月XX日

1 研究的背景 优化问题是一个古老的问题,可以将其定义为:在满足一定约束条件下,寻找一组参数值,使系统的某些性能指标达到最大值或最小值。在我们的日常生活中,我们常常需要解决优化问题,在一定的范围内使我们追求的目标得到最大化。为了解决我们遇到的最优化问题,科学家,们进行了不懈的努力,发展了诸如牛顿法、共轭梯度法等诸多优化算法,大大推动了优化问题的发展,但由于这些算法的低运行效率,使得在计算复杂度、收敛性等方面都无法满足实际的生产需要。 对此,受达尔文进化论的影响,一批新的智能优化算法相继被提出。粒子群算法(PSO )就是其中的一项优化技术。1995 年Eberhart 博士和Kennedy 博士[1]-[3]通过研究鸟群捕食的行为后,提出了粒子群算法。设想有一群鸟在随机搜索食物,而在这个区域里只有一块食物,所有的鸟都不知道食物在哪里。那么找到食物最简单有效的办法就是鸟群协同搜寻,鸟群中的每只鸟负责离其最近的周围区域。 粒子群算法是一种基于群体的优化工具,尤其适用于复杂和非线性问题。系统初始化为一组随机解,通过迭代搜寻最优值,通过采用种群的方式组织搜索,同时搜索空间内的多个区域,所以特别适合大规模并行计算,具有较高的效率和简单、易操作的特性。 目前使用的粒子群算法的数学描述[3]为:设粒子的寻优空间是m 维的,粒子的数目为ps ,算法的最大寻优次数为Iter 。第i 个粒子的飞行速度为T i i1i2im v [v v ]= ,,,v ,位置为T i i1i2im x [x x x ]= ,,,,粒子的个体极值T i i1i2im Pbest [,]P = ,P ,P ,全局极值为 T i i1i2im Gbest [,]g = ,g ,g 。 粒子群算法的寻优过程主要由粒子的速度更新和位置更新两部分组成,其更新方式如下: i+11122v ()()i i i i i v c r Pbest x c r Gbest x =+?+?; i+1i+1i x x v =+, 式中:12c c ,为学习因子,一般取2;12r r ,是均与分布着[0,1]上的随机数。

基本粒子群算法的matlab源程序

主函数源程序(main.m) %------基本粒子群优化算法(Particle Swarm Optimization)-----------%------名称:基本粒子群优化算法(PSO) %------作用:求解优化问题 %------说明:全局性,并行性,高效的群体智能算法 %------初始格式化--------------------------------------------------clear all; clc; format long; %------给定初始化条件---------------------------------------------- c1=1.4962;%学习因子1 c2=1.4962;%学习因子2 w=0.7298;%惯性权重 MaxDT=1000;%最大迭代次数 D=10;%搜索空间维数(未知数个数) N=40;%初始化群体个体数目 eps=10^(-6);%设置精度(在已知最小值时候用) %------初始化种群的个体(可以在这里限定位置和速度的范围)------------for i=1:N for j=1:D x(i,j)=randn;%随机初始化位置 v(i,j)=randn;%随机初始化速度 end end %------先计算各个粒子的适应度,并初始化Pi和Pg----------------------for i=1:N p(i)=fitness(x(i,:),D); y(i,:)=x(i,:); end pg=x(1,:);%Pg为全局最优 for i=2:N if fitness(x(i,:),D) pg=x(i,:); end end %------进入主要循环,按照公式依次迭代,直到满足精度要求------------for t=1:MaxDT for i=1:N v(i,:)=w*v(i,:)+c1*rand*(y(i,:)-x(i,:))+c2*rand*(pg-x(i,:)); x(i,:)=x(i,:)+v(i,:); if fitness(x(i,:),D) p(i)=fitness(x(i,:),D); y(i,:)=x(i,:);

粒子群算法和遗传算法比较

粒子群算法(PSO)和遗传算法(GA)都是优化算法,都力图在自然特性的基础上模拟个体种群的适应性,它们都采用一定的变换规则通过搜索空间求解。PSO和GA的相同点: (1)都属于仿生算法。PSO主要模拟鸟类觅食、人类认知等社会行为而提出;GA主要借用生物进化中“适者生存”的规律。 (2)都属于全局优化方法。两种算法都是在解空间随机产生初始种群,因而算法在全局的解空间进行搜索,且将搜索重点集中在性能高的部分。 (3)都属于随机搜索算法。都是通过随机优化方法更新种群和搜索最优点。PSO 中认知项和社会项前都加有随机数;而GA的遗传操作均属随机操作。 (4)都隐含并行性。搜索过程是从问题解的一个集合开始的,而不是从单个个体开始,具有隐含并行搜索特性,从而减小了陷入局部极小的可能性。并且由于这种并行性,易在并行计算机上实现,以提高算法性能和效率。 (5)根据个体的适配信息进行搜索,因此不受函数约束条件的限制,如连续性、可导性等。 (6)对高维复杂问题,往往会遇到早熟收敛和收敛性能差的缺点,都无法保证收敛到最优点。 PSO和GA不同点 (1)PSO有记忆,好的解的知识所有粒子都保存,而GA没有记忆,以前的知识随着种群的改变被破坏。 (2)在GA算法中,染色体之间相互共享信息,所以整个种群的移动是比较均匀地向最优区域移动。PSO中的粒子仅仅通过当前搜索到最优点进行共享信息,所以很大程度上这是一种单项信息共享机制,整个搜索更新过程是跟随当前最优解的过程。在大多数情况下,所有粒子可能比遗传算法中的进化个体以更快速度收敛于最优解。 (3)GA的编码技术和遗传操作比较简单,而PSO相对于GA,不需要编码,没有交叉和变异操作,粒子只是通过内部速度进行更新,因此原理更简单、参数更少、实现更容易。 (4)在收敛性方面,GA己经有了较成熟的收敛性分析方法,并且可对收敛速度进行估计;而PSO这方面的研究还比较薄弱。尽管已经有简化确定性版本的收敛性分析,但将确定性向随机性的转化尚需进一步研究。 (5)在应用方面,PSO算法主要应用于连续问题,包括神经网络训练和函数优化等,而GA除了连续问题之外,还可应用于离散问题,比如TSP问题、货郎担问题、工作车间调度等。

粒子群优化算法介绍及matlab程序

粒子群优化算法(1)—粒子群优化算法简介 PSO算法就是模拟一群鸟寻找食物的过程,每个鸟就是PSO中的粒子,也就是我们需要求解问题的可能解,这些鸟在寻找食物的过程中,不停改变自己在空中飞行的位置与速度。大家也可以观察一下,鸟群在寻找食物的过程中,开始鸟群比较分散,逐渐这些鸟就会聚成一群,这个群忽高忽低、忽左忽右,直到最后找到食物。这个过程我们转化为一个数学问题。寻找函数y=1-cos(3*x)*exp(-x)的在[0,4]最大值。该函数的图形如下: 当x=0.9350-0.9450,达到最大值y=1.3706。为了得到该函数的最大值,我们在[0, 4]之间随机的洒一些点,为了演示,我们放置两个点,并且计算这两个点的函数值,同时给这两个点设置在[0, 4]之间的一个速度。下面这些点就会按照一定的公式更改自己的位置,到达新位置后,再计算这两个点的值,然后再按照一定的公式更新自己的位置。直到最后在y=1.3706这个点停止自己的更新。这个过程与粒子群算法作为对照如下: 这两个点就是粒子群算法中的粒子。 该函数的最大值就是鸟群中的食物。 计算两个点函数值就是粒子群算法中的适应值,计算用的函数就是粒子群算法中的适应度函数。 更新自己位置的公式就是粒子群算法中的位置速度更新公式。 下面演示一下这个算法运行一次的大概过程: 第一次初始化 第一次更新位置

第二次更新位置 第21次更新 最后的结果(30次迭代) 最后所有的点都集中在最大值的地方。

粒子群优化算法(2)—标准粒子群优化算法 在上一节的叙述中,唯一没有给大家介绍的就是函数的这些随机的点(粒子)是如何运动的,只是说按照一定的公式更新。这个公式就是粒子群算法中的位置速度更新公式。下面就介绍这个公式是什么。在上一节中我们求取函数y=1-cos(3*x)*exp(-x)的在[0, 4]最大值。并在[0,4]之间放置了两个随机的点,这些点的坐标假设为x1=1.5,x2=2.5;这里的点是一个标量,但是我们经常遇到的问题可能是更一般的情况—x 为一个矢量的情况,比如二维z=2*x1+3*x22的情况。这个时候我们的每个粒子均为二维,记粒子P1=(x11,x12),P2=(x21,x22),P3=(x31,x32),......Pn=(xn1,xn2)。这里n 为粒子群群体的规模,也就是这个群中粒子的个数,每个粒子的维数为2。更一般的是粒子的维数为q ,这样在这个种群中有n 个粒子,每个粒子为q 维。 由n 个粒子组成的群体对Q 维(就是每个粒子的维数)空间进行搜索。每个粒子表示为:x i =(x i1,x i2,x i3,...,x iQ ),每个粒子对应的速度可以表示为v i =(v i1,v i2,v i3,....,v iQ ),每个粒子在搜索时要考虑两个因素: 1. 自己搜索到的历史最优值 p i ,p i =(p i1,p i2,....,p iQ ),i=1,2,3,....,n ; 2. 全部粒子搜索到的最优值p g ,p g =(p g1,p g2,....,p gQ ),注意这里的p g 只有一个。 下面给出粒子群算法的位置速度更新公式: 112()()()()k k k k i i i i v v c rand pbest x c rand gbest x ω+=+??-+??-, 11k k k i i i x x av ++=+. 这里有几个重要的参数需要大家记忆,因为在以后的讲解中将会经常用到,它们是: ω是保持原来速度的系数,所以叫做惯性权重。1c 是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为2。2c 是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。()rand 是[0,1]区间内均匀分布的随机数。a 是对位置更新的时候,在速度前面加的一个系数,这个系数我们叫做约束因子。通常设置为1。这样一个标准的粒子群算法就介绍结束了。下图是对整个基本的粒子群的过程给一个简单的图形表示。 判断终止条件可是设置适应值到达一定的数值或者循环一定的次数。 注意:这里的粒子是同时跟踪自己的历史最优值与全局(群体)最优值来改变自己的位置预速度的,所以又叫做全局版本的标准粒子群优化算法。

(完整word版)基本粒子群算法的原理和matlab程序.doc

基本粒子群算法的原理和matlab 程序 作者—— niewei120 (nuaa) 一、粒子群算法的基本原理 粒子群优化算法源自对鸟群捕食行为的研究,最初由Kennedy 和 Eberhart 提出,是一种通 用的启发式搜索技术。一群鸟在区域中随机搜索食物,所有鸟知道自己当前位置离食物多远, 那么搜索的最简单有效的策略就是搜寻目前离食物最近的鸟的周围区域。PSO 算法利用这种模型得到启示并应用于解决优化问题。PSO 算法中,每个优化问题的解都是粒子在搜索 空间中的位置,所有的粒子都有一个被优化的目标函数所决定的适应值,粒子还有一个速度值决定它们飞翔的方向和距离,然后粒子群就追随当前的最优粒子在解空间中搜索。 PSO 算法首先在给定的解空间中随机初始化粒子群,待优化问题的变量数决定了解空间的维数。每个粒子有了初始位置与初始速度。然后通过迭代寻优。在每一次迭代中,每个粒子通过跟踪两个“极值”来更新自己在解空间中的空间位置与飞翔速度。第一个极值就是单个粒子本身在迭代过程中找到的最优解粒子,这个粒子叫做个体极值。另一个极值是种群所有粒子在迭代过程中所找到的最优解粒子,这个粒子是全局极值。上述的方法叫全局粒子群算法。如果不用种群所有粒子而只用其中一部分作为该粒子的邻居粒子,那么在所有邻居粒子中的极值就是局部极值,该方法称为局部PSO 算法。 速度、位置的更新方程表示为: 每个粒子自身搜索到的历史最优值p i,p i=(p i1 ,p i2 ,....,p iQ ), i=1,2,3,....,n 。所有粒子搜索到的最优值p g, p g=(p g1 ,p g2,....,p gQ ),注意这里的p g只有一个。 是保持原来速度的系数,所以叫做惯性权重。 是粒子跟踪自己历史最优值的权重系数,它表示粒子自身的认识,所以叫“认知”。通常设置为 2 。 是粒子跟踪群体最优值的权重系数,它表示粒子对整个群体知识的认识,所以叫做“社会知识”,经常叫做“社会”。通常设置为2。 是[0,1] 区间内均匀分布的随机数。 是对位置更新的时候,在速度前面加的一个系数,这个系数我们叫做约束因子。通常设 置为 1 。

粒子群优化算法及其应用研究【精品文档】(完整版)

摘要 在智能领域,大部分问题都可以归结为优化问题。常用的经典优化算法都对问题有一定的约束条件,如要求优化函数可微等,仿生算法是一种模拟生物智能行为的优化算法,由于其几乎不存在对问题的约束,因此,粒子群优化算法在各种优化问题中得到广泛应用。 本文首先描述了基本粒子群优化算法及其改进算法的基本原理,对比分析粒子群优化算法与其他优化算法的优缺点,并对基本粒子群优化算法参数进行了简要分析。根据分析结果,研究了一种基于量子的粒子群优化算法。在标准测试函数的优化上粒子群优化算法与改进算法进行了比较,实验结果表明改进的算法在优化性能明显要优于其它算法。本文算法应用于支持向量机参数选择的优化问题上也获得了较好的性能。最后,对本文进行了简单的总结和展望。 关键词:粒子群优化算法最小二乘支持向量机参数优化适应度

目录 摘要...................................................................... I 目录....................................................................... II 1.概述. (1) 1.1引言 (1) 1.2研究背景 (1) 1.2.1人工生命计算 (1) 1.2.2 群集智能理论 (2) 1.3算法比较 (2) 1.3.1粒子群算法与遗传算法(GA)比较 (2) 1.3.2粒子群算法与蚁群算法(ACO)比较 (3) 1.4粒子群优化算法的研究现状 (4) 1.4.1理论研究现状 (4) 1.4.2应用研究现状 (5) 1.5粒子群优化算法的应用 (5) 1.5.1神经网络训练 (6) 1.5.2函数优化 (6) 1.5.3其他应用 (6) 1.5.4粒子群优化算法的工程应用概述 (6) 2.粒子群优化算法 (8) 2.1基本粒子群优化算法 (8) 2.1.1基本理论 (8) 2.1.2算法流程 (9) 2.2标准粒子群优化算法 (10) 2.2.1惯性权重 (10) 2.2.2压缩因子 (11) 2.3算法分析 (12) 2.3.1参数分析 (12) 2.3.2粒子群优化算法的特点 (14) 3.粒子群优化算法的改进 (15) 3.1粒子群优化算法存在的问题 (15) 3.2粒子群优化算法的改进分析 (15) 3.3基于量子粒子群优化(QPSO)算法 (17) 3.3.1 QPSO算法的优点 (17) 3.3.2 基于MATLAB的仿真 (18) 3.4 PSO仿真 (19) 3.4.1 标准测试函数 (19) 3.4.2 试验参数设置 (20) 3.5试验结果与分析 (21) 4.粒子群优化算法在支持向量机的参数优化中的应用 (22) 4.1支持向量机 (22) 4.2最小二乘支持向量机原理 (22)

利用蚁群算法优化前向神经网络

利用蚁群算法优化前向神经网络 来源:深圳发票 https://www.360docs.net/doc/949238895.html,/ 内容摘要:蚁群算法(ant colony algorithm,简称ACA)是一种最新提出的新型的寻优策略,本文尝试将蚁群算法用于三层前向神经网络的训练过程,建立了相应的优化模型,进行了实际的编程计算,并与加动量项的BP算法、演化算法以及模拟退火算法进行比较,结果表明该方法具有更好的全局收敛性,以及对初值的不敏感性等特点。关键词:期货经纪公司综合实力主成分分析聚类分析 人工神经网络(ANN)是大脑及其活动的一个理论化的数学模型,由大量的处理单元(神经元)互连而成的,是神经元联结形式的数学抽象,是一个大规模的非线性自适应模型。人工神经网络具有高速的运算能力,很强的自学习能力、自适应能力和非线性映射能力以及良好的容错性,因而它在模式识别、图像处理、信号及信息处理、系统优化和智能控制等许多领域得到了广泛的应用。 人工神经网络的学习算法可以分为:局部搜索算法,包括误差反传(BP)算法、牛顿法和共轭梯度法等;线性化算法;随机优化算法,包括遗传算法(GA)、演化算法(EA)、模拟退火算法(SA)等。 蚁群算法是一种基于模拟蚂蚁群行为的随机搜索优化算法。虽然单个蚂蚁的能力非常有限,但多个蚂蚁构成的群体具有找到蚁穴与食物之间最短路径的能力,这种能力是靠其在所经过的路径上留下的一种挥发性分泌物(pheromone)来实现的。蚂蚁个体间通过这种信息的交流寻求通向食物的最短路径。已有相关计算实例表明该算法具有良好的收敛速度,且在得到的最优解更接近理论的最优解。

本文尝试将蚁群算法引入到前向神经网络的优化训练中来,建立了基于该算法的前向神经网络训练模型,编制了基于C++语言的优化计算程序,并针对多个实例与多个算法进行了比较分析。 前向神经网络模型 前向人工神经网络具有数层相连的处理单元,连接可从一层中的每个神经元到下一层的所有神经元,且网络中不存在反馈环,是常用的一种人工神经网络模型。在本文中只考虑三层前向网络,且输出层为线性层,隐层神经元的非线性作用函数(激活函数)为双曲线正切函数: 其中输入层神经元把输入网络的数据不做任何处理直接作为该神经元的输出。设输入层神经元的输出为(x1,x2,Λ,xn),隐层神经元的输入为(s1,s2,Λ,sh),隐层神经元的输出为 (z1,z2,Λ,zh),输出层神经元的输出为(y1,y2,Λ,ym),则网络的输入-输出为: 其中{w ij}为输入层-隐层的连接权值,{w i0}隐层神经元的阈值,{v ki}为隐层-输出层的连接权值,{v k0}为输出层神经元的阈值。网络的输入-输出映射也可简写为: 1≤k≤m (5)

经典算法优缺点

根据电为系统无功优化问题非线性、多约束、多目标、连续和离散变量共存的 特点[3],目前无功优化研究的关键点主要集中在两个问题上,第一个是建立合适的无功优化数学模型,第二个是选择合适的无功优化方法。针对第一个问题,一般采 取的是具体问题具体分析,建立的数学模型首先要符合电力系统的运行情况和各项 约束,其次再根据个人偏好确定所需的目标函数。针对第二个问题,目前广泛使用 的无功优化方法主要分为两类:经典数学优化方法和新型人工智能优化方法,这两 类方法在电力系统无功优化问题上都得到了广泛的应用。 1.2.1经典数学优化算法 经典数学优化算法的基本思路大致都是:先选定某一合适的初值,进行不断迭 代,当满足迭代结束条件时,收敛到局部或者全局最优解。无功优化中最常见的数 学优化算法主要包括线性规划法W、非线性规划法W、混合整数规划法及动态规 划法m等等。 线性规划法的原理是对目标函数和约束条件运用泰勒公式进行数学变换,变换 后略去高次项,这样就把电力系统无功优化这一非线性问题转换为线性问题。典型 的线性规划法主要有内点法W和灵敏度分析法W。这类方法的优势在于方法成熟、 模型简单、求解速度快、收敛性好。但是把非线性问题运用线性化的方法解决必然 会带来一系列误差。首先是对于大型电网,线性规划法的收敛精度可能存在较大的 误差,其次是步长的选择问题,步长过大会导致反复偏离最优解而产生振荡,步长 过小则会导致算法的收敛速度变慢。显然,要针对不同系统选择合适的步长,因此 算法的通用性不强。最后,线性规划法对初值和函数的凹凸性都有一定要求,W上 这些缺陷使其在应用和发展上都存在一定局限性。 (2)非线性规划法 非线性规划法的原理是通过引入拉格朗日系数或惩罚系数将含约束的优化问题 转换为序列无约束优化问题或者线性规划问题求解,是一种能处理系统优化模型中 各类约束条件或目标函数至少有^个是非线性函数的规划方法。因为电力系统无功 优化问题本身就是非线性优化问题,所L乂非线性规划法更加适合求解电力系统无功优化问题。典型的非线性规划法主要有简化梯度法W、牛顿法和二次规划法U23。这类方法优势主要是模型精确,方法简单,计算精度高,但其缺点也十分明显,如 计算量大、稳定性不好、某些不等式和高维问题难LjA处理等等,尤其是电力系统无功优化的控制变量既有连续变量又有离散变量且各类等式不等式约束较多,这就大 大限制了非线性规划法的作用。 (3)混合整数规划法 混合整数规划法是一种处理含离散变量问题的方法,主要的原理是先取好整数 变量,再用上述线性或非线性规划法处理连续变量。送比直接将离散变量当做连续 变量优化,然后再对其取整有一定优势。因此,混合整数规划法十分适合优化电刀 系统无功优化的某些控制变量,如变压器的抽头位置和电容器组的投切数目。这类 方法的优势主要是能更精确的处理优化过程中的离散变量,但也存在一系列问题, 如随着维数提升,计算量成倍増加,容易产生"维数灾",尤其随着电力系统规模 的不断增大,混合整数规划法的作用将会大大受限。所tU兑,混合整数规划法一般适用于规模较小的电力系统无功优化研究。典型的混合整数规划法主要有分支界定 法山]。 3

智能优化算法(蚁群算法和粒子群算法)

7.1 蚁群优化算法概述 ?7.1.1 起源 ?7.1.2 应用领域 ?7.1.3 研究背景 ?7.1.4 研究现状 ?7.1.5 应用现状

7.1.1 蚁群优化算法起源 20世纪50年代中期创立了仿生学,人们从生物进化的机理中受到启发。提出了许多用以解决复杂优化问题的新方法,如进化规划、进化策略、遗传算法等,这些算法成功地解决了一些实际问题。

20世纪90年代意大利学者M.Dorigo,V.Maniezzo,A.Colorni等从生物进化的机制中受到启发,通过模拟自然界蚂蚁搜索路径的行为,提出来一种新型的模拟进化算法——蚁群算法,是群智能理论研究领域的一种主要算法。

背景:人工生命 ?“人工生命”是来研究具有某些生命基本特征的人工系统。人工生命包括两方面的内容。 ?研究如何利用计算技术研究生物现象。?研究如何利用生物技术研究计算问题。

?现在关注的是第二部分的内容,现在已经有很多源于生物现象的计算技巧。例如,人工神经网络是简化的大脑模型,遗传算法是模拟基因进化过程的。 ?现在我们讨论另一种生物系统-社会系统。更确切的是,在由简单个体组成的群落与环境以及个体之间的互动行为,也可称做“群智能”(swarm intelligence)。这些模拟系统利用局部信息从而可能产生不可预测的群体行为(如鱼群和鸟群的运动规律),主要用于计算机视觉和计算机辅助设计。

?在计算智能(computational intelligence)领域有两种基于群智能的算法。蚁群算法(ant colony optimization)和粒子群算法(particle swarm optimization)。前者是对蚂蚁群落食物采集过程的模拟,已经成功运用在很多离散优化问题上。

粒子群算法(1)----粒子群算法简介

粒子群算法(1)----粒子群算法简介 二、粒子群算法的具体表述 上面罗嗦了半天,那些都是科研工作者写论文的语气,不过,PSO的历史就像上面说的那样。下面通俗的解释PSO算法。 PSO算法就是模拟一群鸟寻找食物的过程,每个鸟就是PSO.中的粒子,也就是我们需要求解问题的可能解,这些鸟在寻找食物的过程中,不停改变自己在空中飞行的位置与速度。大家也可以观察一下,鸟群在寻找食物的过程中,开始鸟群比较分散,逐渐这些鸟就会聚成一群,这个群忽高忽低、忽左忽右,直到最后找到食物。这个过程我们转化为一个数学问题。寻找函数y=1-cos(3*x)*exp(-x)的在[0,4]最大值。该函数的图形如下: 当x=0.9350-0.9450,达到最大值y=1.3706。为了得到该函数的最大值,我们在[0,4]之间随机的洒一些点,为了演示,我们放置两个点,并且计算这两个点的函数值,同时给这两个点设置在[0,4]之间的一个速度。下面这些点就会按照一定的公式更改自己的位置,到达新位置后,再计算这两个点的值,然后再按照一定的公式更新自己的位置。直到最后在y=1.3706这个点停止自己的更新。这个过程与粒子群算法作为对照如下: 这两个点就是粒子群算法中的粒子。 该函数的最大值就是鸟群中的食物 计算两个点函数值就是粒子群算法中的适应值,计算用的函数就是粒子群算法中的适应度函数。 更新自己位置的一定公式就是粒子群算法中的位置速度更新公式。 下面演示一下这个算法运行一次的大概过程: 第一次初始化

第一次更新位置 第二次更新位置

第21次更新 最后的结果(30次迭代) 最后所有的点都集中在最大值的地方。

启发式优化算法综述【精品文档】(完整版)

启发式优化算法综述 一、启发式算法简介 1、定义 由于传统的优化算法如最速下降法,线性规划,动态规划,分支定界法,单纯形法,共轭梯度法,拟牛顿法等在求解复杂的大规模优化问题中无法快速有效地寻找到一个合理可靠的解,使得学者们期望探索一种算法:它不依赖问题的数学性能,如连续可微,非凸等特性; 对初始值要求不严格、不敏感,并能够高效处理髙维数多模态的复杂优化问题,在合理时间内寻找到全局最优值或靠近全局最优的值。于是基于实际应用的需求,智能优化算法应运而生。智能优化算法借助自然现象的一些特点,抽象出数学规则来求解优化问题,受大自然的启发,人们从大自然的运行规律中找到了许多解决实际问题的方法。对于那些受大自然的运行规律或者面向具体问题的经验、规则启发出来的方法,人们常常称之为启发式算法(Heuristic Algorithm)。 为什么要引出启发式算法,因为NP问题,一般的经典算法是无法求解,或求解时间过长,我们无法接受。因此,采用一种相对好的求解算法,去尽可能逼近最优解,得到一个相对优解,在很多实际情况中也是可以接受的。启发式算法是一种技术,这种技术使得在可接受的计算成本内去搜寻最好的解,但不一定能保证所得的可行解和最优解,甚至在多数情况下,无法阐述所得解同最优解的近似程度。 启发式算法是和问题求解及搜索相关的,也就是说,启发式算法是为了提高搜索效率才提出的。人在解决问题时所采取的一种根据经验规则进行发现的方法。其特点是在解决问题

时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的步骤去寻求答案,以随机或近似随机方法搜索非线性复杂空间中全局最优解的寻取。启发式解决问题的方法是与算法相对立的。算法是把各种可能性都一一进行尝试,最终能找到问题的答案,但它是在很大的问题空间内,花费大量的时间和精力才能求得答案。启发式方法则是在有限的搜索空间内,大大减少尝试的数量,能迅速地达到问题的解决。 2、发展历史 启发式算法的计算量都比较大,所以启发式算法伴随着计算机技术的发展,才能取得了巨大的成就。纵观启发式算法的历史发展史: 40年代:由于实际需要,提出了启发式算法(快速有效)。 50年代:逐步繁荣,其中贪婪算法和局部搜索等到人们的关注。 60年代: 反思,发现以前提出的启发式算法速度很快,但是解得质量不能保证,而且对大规模的问题仍然无能为力(收敛速度慢)。 70年代:计算复杂性理论的提出,NP问题。许多实际问题不可能在合理的时间范围内找到全局最优解。发现贪婪算法和局部搜索算法速度快,但解不好的原因主要是他们只是在局部的区域内找解,等到的解没有全局最优性。由此必须引入新的搜索机制和策略。 Holland的遗传算法出现了(Genetic Algorithm)再次引发了人们研究启发式算法的兴趣。 80年代以后:模拟退火算法(Simulated Annealing Algorithm),人工神经网络(Artificial Neural Network),禁忌搜索(Tabu Search)相继出现。 最近比较火热的:演化算法(Evolutionary Algorithm), 蚁群算法(Ant Algorithms),拟人拟物算法,量子算法等。

标准粒子群算法(PSO)及其Matlab程序和常见改进算法

一、粒子群算法概述 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),1995 年由Eberhart 博士和kennedy博士提出,源于对鸟群捕食的行为研究。该算法最初是受到飞鸟集群活动的规律性启发,进而利用群体智能建立的一个简化模型。粒子群算法在对动物集群活动行为观察基础上,利用群体中的个体对信息的共享使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得最优解。 PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。 PSO 初始化为一群随机粒子(随机解)。然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个”极值”来更新自己。第一个就是粒子本身所找到的最优解,这个解叫做个体极值pBest。另一个极值是整个种群目前找到的最优解,这个极值是全局极值gBest。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。 二、算法原理 粒子群算法采用常数学习因子,及惯性权重,粒子根据如下的公式更新自己的速度和位置。 V ki=ωk V i?1i+c1r1(Q bi?Q k?1i)+c2r2(Q bg?Q k?1i)Q ki=Q k?1i+V ki 三、算法步骤 1、随机初始化种群中各微粒的位置和速度; 2、评价个粒子的适应度,将各粒子的位置和适应度储存在各微粒的pbest(Q bi)中,将所有pbest中适应度最优的个体的位置和适应度存储在gbest(Q bg)中。 3、更新粒子的速度和位移。 V ki=ωk V i?1i+c1r1(Q bi?Q k?1i)+c2r2(Q bg?Q k?1i)Q ki=Q k?1i+V ki 4、对每个微粒,与其前一个最优位置比较,如果较好,则将其作为当前的最优位置。 5、比较当前所有的pbest和上一迭代周期的gbest,更新gbest。 6、若满足停止条件(达到要求精度或迭代次数),搜索停止,输出结果,否则,返回2。

相关文档
最新文档