(最新)智能优化算法简介课件.ppt

上传人:醉**** 文档编号:15045295 上传时间:2022-05-10 格式:PPT 页数:55 大小:1.48MB
返回 下载 相关 举报
(最新)智能优化算法简介课件.ppt_第1页
第1页 / 共55页
(最新)智能优化算法简介课件.ppt_第2页
第2页 / 共55页
点击查看更多>>
资源描述

《(最新)智能优化算法简介课件.ppt》由会员分享,可在线阅读,更多相关《(最新)智能优化算法简介课件.ppt(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 智能优化算法智能优化算法简介智能优化算法简介遗传算法简介遗传算法简介基本遗传算法基本遗传算法改进的遗传算法改进的遗传算法遗传算法软件计算遗传算法软件计算7.1遗传算法1智能优化算法简介一、一、 传统优化算法的步骤及局限性传统优化算法的步骤及局限性 1 步骤步骤: (1)选择一个初始解, (2)向改进方向移动判断停止准则是否满足,若 满足停止,否则转下一步。 (3)向改进方向移动,得新的解,转回第2步。 2 局限性局限性: (1)单点运算方式限制了计算效率的提高 (2)向改进方向移动限制了跳出局部最优的能力 (3)停止条件仅是局部最优的条件 (4)对目标函数,约束条件的要求限制了算法的应用2智

2、能优化算法简介 二、智能优化算法的产生与发展二、智能优化算法的产生与发展 1 1 最优化方法的新的需求最优化方法的新的需求 (1)对目标函数,约束函数的要求更为宽松 (2)计算效率比理论上的最优性更重要 (3)算法随时终止都能得到较好的解 (4)对优化模型中数据质量要求更加宽松。 2 2 智能算法及代表人物智能算法及代表人物 1975年,Holland提出遗传算法(Genetic Algorithms) 1977年,Glover提出禁忌算法(Tabu Search) 1983年,Kirkpatrick提出模拟退火算法 (Simulated Annealing) 90年代初,Dorigo提出蚁群

3、算法 (Ant Colony Optimization) 1995年,Kennedy,Eberhart提出的粒子群算法(Particle Swarm) 1999年,Linhares 提出的捕食搜索(Predatory Search) 3智能优化算法简介三、如何学习研究智能优化算法三、如何学习研究智能优化算法 1 应用智能优化方法解决各类问题是重点 2 智能算法的改进有很大的空间 3 多种算法结合是一种很好的途径 4 不提倡刻意追求理论成果 5 算法性能的测试是一项要下真功夫的工作 6 创造出新算法 4遗传算法简介 一、遗传算法原理(一、遗传算法原理( 7.1.1) 遗传算法是根据问题的目标函数

4、构造的 一个适值函数,对一个由多个解(每个解对 应一个染色体)构成的种群进行评估、遗传 运算、经多代繁殖,获得适应值最好的个体 作为问题的最优解。 5遗传算法简介 二、遗传算法技术问题(二、遗传算法技术问题(7.1.2)遗传算法的主要问题是算法如何实现的技术问题。归结起来有如下一些因素遗传算法的主要问题是算法如何实现的技术问题。归结起来有如下一些因素: 1 解的编码和解码解的编码和解码 解的编码是遗传算法的最基础工作,只有在编码之后才可能有其他的计算。算法的 最后一个工作则是通过解码得到问题的一个解。 2 初始群体的选取初始群体的选取 在计算开始时,需要产生一些待优化问题的可能解,称为初始群体

5、,初始群体可用 随机方式产生,也可用用其他的一下启发式算法或经验选择,主要针对实际问题而定。 3 群体规模的确定群体规模的确定, 常取个体编码长度数的一个线性倍数。当多个进化代没有改变解的性能,可扩大群体的规模。若解的改进已经非常好时,就可以减少群体规模,使计算速度加快。 4 适应函数的确定适应函数的确定 简单适应函数简单适应函数 目标函数的简单变形,构造简单,与目标函数直接相关,缺点是可能使算法在迭代过程中出现收敛到一些目标值近似的不同染色体而难以区别。 加速适应函数加速适应函数 有非线性加速适应函数,线性加速适应函数等。它们的思想是希望开始时每一个状态有较大的选取性,随着计算的步步进行,逐

6、渐拉开目标值不同对应状态的档次。 排序适应函数排序适应函数 为了避开对目标函数进行线性、非线性等加速适应函数的早熟可能,使每一代当前最好的解以最大的概率遗传。6遗传算法简介三、遗传算法特点三、遗传算法特点 1 1 特点特点 (1)遗传算法以决策变量的编码作为运算对象。 (2)遗传算法直接以适应度作为搜索信息,无需导数等其它辅助信息。 (3)遗传算法使用多个点的搜索信息,具有隐含并行性。 (4)遗传算法使用概率搜索技术,而非确定性规则。 2 2 应用领域应用领域 (1)函数优化 (2)组合优化 (3)生产调度 (4)自动控制 (5) 机器人学 (6)图象处理 7基本遗传算法(7.1.3) 一、一

7、、 基本遗传算法的构成要素基本遗传算法的构成要素 1 染色体编码方法。 2 个体适应度评价。 3 遗传算子。基本遗传算法使用下述三种遗传算子 选择运算使用比例选择算子; 交叉运算使用单点交叉算子; 变异运算使用基本位变异算子或均匀变异算子。 4 基本遗传算法的运行参数。基本遗传算法有下述4个运行参数需要提前设定: M:群体大小,即群体中所合个体的数量,一般取为201000。 T:遗传运算的终止进化代数,一般取为l00一500。 Pc: 交叉概率,般取为0.4一0.99。 Pm: 变异概率,一般取为0.0001一0.1.8基本遗传算法(7.1.3)二二 、基本遗传算法描述、基本遗传算法描述 1

8、基本遗传算法的形式化定义基本遗传算法的形式化定义基本遗传算法可定义为一个8元组,这些参数合理的取值大小或取值范围。9基本遗传算法(7.1.3)二二 、基本遗传算法描述、基本遗传算法描述 2 遗传算法的基本操作举例遗传算法的基本操作举例 (1)产生 初始种群 括号中的数值为目标函数值10基本遗传算法(7.1.3) 2 遗传算法的基本操作举例遗传算法的基本操作举例(2)遗传运算 选择运算(轮盘赌) 11基本遗传算法(7.1.3) 2 遗传算法的基本操作举例遗传算法的基本操作举例(2)遗传运算 选择运算(轮盘赌)由计算机产生随机数来实现 假设产生随机数序列为0.070221,0.545929,0.7

9、84567,0.44693,0.507893,0.291198,0.71634,0.27290l,0.37l 435,0.854641。将该随机序列与计算获得的累积概率比较,则依次序号为1,8,9,6,7,5,8,4,6,10个体被选中。显然适应度高的个体被选中的概率大。而且可能被选中;而适应度低的个体则很有可能破淘汰。在第一次生存竞争考验中,序号为2的个体(0101111001)和3的个体(0000000101)被淘汰,代之以适应度较高的个体8和6。12基本遗传算法(7.1.3) 2 遗传算法的基本操作举例遗传算法的基本操作举例(2)遗传运算 交叉运算 以单点交叉为例,任意挑选经过选择操作后

10、种群中两个个体作为交叉对象,即两个父个体经过染色体交换重组产生两个子个体,如下图,随机产生一个交叉点位置,父个体l和父个体2在交叉点位置之有的部分基因码互换,形成子个体1和子个体2。类似地完成其他个体的交叉操作13基本遗传算法(7.1.3) 2 遗传算法的基本操作举例遗传算法的基本操作举例(2)遗传运算 变异算子 如图所示采用翻转,对于个体1001110100产生变异, 以小概率决定第4个遗传因子翻转,即将1换为0。14遗传算法的进化过程遗传算法的进化过程15大变异遗传算法(7.1.4) 一、一、 大变异遗传原理大变异遗传原理 在遗传算法中,变异操作可以使算法避免“早熟”。但是,为了保证算法的

11、稳定性,变异操作的变异概率通常取值很小,所以算法一旦出现“早熟”,单靠传统的变异操作需很多代才能得到不同于其他个体的新个体。 大变异操作的思路是:当某代中所有个体集中在一起时,我们以一个远大于通常的变异概率的概率进行变异操作,它能够产生多个新个体,从而使得种群脱离”早熟”。16大变异遗传算法(7.1.4) 一、一、 大变异遗传算法的原理大变异遗传算法的原理当某一代的最大适应度 与平均适应度 满足 其中 ,被称为密集因子,表征个体集中的程度。大变异操作要求有两个参数是: 密集因子和大变异概率密集因子和大变异概率。密集因子用来决定大变异操作在整个优化过程中所占的比重,其数值越接近0.5时大变异操作

12、被调用的越频繁。大变异概率越大,含大变异操作的遗传算法的稳定性就越好,但是,这是以牺牲收敛速度为代价的,当其数值等于0.5时,大变异操作就近似为随机搜索。maxFavgFavgFFmax15 . 017大变异遗传算法(7.1.4) 二、二、 大变异遗传算法的步骤大变异遗传算法的步骤 1 随机产生初始种群,种群个体数目事先给定,每个个体表示为染色体的基因编码; 2计算个体的适应度,并判断是否符合优化准则,若符合,输出最佳个体及其代表的最优解,并结束计算,否则转3; 3依据适应度选择再生个体,适应的高的个体被选中的概率高,适应的低的个体可能被淘汰; 4对选择出再生个体按一定的交叉概率和交叉方法生成

13、新个体; 5如果当代最大适应度与平均适应度满足时,进行大变异操作,否则进行普通变异操作。 6 由交叉和变异产生新一代的种群,返回2。18自适应遗传算法(7.1.5) 一、一、 自适应遗传算法的原理自适应遗传算法的原理 Srinvivas等提出一种自适应遗传算法,交叉概率和变异概率能够随适应度自动改变。当种群个体适应度趋于一致或者趋于局部最优时,使交叉概率和变异概率二者增加、而当群体适应度比较分散时,使交叉概率和变异概率减少。 同时,对于适应值高于群体平均适应值的个体,对应于较低的交叉概率和变异概率,使该个体得以保护进入下一代;而低于平均适应值的个体,相对于较高的交叉概率和变异概率,使该个体被淘

14、汰。因此,自适应遗传算法能过提供相对某个解的最佳交叉概率和变异概率。19自适应遗传算法(7.1.5) 一、一、 自适应遗传算法的原理自适应遗传算法的原理 Srinvivas等提出一种自适应遗传算法,交叉概率和变异概率能够随适应度自动改变。当种群个体适应度趋于一致或者趋于局部最优时,使交叉概率和变异概率二者增加、而当群体适应度比较分散时,使交叉概率和变异概率减少。 同时,对于适应值高于群体平均适应值的个体,对应于较低的交叉概率和变异概率,使该个体得以保护进入下一代;而低于平均适应值的个体,相对于较高的交叉概率和变异概率,使该个体被淘汰。因此,自适应遗传算法能过提供相对某个解的最佳交叉概率和变异概

15、率。20自适应遗传算法(7.1.5)一、一、 自适应遗传算法的原理自适应遗传算法的原理 自适应遗传算法中交叉概率和变异概率的计算公式如下自适应遗传算法中交叉概率和变异概率的计算公式如下:avgavgavgmffkffffffkP2maxmax1)(avgavgavgcffkffffffkP) (4maxmax321自适应遗传算法(7.1.5) 二、二、 自适应遗传算法的步骤自适应遗传算法的步骤 1 随机产生初始种群,种群个体数目事先给定,每个个体表示为染色体的基因编码; 2 计算个体的适应度,并判断是否符合优化准则,若符合,输出最佳个体及其代表的最优解,并结束计算,否则转3; 3 依据适应度选

16、择再生个体,适应的高的个体被选中的概率高,适应的低的个体可能被淘汰; 4 按照下式(I)确定交叉概率,并通过交叉生成新个体; 5 按照式(II)确定变异概率,并通过变异生成新个体; 6由交叉和变异产生新一代的种群,返回2。.)()(2maxmax1IffkffffffkPavgavgavgm)() (4maxmax3IIffkffffffkPavgavgavgc22遗传算法的软件实现一、基本遗传算法的一、基本遗传算法的Matlab实现实现 1 计算函数的格式计算函数的格式 函数:myGA。 功能:用基本遗传算法解一维无约束极值问题 调用格式:xv,fv=myGA(fitness,a,b,NP,

17、NG,Pc,Pm,eps) 其中:fitness:待优化的目标函数; a:自变量下界;b:自变量上界; NP:种群大小;NG:最大进化代数; Pc:交叉概率;Pm:变异概率; eps::自变量离散精度; xv:目标函数取最大值时的自变量取值; fv:目标函数的最大值。23遗传算法的软件计算一、基本遗传算法的一、基本遗传算法的Matlab实现实现 2 举例举例 例例7-1 用基本遗传算法计算下面函数的最大值 种群个体数目50,最大进化代数100,离散精度0.01, 交叉概率0.9,变异概率0.04。 解:首先建立目标函数文件fitness.m function F=fitness(x) F=x3

18、-60*x2+900*x+100; 在命令框中输入调用遗传算法函数 xv,fv=myGA(fitness,0,30,50,100,0.9,0.04,0.01)所得结果 xv= 8.8242 fv=4.0991e+003 该问题的精确最大值点为xv=10,最大值为fv=4100。300 ,10090060)(23xxxxxf24遗传算法的软件计算二、大变异遗传算法的二、大变异遗传算法的Matlab实现实现 1 计算函数格式计算函数格式 函数:GMGA。 功能:用大变异遗传算法解一维无约束极值问题 调用格式:xv,fv=GMGA(fitness,a,b,NP,NG,Pc,Pm, alpha,Pbm

19、, eps) 其中:fitness:待优化的目标函数;a:自变量下界; b:自变量上界;NP:种群大小;NG:最大进化代数; Pc:交叉概率; Pm:变异概率;alpha,:密集因子; Pbm:大变异概率; eps::自变量离散精度; xv:目标函数取最大值时的自变量取值; fv:目标函数的最大值。25遗传算法的软件计算二、大变异遗传算法的二、大变异遗传算法的Matlab实现实现 2 举例举例 例例7-2 用大变异遗传算法求函数 的最大值,个体数目取50,最大进化代数500,交叉概率取0.9, 变异概率取0.03,密集因子取0.6,大变异概率取0.2 ,离散精度取0.01。40 ,10)2co

20、s(10)(3xxxxf解:首先建立目标函数文件fitness.mFunction F = fitness(x)F =x2-10*cos(2*pi*x)+10;在命令框中输入调用大变异遗传算法函数 xv,fv=GMGA(fitness,0,4,50,500,0.9,0.03,0.6,0.2,0.01)运算结果xv = 3.5068fv = 32.2887最大值点为x=3.5178, 最大值为f=32.3124。用大变异算法得到的结果较好。 26遗传算法的软件计算三、自适应遗传算法的三、自适应遗传算法的Matlab实现实现 1 计算函数格式计算函数格式 函数:AdapGA。 功能:用自适应遗传算

21、法解一维无约束极值问题 调用格式:xv,fv=AdapGA(fitness,a,b,NP,NG,Pc1, Pc 2,Pm1, Pm2, eps) 其中:fitness:待优化的目标函数;a:自变量下界; b:自变量上界;NP:种群大小;NG:最大进化代数; Pc1:交叉常数1;Pc2:交叉常数2; Pm1:变异常数1;Pm2:变异常数2; eps::自变量离散精度; xv:目标函数取最大值时的自变量取值; fv:目标函数的最大值。27遗传算法的软件计算三、自适应遗传算法的三、自适应遗传算法的Matlab实现实现 2 举例举例 例例7-3 用自适应遗传算法求函数 的最大值,个体数目取50,最大进

22、化代数500,交叉概率k1取0.5, k2取0.9,变异概率k3取0.02,k4取0.05,离散精度取0.01。40 ,10)2cos(10)(3xxxxf解:首先建立目标函数文件fitness.mFunction F = fitness(x)F =x2-10*cos(2*pi*x)+10;在命令框中输入调用自适应遗传算法函数 xv,fv=AdapGA(fitness,0,4,50,500,0.5,0.9,0.02,0.05, 0.01)运算结果xv = 3.5147fv = 32.3105与例7-2相比自适应遗传算法所求结果更好。 28遗传算法的应用举例文献文献1 一种改进的遗传优化策略在电

23、动机故障诊断中的应用一种改进的遗传优化策略在电动机故障诊断中的应用 文献文献2 基于遗传算法的热管多目优化设计基于遗传算法的热管多目优化设计29粒子群算法简介粒子群算法简介基本粒子群算法基本粒子群算法改进的粒子群算法改进的粒子群算法粒子群算法软件计算粒子群算法软件计算粒子群算法应用粒子群算法应用7.2 粒子群算法30粒子群算法简介 一、粒子群算法原理一、粒子群算法原理粒子群优化算法(Particle Swarm Optimization,PSO)是Eberhart和kennedy博士发明。源于对鸟群捕食的行为研究,PSO同遗传算法类似,是一种基于迭代的优化工具。系统初始化为一组随机解,通过迭代

24、搜索寻最优值。在PSO算法中,每个优化问题的解都是搜索空间中的一只鸟,被抽象为没有质量和体积的微粒,并将其延伸到N维空间,离子i在N维空间中的位置表示为一个矢量,每个粒子的飞行速度也为一个矢量,所有粒子都有一个被优化的函数决定的适应值(fitness),每个粒子还有一个决定他们飞翔的方向和距离。粒子们知道到目前为止发现的最好位置(pbest)和现在的位置,这个可以看做是粒子自己的飞行经验,除此之外,每个粒子还知道目前为止所有粒子发现的最好位置(gbest, gbest是pbest中最好值),着可以看做是粒子同伴的经验。粒子是通过自己的经验和同伴中最好的经验来决定下一步的运动。 31粒子群算法简

25、介 二、粒子群算法技术问题二、粒子群算法技术问题粒子群算法的性能很大程度取决于算法的控制参数,粒子数、最大速度、学习因子、惯性权重等,各个参数的选取原则如下:1 粒子数:粒子数的多少根据问题的复杂度自行决定。对于一般的优化问题取20至40个;对比较简单的问题10个粒子就可以;对于比较复杂的或特定的问题,粒子数可取100以上。2 粒子的维度:由优化问题决定;为解的维度,3 粒子的范围:由优化问题决定,每一维可设定不同的范围;4 最大速度: 决定粒子在一个循环中最大的移动距离,通常设定为粒子的范围宽度;5 学习因子:学习因子使粒子具有自我总结和向群体中优秀个体学习的能力,从而向群体内或邻域内最近点

26、靠近,通常取为2,也可以相等,取值范围0到4。6 惯性权重:决定了对粒子当前速度继承的多少,适合的选择可以使粒子具有均衡的探索能力和开发能力,惯性权重的取法一般有常数法、线性递减法、自适应法等 32粒子群算法简介三、粒子群算法的特点及应用领域三、粒子群算法的特点及应用领域 1 1 特点特点 (1)粒子群算法以决策变量的编码作为运算对象。 (2)粒子群算法直接以适应度作为搜索信息,无需导数等其它辅助信息。 (3)粒子群算法使用多个点的搜索信息,具有隐含并行性。 (4)粒子群算法使用概率搜索技术,而非确定性规则。 2 2 应用领域应用领域 (1)函数优化 (2)组合优化 (3)生产调度 (4)自动

27、控制 (5) 机器人学 (6)图象处理 33基本粒子群算法(7.2.1) 一、一、 基本粒子群算法的构成要素基本粒子群算法的构成要素 1 粒子数 2 最大速度 3 学习因子 4 惯性权重34基本粒子群算法(7.2.1)二二 、基本粒子群算法步骤、基本粒子群算法步骤 1 随机初始化种群中各种微粒的位置和速度; 2 评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存于gbest中; 3 用下面的式子更新粒子的速度和位移; 4 对每个微粒子;将其适应值与其经历过的最好位置作比较,如果较好,则将其作为当前的最好位置; 5 比较当

28、前所有pbest和gbes的值,更新gbes; 6 若满足停止条件(通常为预设的运算精度或迭代步数),搜索停止,输出结果,否则返回3,继续搜索。djtvtxtxtxprctxprctwvtvijijijijgjijijijij,.,2 , 1),1()() 1(),()()() 1(221135二阶粒子群算法(7.2.2)一、一、 二阶粒子群算法原理二阶粒子群算法原理 在标准PSO算法中,微粒的飞行速度仅仅是微粒当前位置的函数,而二阶粒子群算法中微粒飞行速度的变化与微粒位置的变化有关,其速度更新公式为:djtxtxprctxtxprctvtvijijgjijijijijij,.,2 , 1),

29、1()(2)1()(2)() 1(221136二阶粒子群算法(7.2.2)二二 、二阶粒子群算法步骤、二阶粒子群算法步骤 1 随机初始化种群中各种微粒的位置和速度; 2 评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存于gbest中; 3 用下面的式子更新粒子的速度和位移; 4 对每个微粒子;将其适应值与其经历过的最好位置作比较,如果较好,则将其作为当前的最好位置; 5 比较当前所有pbest和gbes的值,更新gbes; 6 若满足停止条件(通常为预设的运算精度或迭代步数),搜索停止,输出结果,否则返回3,继续搜索。

30、djtxtxprctxtxprctvtvijijgjijijijijij,.,2 , 1),1()(2)1()(2)() 1(2211djtvtxtxijijij,.,2 , 1),1()() 1(37基于选择的粒子群算法(7.2.3)一、一、 基于选择的粒子群算法原理基于选择的粒子群算法原理 将遗传算法中的选择机理与粒子群算法相结合就 得到基于选择的粒子群算法。 基本思想:每次迭代过程将整个粒子群按适应值排序,用群体最好的一半的粒子的速度和位置替换最差的一半的位置和速度,同时保留原来每个个体所记忆的历史最优值。38基于选择的粒子群算法(7.2.3)二二 、基于选择的粒子群算法步骤、基于选择的

31、粒子群算法步骤 1 随机初始化种群中各种微粒的位置和速度; 2 评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存于gbest中; 3 用下面的式子更新粒子的速度和位移; 4 对每个微粒子;将其适应值与其经历过的最好位置作比较,如果较好,则将其作为当前的最好位置; 5 比较当前所有pbest和gbes的值,更新gbes; 6将整个粒子群按适应值排序,用群体中最好的一半的粒子的速度和位置替换最差的一半的位置和速度,保持pbest和gbest不变。 7 若满足停止条件(通常为预设的运算精度或迭代步数),搜索停止,输出结果,否

32、则返回3,继续搜索。djtvtxtxtxprctxprctwvtvijijijijgjijijijij,.,2 , 1),1()() 1(),()()() 1(221139基于交叉的粒子群算法(7.2.4)一、一、 基于交叉的粒子群算法原理基于交叉的粒子群算法原理 借鉴遗传算法中的交叉概念,在每次迭代中,根据交叉概率选取制定数量的粒子放入交叉池内,池中的粒子随机两辆交叉,产生同样数目的子代粒子(child),并用子代粒子替换亲代粒子(parent)。子代位置由父代位置进行算术交叉得到:其中 p是0到1之间的随机数。子代的速度由下式计算 )()1 ()(21xparentpxparentpxch

33、ild )()1 ()(21xparentpxparentpxchild或或 xparentxparentxparentxparentxparentxchild12121)()()( xparentxparentxparentxparentxparentxchild22121)()()(或或40基于交叉的粒子群算法(7.2.4)二二 、基于交叉的粒子群算法步骤、基于交叉的粒子群算法步骤 1 随机初始化种群中各种微粒的位置和速度; 2 评价每个微粒的适应度,将当前各微粒的位置和适应值存储在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存于gbest中; 3 用下面的式子更新

34、粒子的速度和位移; 4 对每个微粒子;将其适应值与其经历过的最好位置作比较,如果较好,则将其作为当前的最好位置; djtvtxtxtxprctxprctwvtvijijijijgjijijijij,.,2 , 1),1()() 1(),()()() 1(221141基于交叉的粒子群算法(7.2.4)二二 、基于交叉的粒子群算法步骤、基于交叉的粒子群算法步骤 5 比较当前所有pbest和gbes的值,更新gbes; 6 根据交叉概率选取指定数量的粒子放入交叉池内,池中的粒子随机两两交叉产生同样数目的子代粒子,子代的位置和速度计算公式如下: 保持pbest和gbest不变。 7 若满足停止条件(通

35、常为预设的运算精度或迭代步数),搜索停止,输出结果,否则返回3,继续搜索。 xparentxparentxparentxparentxparentxchildxparentpxparentpxchild1212121)()()()()1 ()(42粒子群算法的软件实现一、基本粒子群算法的一、基本粒子群算法的Matlab实现实现 1 计算函数的格式计算函数的格式 函数:PSO。 功能:用基本粒子群算法求解无约束极值问题。 调用格式:xv,fv=PSO(fitness,N,c1,c2,w,M,D) 其中:fitness: 待优化的目标函数; N:粒子数目; c1:学习因子1; c2:学习因子2;

36、w:惯性权重; M:最大迭代次数; D:问题的维数; xv:目标函数的最小值点; fv:目标函数的最小值。43粒子群算法的软件计算一、基本粒子群算法的一、基本粒子群算法的Matlab实现实现 2 举例举例 例例7-4 采用基本粒子群算法求Sphere Model的最小值。解:首先建立目标函数文件解:首先建立目标函数文件fitness.m,输入内容如下:,输入内容如下: Function F= fitness(x) F = 0; for i=1:30 F = F+x(i)2; end3012)(iixxf 在MATLAB命令窗口中输入:xv,fv = PSO(fitness,40,2,2,0.5

37、,1000,30)xv,fv = PSO(fitness,40,2,2,0.5,5000,30)xv,fv = PSO(fitness,40,2,2,0.5,10000,30)44粒子群算法的软件计算一、基本粒子群算法的一、基本粒子群算法的Matlab实现实现 迭代步数1000500010000 x10.171159151-0.09655836-0.015987273x20.1420736240.008334669-0.001818132x3-0.1819121030.0186364210.004625648x40.1003362930.1037824360.038768164x5-0.166

38、995445-0.0301029570.007716967x60.0356615090.0060840490.015746696x70.037148320.013657669-0.00238339x80.0457441510.010931290.023852163x9-0.171087980.0429103380.007423934x100.055131632-0.15093465-0.014160336x110.0457441510.076321997-0.032519146x12-0.171087980.0044026080.006066822x130.0551316320.0260240

39、16-0.007677664x140.2564633330.011989153-0.027326272x15-0.1307773830.0166517660.01974572x160.116058331-0.0073606770.014704575表7-1 迭代步数不同时粒子群法求解结果比较表迭代步数1000500010000 x17-0.098250698-0.038645847-0.037417556x18-0.168572745-0.012203864-0.061915582x190.0833436250.038583338-0.046837159x200.0988520890.0892

40、16026-0.022234846x210.07067315-0.074770647-0.071276469x22-0.2220526430.0072028790.049688358x23-0.0408937950.015707451-0.006258405x240.210061935-0.0290495680.090448281x25-0.1281979520.019223623-0.013524576x260.216501635-0.0202020740.01044023x27-0.0875019130.007375891-0.040697535x280.060820255-0.03677

41、1138-0.00546114x29-0.24635774-0.041702041-0.04696722x30-0.013847313-0.0616090710.010652994函数极值0.6475372570.078922440.03341558245粒子群算法的软件计算一、基本粒子群算法的一、基本粒子群算法的Matlab实现实现 从表7-1的求解结果可以看出,在其他参数不变的情况下,一般迭代步数越大,求得的精度越高,但这并不是绝对的,因为PSO算法本质上也是一种随机算法,即使用同样的参数,每次求解也可能得出不同的结果,同时如果对于多峰函数,PSO算法还可能陷入局部最优点。 下面再看粒子群

42、规模对结果的影响,学习因子都为2,惯性权重为0.5,迭代步数都为10000,粒子群规模分别取50、60和80。在MATLAB命令窗口中输入:xv,fv = PSO(fitness,50,2,2,0.5,10000,30)xv,fv = PSO(fitness,60,2,2,0.5,10000,30)xv,fv = PSO(fitness,80,2,2,0.5,10000,30)46粒子群算法的软件计算一、基本粒子群算法的一、基本粒子群算法的Matlab实现实现 迭代步数506080 x1-0.0113103460.0074255830.032168404x20.0043878460.00481

43、79140.018358567x3-0.0066672460.0018556090.022236195x40.0059684390.0143353340.011242284x50.00915497-0.001267227-0.020372561x6-0.051987837-0.0054969170.022033454x7-0.0286875740.00010960.052377912x8-0.0177265260.008815249-0.023582598x90.012876614-0.00195790.03170092x100.011624676-0.0015827040.001418987

44、4x11-0.0233624320.034052767-0.013562149x12-0.042501880.015367050.046835547x130.0132199080.0066061990.032128767x14-0.010243719-0.0087775810.040258144x15-0.011879719-0.000378132-0.000129326x16-0.031978858-0.004513022-0.049016752表7-2 种群数不同时粒子群法求解结果比较表 迭代步数506080 x17-0.021793246-0.013723932-0.083971611x

45、18-0.014866581-0.0009891410.021355323x190.032450927-0.0036157330.007294525x20-0.025591814-0.005227237-0.027505171x21-0.0091624940.0036420450.030514614x220.053509427-0.007972992-0.006440302x23-0.004734495-0.0059175490.043635763x240.007099750.0127190950.021021241x25-0.0004611460.0003873220.04026069x26

46、-0.003042356-0.0026208750.016406857x27-0.0052418520.006107442-0.051622937x28-0.009992668-0.07381692-0.021966852x290.01191555-0.0120409020.038647243x300.012901919-0.0024714870.060333511函数极值0.0141168710.0026933620.03663915347粒子群算法的软件计算一、基本粒子群算法的一、基本粒子群算法的Matlab实现实现 从表7-2的求解结果可以看出,粒子群的规模不是越大越好,关键是各参数之间

47、的搭配,搭配好才能求得比较好的结果。这需要反复试算。48粒子群算法的软件实现二、二阶粒子群算法的二、二阶粒子群算法的Matlab实现实现 1 计算函数的格式计算函数的格式 函数:SecPSO。 功能:用基本粒子群算法求解无约束极值问题。 调用格式:xv,fv=SecPSO(fitness,N,c1,c2,w,M,D) 其中:fitness: 待优化的目标函数; N:粒子数目;、 c1:学习因子1; c2:学习因子2; w:惯性权重; M:最大迭代次数; D:问题的维数; xv:目标函数的最小值点; fv:目标函数的最小值。 49粒子群算法的软件计算二、二阶粒子群算法的二、二阶粒子群算法的Mat

48、lab实现实现 2 举例举例 例例7-5 采用二阶粒子群算法实现求下面函数的最小值采用二阶粒子群算法实现求下面函数的最小值10cos)811 (10)6541 . 5()(1212122xxxxxf取粒子数为40,学习因子都取1,惯性权重取0.7,迭代步数取100000。解:首先建立目标函数文件解:首先建立目标函数文件fitness.m,输入内容如下: Function F= fitness(x) F=(x(2)-5.1*x(1)2/4/pi/pi+5*x(1)/pi-6)2+10*(1-1/8/pi)*cos(x(1)+10; 在MATLAB命令窗口中输入:xv,fv = SecPSO(fi

49、tness,40,0.7,1,1,10000,2)所得结果:xv =3.141592663015890 2.274999989919220fv = 0.39788735772973850粒子群算法的软件实现三、基于选择的粒子群算法的三、基于选择的粒子群算法的Matlab实现实现 1 计算函数的格式计算函数的格式 函数:SelPSO。 功能:用基本粒子群算法求解无约束极值问题。 调用格式:xv,fv=SelPSO(fitness,N,c1,c2,w,M,D) 其中:fitness: 待优化的目标函数; N:粒子数目; c1:学习因子1; c2:学习因子2; w:惯性权重; M:最大迭代次数; D

50、:问题的维数; xv:目标函数的最小值点; fv:目标函数的最小值。 51粒子群算法的软件计算三、基于选择的粒子群算法的三、基于选择的粒子群算法的Matlab实现实现 2 举例举例 例例7-6 采用选择的粒子群算法实现求下面函数的最小值采用选择的粒子群算法实现求下面函数的最小值取粒子数为40,学习因子都取2,惯性权重取0.7,迭代步数取100000。1010,) 1(101. 0)(1512xxixfii解:首先建立目标函数文件fitness.m,输入内容如下: function F= fitness(x) F = 0; for i=1:5 F = F+1/(i+(x(i)-1)2; end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