武汉公交pso算法 基于粒子群优化的公交调度研究_王敏

武汉公交pso算法    基于粒子群优化的公交调度研究_王敏
武汉公交pso算法    基于粒子群优化的公交调度研究_王敏

中图分类号:TP273+.5 文献标识码:A 文章编号:1009-2552(2009)12-0111-03

基于粒子群优化的公交调度研究

王 敏1,王 楷2

(1.湖北第二师范学院机电工程系,武汉430205; 2.武汉市信息中心,武汉430014)

摘 要:针对公交调度优化问题,建立了以公交费用最小和乘客平均等待时间最短为目标的优化调度模型。应用改进的粒子群优化算法对公交调度排班进行优化,并用实际的运营数据对算法进行验证。结果表明,该求解算法能够兼顾了公交公司和乘客的利益,是可行和有效的。

关键词:交通工程;公交调度;粒子群优化

Study on bus scheduling based on particle sw arm optimization

WANG Min1,WANG K ai2

(1.Dep artment of E lectromech anical E ngineering,H ubei Second N orm al College,Wuh an430205,China;

2.Wuh an I nform ation Centre,Wuh an430014,China)

Abstract:F ocusing on the optimization of bus scheduling,this paper establishes an optimization m odel that aims to minimize both public transportation com pany’s total costs and passenger’s average waiting time.The bus scheduling was optimized by m odified particle swarm optimization alg orithm and the alg orithm was validated by the real scheduling data.The result shows that this alg orithm could not only benefit to the public transportation com pany but als o the passengers and it is applicable and effective.

K ey w ords:traffic engineering;bus scheduling;particle swarm optimization

0 引言

城市公交系统是绝大多数市民出行的主要交通工具,其运行好坏直接影响着整个城市交通运输系统的交通状况,需要对各线路进行合理的调度。调度问题涉及到多个约束因素,是一个多目标优化问题,应用传统的优化方法计算,计算时间长,效率较低。

粒子群优化算法(Particle S warm Optimization, PS O)是一种全局优化算法,能够有效解决各种约束或不带约束的复杂优化问题。算法源于对鸟类捕食行为的模拟,其突出特点是结构简单,运行速度快,计算量小,程序实现非常简洁,需要调整的参数少。基本PS O算法在搜索的初期能以较快的速度收敛,但在后期容易陷入局部最优解。为此,本文提出了一种改进策略,能够有效跳出局部最优解,实现全局收敛。并针对公交调度的问题,以乘客和公交公司总效益最大化为调度目标,应用改进的粒子群优化算法求解,取得了较好的效果。

1 公交调度优化模型

公交调度与诸多因素有关,对于公交线路上的公交车调度,其难点在于协调乘客与公交公司两者的利益。调度方案即要照顾乘客的利益,即减少乘客的等待时间;又要考虑公交公司节省运行支出。只有使乘客与公交公司费用之和为最小才能获得最大的社会效益[1-2],所以以其作为目标函数来建立数学模型。

1.1 模型假设

调度优化模型的建立基于以下假设:

①所有车辆车型一致,并沿着规定线路运行。

②不准许越站和超车。

③假定每辆车经过各车站时不会留有乘客。

④在给定的时间段内,发车间隔是固定的。

⑤各时间段内乘客到站服从均匀分布。

⑥站间运行时间一定。

1.2 基本变量的定义

K表示时段总数,将一天划分为k个时段。

M k表示第k时段的类型(高峰期时段、平峰期时段、低峰期时段),M min

k

为该时段内最小发车间隔, M max k为该时段内最大发车间隔。

收稿日期:2009-08-24

作者简介:王敏(1976-),女,讲师,研究方向为智能计算。

1

1

1

T k 表示第k 时段的时段长度。

t k 表示第k 时段内的发车间隔,根据M k 的值有

不同的取值范围。

J 表示该线路的车站总数,将线路划分为j 个车站。

p kj 表示第k 时段第j 站的乘客到站密度(服从均匀分布)。

C 公交线路车辆平均每班次运行所需要的费用。S 社会平均每分钟的工资。1.3 目标函数

一个工作日内公交线路运营总费用为:

F (e )=C ?

K

k =1

T k t k

(1)

一个工作日内乘客等待总费用为:

f (e )=S ?

∑K

k =1∑J

j =1

T k t k 」

?p kj t 2

k

2

(2)

记符号Z 表示总费用,则公交调度优化问题的

目标为:

min Z =α?F (e )+β?f (e )

(3)约束条件:M min k ≤t k ≤M max k

α+β=1(加权系数,反映了二者之间的制约关系)

2 基于改进粒子群优化的公交调度

优化方法

2.1 粒子群优化(PSO )

PSO 算法是基于群体与适应度,根据对环境的

适应度将群体中的个体移动到好的区域。将每个个

体看作D 维搜索空间中的一个没有体积的粒子,在搜索空间中以一定的速度飞行。这个速度根据它本身的飞行经验以及同伴的飞行经验进行动态调整。第i 个粒子表示为X i =(x i 1,x i 2,…,x iD ),它经历过的最好位置称为p best 。在群体所有粒子经历过的最好位置的索引号用符号g best 表示。粒子i 的速度用V i =(v i 1,v i 2,…,v iD )表示。对每一代,其第d 维(1≤

d ≤D )根据如下方程变化:

v k +1

id

=ωv k id +c 1?rand ()?(p k id -x k

id )+ c 2?rand ()?(p k gd -x k

id )

(4)x k +1

id

=x k id +v k

id

(5)

其中,k 为迭代次数;ω为惯性权重,它使粒子保持运动的惯性,使其有能力探索新的区域;c 1和c 2为加速常数,它们使每个粒子向p best 和g best 位置加速运动;rand 为[-1,1]范围内变化的随机数。2.2 改进的粒子群优化算法(MPS O )

