最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

基于混合粒子群优化算法的现金流优化_论文

IT圈 admin 24浏览 0评论

2024年6月12日发(作者:之星腾)

第27卷第3期 计算机应用与软件 

Vo1.27 No.3 

2010年3月 

Computer Applications and Software 

Mar.2010 

基于混合粒子群优化算法的现金流优化 

黄少荣 

(广东司法警官职业学院信息管理系 广东广州510520) 

摘要 以最大化现金流净现值为优化目标的多模式资源约束调度问题MMRCPSP(Multi-mode Resource-Constrained Project 

Scheduling Problem)是一类带有复杂非线性特征的NP-hard问题,传统粒子群算法在解决该类离散问题上具有一定局限性。从粒子 

群算法的优化原理出发,结合遗传算法,在粒子群算法中引入交叉和变异操作,得出一种应用于MMRCPSP现金流优化的快速、易实 

现的混合粒子群算法,拓宽了粒子群优化算法在离散优化领域的应用。仿真实验结果验证了算法的有效性和高效性。 

关键词 粒子群算法现金流优化 净现值 交叉 变异 

oI.rI'IMISING CASH FLoW BASED oN HYBRII)PARTICLE SWAI M oPTn压ISATION 

Huang Shaorong 

(Department ofInformation Management,Guangdong Justice Polcie Vocational College,Guangzhou 510520,Guangdong,Chian) 

Abstract Multi-mode resource constrained project scheduling(MMRCPSP)is an NP—hard problem with complex non-linear feature, 

which has the optimisation object of maximising the cash lfow net present value.Traditional particle swalrn optimisation has certain limitation 

in solving such discrete problems.Proceeding from the optimisation principle of PSO and combining the genetic algorithm,in this article we 

introduce crossover and mutation operation to PSO and derive a hybrid PSO to be applied to MMRCPSP cash flow optimisation,it is fast and 

easy to use,and widens the application of PSO・in discrete optimisation field.Simulation experiment resuhs demonstrate the validity and effi・ 

ciency of this algorithm. 

Keywords Particle swarm optimisation(PSO) Cash lfow optimisation Net present value Crossover Mutation 

项目中各活动的执行模式,还要确定活动的开工期,随着项目规 

0 引 言 

模的不断扩大,必须运用启发式算法才能计算。因此,本文选择 

智能算法PSO对问题进行求解。在此基础上,根据PSO的优化 

粒子群优化算法PSO(Particle Swarm Optimization)是最早 

本质,针对传统PSO在优化现金流时速度难以表达的问题,借 

由Kennedy和Eberhatr在研究鸟类和鱼类的群体行为基础上于 鉴遗传算法的基本思想,在PSO中引入交叉和变异操作,不仅 

1995年提出的一种群智能算法…,其思想来源于人工生命和演 

巧妙地分解了速度项,而且改善了解的质量和多样性。 

化计算理论,模仿鸟群觅食行为,通过鸟集体协作使群体达到最 

优。由于PSO概念简单,容易实现,收敛速度快,执行性能高效 

1现金流优化模型 

等优势,逐渐被应用到越来越多的科学研究和工程实践中。 

资金是企业从事生产经营活动的“血液”,项目中消耗资源 

1.1 问题描述 

的任何施工生产活动,都离不开资金的流动,都不外乎现金的流 

MMRCPSP现金流优化问题描述如下 J:给定一个项目,包 

人和流出,现金流贯穿项目管理的始终。可以说,项目管理的过 

含多个事件,每个事件可有多个活动,每个活动有多种执行模 

程实际上也就是现金流量的流转过程,因此,做为项目管理核心 

式,具有不同的现金流、工期和资源需求,且活动间有优先关系 

的项目调度首先应关注项目的现金流量动态。而传统的带资源 

约束。问题的解是对项目各活动的执行模式和开工期进行合理 

约束的项目调度问题RCPSP(Resource.Constrained Project 

调度,在满足资源约束和优先约束的前提下,使项目的净现值 

Scheduling Problem)一般以最短工期为优化目标,不能有效反映 

NPV(Net Present Value)最大化。 

项目收益,与实际项目调度目标不符。因此,在RCPSP中引入 

(1)活动网络图采用AoA(Activity—on。Arc)网络图来描述, 

现金流优化目标 ,对项目中的现金流入与现金流出进行管理 

箭线代表活动,节点代表事件,活动发生的现金流都按一定折现 

和优化,保持现金流出与现金流入之间最佳结构关系,实现现金 

率折算到项目开始时。 

净收入的最大化显得尤为重要,能有效规避项目风险,并使企业 (2)活动具有资源约束和优先约束,执行模式一旦选定便 

收益最大化,在实际应用中具有重要意义。 不能更改,且具有非抢占式的特性。每种资源的可获得量及单 

传统RCPSP已被证明是NP-hard问题,本文根据施工实际 

在调度时还必须考虑每个活动有多种可执行模式,即多模式资 

收稿日期:2008—09—15。黄少荣,讲师,主研领域:进化算法和人 

源约束调度问题MMRCPSP,它比RCPSP更加复杂,不仅要选择 

工智能。 

276 

位成本为已知。 

计算机应用与软件 2010丘 

2.2 改进PSo 

PSO算法的本质是利用当前位置、全局极值和个体极值三 

(3)现金流指项目各活动发生的现金流人和现金流出。现 

金流入包括项目开工时业主对承包商的预付款、业主在支付节 

个信息,指导粒子下一步迭代位置。其个体充分利用自身经验 

和群体经验调整自身的状态是PSO算法具有优异特性的关键。 

粒子可以从多种形式从其个体极值和全局极值中获得更新信 

息,传统的速度一位移更新模型仅为符合此优化原理的具体实现 

