基于MapReduce和多目标蚁群算法的制造云服务动态选择算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于M a p
R e d u c e 和多目标蚁群算法的制造云服务动态选择算法
倪志伟1,2
王会颖1,2,3 吴 昊1,2
1.合肥工业大学,合肥,230009
2.教育部过程优化与智能决策重点实验室,合肥,230009
3.安徽财贸职业学院,合肥,230601
摘要:基于云计算技术和云服务技术研究了云服务的动态选择问题,给出了云制造服务层次化模型,提出了一种基于M a p R e d u c e 和多目标蚁群算法的制造云服务动态选择算法(C S S MA )㊂依据C S S -
MA 设计了多目标蚁群算法㊁M a p 函数㊁R e d u c e 函数和优化策略等,并将其分布式并行运行于制造云平台中㊂仿真实验结果表明:C S S MA 具备良好的处理大规模问题的能力,适用于制造云服务动态选择问题的求解㊂
关键词:云制造;云服务;服务选择;蚁群算法
中图分类号:T P 301 D O I :10.3969/j
.i s s n .1004-132X.2014.20.011D y n a m i cM a n u f a c t u r i n g C l o u dS e r v i c e S e l e c t i o nA l g
o r i t h mB a s e do n M a p R e d u c e a n dM u l t i ‐o b j e c t i v eA n t C o l o n y O p
t i m i z a t i o n N i Z h i w e i 1,2 W a n g H u i y i n g 1,2,3 W uH
a o 1,2
1.H e f e iU n i v e r s i t y o fT e c h n o l o g y
,H e f e i ,2300092.K e y L a b o r a t o r y o f P r o c e s sO p t i m i z a t i o na n d I n t e l l i g e n tD e c i s i o n ‐m a k i n g
,M i n i s t r y o
fE d u c a t i o n ,H e f e i ,2300093.A n h u i F i n a n c e&T r a d eV o c a t i o n a l C o l l e g
e ,H e
f e i ,230601A b s t r a c t :C l o u d c o m p u t i n
g t e c
h n o l o g y a n ds e r v
i c e t e c h n o l o g y w e r ea p p l i e dt os t u d y t h ed y
n a m i c c l o u d s e r v i c e s e l e c t i o n p r o b l e ma n dah i e r a r c h i c a lm o d e l o f c l o u d m a n u f a c t u r i n g s e r v i c ea n dd y n a m i c c l o u d s e r v i c e s e l e c t i o n a l g o r i t h m (C S S MA )w e r e p r e s e n t e db a s e d o nM a p R e d u c e a n dm u l t i -o b j
e c t i v e a n t c o l o n y o p t i m i z a t i o n .M u l t i ‐o b j e c t i v e a n t c o l o n y o p t i m i z a t i o n ,M a p a n dR e d u c e
f u n c t i o n ,a n do p t i -
m i z a t i o n s t r a t e g i e sw e r e e m p l o y e d i nC S S MA.C S S MAr u n p a r a l l e l d i s t r i b u t e d i n t h em a n u f a c t u r i n g c l o u d p l a t f o r m.T h eo u t c o m eo f t h es i m u l a t i o ne x p
e r i m e n t s s h o w s t h a tC S S MA p e r
f o r m e s f a v o r a b l e c a p a b i l i t i e s i n s o l v i n
g d y n a m i c c l o u d s e r v i c e s e l e c t i o n ;i t a l s o d e m o n s t r a t e s t
h e p r o p o s e d a l g
o r i t h mh a s g o o d a b i l i t y i n p r o c e s s i n g l a r g
e s c a l e p r o b l e m s .K e y w
o r d s :c l o u dm a n u f a c t u r i n g ;c l o u d s e r v i c e ;c l o u d s e r v i c e s e l e c t i o n ;a n t c o l o n y o p t i m i z a t i o n 收稿日期:2013 07 03
基金项目:国家高技术研究发展计划(863计划)资助项目(2011A A 040501);国家自然科学基金资助项目(71271071)
;国家社会科学基金资助项目(10C G L 024);安徽省自然科学基金资助项目(K J 2011A 006,K J 2013B 010
)0 引言
基于目前制造业面临的机遇与挑战,文献[1
]提出了云制造的概念㊂云制造技术将现有网络化制造和服务技术同云计算㊁云安全㊁高性能计算㊁
物联网等技术相融合,实现了各类制造资源(制造硬设备㊁计算系统㊁软件㊁模型㊁数据㊁知识等)统一的㊁集中的智能化管理和经营,为制造全生命周期过程提供可随时获取的㊁按需使用的㊁安全可靠的㊁优质廉价的各类制造活动服务㊂
制造云服务(简称云服务),是服务化的制造资源和制造能力,是构成制造云的基本要素,可以
通过网络为用户提供产品全生命周期应用服务㊂制造云是大量的云服务按一定的规则聚合在一起所形成的动态云服务中心,是云制造系统架构的核心,能透明地为用户提供可靠的㊁廉价的㊁按需
使用的产品全生命周期应用服务[
2
]㊂制造云中有大量的云服务,但单个云服务往
往功能比较单一,不能满足复杂制造业务的需求㊂因此,如何高效动态地组合制造云中这些单个的云服务,形成一种新的功能强大的增值云服务组合,以满足不同客户复杂的应用需求和实现云服务的增值和增效,是研究工作的重点㊁难点和热点㊂制造云服务组合作为提高云制造资源利用率㊁实现制造资源增值的关键途径之一,对云制造
的实施和开展具有重要作用[
3]
㊂制造云中,具有功能相同但非功能属性Q o S
(q u a l i t y o
fs e r v i c e )(如运行时间㊁费用㊁信誉等㊃
1572㊃基于M a p
R e d u c e 和多目标蚁群算法的制造云服务动态选择算法 倪志伟 王会颖 吴 昊
级㊁可靠性等)不同的云服务很多,且其经常变化㊂本文把从众多云服务中提取的㊁具备多种云服务功能的㊁能够满足用户各种要求的云组合链服务,称为云服务动态选择问题[4]㊂
服务动态选择问题,从优化算法的角度分类可分为线性方法和非线性方法两种㊂文献[5]采用整数规划的穷举算法进行云服务动态选择问题研究,这种线性方法的不足是难以求解大规模问题,且文献[6]已经证明基于Q o S的服务选择是N P(n o n‐d e t e r m i n i s t i c p o l y n o m i a l)难问题㊂现在更多的研究是采用非线性的进化方法,如遗传算法[4,7‐8],粒子群算法[9]等㊂从服务选择优化方案的角度分类,服务动态选择问题又可分为基于Q o S的局部最优方案[7]和全局最优方案[8‐9]两种㊂例如,将多个Q o S指标采用加权和的方法形成一个单目标函数,就是基于Q o S局部最优方案进行的㊂但文献[8]指出文献[7]方法存在不可能求出非劣解集的某些区域的缺陷,是必须引起关注的㊂由于云制造的概念提出不久,有关云制造的研究目前还主要集中在概念㊁体系架构等方面[3],涉及综合云制造㊁云计算和云服务的研究较少[1],且服务选择算法大多不以并行的方式运行,难以适应分布式并行的制造云环境㊂
针对上述研究的不足,本文基于云计算技术和云服务技术进行制造云服务动态选择问题研究,在搭建的云制造服务层次化模型的基础上,提出了一种基于M a p R e d u c e和多目标蚁群算法的制造云服务动态选择方(算)法(d y n a m i cc l o u d s e r v i c e ss e l e c t i o na l g o r i t h m b a s e do n m a p R e-d u c ea n d m u l t i‐o b j e c t i v ea n tc o l o n y o p t i m i z a-t i o n,C S S MA)㊂云制造服务层次化模型明晰了与云制造服务相关元素之间的层次关系㊂C S S-MA在分布式并行的云计算环境(制造云平台)中求解云服务动态选择问题,利用云计算关键技术M a p R e d u c e编程模式和分布式文件系统(h a d o o p d i s t r i b u t e d f i l es y s t e m,H D F S)实现基于多目标蚁群算法的并行化云制造㊂C S S MA在设计多目标蚁群算法的同时,将多个目标函数进行优化,最终产生一组满足约束条件的非劣解提供给用户,用户可根据自己的偏好进行选择,没有被选中的方案作为备选方案以备发生意外时启用㊂C S S MA为在制造云平台中分布式并行地求解制造云服务动态选择问题提供了可行方案㊂
1 云制造服务相关概念和层次化模型
在云制造中,只需要根据用户的需求建立相
应的需求模型,然后在制造云平台相应中间件的支持下,从云服务中心搜索㊁匹配到相应的服务或进行服务组合,支付一定费用,即可使用制造云平台中相应的云服务,它体现的是一种按需分配方式和有偿使用原则[3]㊂
1.1 相关概念的定义和描述
在制造行业中,用户需求包括用户个性化㊁多元化需求,制造需求,面向领域的应用需求等㊂用户需求可分为功能需求和非功能需求两类㊂云制造服务相关概念的定义和描述如下:
用户功能需求(f u n c t i o n a lr e q u i r e m e n t s, F R)㊂将用户功能需求定义为一个二元组,F R= <I n p u t‐P a r a m e t e r s,O u t p u t‐P a r a m e t e r s>㊂其中, I n p u t‐P a r a m e t e r s表示用户功能需求的输入参数列表,O u t p u t‐P a r a m e t e r s表示用户功能需求的输出参数列表㊂
用户非功能需求(n o n‐f u n c t i o n a lr e q u i r e-m e n t s,N F R)㊂将用户非功能需求定义为一个二元组,N F R=<A t t r i b u t e s,R a n g e s>㊂其中, A t t r i b u t e s表示用户非功能需求所包含的服务质量Q o S属性,R a n g e s表示服务质量属性应满足的约束范围㊂
云服务(c l o u ds e r v i c e,C S)㊂制造云服务是通过采用物联网㊁虚拟化等技术,将分散的制造资源和制造能力基于知识进行虚拟封装,并智能接入到制造云平台中,从而通过网络将高度虚拟化的资源以服务的形式为用户提供制造全生命周期应用㊂云服务和云计算的服务是相对应的概念[3],是由云服务提供者在统一描述㊁发现和集成(u n i v e r s a l d e s c r i p t i o nd i s c o v e r y a n d i n t e g r a t i o n, U D D I)注册中心中注册的可以执行的服务㊂云服务的形式化描述为C S=<N a m e,D e s c,S t a t,L o c, U R L,O p e r s,P a r a s,Q o S,Q o S‐v a l u e>,其中的各元素分别表示云服务的名称㊁描述㊁状态㊁所在的服务器㊁访问地址㊁包含的操作㊁输入输出参数㊁服务质量属性及值㊂云服务的状态是指云服务的可用状况,因为制造资源(如车床)在同一时间只能为一个任务所使用,一个任务完成后才能开始另一任务,因此,其封装的云服务状态需要标记其可用的时间表,即使用状况㊂假设云服务的服务质量Q o S属性包括云服务执行时间t㊁费用C㊁信誉等级R e p㊁可靠性R,则云服务Q o S的形式化描述为Q C S=<t C S,C C S,R e p C S,R C S>㊂
抽象云服务(a b s t r a c tc l o u ds e r v i c e,A C S)㊂从功能相同的云服务中抽象出的每个抽象云服务都隶属于某服务分类,(仅)包含功能描述和接口
㊃2572㊃
中国机械工程第25卷第20期2014年10月下半月
信息,是用于构成用户服务组合流程的基本逻辑单元㊂一个A C S关联多个C S,且这些C S由不同云服务提供者提供,它们具有相同的功能和调用接口,但其具有的Q o S值却各不相同㊂抽象云服务的形式化描述为A C S=<I d,D e s c,A C S‐C S, O p e r s,I n p u t‐P a r a s,O u t p u t‐P a r a r s>,其中的各元素分别表示抽象云服务的标识㊁描述㊁关联的云服务列表㊁包含的操作㊁输入参数和输出参数㊂抽象云服务之间有顺序㊁选择㊁并行和循环等控制关系㊂
云服务组合流程(s e r v i c e c o m p o s i t i o n p r o c e s s,S C P)㊂根据用户的功能需求,依据任务之间的流程约束构造出来的组合关系或流程为云服务组合流程㊂云服务组合流程由控制结构连接一组抽象云服务组成,但不指定调用的云服务实例,每个抽象云服务关联一个云服务群㊂假设云服务组合流程S C P中包含n个抽象云服务,则其可形式化描述为S C P=<A C S1,A C S2, , A C S n>㊂因很多关于云服务组合的应用都侧重于半自动方式[1],故本文也采用半自动服务组合方式进行云服务动态选择问题研究㊂半自动服务组合方式的实现是由业务人员根据特定的行业背景建立的适合具体应用需求的通用服务组合流程㊂图1所示为云服务组合流程的4种基本模型㊂为方便明晰表述图1模型各自的开始和结束逻辑关系状态,特引入虚拟的初始抽象云服务标志A C S b和虚拟的终止抽象云服务标志A C S e来标记一个云服务组合逻辑上的开始和结束㊂云服务组合流程由图1的4种基本模型组成㊂通常,一个云服务组合流程由云服务集合㊁逻辑控制关系集合㊁数据依赖关系集合共同进行描述㊂
云服务组合执行路径(c l o u ds e r v i c ec o m p o-s i t i o ne x e c u t i o n p a t h,S C E P)㊂将服务组合流程中的抽象云服务映射到具体的云服务实例,并根据用户的非功能需求和云服务的Q o S及可用状态,选择出合适的云服务参与组合,生成可被执行的云服务组合执行路径或方案㊂假设云服务组合流程S C P中包含n个抽象云服务,每个抽象云服务A C S i映射一个云服务C S i,则云服务组合的执行路径可形式化描述为S C E P=<C S1,C S2, , C S n>㊂云服务有Q o S属性,由云服务组合而成的云服务组合执行路径的Q o S属性可形式化描述为S C E P=<t SC E P,C S C E P,R e p S C E P,R S C E P)>㊂云服务组合流程的4种基本模型对应的云服务组合执行路径基本模型的Q o S计算方法如表1所示
㊂
(a)
顺序结构
(b)
并行结构
(c)
选择结构
(d)循环结构
图1 云服务组合流程的4种基本模型
表1 云服务组合执行路径基本模型的Q o S计算方法控制
结构
运行时间
t S C E P
费用
C S C E P
信誉等级
R e p S C E P
可靠性
R S C E P
顺序
结构∑
n
i=1
t i∑n i=1C i(∑n i=1R e p i)/n∏n i=1R i 并行
结构
m a x(t1,
t2, ,t n)
∑n i=1C i(∑n i=1R e p i)/n m i n(R1,
R2, ,R n)
选择
结构
∑n i=1p i=1,
∑n i=1p i t i
∑n i=1p i C i∑n i=1p i R e p i∑n i=1p i R i
循环
结构
k∑n i=1t i k∑n i=1C i(∑n i=1R e p i)/n∏n i=1R i 制造云服务动态选择问题的选择流程和规则是:根据云服务组合流程㊁用户的非功能需求㊁云服务的状态和Q o S属性,为云服务组合流程中的每个抽象云服务,从一组功能相同而非功能属性不同的云服务群(即A C S‐C S i)中动态地选择一个云服务的具体实例,形成云服务组合执行路径,并且使得云服务组合执行路径的多个Q o S指标得到优化㊂
1.2 云制造服务层次化模型
本文设计的云制造服务层次化模型如图2所示㊂在云制造中,需要对云制造应用层中的用户需求进行任务分解㊁功能需求分析㊁流程分析与匹配以及抽象云服务功能匹配等处理和操作,形成满足用户功能需求的一个或多个云服务组合流
㊃3572㊃
基于M a p R e d u c e和多目标蚁群算法的制造云服务动态选择算法 倪志伟 王会颖 吴 昊
程㊂云服务组合流程由抽象云服务层中的抽象云服务按照一定的逻辑控制关系组合而成㊂根据用户非功能需求和云服务的可用状态及Q o S 属性,利用服务选择和优化算法(如本文提出的C S S -MA )
,从云服务层中为服务组合流程的每个抽象云服务选取一个云服务,构成优化的云服务组合执行路径㊂根据云服务组合执行路径调用制造云平台基础设施层中的云服务和云服务对应的制造资源来完成用户任务
㊂
图2 云制造服务层次化模型
2 基于M a p
R e d u c e 和多目标蚁群算法的制造云服务动态选择算法
基于M a p
R e d u c e 和多目标蚁群算法的制造云服务动态选择算法(C S S MA ),将制造云服务动态选择问题转化为基于Q o S 的多目标全局最优
化问题进行求解㊂
问题假设云服务包含4个Q o S 参数,
即运行时间t ㊁费用C ㊁信誉等级R e p 和可靠性R ㊂云服务组合流程S C P 中包含n 个抽象云服务,抽象云服务A C S i 的A C S ‐C S i 属性关联m 个云服务
C S i j ,记为A C S ‐C S i =(C S i 1,C S i 2, ,C S i m ),要求在满足信誉等级和可靠性的条件下,云服务组合执行路径S C E P 的执行时间最短,费用最低,则问题转化为在信誉等级和可靠性的约束条件下,求S C E P 的时间目标函数t S C E P 和费用目标函数C S C E P 都优化的非劣解集(P a r e t o 前沿)㊂用户可根据自己的偏好从非劣解集中选择最满意的云服务组合执行路径,其余的云服务组合执行路径将作为备选方案以备发生意外时启用㊂2.1 多目标蚁群算法
在蚁群算法[10‐11]
中,启发函数和信息素是其
两个重要的元素,启发函数体现问题本身的特性,信息素用于记录蚁群搜索过程中的经验㊂信息素和启发函数引导蚁群在解空间中进行搜索,通过信息素的不断积累,对于单目标问题,可最终收敛到最优解;但对于多目标问题,其解的优劣是相对的,不存在绝对最优,通常会有一组非劣解,为此需要进行多目标蚁群算法设计,该算法的目标函数㊁启发函数㊁概率计算表达式分别为
m i n Q (S C E P )=m i n (t S C E P ,C S C E P )
s .t .R e p S C E P >R e p 0,R S C E P >R }
0(1
)η
i j =(m a x t i -t i j +1)/(m a x t i -m i n t i +1)(2)η
i j =(m a x C i -C i j +1)/(m a x C i -m i n C i +1)(3)p i j =(τ(α)i j η(β)i j )/∑j ∈A C S i (
τ(α)i j η(β)
i j )(4
)目标函数设计为两个,即时间目标函数t S C E P
和费用目标函数C S C E P ㊂
启发函数:由于云服务包含多个不同特征的
Q o S ,
为了多目标寻优,在多目标蚁群算法中,需㊃
4572㊃中国机械工程第25卷第20期2014年10月下半月
要设计多个启发函数㊂当云服务C S i j(i=1,2, ,n;j=1,2, ,m)的时间属性优先时,启发函数定义为式(2);当云服务C S i j的费用属性优先时,启发函数定义为式(3)㊂其中m i n t i㊁m a x t i和m i n C i㊁m a x C i分别表示制造云平台中抽象云服务A C S i关联的云服务的时间属性t i j的最小值㊁最大值和费用属性C i j的最小值和最大值㊂上述取项方法可保证启发函数的值域被规范(化)到(0,1]区间,并且服务的运行时间越长㊁费用越多,启发函数的值越小㊂
信息素㊁概率计算㊂云服务C S i j的信息素τi j 设计为:云服务C S i j的时间和费用属性各自分别对应信息素,每个云服务的时间属性所对应的信息素记为τt i j,且τt i j=τi j;费用属性所对应的信息素记为τC i j,且τC i j=τi j㊂式(4)为概率计算公式,其中α㊁β为参数㊂根据式(4)可以计算出每个抽象云服务关联的云服务的时间属性概率p t i j 和费用属性概率p C i j,且每个抽象云服务关联的所有云服务的时间属性概率之和为1,费用属性概率之和也为1㊂
2.2 C S S M A算法设计
制造云平台利用云计算的M a p R e d u c e编程模式[12]进行分布式系统的编程简化㊂M a p R e-d u c e通过M a p和R e d u c e两个简单函数构成运算基本单元,编程人员只需提供自己的M a p函数和R e d u c e函数即可并行处理海量数据,且只需将精力放在应用程序本身,而关于集群的处理问题包括可靠性和可扩展性,则交由平台来处理[13]㊂蚁群算法中,各个蚂蚁独立对问题进行求解,具有高的隐含并行性,可以很好地利用云计算的M a p R e d u c e编程模式和分布式文件系统(如H D F S),在制造云平台中对问题进行分布式并行求解㊂
C S S MA应用M a p R e d u c e来并行化多目标蚁群算法,且应用M a p函数构建问题的解㊂它应用R e d u c e函数实现解的聚集和比较,得到非劣解集,并根据解的密度进行信息素的更新㊂当一代求解不能得到问题的最优解集时,则利用云计算的任务管道能力形成M1→R1→M2→R2→ →M n→R n的执行序列,进行多代求解,并将上一代R e d u c e的输出作为下一代M a p的输入,使任务串行起来,经过进化,最终求得问题的非劣解集㊂
C S S MA中相关概念的描述如下[11]:
代数(g e n e r a t i o n,G)㊂利用云计算的管道能力可使多个j o b串行起来,串行j o b的次数为代数,其中的一代为云计算的一个j o b,包含M a p过程和R e d u c e过程㊂
蚂蚁家族成员数(a n t n u m b e r,A N)㊂在云计算环境中运行任务时,平台本身需要消耗一定的时间,若一个M a p中只有一个蚂蚁需要求解,则额外开销会较大(参见3.5节的t1㊁t3㊁t5),求解问题的时间会较短(参见3.5节的t2㊁t4)㊂仿此,利用一个M a p中的多只蚂蚁进行求解,则一个M a p 中的多只蚂蚁就构成一个蚂蚁家族,其数量为蚂蚁家族成员数㊂
解对象(s o l u t i o n o b j e c t,S O)㊂解对象中包含3个元素,即属性索引i d x(蚂蚁求解时,依据的时间或费用属性,如i d x=0表示根据时间属性求解)㊁解s(云服务组合执行路径)和值v(解对应的各目标函数值),其形式化描述为S O=<i d x,s,v>㊂2.3 C S S MA的M a p函数
M a p函数的形式化描述为
M a p(k e y1,v a l u e1)→
{<k e y2,v a l u e2i>|i=1,2, ,k1}(5)式(5)中的输入为键值对<k e y1,va l u e1>, k e y1:i n t e g e r类型,表示蚂蚁家族的序号, v a l u e1:t e x t类型,为上一代求得的一个解对象;输出键值对集合<k e y2,v a l u e2i>(中间结果),并将其作为R e d u c e函数的输入,k e y2=1; v a l u e2i为解对象㊂
M a p函数的主要功能为根据服务组合流程S C P=<A C S1,A C S2, ,A C S n>,从每个抽象云服务相关联的云服务列表A C S‐C S i=(C S i1, C S i2, ,C S i m)中,选取一个云服务C S i j形成一个云服务组合执行路径(问题的一个解s);计算解的2个目标函数值t S C E P㊁C S C E P;进行解对象的比较和选优处理,形成该蚂蚁家族的非劣解集,输出该非劣解集中的解对象㊂
M a p函数的描述如图3所示,其中s S e t为本文蚂蚁家族的非劣解集合;第3步为取相关云服务C S i j的信息素τi j,若是第一代求解,则τi j=1,否则,从信息素文件中读取信息素;第8步为从A C S‐C S i中,根据i d x和相应的概率,按轮盘赌方式选择一个云服务C S i j;第11步c o m p a r e(S O, s S e t)为实现解对象S O和非劣解集合s S e t中的解对象的比较和选优,其描述如图4所示㊂图4的c o m p a r e(S O,s S e t)函数中的S O.t S C E P㊁S O.C S C E P 分别表示解对象S O的时间㊁费用目标函数值;图4第4步表示S O的2个目标函数值均优于S O i,则从非劣解集中删除S O i,且将S O标记为优解;图4第6步表示S O的值有一个优于S O i,则将S O标
㊃5572㊃
基于M a p R e d u c e和多目标蚁群算法的制造云服务动态选择算法 倪志伟 王会颖 吴 昊
记为优解;图4第8步表示S O的值都不优于S O i,则跳出f o r循环,不再比较;图4第9步表示若S O 是优解,则将S O加入s S e t㊂通过图4给出的解对象比较寻优步骤,可保证非劣解集中的解对象为蚂蚁求得的当前最优非劣解㊂
F u n c t i o n M a p(k e y1,v a l u e1){
1s S e t=n u l l;
2s S e t.a d d(S O);//S O为v a l u e1分解的解对象
3g e t P h e r o m o n e();
4按式(4)计算时间和费用概率p t i j,p C i j;
5w h i l e(蚂蚁家族中的成员未求解完){
6i d x=0或1;//随机取时间或费用属性
7f o r(A C S i i n S C P){//构造一个解
8C S i j=s e l e c t C S(A C S i);
9C S i j加入解s; }//e n d f o r
10求s的目标函数值v;形成解对象S O;
11c o m p a r e(S O,s S e t);}//e n dw h i l e
12f o r(S O i i n s S e t){
13k e y2=1;v a l u e2=S O i;
14输出<k e y2,v a l u e2>}//e n d f o r
}
图3 C S S M A算法的M a p函数(函数1)
F u n c t i o nc o m p a r e(S O,s S e t){
1 i f(s S e t=n u l l){s S e t.a d d(S O);}
2i s G o o d=f a l s e;
3f o r(S O i i n s S e t){;
4i f(S O.t S C E P<S O i.t S C E P&&S O.C S C E P<S O i.C S C E P){ 5s S e t.d e l e t e(S O i);i s G o o d=t r u e;
6}e l s e i f((S O.t S C E P<S O i.t S C E P&&S O.C S C E P>=S O i.
C S C E P)
‖(S O.t S C E P>=S O i.t S C E P&&S O.C S C E P<S O i.
C S C E P)){
7i s G o o d=t r u e;
8}e l s e{b r e a k;}}//e n d f o r
9i f(i s G o o d){s S e t.a d d(S O);}}
图4 解对象比较优化函数(函数2)
2.4 C S S MA的R e d u c e函数
在C S S MA中,本文设计的M a p输出k e y= 1,这样,所有的M a p输出结果将会交给一个R e d u c e进行处理㊂由于云制造平台会对M a p函数输出的结果进行排序㊁聚集等操作,故能将相同k e y的中间结果交给一个R e d u c e函数进行处理㊂R e d u c e函数的形式化描述为
R e d u c e(k e y2,l i s t(v a l u e2))→
{<k e y3j,v a l u e3j>|j=1,2, ,k3}(6)
τi j=(1-ρ)τi j+Δτi j(7)
Δτi j=1/[(1+d i)Q]
式中,k e y3j为解对象属性索引;v a l u e3j为由解对象S O j 中的解和值连接而成的一个解对象量;Q为参数,体现解密度d i的重要程度;ρ为信息素衰减参数㊂
R e d u c e函数的主要功能为:对各M a p函数输出的多个云服务组合执行路径S C E P进行比较和选优,并根据优选的S C E P集合对云服务进行信息素更新和输出优选的S C E P的相关信息集合㊂R e d u c e函数算法描述为:接受M a p输出的各家族的非劣解集,并比较其中的解对象,得到问题当前最优的非劣解集,计算非劣解集中每个解对象的相似度㊁信息熵和解密度,并根据解对象的解及解密度进行信息素更新,输出当前非劣解集㊂
R e d u c e函数描述如图5所示,其中,第2步㊁第4步同M a p中的相关操作;第3步为计算当前非劣解集s S e t中每个解对象的解密度(见2.5节);第5步为根据式(7)解对象的解密度d i和解s,对云服务的信息素进行更新㊂信息素更新方式为:对所有相关云服务C S i j,先将时间信息素τt i j和费用信息素τC i j衰减为(1-ρ)τi j,再对非劣解集s S e t 中的每个解对象S O的解(即云服务组合执行路径)中包含的云服务C S i j增加Δτi j信息素㊂
F u n c t i o nR e d u c e(k e y2,l i s t(v a l u e2)){
1 s S e t=n u l l;
2f o r(S O i n l i s t(v a l u e2))c o m p a r e(S O,s S e t);
3S D(s S e t);//解密度计算
4g e t P h e r o m o n e();//取信息素
5f o r(S O i n s S e t){信息素更新;}
6把更新后的信息素写入信息素文件;
7f o r(S O i n s S e t){
8k e y3=S O.i d x;v a l u e3=S O.s+S O.v;
9输出<k e y3,v a l u e3>;}
}
图5 C S S M A算法的R e d u c e函数(函数3)
2.5 解多样性保持策略
本文采用基于S h a n n o n的信息熵理论[1]来保持解的多样性㊂对非劣解集中的解对象计算其信息熵和解密度,并根据解密度对云服务进行信息素更新,这样,解密度小的解对象包含的云服务的信息素增加较多,且信息素直接影响下一代蚂蚁的求解,使蚂蚁的求解空间分散在解密度较小的区域,不至于过分集中,保持了解的多样性,能有效改善蚁群算法易过早收敛于局部最优解的缺陷㊂
解密度(s o l u t i o nd e n s i t y,S D)计算函数的描述如图6所示,其中,n为云服务组合执行路径中包含的云服务的个数;r为当前非劣解集中和s i相似的解的数量;第5步为计算解s i和s j中相同云服务的比率p和信息熵h;第6步为计算解s i和s j
㊃6572㊃
中国机械工程第25卷第20期2014年10月下半月
的相似程度q,若q值不小于0.9,则s i和s j相似, r值加1;第7步为计算解对象S O i的解密度d i㊂函数S D输出非劣解集中各个解对象的解密度㊂
F u n c t i o nS D(s S e t){
1 f o r(S O i i n s S e t){r=0;
2s i=S O i.s//取解对象中的解
3f o r(S O j i n s S e t)){s j=S O j.s;
4 i f(s i!=s j){
5 计算s i和s j中相同云服务的个数k}
6p=k/n;h=-(p㊃l n p);
7q=1/(1+h);i f(q>=0.9){r←r+1;}}
8S O i的解密度d i=r/n;}
9输出s S e t中各解对象的解密度;
}
图6 解密度计算函数(S D)函数
2.6 优良解的保持策略
本文将R e d u c e函数的输出设计为当前最优非劣解集组成文件,通过制造云平台的任务管道将非劣解集文件(解文件)作为下一代M a p的输入文件,且在制造云平台中将其分割成许多数据段,设计每个数据段中包含一个非劣解㊂因此,非劣解集中的每个解对象对应下一代的一个M a p 函数,并作为M a p函数的输入,成为蚂蚁家族非劣解集中的初始解㊂这样,上一代的优良解被保持到下一代,且直接影响下一代蚂蚁家族的非劣解集,在使问题的求解具有较好收敛性的同时,加速问题的求解㊂
2.7 C S S MA的数据预处理
对于制造云平台中和用户服务组合流程相关的云服务,根据用户需求或服务规划者的约束条件(如:满足信誉等级和可靠性要求等)和云服务的可用状态,进行初步的筛选,去除不满足条件的云服务,使服务组合流程中的每个抽象云服务所关联的候选云服务都可用,且满足约束条件,从而减少C S S MA算法的搜索空间㊂
2.8 C S S MA总体描述及运行架构
C S S MA总体描述如图7所示,其中,第1步为通过C S S MA的数据预处理实现云服务C S属性文件的预处理;第2步的相关参数包括:算法最大迭代次数M G,蚁群算法的参数α㊁β㊁ρ㊁Q,蚂蚁家族成员数A N,初始解文件(解文件在制造云平台中将被分割成若干数据段,且每个数据段将作为M a p函数的一个输入)等;第4步为C S S MA的M a p函数描述和功能应用;第5步为C S S MA的R e d u c e函数描述和功能应用,该步输出由非劣解集构成的解文件;第6步为输出第5步的解文件到本地文件系统,目的是保留中间求解结果,以便对结果进行统计和分析,以及考查算法的性能;第7步为考查解文件的收敛性,若解文件中的非劣解已收敛,则结束算法,否则,进入下一代循环,将第5步输出的解文件作为下一代M a p的输入㊂
C S S MA算法{
1 云服务C S属性文件预处理;
2初始化相关参数;
3w h i l e(迭代次数小于M G){
4M a p(k e y1,v a l u e1);
5R e d u c e(k e y2,l i s t(v a l u e2));
6输出当前非劣解集到本地解文件;
7若当前非劣解已收敛,结束算法;}
}
图7 C S S MA算法(算法1)
C S S MA的运行架构如图8所示,其中, M a p p e r工作节点负责执行M a p函数,R e d u c e r工作节点负责执行R e d u c e函数,M a s t e r为控制节点,其主要任务为:①解文件的分割㊁任务分派和部署给M a p p e r函数节点;②将M a p函数的结果进行收集㊁排序和归类后,转给R e d u c e r函数进行处理;③将R e d u c e r节点输出的解文件根据条件进行处理,若满足条件,则结束算法运行,否则,将解文件交给下一代处理,即进行任务①运行㊂
图8 C S S MA算法运行架构
3 仿真实验
3.1 制造云实验平台搭建
硬件环境描述:微机配置为I n t e l(R)
㊃7572㊃
基于M a p R e d u c e和多目标蚁群算法的制造云服务动态选择算法 倪志伟 王会颖 吴 昊。