在基本PS O 算法的迭代初期,粒子在较大的空间内进行搜索,但随着迭代次数的增加,在搜索的后期,粒子会向局部极小或全局极小收敛。此时,p best ,g best 和V i 都会趋向于同一点,且每个粒子的运动速度趋向于0。这种情形下,粒子群所趋向的那个点即为粒子群优化算法的最终求解结果,此结果可能并不是全局最优。因此,需要为PS O 算法提供一种机制,使得在陷入局部最优时能够跳出局部最优位置,进入空间的其它区域进行搜索,从而增强

PS O 算法的全局搜索能力[3]

。通过采用“驱散”策略的方法来实现这一目标,方法原理如下:

首先,用一个参数p 代表粒子群的聚集度。将第k 代粒子群分布的当前搜索空间D Q 个相等区域,分别统计每个区域中所包含的粒子数目,并记为p 1,p 2,p 3,…,p Q ,定义粒子数目最多的一个为p L ,当p L (0

当运行一定代数之后,p L 会逐渐稳定下来,且趋近于粒子群的粒子总数,此时可认为当前g best 为局部最优,为了逃出局部最优,对所有粒子的位置进行重新初始化,分布于Q 个区域中,这样就将原本聚集在一起的粒子“驱散”开来,而每个粒子在随后的迭代过程中在新的位置基于粒子在上次搜索中的运动惯性向p best ,g best 的方向前进。随着迭代的继续,经过驱散的粒子群又将趋于同一点,当粒子群收敛到一定程度时又进行下一次驱散过程,如此反复,直到指定的最大进化代数或者最优解继续保持一定代数不变。

3 基于MPSO 的公交调度优化方法

3.1 粒子编解码

从调度优化模型中可以看出,目标函数是公交

线路上发车间隔的函数,是进行优化的对象。对于使用MPS O 算法解决公交调度优化问题,关键在于怎样表达发车时序。鉴于所建立的模型是分时段等间隔的,我们采用整数形式的编码方式。结合实际

情况,规定M min k 不得小于3min ,M max

k 不得大于18min ,即区间长度为16,可以采用1位16进制代码表示,编码与区间的映射关系为:3→0,4→1,…,18→F 。具体编码过程如下:

假设全天分为4个时段,发车间隔分别为12min ,5min ,8min ,15min ,则经过映射后粒子表示为

X =[9|2|5|C ]

解码时依据映射关系进行反向映射即可得到发车时序。

根据上述编码机制,按照不同时段内发车间隔的取值范围,随机产生初始粒子群,粒子群规模为N ,MPSO 的搜索空间也设计成n 维空间。3.2 适应度评价

MPSO 算法通过适应度来评价粒子当前位置的

2

11—

优劣。对应公交调度方案的总费用越低,则适应度越高。相应的适应度函数为:

F=1

Z

(6)

3.3 算法描述

算法步骤描述如下:

步骤1:编码和初始化粒子群。

步骤2:按式(4)、(5)产生下一代种群,按式(6)计算所有粒子的适应度。

步骤3:评价新种群:找到新的p

best 和g

best

;更新

种群的g

best 和每个粒子的p

best

步骤4:更新聚集度p

L。

步骤5:判断p

L的值。如果满足驱散条件,则进行驱散操作,跳转返回步骤2;否则继续执行步骤6。

步骤6:判断算法是否达到全局收敛或达到预先设定的迭代次数,如果满足,继续执行步骤7;否则跳转返回步骤2。

步骤7:输出全局极值g

best

,算法运行结束。

4 实例研究

以武汉市一条典型的公交线路为例进行计算。该条公交线路运营长度为8.7公里,共设16站,运营时间为6∶00~20∶00,表1中给出该线路某一周内下行方向各站客流数量统计数据。算法主要参数设置:共划分14个时段;发车间隔变化区间高峰期为[3,6],平峰期为[6,12],低峰期为[12,18],且取值均为1的整数倍;公交车综合运营费用为3.2元Πkm;乘客等待成本为0.15元Πmin;加权系数α=β=0.5;粒子群规模为200;最大迭代次数为200。应用MPS O算法得优化发车间隔如表2所示。

表1 各站点客流情况

站序

平均每分钟到达车站人数

6~77~88~99~1010~1111~1212~1313~1414~1515~1616~1717~1818~1919~20

1 1.5

2 1.5110.50.50.51 1.52321 21211110.50.5 1.51 1.5221 30.5110.50.50.50.50.50.511 1.50.50.5 40.510.50.50.50.50.50.50.50.5 1.5 1.5 1.50.5 5 1.5221110.50.50.51 1.5320.5 60.5110.50.50.50.50.50.50.512 1.50.5 700.50.50000000.50.5 1.510 80.5110.50.50.50.50.5111 1.5 1.50.5 91 1.5 1.51110.50.5111110.5 10122110.50.50.511 1.5 2.5 1.50.5 110.5110.50.50.50.50.50.511 1.5 1.50.5 1212 1.51111111 1.5 1.5 1.51 130.50.50.50.50.50.50.50.50.50.50.50.50.50.5 140.5110.50.50.50.50.510.50.50.500 1500000000000000 1600000000000000

表2 优化发车间隔表

时段发车间隔发车班次6~7106 7~8610 8~978 9~10106 10~11115 11~12125 12~13154 13~14154 14~15115 15~1696 16~17610 17~18415 18~19512 19~201255 结束语

以公交公司运营费用和乘客等待时间为衡量标准构造公交调度优化模型。针对公交调度的组合优化特性,运用改进的粒子群优化算法对调度方案进行优化。优化后的方案兼顾了公交公司和乘客两方面的利益,实现了资源的优化配置,使得社会总体效益达到最优,为公交优化调度提供了一种解决办法,具有一定的实际意义。

参考文献:

[1] Y ang Z hiwei,Z hao Shengchuan,Z hao Qian.Research on Bus Scheduling

Based on Artificial Immune Alg orithm[C].W iCOM’08.4th Interna2 tional C on ference,2008:1-4.

[2] 陈芳.城市公交调度模型研究[J].中南公路工程,2005,30(2):

20-23.

[3] 王楷,肖诗松,赵锦元.Ad H oc网络中基于粒子群优化的Q oS多

播路由研究[J].微电子学与计算机,2006,23(9):41-43.

责任编辑:张荣香

3

1

1

粒子群算法(PSO)程序(C#语言)

粒子群算法(PSO)程序(C#语言) 超简洁的随机粒子群算法,PSO,程序,C,语言, using System; using System.Linq; using System.Collections.Generic; class MyPSO { const int NUM=40;//粒子数 const int DIM=30;//维数 const double c1=1.8;//参数 const double c2=1.8;//参数 static double xmin=-100.0;//位置下限 static double xmax=100.0;//位置上限 static double[] gbestx=new double[DIM];//全局最优位置 static double gbestf;//全局最优适应度 static Random rand=new Random();//用于生成随机数 class particle {//定义一个粒子 public double[] x=new double[DIM];//当前位置矢量 public double[] bestx=new double[DIM];//历史最优位置 public double f;//当前适应度 public double bestf;//历史最优适应度 } particle[] swarm=new particle[NUM];//定义粒子群 double f1(double[] x) {//测试函数:超球函数 return x.Sum(a => a*a);

} static void Main(string[] args) { for(int i=0; i

有关公交车调度问题的探讨

关于公交车调度问题的探讨 摘要:本文主要讨论了公交车调度的最优策略问题. 本文建立以公交公司获利最大为目标的优化模型.设计某一线路全天(工作日)的公交车调度方案,在这里需要考虑乘客和公交公司两方面的利益.在本文建立的模型中,以公交公司拥有的车辆数目最少为目标函数,以公交车的载客率以及乘客的等车时间(乘客候车时间一般不要超过10分钟,早高峰时一般不要超过5分钟)为约束条件,建立最优解的优化模型. 运用分类讨论的数学思想,将原始表格数据分成三部分,运用Matlab软件分别对三组数据进行拟合,求得三个间断的拟合函数,而后利用lingo软件,对所求数据进行计算和处理,求出各间段的最佳发车时间,以及公交公司在该线路上应拥有的车辆数目.其中,在分析处理原始表格时,由于要使载客率尽量大,所以只需分析上车人数大于下车人数的站点(见表一,表二),其他站点忽略无需考虑.最终,运用lingo软件求得该线路最少需要配置50辆公交车以及在不同时段的发车间隔(见表4). 本模型还可推广到应用于其他行业的运输问题或者其他运输方式的发车安排,例如火车和轮船的最优发车问题,飞机最优起飞问题等等,从而最终达到资源的最优配置. 关键词:公交车调度;优化模型;载客率

一.问题重述 公共交通是城市交通的重要组成部分,作好公交车的调度对于完善城市交通环境、改进市民出行状况、提高公交公司的经济和社会效益,都具有重要意义.下面考虑一条公交线路上公交车的调度问题,其数据来自我国一座特大城市某条公交线路的客流调查和运营资料. 该条公交线路上行方向共14站,下行方向共13站,第3-4页给出的是典型的一个工作日两个运行方向各站上下车的乘客数量统计.公交公司配给该线路同一型号的大客车,每辆标准载客100 人,据统计客车在该线路上运行的平均速度为20公里/小时.根据运营调度要求,乘客候车时间一般不要超过10分钟,早高峰时一般不要超过5分钟,车辆满载率不应超过 120%,一般也不要低于50%. 试根据这些资料和要求,为该线路设计一个便于操作的全天(工作日)的公交车调度方案,包括两个起点站的发车时刻表;一共需要多少辆车;这个方案以怎样的程度照顾到了乘客和公交公司双方的利益;等等. 如何将这个调度问题抽象成一个明确、完整的数学模型,指出求解模型的方法;根据实际问题的要求,如果要设计更好的调度方案,应如何采集运营数据. 二.问题分析 本题目要求设计某一线路全天(工作日)的公交车调度方案,在这里需要考虑乘客和公交公司两方面的利益,是一个优化问题.在本文建立的模型中,以公交公司拥有的车辆数目尽量少为目标函数,以公交车的载客率以及乘客的等车时间(乘客候车时间一般不要超过10分钟,早高峰时一般不要超过5分钟)为约束条件,建立最优解的优化模型. 公交车的标准载客量为100人,且车辆满载率不应超过 120%,一般也不要低于50%.当公交车的载客量太少时,公交公司的利益就会受损;在每趟车的载客率不大于最大载客量的前提下,公交车的载客率越大,公交公司的盈利就越多.早高峰以及晚高峰时间,由于候车人数剧增,要使等待乘车人的等待时间不超过5分钟,就要增加发车次数,减少发车间隔;非高峰时段,等待乘车人数较高峰时段明显减少,且此时只需保证等待乘车人的等待时间不超过10分钟,此时较高峰期是不同的发车间隔和发车次数.故如何合理安排该路线在不同时间段的发车间隔以及该路线拥有总的车辆数,使得公交公司的获利最大. 运用分类讨论的数学思想,将原始表格数据分成三部分,运用Matlab软件分别对三组数据进行分析和讨论,而后运用拟合的数学方法,对所求数据进行处理,求出最佳发车时刻表以及公交公司在该线路上拥有的总车辆数目.其中,在分析处理原始表格时,由于要使载客率尽量大,即只需分析上车人数大于下车人数的站点(见表一,表二),其他站点忽略无需考虑. 在求解模型的过程中,将模型分为上行方向和下行方向分别进行分析和计算,最后再将两组数据进行比较,得出该线路上拥有的最小总车辆数以及该线路公交车的最优发车间隔.

粒子群优化算法介绍及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。这样一个标准的粒子群算法就介绍结束了。下图是对整个基本的粒子群的过程给一个简单的图形表示。 判断终止条件可是设置适应值到达一定的数值或者循环一定的次数。 注意:这里的粒子是同时跟踪自己的历史最优值与全局(群体)最优值来改变自己的位置预速度的,所以又叫做全局版本的标准粒子群优化算法。

公交车调度的方案优化设计

公交公交车调度方案优化设计 摘要 本文利用某一特大城市某条公交路线上的客流调查运营资料,以乘客的平均抱怨度、公司运营所需的总车辆数、公司每天所发的总车次数以及平均每车次的载客率为目标函数,建立了的分时段等间隔发车的综合优化调度模型。在模型求解过程中,采用了时间步长法、等效法以及二者的结合的等效时间步长法三种求解方法,尤其是第三种求解方法既提高了速度又改善了精度。结合模型的求解结果,我们最终推荐的模型是分时段等间隔发车的优化调度方案。 在建立模型时,我们首先进行了一些必要假设和分析,尤其是针对乘客的抱怨程度这一模糊性的指标,进行了合理的定义。既考虑了乘客抱怨度和等待时间长短的关系,也照顾了不同时间段内抱怨度对等待时间的敏感性不同,即乘客在不同时段等待相同时间抱怨度可能不一样。 主要思想是通过逐步改变发车时间间隔用计算机模拟各个时间段期间的系统运行状态,确定最优的发车时间间隔,但计算量过大,对初值依赖性强。等效法是基于先来先上总候车时间和后来先上的总候车时间相等的原理,通过把问题等价为后来先上的情况,巧妙地利用“滞留人数”的概念,把原来数据大大简化了。很快而且很方便地就可求出给定发车间隔时的平均等待时间,和在给定平均等待时间的情况下的发车间隔,但该方法只能对不同时段分别处理。结合前两种方法的优点提出等效时间步长法,即从全天时段内考虑整体目标,使用等效法为时间步长法提供初值,通过逐步求精,把整个一天联合在一起进行优化。通过对模型计算结果的分析,我们发现由于高峰期乘车人数在所有站点都突然大量增加,而车辆调度有滞后效应,从而建议调度方案根据实际情况前移一段适当的时间。在模型的进一步讨论和推广中,我们还对采集运营数据方法的优化、公共汽车线路的通行能力以及上下行方向发车的均衡性等进行了讨论。 在求具体发车时刻表时,利用等效时间步长法,较快地根据题中所给出的数据设计了一个较好的照顾到了乘客和公交公司双方利益的公交车调度方案,给出了两个起点站的发车时刻表(见表二),得出了总共需要49辆车,共发440辆次,早高峰期间等待时间超过5分钟的人数占早高峰期间总人数的0.93%,非早高峰期间等待时间超过10分钟的人数占非早高峰期间总人数的3.12%。引入随机干扰因子,使各单位时间内等车人数发生随机改变。在不同随机干扰水平下,对推荐的调度方案进行仿真计算,发现平均抱怨度对10%的随机干扰水平相对改变只有0.53%,因此该方案对随机变化有很好的适应性,能满足实际调度的需要。 1.问题的提出

标准粒子群算法(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。

公交车调度的优化模型

公交车调度的优化模型 摘要 公共交通是城市交通的重要组成部分,做好公交车的调度对于完善城市交通环境、改进市民出行状况、提高公交公司的经济和社会效益,都具有重要意义。本文就是通过对我国一座特大城市某条公交线路的一个工作日两个运行方向各站上下车的乘客数量统计进行分析,建立公交车调度方案的优化模型,使公交公司在满足一定的社会效益和获得最大经济效益前提下,给出了理想公交车调度方案。 对于问题一,模型I 中建立了最大客容量,发车车次数的数学模型,运用决策方法给出了各时间段最大客容量数,在满足客车载满率及载完各时段所有乘客情形下,得出每天最少车次数为460次,最少车辆数为54辆,并给出了整分发车时刻表(见表6、表7)。 对于问题二,模型II 进行了满意度分析。满意度包含公交公司的满意度A i 和乘客的满意度i B ,通过分析得到公交公司的满意度公式(7)和乘客的满意度公式(12),然后求出当公交车最大载客量为120时,公交公司和乘客的满意度为:上行方向:11A =0.9686,B 0.7165=,下行方向:2A2=0.9563,B 0.7138=。再算出当公交车最大载客量分别为100、50时对应的公交公司和乘客的满意度,最后通过二次拟合得出乘客和公交公司满意度对应的关系式为: 上行方向:21111.8709 2.10170.4361B A A =-++ 10.41020.9686A ≤≤ 下行方向:22222.2995 2.63450.2974B A A =-++ 20.41060.9563A ≤≤ 使双方满意度之和达到最大,同时双方满意度之差最小,得到上下行的最优满意度分别为()110.8599,0.8599A B ==,()220.8610,0.8610A B ==,此时公交车调度

粒子群优化算法

1. 引言 粒子群优化算法(PSO)是一种进化计算技术 (evoluti on ary compu tatio n),有Eberhart 博士 和 kennedy 博士发明。源于对鸟群捕食的行为研究。 PSO 同遗传算法类似,是一种基于叠代的优化工具。系统初始化为一组随机解,通过叠 代搜寻最优 值。但是并没有遗传算法用的交叉 (crossover)以及变异(mutation),而是粒子在解 空间追随最优的粒子进行搜索。详细的步骤以后的章节介绍 同遗传算法比较, PSO 的优势在于简单容易实现并且没有许多参数需要调整。目前已广 泛应用于函数优化,神经网络训练,模糊系统控制以及其他遗传算法的应用领域。 2. 背景 : 人工生命 "人工生命 "是来研究具有某些生命基本特征的人工系统 . 人工生命包括两方面的内容 1. 研究如何利用计算技术研究生物现象 2. 研究如何利用生物技术研究计算问题 我们现在关注的是第二部分的内容 . 现在已经有很多源于生物现象的计算技巧 . 例如 , 人工神经网络是简化的大脑模型 . 遗传算法是模拟基因进化过程的 . 现在我们讨论另一种生物系统 - 社会系统 . 更确切的是 , 在由简单个体组成的群落与环 境以及个体之间的互动行为 . 也可称做 "群智能 "(swarm intelligence). 这些模拟系统利用局 部信息从而可能产生不可预测的群体行为 例如 floys 和 boids, 他们都用来模拟鱼群和鸟群的运动规律 , 主要用于计算机视觉和计算 机辅助设计 . 在计算智能 (computational intelligence) 领域有两种基于群智能的算法 . 蚁群算法 (ant colony optimization) 和粒子群算法 (particle swarm optimization). 前者是对蚂蚁群落食物采集 过程的模 拟 . 已经成功运用在很多离散优化问题上 . 粒子群优化算法 (PSO) 也是起源对简单社会系统的模拟 程. 但后来发现 PSO 是一种很好的优化工具 . 3. 算法介绍 如前所述, PSO 模拟鸟群的捕食行为。设想这样 一个场景: 这个区域里只有一块食物。 所有的鸟都不知道食物在那里。 还有多远。 那么找到食物的最优策略是什么呢。 的周围区域。 PSO 从这种模型中得到启示并用于解决优化问题。 PSO 中,每个优化问题的解都是搜索 空间中的一只鸟。我们称之为 “粒子 ”。所有的例子都有一个由被优化的函数决定的适应值 (fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前 的最优粒子在解空 间中搜索 PSO 算 法 . 最初设想是模拟鸟群觅食的过 一群鸟在随机搜索食物。在 但 是他们知道当前的位置离食物 最简单有效的就是搜寻目前离食物最近的鸟

公交车调度方案的优化模型

第三篇公交车调度方案的优化模型 2001年 B题公交车调度Array公共交通是城市交通的重要组成部分,作好公交车的调度对 于完善城市交通环境、改进市民出行状况、提高公交公司的经济 和社会效益,都具有重要意义。下面考虑一条公交线路上公交车 的调度问题,其数据来自我国一座特大城市某条公交线路的客流 调查和运营资料。 该条公交线路上行方向共14站,下行方向共13站,表3-1 给出的是典型的一个工作日两个运行方向各站上下车的乘客数量统计。公交公司配给该线路同一型号的大客车,每辆标准载客100人,据统计客车在该线路上运行的平均速度为20公里/小时。运营调度要求,乘客候车时间一般不要超过10分钟,早高峰时一般不要超过5分钟,车辆满载率不应超过120%,一般也不要低于50%。 试根据这些资料和要求,为该线路设计一个便于操作的全天(工作日)的公交车调度方案,包括两个起点站的发车时刻表;一共需要多少辆车;这个方案以怎样的程度照顾到了乘客和公交公司双方的利益;等等。 如何将这个调度问题抽象成一个明确、完整的数学模型,指出求解模型的方法;根据实际问题 的要求,如果要设计更好的调度方案,应如何采集运营数据。

公交车调度方案的优化模型* 摘要:本文建立了公交车调度方案的优化模型,使公交公司在满足一定的社会效益和获得最大经济效益的前提下,给出了理想发车时刻表和最少车辆数。并提供了关于采集运营数据的较好建议。 在模型Ⅰ中,对问题1建立了求最大客容量、车次数、发车时间间隔等模型,运用决策方法给出了各时段最大客容量数,再与车辆最大载客量比较,得出载完该时组乘客的最少车次数462次,从便于操作和发车密度考虑,给出了整分发车时刻表和需要的最少车辆数61辆。模型Ⅱ建立模糊分析模型,结合层次分析求得模型Ⅰ带给公司和乘客双方日满意度为(0.941,0.811)根据双方满意度范围和程度,找出同时达到双方最优日满意度(0.8807,0.8807),且此时结果为474次50辆;从日共需车辆最少考虑,结果为484次45辆。对问题2,建立了综合效益目标模型及线性规划法求解。对问题3,数据采集方法是遵照前门进中门出的规律,运用两个自动记录机对上下车乘客数记录和自动报站机(加报时间信息)作录音结合,给出准确的各项数据,返站后结合日期储存到公司总调度室。 关键词:公交调度;模糊优化法;层次分析;满意度 3.1 问题的重述 3.1.1 问题的基本背景 公交公司制定公交车调度方案,要考虑公交车、车站和乘客三方面因素。我国某特大城市某条公交线路情况,一个工作日两个运营方向各个站上下车的乘客数量统计见表3-1。 3.1.2 运营及调度要求 ⑴公交线路上行方向共14站,下行方向共13站; ⑵公交公司配给该线路同一型号的大客车,每辆标准载客100人,据统计客车在该线路上运营的平均速度为20公里/小时。车辆满载率不应超过120%,一般也不低于50%; ⑶乘客候车时间一般不要超过10分钟,早高峰时一般不要超过5分钟。 3.1.3 要求的具体问题 ⑴试根据这些资料和要求,为该线路设计一个便于操作的全天(工作日)的公交车调度方案,包括两个起点站的发车时刻表;一共需要多少辆车;这个方案以怎样的程度照顾到了乘客和公交公司双方的利益,等等; ⑵如何将这个调度问题抽象成一个明确完整的数学模型,并指出求解方法; ⑶据实际问题的要求,如果要设计好更好的调度方案,应如何采集运营数据。 3.2 问题的分析 本问题的难点是同时考虑到完善城市交通环境、改进市民出行状况、提高公交公司的经济和社会效益等诸多因素。如果仅考虑提高公交公司的经济效益,则只要提高公交车的满载率,运用数据分析法可方便地给出它的最佳调度方案;如果仅考虑方便乘客出行,只要增加车辆数的次数,运用统计方法同样可以方便地给出它的最佳调度方案,显然这两种方案是对立的。于是我们将此题分成两个方面,分别考虑到:⑴公交公司的经济效益,记为公司的满意度;⑵乘客的等待时间和乘车的舒适度,记为乘客的满意度。

c语言实现的粒子群算法代码及解释

//粒子群PSO算法 #include #include #include #include #define PI 3.141592653589 /* */ #define P_num 200 //粒子数目 #define dim 50 #define low -100 //搜索域范围 #define high 100 #define iter_num 1000 #define V_max 20 //速度范围 #define c1 2 #define c2 2 #define w 0.5 #define alp 1 double particle[P_num][dim]; //个体集合 double particle_loc_best[P_num][dim]; //每个个体局部最优向量 double particle_loc_fit[P_num]; //个体的局部最优适应度,有局部最优向量计算而来double particle_glo_best[dim]; //全局最优向量 double gfit; //全局最优适应度,有全局最优向量计算而来double particle_v[P_num][dim]; //记录每个个体的当前代速度向量 double particle_fit[P_num]; //记录每个粒子的当前代适应度 double Sphere(double a[]) { int i; double sum=0.0; for(i=0; i

公交车调度方案的优化设计

公交车调度 公共交通是城市交通的重要组成部分,作好公交车的调度对于完善城市交通环境、改进市民出行状况、提高公交公司的经济和社会效益,都具有重要意义。下面考虑一条公交线路上公交车的调度问题,其数据来自我国一座特大城市某条公交线路的客流调查和运营资料。 该条公交线路上行方向共14站,下行方向共13站,第3-4页给出的是典型的一个工作日两个运行方向各站上下车的乘客数量统计。公交公司配给该线路同一型号的大客车,每辆标准载客100 人,据统计客车在该线路上运行的平均速度为20公里/小时。运营调度要求,乘客候车时间一般不要超过10分钟,早高峰时一般不要超过5分钟,车辆满载率不应超过120%,一般也不要低于50%。 试根据这些资料和要求,为该线路设计一个便于操作的全天(工作日)的公交车调度方案,包括两个起点站的发车时刻表;一共需要多少辆车;这个方案以怎样的程度照顾到了乘客和公交公司双方的利益;等等。 如何将这个调度问题抽象成一个明确、完整的数学模型,指出求解模型的方法;根据实际问题的要求,如果要设计更好的调度方案,应如何采集运营数据。

公交车调度方案的优化设计 摘要 本文利用某一特大城市某条公交路线上的客流调查运营资料,以乘客的平均抱怨度、公司运营所需的总车辆数、公司每天所发的总车次数以及平均每车次的载客率为目标函数,建立了的分时段等间隔发车的综合优化调度模型。在模型求解过程中,采用了时间步长法、等效法以及二者的结合的等效时间步长法三种求解方法,尤其是第三种求解方法既提高了速度又改善了精度。结合模型的求解结果,我们最终推荐的模型是分时段等间隔发车的优化调度方案。 在建立模型时,我们首先进行了一些必要假设和分析,尤其是针对乘客的抱怨程度这一模糊性的指标,进行了合理的定义。既考虑了乘客抱怨度和等待时间长短的关系,也照顾了不同时间段内抱怨度对等待时间的敏感性不同,即乘客在不同时段等待相同时间抱怨度可能不一样。 主要思想是通过逐步改变发车时间间隔用计算机模拟各个时间段期间的系统运行状态,确定最优的发车时间间隔,但计算量过大,对初值依赖性强。等效法是基于先来先上总候车时间和后来先上的总候车时间相等的原理,通过把问题等价为后来先上的情况,巧妙地利用“滞留人数”的概念,把原来数据大大简化了。很快而且很方便地就可求出给定发车间隔时的平均等待时间,和在给定平均等待时间的情况下的发车间隔,但该方法只能对不同时段分别处理。结合前两种方法的优点提出等效时间步长法,即从全天时段内考虑整体目标,使用等效法为时间步长法提供初值,通过逐步求精,把整个一天联合在一起进行优化。通过对模型计算结果的分析,我们发现由于高峰期乘车人数在所有站点都突然大量增加,而车辆调度有滞后效应,从而建议调度方案根据实际情况前移一段适当的时间。在模型的进一步讨论和推广中,我们还对采集运营数据方法的优化、公共汽车线路的通行能力以及上下行方向发车的均衡性等进行了讨论。 在求具体发车时刻表时,利用等效时间步长法,较快地根据题中所给出的数据设计了一个较好的照顾到了乘客和公交公司双方利益的公交车调度方案,给出了两个起点站的发车时刻表(见表二),得出了总共需要49辆车,共发440辆次,早高峰期间等待时间超过5分钟的人数占早高峰期间总人数的0.93%,非早高峰期间等待时间超过10分钟的人数占非早高峰期间总人数的3.12%。引入随机干扰因子,使各单位时间内等车人数发生随机改变。在不同随机干扰水平下,对推荐的调度方案进行仿真计算,发现平均抱怨度对10%的随机干扰水平相对改变只有0.53%,因此该方案对随机变化有很好的适应性,能满足实际调度的需要。

粒子群算法解决函数优化问题

粒子群算法解决函数优化问题 1、群智能算法研究背景 粒子群优化算法(Particle Swarm Optimization,PSO)是由Kennedy 和Eberhart 在研究鸟类和鱼类的群体行为基础上于1995 年提出的一种群智能算法,其思想来源于人工生命和演化计算理论,模仿鸟群飞行觅食行为,通过鸟集体协作使群体达到优。 PSO算法作为一种新的群智能算法,可用于解决大量非线性、不可微和多峰值的复杂函数优化问题,并已广泛应用于科学和工程领域,如函数优化、神经网络训练、经济调度、模式识别与分类、结构设计、电磁场和任务调度等工程优化问题等。 PSO算法从提出到进一步发展,仅仅经历了十几年的时间,算法的理论基础还很薄弱,自身也存在着收敛速度慢和早熟的缺陷。如何加快粒子群算法的收敛速度和避免出现早熟收敛,一直是大多数研究者关注的重点。因此,对粒子群算法的分析改进不仅具有理论意义,而且具有一定的实际应用价值。 2、国内外研究现状 对PSO算法中惯性权重的改进:Poli等人在速度更新公式中引入惯性权重来更好的控制收敛和探索,形成了当前的标准PSO算法。 研究人员进行了大量的研究工作,先后提出了线性递减权值( LDIW)策略、模糊惯性权值( FIW) 策略和随机惯性权值( RIW) 策略。其中,FIW 策略需要专家知识建立模糊规则,实现难度较大,RIW 策略被用于求解动态系统,LDIW策略相对简单且收敛速度快, 任子晖,王坚于2009 年,又提出了基于聚焦距离变化率的自适应惯性权重PSO算法。 郑春颖和郑全弟等人,提出了基于试探的变步长自适应粒子群算

法。这些改进的PSO算法既保持了搜索速度快的特点, 又提高了全局搜索的能力。 对PSO算法的行为和收敛性的分析:1999 年采用代数方法对几种典型PSO算法的运行轨迹进行了分析,给出了保证收敛的参数选择范围。在收敛性方面Fransvan den Bergh引用Solis和Wets关于随机性算法的收敛准则,证明了标准PSO算法不能收敛于全局优解,甚至于局部优解;证明了保证收敛的PSO算法能够收敛于局部优解,而不能保证收敛于全局优解。 国内的学者:2006 年,刘洪波和王秀坤等人对粒子群优化算法的收敛性进行分析,指出它在满足收敛性的前提下种群多样性趋于减小,粒子将会因速度降低而失去继续搜索可行解的能力,提出混沌粒子群优化算法。 2008 年,黄翀鹏和熊伟丽等人分析惯性权值因子大小对PSO算法收敛性所带来的影响,对粒子群算法进行了改进。2009 年,高浩和冷文浩等人,分析了速度因子对微粒群算法影响,提出了一种基于Gaussian 变异全局收敛的粒子群算法。并证明了它能以概率 1 收敛到全局优解。 2010 年,为提高粒子群算法的收敛性,提出了基于动力系统的稳定性理论,对惯性权重粒子群模型的收敛性进行了分析,提出了使得在算法模型群模型收敛条件下的惯性权重和加速系数的参数约束关系,使算法在收敛性方面具有显著优越性。在PSO算法中嵌入别的算法的思想和技术。 1997年,李兵和蒋慰孙提出混沌优化方法; 1998年,Angeline在PSO算法中引入遗传算法中的选择算子,该算法虽然加快了算法的收敛速度,但同时也使算法陷入局部优的概率大增,特别是在优化Griewank 基准函数的优值时得到的结果不理想; 2004 年,高鹰和谢胜利将混沌寻优思想引入到粒子群优化算法中,首先对当前群体中的优粒子进行混沌寻优, 再用混沌寻优的结果随机替换群体中的一个粒子,这样提出另一种混沌粒子群优化算法。

公交车调度问题

公交车调度问题 关于公交车的调度问题 摘要:本文主要是研究公交车调度的最优策略问题。我们建立了一个以公交车 的利益为目标函数的优化模型,同时保证等车时间超过10 分钟(或者超过 5 分 钟)的乘客人数在总的等车乘客数所占的比重小于一个事先给定的较小值。首先,利用最小二乘法拟合出各站上(下)车人数的非参数分布函数,求解时 先用一种简单方法估算出最小配车数43 辆。然后依此为参照值,利用Maple 优化工具得到一个整体最优解:最小配车数为48 辆,并给出了在公交车载客量不同条件下的最优车辆调度方案,使得公司的收益得到最大,并且乘客等车的时间不宜过长,最后对整个模型进行了推广和评价,指出了有效改进方向。 关键词:公交车调度;优化模型;最小二乘法 问题的重述:公共交通是城市交通的重要组成部分,作好公交车的调度对于完 善城市交通环境、改进市民出行状况、提高公交公司的经济和社会效益,都具有重要意义。下面考虑一条公交线路上公交车的调度问题,其数据来自我国一座特大城市某条公交线路的客流调查和运营资料。 该条公交线路上行方向共14 站,下行方向共13 站,第3-4 页给出的是典型 的一个工作日两个运行方向各站上下车的乘客数量统计。公交公司配给该线路同一型号的大客车,每辆标准载客100 人,据统计客车在该线路上运行的平均

速度为20 公里/小时。运营调度要求,乘客候车时间一般不要超过10 分钟,早 高峰时一般不要超过5分钟,车辆满载率不应超过120%, 一般也不要低于50%。 试根据这些资料和要求,为该线路设计一个便于操作的全天(工作日)的公交车调度方案,包括两个起点站的发车时刻表;一共需要多少辆车;这个方案以怎样的程度照顾到了乘客和公交公司双方的利益;等等。 如何将这个调度问题抽象成一个明确、完整的数学模型, 指出求解模型的方 法;根据实际问题的要求,如果要设计更好的调度方案,应如何采集运营数据。 基本假设 1)该公交路线不存在堵塞现象,且公共汽车之间依次行进,不存在超车现象。 2)公共汽车满载后,乘客不能再上,只得等待下一辆车的到来。 3)上行、下行方向的头班车同时从起始站出发。 4)该公交路线上行方向共14站,下行方向共13站。 5)公交车均为同一型号,每辆标准载客100 名,车辆满载率不应超过120%, 一般也不要低于50% 。 6)客车在该路线上运行的平均速度为20 公里/小时,不考虑乘客上下车时间。 7)乘客侯车时间一般不超过10 分钟,早高峰时一般不超过 5 分钟。 8)一开始从 A 13出发的车辆,与一开始从A 0出发的车辆不发生交替,两循环 独立。 9)题目所给的数据具有一定的代表性,可以做为各种计算的依据。 符号说明 N a:从总站A13 始发出的公交车的总次数(上行方向) N b :从总站 A 0 始发出的公交车的总次数(下行方向) T1 :上行方向早高峰发车间隔时间 T 2 :上行方向平时发车间隔时间 T 3 :上行方向晚高峰发车间隔时间