之一,反映粒子所代表的解在连续空间内,跟随个体极值以及全 

局极值以矢量运算的形式进行更新,仅适合于处理连续优化问 

题。对于离散优化问题,由于解空间是离散点的集合,利用PSO 

点按一定比例支付与完成进度成正比的工程款、项目提前完工 

获得的奖金 现金流出包括各种资源费用、直接费用、间接费 

用、延迟完工的罚金等。 

1.2模型 

设c 为活动(i,J)的现金流,非负整数t 为该活动的开始 

执行时间,参考文献[3,4 中的模型,建立如下非线性规划 

模型: 

maxNPV=∑CFi

l 

 ̄exp(一st ) (1) 

S.t. 

lI2,…, (2) 

=1,2,…,V =1,2,…,K 

l 4 

∑£≤∑(

E f t 

£一∑ )

R 1 

 =1 2一,N (3) 

i E n S(n 

式(1)表示最大化项目净现值, 为折现率;式(2)表示资 

源约束,即项目执行中,正在执行的活动的各种资源的使用量不 

能超过其最大使用限额。』4 表示在时期t时正在进行的活动集 

合,V为资源种类数,r 为活动(i√)用模式k执行时单位工期所 

需资源 的数量;式(3)表示优先关系约束:事件 的前趋活动 

(i, )必须在事件 的后继活动( ,1)开始之前完成, 为活动 

(i, )以模式 执行时的活动工期,[E ,L ,]为活动(i,,)的时 

间窗 

2基本粒子群算法及其改进 

2.1基本PSO 

PS0算法首先初始化一群随机粒子,然后通过迭代找到最 

优解。在每一次迭代中,粒子通过跟踪两个“极值”即个体极值 

和全局极值来更新自己的速度与位置。假设m个粒子组成一 

个种群并在D维空间搜索,第i个粒子在第t代的位置表示为 

个D维的向量 (t)=( , ,…, ∞),飞翔速度为 (t)= 

( ,…, 。),粒子本身历史最佳位置为P (t)=(P P ,…, 

P 。),群体历史最佳位置为P (t)=(P P ,…,P D)。PSO算 

法迭代公式如下: 

(t+1)= × (t)+C】×rl×(P (t)~ (t))+ 

c2×1"2 x(P (t)一 (t)) (4) 

(t+1)= (t)+ (t+1) (5) 

其中, 为惯性权重,c 和c:为加速系数, 和r2是两个独立的 

介于Eo,1]之间的随机数,t为进化代数。式(4)第一部分为粒 

子先前行为的惯性;第二部分为“认知”部分,表示粒子本身的 

思考;第三部分为“社会”部分,表示粒子间的信息共享与相互 

合作。 

PSO保留了基于种群的全局搜索策略,其特有的记忆可以 

动态地跟踪当前的搜索情况来调整下一步的搜索策略,是一种 

更高效的并行搜索算法,已成功应用于函数优化、多目标优化、 

动态优化、神经网络训练等领域,但大部分应用都是基于传统的 

速度一位移模型中,在解决离散问题时很难取得突破。 

进行优化时不能直接移植传统模型,必须对问题进行变形,或者 

修正速度和位置更新公式 。 

MMRCPSP现金流优化问题,若按传统PSO模型,其速度难 

以表达,因此需对公式进行变形。PSO的关键在于确定粒子的 

更新方式以及粒子的局部搜索和随机搜索方法,参照遗传算法 

的基本思想,由交叉和变异完成粒子位置的更新 :把公式(4) 

中的60× ( )项看作变异操作,即随机搜索,c ×r。×(P (t)一 

(t))+C:×r:×(P (t)一 (t))项看作交叉操作,即粒子与全 

局极值和个体极值的信息交换。 

引入遗传操作的粒子群算法称混合粒子群算法HPS0(Hy— 

brid Particle Swarm Optimization),主要方法为:每一代中,每个粒 

子先与全局极值交叉,再与个体极值交叉来产生更接近最优解 

的新位置,并加入变异操作以增加解的多样性。该算法既克服 

了PSO在解决上述模型中速度难以表达的缺点,又结合了遗传 

算法简单通用、鲁棒性强、适用于并行处理等优点.并且交叉操 

作直接从全局极值和个体极值中获得更新信息,有效提高解的 

质量,变异操作又能提高解的多样性,能更好地解决MMRCPSP 

现金流优化问题。 

3 求解MMRCPsP现金流优化模型的混合粒 

子群算法 

3.1编码及初始化 

传统粒子群算法中,粒子的位置和速度均以连续参数的形 

式表示,限制了粒子群算法在离散优化领域的应用。本文针对 

这一问题,对种群进行初始化时借鉴遗传算法中解的编码设计, 

提出了一种采用基于时间序列的整数编码方式。 

Stepl对活动的执行模式进行编码,活动用自然数(O--M 

+1)表示,自然数m表示第m个活动(0、M+1表示虚拟活 

动),每个活动有k种执行模式,由于执行模式是以字符表示,在 

对其进行编码时,依据顺序对每个活动的每种模式进行编码,第 

1活动的第1种执行模式用1表示,第2种模式用2表示,…,第 

k种模式用k表示;第2个活动的第1种执行模式用k+1表示, 

第2种执行模式用k+2表示,…;第m个活动的第k种执行模 

式用mk表示。 

Step2在未分配资源的活动中选择没有紧前活动或其紧 

前活动都已经分配资源的活动,组成候选集合,如果候选集合为 

空,则转Step4; 

Step3从候选集合中随机选择一个候选模式,为其安排开 

始的时间;其最早开始的时间为其所有紧前活动中最晚结束的 

时间,如果在其持续的时段内所剩的资源不能满足该活动,则改 

变该活动的实施模式或者将其开始时间后移,直到满足资源约 

第3期 

束条件,转Step2; 

Step4结束。 

黄少荣:基于混合粒子群优化算法的现金流优化 

最后输出全局极值g蛔 和全局极值位置P 。 

277 

从算法流程可以看出,相对于遗传算法中染色体互相共享信 

息,整个种群比较均匀地向最优区域移动比较,混合PSO中的粒 重复此过程,即可生成初始种群,每个粒子位置由一系列包 

含了活动、执行模式、开工期三方面信息的模式代码组成,表示 

个可行调度。 

子直接从全局极值和个体极值获得更新信息,整个搜索过程是一 

种单向的信息流动机制,其目的性更强,效率更高,对解的改进影 

响更大,所有粒子将更快地收敛到最优解。而且,避免了大量冗 

3.2适应值函数 

由于优化目标是最大化项目现金流净现值,故直接以NPV 

的计算公式作为适应值函数,适应值越大,整个项目的净现值越 

大,效益越好。适应值设定如下: 

M 

余的更新操作,减少寻优迭代次数,提高了算法效率 。 

传统粒子群算法中涉及到的速度更新的参数虽然只有三个: 

惯性权重 ,加速系数c 和c:,但这些参数的最优取值组合的选 

择非常困难,有时微小的差别就能带来巨大的结果差异,尤其对 

Fitness( )=∑CFiiexp(at ) (6) 

I l 

3.3粒子的更新 

粒子通过与全局极值和个体极值交叉来获得更新信息,这 

种单向流动的目的性很强,为防止算法早熟,结果落人局部最 

优,在算法中加入变异操作,让与全局极值和个体极值分别交叉 

后产生的新粒子按一定概率进行变异,并把变异前后的粒子按 

适应值大小进行择优保留。通过交叉变异操作,粒子位置得到 

更新。 

1)交叉操作采用了单点次序交叉,具体方法如下: 

