基于粒子群算法的构件组合技术研究

时间:2022-07-12 09:05:22

基于粒子群算法的构件组合技术研究

摘要:在开放、动态的网络环境下,为了解决网构软件动态组装问题,提出一种改进的基于粒子群的优化算法。首先在多约束条件下设计模型的可信组合方案,通过改进的粒子群算法进行最优求解,找出构件模型的最优组合。结合实验仿真和实证研究,结果表明所提方法在求解多约束构件组合优化问题上是有效的,能提高网构软件组装的效率和可信性。

关键词:网构软件;粒子群算法;构件组合

中图分类号:TP301.6 文献标识码:ADOI:10.3969/j.issn.10036199.2017.01.016

1引言

由于互联网软件行业的高速发展和开发技术的不断成熟,传统的软件开发方式很大程度上满足不了系统业务的要求,这时提出了构件的概念,并以构件为架构进行程序的开发。目前企业越来越重视对构件产品的应用,通过组合具有各自不同功能的构件来搭建软件系统框架,以满足企业业务所需[1]。

在基于构件为程序架构的软件编程中发现,如果仅仅使用单个构件产品往往满足不了用户的需求,也不能实现系统中的特定功能,这时就需要通过组合不同构件来构成一个更加完善的系统,进而实现复杂业务功能[2]。面对企业复杂多变的环境,对构件的选择需求越来越高,如何从动态地海量组合方案中选择出满足用户质量需求的构件,成为构件组合领域的一个关键问题,这对构件服务的研发具有重要的作用及市场价值。在文献[2-4]中提出了以构件为框架的软件模型,但并没有提到如何从若干些构件组成的模块中选择合适的构件结构。文献[5]用遗传算法等解决构件选择的全局最优化问题。不过上面提到的方法只取得了局部最优解而不是全局最优解,且在候选构件集迅速增加时很难保证算法时间的收敛性。粒子群优化算法(Particle Swarm Optimization,PSO) [6] 是一种集成群体智能的优化算法,由于其操作简单且功能强大,它已经成为研究软件优化领域的重点方向。本文以粒子群算法为基础,融合遗传算法的交叉、变异及选择等方法,提出一种改进后的粒子群算法。下面本文对改进后的粒子群算法进行定义描述及实验,并对实验结果进行分析和验证。

2问题描述

构件的选择问题在构件的组合中成为软件开发研究的热点,处理构件的参数还要考虑它的性能指标等问题。针对目前构件选择缺乏定量化的质量标准,我们将可信性纳入构件选择中。基于构件有着不同的属性及性能,在选择构件时依据这些参数进行优先考虑(如构件的可靠性、适用性等)。因此本文提出了一种构件选择的可靠机制模型。

定义1 构件[5] 为了对软件构件进行选择,本文从四个方面对构件进行描述,定义为WS=(N,B,P,Q),其中N表示构件的名称是对某个构件的称呼;B表示构件的标示,

3.2改进粒子群算法设计

基本粒子群算法最明显的优点就是搜索速度快效率高,且应用简单等,但是对于组合优化问题处理不佳容易出现早熟收敛现象陷入局部最优。就构件组合全局优化问题而言,其变量为离散变量,难以描述粒子群算法中的速度信息,为了解决这些缺点,本文结合粒子群算法与遗传算法的各自优缺点,将两者进行集成,去除其算法缺点给程序带来的不足。其主要的思想为:;依据粒子群算法中的局部和全局粒子群的信息值,适时计算并得到给定公式的最优解。改进后的粒子群算法的运算过程可以分为:初始化阶段和计算并更新阶段。其中,预处理就是对不同类型的构件可靠性数据进行预处理,将可靠性数据限定在一定范围内,以平衡各指标对目标函数的贡献;初始化阶段主要是初始化改进的粒子群算法,如将粒子的相关信息进行公式化描述。粒子的更新阶段在每次迭代产生新的粒子变量,保证粒子的适应值不断变化,从而获得最优解。

(1)种群初始化

由于全局优化问题的解对应着具体的构件实例,而基本粒子群算法无法直接处理这些变量,本文采用随机数的方式对群体进行初始化,即用随机函数为构件赋编码,方法为Num%m(Num为一个随机整数,m指构架类的数目),将求得第一个数赋给第一个构件,以此类推给所有的构件赋标号。对于给定的解(构件),用一组n维向量来表示,每一维的取值范围[1,m]。其具体的含义是指组合模型中每个构件类的包含每个构件实例,用这m个数对构件实例进行编号。如编号序列为1240表示的是:构件集体中第一类中的第1个构件实体,第二类中的第2个构件实体,第三类中的第4个构件实体,0表示在第四类构件中没有构件被选中。

设定粒子群的规模为N,最大迭代次数为K,根据粒子定义的可行性根据式(1)计算每个粒子的适应度f,并根据适应度的值进行依次排序,查找出粒子的局部最优解

5结论

本文在国内外对构件研究成果的基础上,构件进行阐述分析,在组合优化问题中提出自己的见解。其中主要的研究内容包括:(1)本文对构件选择问题进行综合分析,建立了一个构件选择模型,将构件选择的全局最优问题转化为了一个带约束条件下的多目标优化问题。(2)采用遗传算法的交叉、变异、选择等操作为粒子群进行更新,使种群具有多样性,以此来提高收敛速度及算法的效率。(3)在基本粒子群算法中无需设定其基本的参数(即惯性权重系数,学习因子,速度即位置的范围等),可以只将粒子群概念中的迭代次数和种群规模的值进行初始化,减少了算法计算的过程。结合实验仿真和实证研究,实验结果证明了上述所提方法对解决多约束的构件组合优化问题是有效可行的。

参考文献

[1]廖军,谭浩,刘锦德.基于Pi-演算的Web服务组合的描述和验证[J].计算机学报,2005,28(4):635-643.

[2]孙熙,庄磊,刘文,等.一种可定制的自主构件运行支撑框架[J].软件学报,2008,19(6):1340-1349.

[3]刘文,孙熙,焦文品,等.一种基于自主构件的网构软件协作框架[J].计算机研究与发展.2006,43:217-221.

[4]侯丽珊,金芝.基于环境变迁的构件组合模型[J].电子学报,2005,33(12A):2370-2375.

[5]李佳伟,喻莹,董才林.一种网构软件构件选择方法[J].计算机应用与软件,2013,3.142-146.

[6]KENNEDY EBERHART R.Particle swarm optimization[A].International Conference on Neural Networks[C].Washington:IEEE,1995,1942-1948.

[7]杨淑莹,张桦.群体智能与仿生计算――MATLAB技术实现[D].北京:电子工业出版社,2014.

[8]MA Xiujuan,ZHOU Minghui,HONG Mei.A case study of internetware development[C]//Proceedings of the Second Asia-Pacific Symposium,2010:1-13.

[9]刘玲,.基于本体的构件检索的研究[D].青岛:中国石油大学(华东),2010.

[10]张春梅,李蜀瑜.嵌入式软件中一种修正QOS值的构件选择方法[J].计算机应用与软件,2011,28(6):63-65.

第36卷第1期2017年3月计算技术与自动化Computing Technology and AutomationVol36,No1Mar. 2 0 1 7第36卷第1期2017年3月计算技术与自动化Computing Technology and AutomationVol36,No1Mar. 2 0 1 7

上一篇:基于改进人工势场法的移动机器人导航控制 下一篇:抵御执行器故障的H静态输出反馈可靠控制