张宏国,陈 阳,马 超,方 舟,黄 海
(1.哈尔滨理工大学 计算机科学与技术学院,哈尔滨 150080;2.哈尔滨理工大学 软件与微电子学院,哈尔滨 150080;3.黑龙江省网络空间研究中心,哈尔滨 150001)
面向服务计算[1](service oriented computing, SOC)是一种实现复杂软件服务系统的流行范式。在SOC范式中,复杂软件服务系统的业务功能被封装到可互操作的软件服务中,并通过标准的发布,发现与聚合过程直接重用于新的复杂软件服务系统[2]。作为SOC范式的关键方法,服务聚合是对互联网上可用的软件服务进行动态选择与编排,以按需提供组合软件服务[3]。这种组合软件服务能够满足单个软件服务无法满足的大规模的、个性化的用户要求,从而为用户提供更高的服务价值。
目前,互联网上存在大量功能方面相似但是非功能方面不同的软件服务,如何快速发现和组合这些软件服务成为现如今研究的热点。为了解决这一问题,基于群体智能的启发式算法被广泛应用于服务选择过程。以遗传算法[4]、粒子群算法[5]、蚁群算法[6]和人工蜂群算法[7]为代表。其中,人工蜂群[8](artificial bee colony, ABC)算法凭易于理解、应用方便等特点,以及在解决连续数值优化问题时展现的突出性能而受到越来越多的关注。文[9]利用Sigmoid函数将任意实数映射到(0,1)之间,再以一定概率变换为0或1,将经典的ABC算法应用到二进制离散优化问题中,提出了离散型ABC算法。文[10]则利用一系列逻辑运算,改进了离散型ABC算法,将其扩展到一般n值离散化问题。但它们与经典的解决连续域问题的ABC算法一样,均不适用与解决服务选择问题。……