(1)粒子p1和p2交叉,随机产生一个交叉点。 

(2)保留pl交叉点前的模式,并依序遍历p2中的模式,如 

果该模式不与p1中保留的模式属于同一个活动,则保留,否则 

删除,然后将剩余的模式按顺序插入p1交叉点后的位置,产生 

新粒子口1。 

(3)同理,产生新粒子q2。 

由于产生的新粒子在交叉点前的模式编码是满足资源约束 

和优先约束的,交叉点后的模式编码是父粒子中的一部分且其 

优先次序保持不变,也是满足资源约束和优先约束的,因此新粒 

子一般能满足资源约束和优先约束。 

2)变异操作采用整体变异方式,以变异率决定某个粒子 

是否执行变异,若执行,按3.1节编码方式重新随机生成新粒 

子。由于是直接对各个活动的各种可执行模式进行编码,每个 

模式编码实际上包含了活动、执行模式以及开工期三方面的信 

息,而且满足资源约束和优先约束。 

3.4算法流程 

设定迭代次数为 ,变异率W,随机产生n个粒子。 

根据公式(6)计算每个粒子的适应值 ,设置当前适应值 

为个体极值P ,当前位置为个体极值位置p;,根据各个粒子的 

适应值找出全局极值g 和全局极值位置 。 

While(迭代次数<T)do 

fori=1:T 

f0rj=1:n 

第j个粒子位置X0(j)与P 交叉,记为X 1(j)。 

X 1(j)与Pi交叉,记为X 1(j)。 

对X” (j)按一定概率进行变异,选取适应值高的粒子位置记为 

X1(j)。 

根据当前位置计算适应值f.。 

如果f (j)>Pi (j),则PIb。 (j)=f1(j),P (j):X1(j)。 

End 

根据各个粒子的个体极值P ,找出全局极值g 和全局极值位 

置Pg。 

X0 Xl。 

End 

于复杂、高维函数模型,通过传统PSO算法很难获得最优解,容易 

陷入局部最优。本文提出的HPSO算法,由于粒子通过交叉方式 

直接从全局极值和个体极值获得更新信息,使算法的可调参数减 

少,避免了 ,c,,c 这三个参数的组合选择,更容易实现。 

4实例及分析 

4.1 实例 

某项目包括9个事件、12个活动,其网络图如图1所示,项 

目中的每个活动均有两种可执行模式,不同模式下各活动的信 

息如表1所示。项目总价为30000元,项目开工业主即支付 

20%总价作为预付款,在支付节点业主按70%的比例支付已经 

完工的活动工程款,项目完工时结清余款。项目工期为30±5 

天,每提前(推后)一天完成按项目总价的1%(1.5%)进行奖励 

或惩罚。资源单位工期限定为1O,单价为12元,单位工期发生 

的间接费用为120元,所有现金流以0.02的折现率折现到项目 

开工时,现要求在不同支付节点下(支付1)对项目作出合理调 

度,以使净收益最大。 

图1项目AoA网络图 

表1 多模式下各活动的现金流、工期以及资源需求量 

常规模式(n) 加急模式(c) 

活动号 工程款 

工期 直接费用 资源/工期 工期 直接费用 资源/工期 

1(1,2) looO 5 5oo 4 4 550 5 

2(1,3) 80o 4 4oo 5 3 480 4 

3(2,4) l500 4 450 5 2 50o 3 

4(2,5) 70o 3 30o 4 2 350 5 

5(3,5) 120o 6 680 3 4 750 3 

6(3,6) l600 6 650 3 4 7oo 4 

7(4,7) 17oo 7 720 4 5 850 4 

8(4,8) 250o 5 60o 3 4 650 5 

9(5,9) l2oo 4 30o 3 3 350 4 

10(6,8) 350o 10 800 7 8 600 8 