【数学与应用数学】论文——公交车合理调度的优化模型

公交车合理调度的优化模型 摘要:公共交通是城市交通的中央组成部分,公交车的调度具有重要的现实意义.本模型利用统计资料的特 点,运行统计,最优化等数学方法以及Maple 软件,考虑到公交公司和乘客双方的利益相矛盾,给出了一个最优的调度时刻表,计算出了所需车辆至少要53辆.进而劳力到调度方案的可行性,通过计算机模拟搜索,给出了一个便于操作的优化方案,计算出所需车辆至少为44辆.校验该方案,公交公司的利益很大程度满足,原来每天每车次的平均载客量只降低了39人/车次,而乘客满意度也不会有很大降低. 关键词:公交车调度;载客率;发车时刻表;最优模型;优化方案 一、问题的提出 公共交通是城市交通的重要组成部分,作为公交车的调度具有重要的现实意义.某城市的公交公司统计了上行下行两个方向的某条公交线路上的客观情况.给出了一个典型工作日各时组两个运行方向每站上下车人数.该条公交线路上行方向共14站,总长14.58公里;下行方向共13站,总长14.61公里.公交公司配给该线路标准载客100人的同一型号的大客车,客车在该线路上运行的平均速度为20公里/小时.现在要根据这些资料,为该线路设计一个便于操作的全天(工作日)的公交调度方案,包括: 1.两个起点站的发车时间; 2.一共需要多少辆车; 3.该方案以这样的程度照顾到了乘客和公交公司双方的利益.其中,营运调度要求: (1).每一辆客车的满载率50%~120%. (2).乘客候车时间一般不超过10分钟,早高峰期不超过5分钟. 二、模型的假设 1、交通顺畅,公交车运行秩序良好,路上无阻塞情况,汽车也不会出现突然坏掉或燃料不足等情况. 2、每辆客车始终以20公里/小时的平均速度行驶,到各站的停留载客时间也涵盖在这个车速里,即不考虑每个乘客的上下时间. 3、汽车一到总站,乘客全部下车,从而保证了总站发车时空车. 4、不论乘车距离长短,上车票价都相同.(如:1元/人) 5、公交公司的利益只考虑汽车在路面上行驶的车辆次数与载客率. 6、全天(工作日)的公交车调度从5:00开始到23:00结束,分为18个单位时组,每个时组为 1小时,表示为i T ()18,,2,1 =i 7、乘客到各站点的人数,在各时组里均匀分布. 8、乘客利益只考虑等车时间的长短. 三、符号的约定 1i N 、2i N 分别表示上下行线第i T 时组内需要开出的乘客总次数,i=18,,2,1 1i n 、2i n 分别表示在上下行线第i T 时组内正在路上行驶的车辆数,i=18,,2,1 上T 、下T 分别表示在上下行线客车从始点到终点所需行驶时间. i d 、 ' i d 分别表示在上下行线个站点间距离()1413,,2,1或 =i