11(7,9) 90o 3 230 2 2 280 3 

12(8,9) 2300 8 650 3 6 750 4 

278 

4.2参数设置 

计算机应用与软件 2010丘 

用到更切合实际工程的多模式、带基于进度的多节点支付和带 

奖惩机制并以净现值为优化目标的资源约束项目调度问题中, 

是对PSO算法应用领域的一个成功拓展,为PSO在离散优化领 

域的应用提供了一种新的思路。 

本文提出的HPSO算法操作简单,可调参数少,方便调试。 

根据优化模型及上述具体问题,测试后最佳参数设置为:粒子数 

为20,迭代次数为100,变异概率为0.1。算法用VC语言编程 

实现,程序运行环境为个人PC。 

4.3算法结果 

在上述实例运行HPSO,运算结果如表2所示。 

表2不同支付事件下的项目净收益(NPV) 

支付节点 最优调度(①活动②模式③开工期) 

①1—2—6—5—3—8—10—7—12—4—9—11 

②e—n—c—c—n—n—c—c—c—n~c—n 

(3,7) 

③1—1—5—5—5—9—9—14—17—17—20—20 

NPV:13505.7(项目工期22天) 

①1—2—6—3—8—4—10—5—7—12—9—11 

②C—n—e—c—n—c—c—c—c—c~n—c 

(2,4,6) 

③1—1—5—5—7—7—9—12—16—17—17—21 

NPV=13756(项目工期22天) 

4.4结果分析 

(1)从表2可以看出,HPSO算法能有效地解决MMRCPSP 

现金流优化问题,做出合理、高效、实用的项目调度。表中NPV 

值反映出不同的支付节点带来不同的净现值,~般地,支付节点 

越多越靠前,现金流人越多越快,项目净现值越大。 

(2)HPSO算法在最大化项目净现值前提下能尽量缩短工 

期,提高项目施工效率,达到多目标优化的目的。而且,现金流 

优化模型弹性大,可灵活设置活动数目、执行模式、资源种类及 

限制、不同的支付节点等,适用于现实复杂项目调度。 

(3)对于较大规模的算例,混合粒子群算法同样表现了良 

好的收敛性能。将HPSO与简单遗传算法(GA)两种方法应用 

于包含18个事件、3O个活动的大型项目上测试,两种方法均运 

行l0次,并将结果做比较,结果如表3所示。由此可见,HPSO 

在解决现金流优化问题上性能具有优越性,算法具有更快的收 

敛速度,优化结果也更接近实际的全局最优。 

表3 I-IPSO/GA算法性能对比 

方法 找到最优解次数 最优解平均误差 找到最优解平均代数 

GA 57 7.8% 47 

HPS0 86 3.4% 23 

5结论 

PSO算法作为一种新兴算法,尚缺乏数学理论支撑,仅适合 

于连续问题的优化,难以应用于离散领域的优化。对算法本身 

需要加强其数学理论研究和不断拓宽其应用领域的广度和深 

度。通过与遗传算法、蚁群算法、模拟退火、人工神经网络及模 

糊逻辑系统等其它人工智算法渗透结合,将是提升算法性能和 

拓宽应用的主要途径。本文从PSO的优化原理出发,引入遗传 

算法的交叉和变异操作,并把改进后的混合粒子群优化算法应 

参考文献 

[1]Kennedy J,Eberhart R.Particle Swarm Optimization[C]//IEEE Inter- 

national Conference on Neural Networks,perth,Australia,1995:1942 

1948. 

[2]Russell A H_Cash flows in networks[J].Management Science,1970, 

16(4):357—373. 

[3]张静文,徐渝,何正文.多模式资源约束型折现流时间一费用权衡项 

目进度[J].系统工程,2005,23(5):17~21. 

[4]张颖,刘艳秋,汪定伟,等.RCPSP中现金流优化问题的HGA方法 

[J].基础自动化,2001,8(4):5—7. 

[5]彭传勇,高亮,邵新宇,等.求解作业车间调度问题的广义粒子群优 

化算法[J].计算机集成制造系统,2006,12(6):911—923. 

[6]高尚,杨静宇.群智能算法及其应用[M].中国水利水电出版社, 

2006.89—90. 

(上接第267页) 

终端通过asterisk建立会话并结束会话的过程,发起会话的SIP 

终端A和应答会话的SIP终端B的JP地址分别为192.168.1. 

112和192.168.1.110,asterisk服务器的IP地址为192.168.1. 

2O。由Ethereal捕获的SIP消息可以看到,A发送INVITE请求 

消息发起呼叫,B接收到后回复200 OK消息,A再发送ACK请 

求消息,这个消息流程完全符合RFC3261的SIP协议规范。同 

时在32路SIP会话同时进行的网络负载下进行100次测试呼 

叫,成功率为100%。 

E11 ls{p …… 口・ 

图5 SIP会话过程网络监控图 

5 结论 

SIP协议的不断发展和完善,使其越来越受到关注。本文 

设计的系统实现了具有基本呼叫功能的SIP终端,测试结果表 

明系统运行稳定且高效,并且易于扩展实现事件通知机制和参 

考方法等SIP扩展方法以支持会议终端功能,可以广泛应用于 

许多多媒体会议系统中 ]。 

参考文献 

[1]Rosenberg J,Schulzrinne H.Session Initiation Protocol[S].RFC 3261, 

2oo2. 

[2]沈鑫剡.多媒体传输网络与VOIP系统设计[M].北京:人民邮电 

出版社,2005. 

[3]熊华,刘风新,潘小莉.Windows动态链接库原理分析及其应用 

[J].北京:北京化工大学学报,2004. 

[4]Daniel Collins.VolP技术与应用[M].北京:人民邮电出版 

社.2003. 

2024年6月12日发(作者:之星腾)

第27卷第3期 计算机应用与软件 

Vo1.27 No.3 

2010年3月 

Computer Applications and Software 

Mar.2010 

基于混合粒子群优化算法的现金流优化 

黄少荣 

(广东司法警官职业学院信息管理系 广东广州510520) 

摘要 以最大化现金流净现值为优化目标的多模式资源约束调度问题MMRCPSP(Multi-mode Resource-Constrained Project 

Scheduling Problem)是一类带有复杂非线性特征的NP-hard问题,传统粒子群算法在解决该类离散问题上具有一定局限性。从粒子 

群算法的优化原理出发,结合遗传算法,在粒子群算法中引入交叉和变异操作,得出一种应用于MMRCPSP现金流优化的快速、易实 

现的混合粒子群算法,拓宽了粒子群优化算法在离散优化领域的应用。仿真实验结果验证了算法的有效性和高效性。 

关键词 粒子群算法现金流优化 净现值 交叉 变异 

oI.rI'IMISING CASH FLoW BASED oN HYBRII)PARTICLE SWAI M oPTn压ISATION 

Huang Shaorong 

(Department ofInformation Management,Guangdong Justice Polcie Vocational College,Guangzhou 510520,Guangdong,Chian) 

Abstract Multi-mode resource constrained project scheduling(MMRCPSP)is an NP—hard problem with complex non-linear feature, 

which has the optimisation object of maximising the cash lfow net present value.Traditional particle swalrn optimisation has certain limitation 

in solving such discrete problems.Proceeding from the optimisation principle of PSO and combining the genetic algorithm,in this article we 

introduce crossover and mutation operation to PSO and derive a hybrid PSO to be applied to MMRCPSP cash flow optimisation,it is fast and 

easy to use,and widens the application of PSO・in discrete optimisation field.Simulation experiment resuhs demonstrate the validity and effi・ 

ciency of this algorithm. 

Keywords Particle swarm optimisation(PSO) Cash lfow optimisation Net present value Crossover Mutation 

项目中各活动的执行模式,还要确定活动的开工期,随着项目规 

0 引 言 

模的不断扩大,必须运用启发式算法才能计算。因此,本文选择 

智能算法PSO对问题进行求解。在此基础上,根据PSO的优化 

粒子群优化算法PSO(Particle Swarm Optimization)是最早 

本质,针对传统PSO在优化现金流时速度难以表达的问题,借 

由Kennedy和Eberhatr在研究鸟类和鱼类的群体行为基础上于 鉴遗传算法的基本思想,在PSO中引入交叉和变异操作,不仅 

1995年提出的一种群智能算法…,其思想来源于人工生命和演 

巧妙地分解了速度项,而且改善了解的质量和多样性。 

化计算理论,模仿鸟群觅食行为,通过鸟集体协作使群体达到最 

优。由于PSO概念简单,容易实现,收敛速度快,执行性能高效 

1现金流优化模型 

等优势,逐渐被应用到越来越多的科学研究和工程实践中。 

资金是企业从事生产经营活动的“血液”,项目中消耗资源 

1.1 问题描述 

的任何施工生产活动,都离不开资金的流动,都不外乎现金的流 

MMRCPSP现金流优化问题描述如下 J:给定一个项目,包 

人和流出,现金流贯穿项目管理的始终。可以说,项目管理的过 

含多个事件,每个事件可有多个活动,每个活动有多种执行模 

程实际上也就是现金流量的流转过程,因此,做为项目管理核心 

式,具有不同的现金流、工期和资源需求,且活动间有优先关系 

的项目调度首先应关注项目的现金流量动态。而传统的带资源 

约束。问题的解是对项目各活动的执行模式和开工期进行合理 

约束的项目调度问题RCPSP(Resource.Constrained Project 

调度,在满足资源约束和优先约束的前提下,使项目的净现值 

Scheduling Problem)一般以最短工期为优化目标,不能有效反映 

NPV(Net Present Value)最大化。 

项目收益,与实际项目调度目标不符。因此,在RCPSP中引入 

(1)活动网络图采用AoA(Activity—on。Arc)网络图来描述, 

现金流优化目标 ,对项目中的现金流入与现金流出进行管理 

箭线代表活动,节点代表事件,活动发生的现金流都按一定折现 

和优化,保持现金流出与现金流入之间最佳结构关系,实现现金 

率折算到项目开始时。 

净收入的最大化显得尤为重要,能有效规避项目风险,并使企业 (2)活动具有资源约束和优先约束,执行模式一旦选定便 

收益最大化,在实际应用中具有重要意义。 不能更改,且具有非抢占式的特性。每种资源的可获得量及单 

传统RCPSP已被证明是NP-hard问题,本文根据施工实际 

在调度时还必须考虑每个活动有多种可执行模式,即多模式资 

收稿日期:2008—09—15。黄少荣,讲师,主研领域:进化算法和人 

源约束调度问题MMRCPSP,它比RCPSP更加复杂,不仅要选择 

工智能。 

276 

位成本为已知。 

计算机应用与软件 2010丘 

2.2 改进PSo 

PSO算法的本质是利用当前位置、全局极值和个体极值三 

(3)现金流指项目各活动发生的现金流人和现金流出。现 

金流入包括项目开工时业主对承包商的预付款、业主在支付节 

个信息,指导粒子下一步迭代位置。其个体充分利用自身经验 

和群体经验调整自身的状态是PSO算法具有优异特性的关键。 

粒子可以从多种形式从其个体极值和全局极值中获得更新信 

息,传统的速度一位移更新模型仅为符合此优化原理的具体实现 

之一,反映粒子所代表的解在连续空间内,跟随个体极值以及全 