粒子群优化算法

PSO算法 1. 引言 粒子群优化算法(PSO)是一种进化计算技术(evolutionary computation),有Eberhart博士和kennedy博士发明。源于对鸟群捕食的行为研究。 PSO同遗传算法类似,是一种基于叠代的优化工具。系统初始化为一组随机解,通过叠代搜寻最优值。但是并没有遗传算法用的交叉(crossover)以及变异(mutation),而是粒子在解空间追随最优的粒子进行搜索。详细的步骤以后的章节介绍 同遗传算法比较,PSO的优势在于简单容易实现并且没有许多参数需要调整。目前已广泛应用于函数优化,神经网络训练,模糊系统控制以及其他遗传算法的应用领域。 2. 背景: 人工生命 "人工生命"是来研究具有某些生命基本特征的人工系统. 人工生命包括两方面的内容 1. 研究如何利用计算技术研究生物现象 2. 研究如何利用生物技术研究计算问题 我们现在关注的是第二部分的内容. 现在已经有很多源于生物现象的计算技巧. 例如, 人工神经网络是简化的大脑模型. 遗传算法是模拟基因进化过程的. 现在我们讨论另一种生物系统- 社会系统. 更确切的是, 在由简单个体组成的群落与环境以及个体之间的互动行为. 也可称做"群智能"(swarm intelligence). 这些模拟系统利用局部信息从而可能产生不可预测的群体行为 例如floys 和boids, 他们都用来模拟鱼群和鸟群的运动规律, 主要用于计算机视觉和计算机辅助设计. 在计算智能(computational intelligence)领域有两种基于群智能的算法. 蚁群算法(ant colony optimization)和粒子群算法(particle swarm optimization). 前者是对蚂蚁群落食物采集过程的模拟. 已经成功运用在很多离散优化问题上. 粒子群优化算法(PSO) 也是起源对简单社会系统的模拟. 最初设想是模拟鸟群觅食的过程. 但后来发现PSO是一种很好的优化工具. 3. 算法介绍 如前所述,PSO模拟鸟群的捕食行为。设想这样一个场景:一群鸟在随机搜索食物。在这个区域里只有一块食物。所有的鸟都不知道食物在那里。但是他们知道当前的位置离食物还有多远。那么找到食物的最优策略是什么呢。最简单有效的就是搜寻目前离食物最近的鸟的周围区域。 PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的解都是搜索空间中的一只鸟。我们称之为“粒子”。所有的例子都有一个由被优化的函数决定的适应值(fitness value),每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索

粒子群算法(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次迭代) 最后所有的点都集中在最大值的地方。

相关文档
最新文档