局极值以矢量运算的形式进行更新,仅适合于处理连续优化问 

题。对于离散优化问题,由于解空间是离散点的集合,利用PSO 

点按一定比例支付与完成进度成正比的工程款、项目提前完工 

获得的奖金 现金流出包括各种资源费用、直接费用、间接费 

用、延迟完工的罚金等。 

1.2模型 

设c 为活动(i,J)的现金流,非负整数t 为该活动的开始 

执行时间,参考文献[3,4 中的模型,建立如下非线性规划 

模型: 

maxNPV=∑CFi

l 

 ̄exp(一st ) (1) 

S.t. 

lI2,…, (2) 

=1,2,…,V =1,2,…,K 

l 4 

∑£≤∑(

E f t 

£一∑ )

R 1 

 =1 2一,N (3) 

i E n S(n 

式(1)表示最大化项目净现值, 为折现率;式(2)表示资 

源约束,即项目执行中,正在执行的活动的各种资源的使用量不 

能超过其最大使用限额。』4 表示在时期t时正在进行的活动集 

合,V为资源种类数,r 为活动(i√)用模式k执行时单位工期所 

需资源 的数量;式(3)表示优先关系约束:事件 的前趋活动 

(i, )必须在事件 的后继活动( ,1)开始之前完成, 为活动 

(i, )以模式 执行时的活动工期,[E ,L ,]为活动(i,,)的时 

间窗 

2基本粒子群算法及其改进 

2.1基本PSO 

PS0算法首先初始化一群随机粒子,然后通过迭代找到最 

优解。在每一次迭代中,粒子通过跟踪两个“极值”即个体极值 

和全局极值来更新自己的速度与位置。假设m个粒子组成一 

个种群并在D维空间搜索,第i个粒子在第t代的位置表示为 

个D维的向量 (t)=( , ,…, ∞),飞翔速度为 (t)= 

( ,…, 。),粒子本身历史最佳位置为P (t)=(P P ,…, 

P 。),群体历史最佳位置为P (t)=(P P ,…,P D)。PSO算 

法迭代公式如下: 

(t+1)= × (t)+C】×rl×(P (t)~ (t))+ 

c2×1"2 x(P (t)一 (t)) (4) 

(t+1)= (t)+ (t+1) (5) 

其中, 为惯性权重,c 和c:为加速系数, 和r2是两个独立的 

介于Eo,1]之间的随机数,t为进化代数。式(4)第一部分为粒 

子先前行为的惯性;第二部分为“认知”部分,表示粒子本身的 

思考;第三部分为“社会”部分,表示粒子间的信息共享与相互 

合作。 

PSO保留了基于种群的全局搜索策略,其特有的记忆可以 

动态地跟踪当前的搜索情况来调整下一步的搜索策略,是一种 

更高效的并行搜索算法,已成功应用于函数优化、多目标优化、 

动态优化、神经网络训练等领域,但大部分应用都是基于传统的 

速度一位移模型中,在解决离散问题时很难取得突破。 

进行优化时不能直接移植传统模型,必须对问题进行变形,或者 

修正速度和位置更新公式 。 

MMRCPSP现金流优化问题,若按传统PSO模型,其速度难 

以表达,因此需对公式进行变形。PSO的关键在于确定粒子的 

更新方式以及粒子的局部搜索和随机搜索方法,参照遗传算法 

的基本思想,由交叉和变异完成粒子位置的更新 :把公式(4) 

中的60× ( )项看作变异操作,即随机搜索,c ×r。×(P (t)一 

(t))+C:×r:×(P (t)一 (t))项看作交叉操作,即粒子与全 

局极值和个体极值的信息交换。 

引入遗传操作的粒子群算法称混合粒子群算法HPS0(Hy— 

brid Particle Swarm Optimization),主要方法为:每一代中,每个粒 

子先与全局极值交叉,再与个体极值交叉来产生更接近最优解 

的新位置,并加入变异操作以增加解的多样性。该算法既克服 

了PSO在解决上述模型中速度难以表达的缺点,又结合了遗传 

算法简单通用、鲁棒性强、适用于并行处理等优点.并且交叉操 

作直接从全局极值和个体极值中获得更新信息,有效提高解的 

质量,变异操作又能提高解的多样性,能更好地解决MMRCPSP 

现金流优化问题。 

3 求解MMRCPsP现金流优化模型的混合粒 

子群算法 

3.1编码及初始化 

传统粒子群算法中,粒子的位置和速度均以连续参数的形 

式表示,限制了粒子群算法在离散优化领域的应用。本文针对 

这一问题,对种群进行初始化时借鉴遗传算法中解的编码设计, 

提出了一种采用基于时间序列的整数编码方式。 

Stepl对活动的执行模式进行编码,活动用自然数(O--M 

+1)表示,自然数m表示第m个活动(0、M+1表示虚拟活 

动),每个活动有k种执行模式,由于执行模式是以字符表示,在 

对其进行编码时,依据顺序对每个活动的每种模式进行编码,第 

1活动的第1种执行模式用1表示,第2种模式用2表示,…,第 

k种模式用k表示;第2个活动的第1种执行模式用k+1表示, 

第2种执行模式用k+2表示,…;第m个活动的第k种执行模 

式用mk表示。 

Step2在未分配资源的活动中选择没有紧前活动或其紧 

前活动都已经分配资源的活动,组成候选集合,如果候选集合为 

空,则转Step4; 

Step3从候选集合中随机选择一个候选模式,为其安排开 

始的时间;其最早开始的时间为其所有紧前活动中最晚结束的 

时间,如果在其持续的时段内所剩的资源不能满足该活动,则改 

变该活动的实施模式或者将其开始时间后移,直到满足资源约 

第3期 

束条件,转Step2; 

Step4结束。 

黄少荣:基于混合粒子群优化算法的现金流优化 

最后输出全局极值g蛔 和全局极值位置P 。 

277 

从算法流程可以看出,相对于遗传算法中染色体互相共享信 

息,整个种群比较均匀地向最优区域移动比较,混合PSO中的粒 重复此过程,即可生成初始种群,每个粒子位置由一系列包 

含了活动、执行模式、开工期三方面信息的模式代码组成,表示 

个可行调度。 

子直接从全局极值和个体极值获得更新信息,整个搜索过程是一 

种单向的信息流动机制,其目的性更强,效率更高,对解的改进影 

响更大,所有粒子将更快地收敛到最优解。而且,避免了大量冗 

3.2适应值函数 

由于优化目标是最大化项目现金流净现值,故直接以NPV 

的计算公式作为适应值函数,适应值越大,整个项目的净现值越 

大,效益越好。适应值设定如下: 

M 

余的更新操作,减少寻优迭代次数,提高了算法效率 。 

传统粒子群算法中涉及到的速度更新的参数虽然只有三个: 

惯性权重 ,加速系数c 和c:,但这些参数的最优取值组合的选 

择非常困难,有时微小的差别就能带来巨大的结果差异,尤其对 

Fitness( )=∑CFiiexp(at ) (6) 

I l 

3.3粒子的更新 

粒子通过与全局极值和个体极值交叉来获得更新信息,这 

种单向流动的目的性很强,为防止算法早熟,结果落人局部最 

优,在算法中加入变异操作,让与全局极值和个体极值分别交叉 

后产生的新粒子按一定概率进行变异,并把变异前后的粒子按 

适应值大小进行择优保留。通过交叉变异操作,粒子位置得到 

更新。 

1)交叉操作采用了单点次序交叉,具体方法如下: 

(1)粒子p1和p2交叉,随机产生一个交叉点。 

(2)保留pl交叉点前的模式,并依序遍历p2中的模式,如 

果该模式不与p1中保留的模式属于同一个活动,则保留,否则 

删除,然后将剩余的模式按顺序插入p1交叉点后的位置,产生 

新粒子口1。 

(3)同理,产生新粒子q2。 

由于产生的新粒子在交叉点前的模式编码是满足资源约束 

和优先约束的,交叉点后的模式编码是父粒子中的一部分且其 

优先次序保持不变,也是满足资源约束和优先约束的,因此新粒 

子一般能满足资源约束和优先约束。 

2)变异操作采用整体变异方式,以变异率决定某个粒子 

是否执行变异,若执行,按3.1节编码方式重新随机生成新粒 

子。由于是直接对各个活动的各种可执行模式进行编码,每个 

模式编码实际上包含了活动、执行模式以及开工期三方面的信 

息,而且满足资源约束和优先约束。 

3.4算法流程 

设定迭代次数为 ,变异率W,随机产生n个粒子。 

根据公式(6)计算每个粒子的适应值 ,设置当前适应值 

为个体极值P ,当前位置为个体极值位置p;,根据各个粒子的 

适应值找出全局极值g 和全局极值位置 。 

While(迭代次数<T)do 

fori=1:T 

f0rj=1:n 

第j个粒子位置X0(j)与P 交叉,记为X 1(j)。 

X 1(j)与Pi交叉,记为X 1(j)。 

对X” (j)按一定概率进行变异,选取适应值高的粒子位置记为 

X1(j)。 

根据当前位置计算适应值f.。 

如果f (j)>Pi (j),则PIb。 (j)=f1(j),P (j):X1(j)。 

End 

根据各个粒子的个体极值P ,找出全局极值g 和全局极值位 

置Pg。 

X0 Xl。 

End 

于复杂、高维函数模型,通过传统PSO算法很难获得最优解,容易 

陷入局部最优。本文提出的HPSO算法,由于粒子通过交叉方式 

直接从全局极值和个体极值获得更新信息,使算法的可调参数减 

少,避免了 ,c,,c 这三个参数的组合选择,更容易实现。 

4实例及分析 

4.1 实例 

某项目包括9个事件、12个活动,其网络图如图1所示,项 

目中的每个活动均有两种可执行模式,不同模式下各活动的信 

息如表1所示。项目总价为30000元,项目开工业主即支付 

20%总价作为预付款,在支付节点业主按70%的比例支付已经 

完工的活动工程款,项目完工时结清余款。项目工期为30±5 

天,每提前(推后)一天完成按项目总价的1%(1.5%)进行奖励 

或惩罚。资源单位工期限定为1O,单价为12元,单位工期发生 

的间接费用为120元,所有现金流以0.02的折现率折现到项目 

开工时,现要求在不同支付节点下(支付1)对项目作出合理调 

度,以使净收益最大。 

图1项目AoA网络图 

表1 多模式下各活动的现金流、工期以及资源需求量 

常规模式(n) 加急模式(c) 

活动号 工程款 

工期 直接费用 资源/工期 工期 直接费用 资源/工期 

1(1,2) looO 5 5oo 4 4 550 5 

2(1,3) 80o 4 4oo 5 3 480 4 

3(2,4) l500 4 450 5 2 50o 3 

4(2,5) 70o 3 30o 4 2 350 5 

5(3,5) 120o 6 680 3 4 750 3 

6(3,6) l600 6 650 3 4 7oo 4 

7(4,7) 17oo 7 720 4 5 850 4 

8(4,8) 250o 5 60o 3 4 650 5 

9(5,9) l2oo 4 30o 3 3 350 4 

10(6,8) 350o 10 800 7 8 600 8 

11(7,9) 90o 3 230 2 2 280 3 

12(8,9) 2300 8 650 3 6 750 4 

278 

4.2参数设置 

计算机应用与软件 2010丘 

用到更切合实际工程的多模式、带基于进度的多节点支付和带 

奖惩机制并以净现值为优化目标的资源约束项目调度问题中, 

是对PSO算法应用领域的一个成功拓展,为PSO在离散优化领 

域的应用提供了一种新的思路。 

本文提出的HPSO算法操作简单,可调参数少,方便调试。 

根据优化模型及上述具体问题,测试后最佳参数设置为:粒子数 

为20,迭代次数为100,变异概率为0.1。算法用VC语言编程 

实现,程序运行环境为个人PC。 

4.3算法结果 

在上述实例运行HPSO,运算结果如表2所示。 

表2不同支付事件下的项目净收益(NPV) 

支付节点 最优调度(①活动②模式③开工期) 

①1—2—6—5—3—8—10—7—12—4—9—11 

②e—n—c—c—n—n—c—c—c—n~c—n 

(3,7) 

③1—1—5—5—5—9—9—14—17—17—20—20 

NPV:13505.7(项目工期22天) 

①1—2—6—3—8—4—10—5—7—12—9—11 

②C—n—e—c—n—c—c—c—c—c~n—c 

(2,4,6) 

③1—1—5—5—7—7—9—12—16—17—17—21 

NPV=13756(项目工期22天) 

4.4结果分析 

(1)从表2可以看出,HPSO算法能有效地解决MMRCPSP 

现金流优化问题,做出合理、高效、实用的项目调度。表中NPV 

值反映出不同的支付节点带来不同的净现值,~般地,支付节点 

越多越靠前,现金流人越多越快,项目净现值越大。 

(2)HPSO算法在最大化项目净现值前提下能尽量缩短工 

期,提高项目施工效率,达到多目标优化的目的。而且,现金流 

优化模型弹性大,可灵活设置活动数目、执行模式、资源种类及 

限制、不同的支付节点等,适用于现实复杂项目调度。 

(3)对于较大规模的算例,混合粒子群算法同样表现了良 

好的收敛性能。将HPSO与简单遗传算法(GA)两种方法应用 

于包含18个事件、3O个活动的大型项目上测试,两种方法均运 

行l0次,并将结果做比较,结果如表3所示。由此可见,HPSO 

在解决现金流优化问题上性能具有优越性,算法具有更快的收 

敛速度,优化结果也更接近实际的全局最优。 

表3 I-IPSO/GA算法性能对比 

方法 找到最优解次数 最优解平均误差 找到最优解平均代数 

GA 57 7.8% 47 

HPS0 86 3.4% 23 

5结论 

PSO算法作为一种新兴算法,尚缺乏数学理论支撑,仅适合 

于连续问题的优化,难以应用于离散领域的优化。对算法本身 

需要加强其数学理论研究和不断拓宽其应用领域的广度和深 

度。通过与遗传算法、蚁群算法、模拟退火、人工神经网络及模 

糊逻辑系统等其它人工智算法渗透结合,将是提升算法性能和 

拓宽应用的主要途径。本文从PSO的优化原理出发,引入遗传 

算法的交叉和变异操作,并把改进后的混合粒子群优化算法应 

参考文献 

[1]Kennedy J,Eberhart R.Particle Swarm Optimization[C]//IEEE Inter- 

national Conference on Neural Networks,perth,Australia,1995:1942 

1948. 

[2]Russell A H_Cash flows in networks[J].Management Science,1970, 

16(4):357—373. 

[3]张静文,徐渝,何正文.多模式资源约束型折现流时间一费用权衡项 

目进度[J].系统工程,2005,23(5):17~21. 

[4]张颖,刘艳秋,汪定伟,等.RCPSP中现金流优化问题的HGA方法 

[J].基础自动化,2001,8(4):5—7. 

[5]彭传勇,高亮,邵新宇,等.求解作业车间调度问题的广义粒子群优 

化算法[J].计算机集成制造系统,2006,12(6):911—923. 

[6]高尚,杨静宇.群智能算法及其应用[M].中国水利水电出版社, 

2006.89—90. 

(上接第267页) 

终端通过asterisk建立会话并结束会话的过程,发起会话的SIP 

终端A和应答会话的SIP终端B的JP地址分别为192.168.1. 

112和192.168.1.110,asterisk服务器的IP地址为192.168.1. 

2O。由Ethereal捕获的SIP消息可以看到,A发送INVITE请求 

消息发起呼叫,B接收到后回复200 OK消息,A再发送ACK请 

求消息,这个消息流程完全符合RFC3261的SIP协议规范。同 

时在32路SIP会话同时进行的网络负载下进行100次测试呼 

叫,成功率为100%。 

E11 ls{p …… 口・ 

图5 SIP会话过程网络监控图 

5 结论 

SIP协议的不断发展和完善,使其越来越受到关注。本文 

设计的系统实现了具有基本呼叫功能的SIP终端,测试结果表 

明系统运行稳定且高效,并且易于扩展实现事件通知机制和参 

考方法等SIP扩展方法以支持会议终端功能,可以广泛应用于 

许多多媒体会议系统中 ]。 

参考文献 

[1]Rosenberg J,Schulzrinne H.Session Initiation Protocol[S].RFC 3261, 

2oo2. 

[2]沈鑫剡.多媒体传输网络与VOIP系统设计[M].北京:人民邮电 

出版社,2005. 

[3]熊华,刘风新,潘小莉.Windows动态链接库原理分析及其应用 

[J].北京:北京化工大学学报,2004. 

[4]Daniel Collins.VolP技术与应用[M].北京:人民邮电出版 

社.2003. 

发布评论

评论列表 (0)

  1. 暂无评论