本发明涉及云计算领域,特别是涉及一种云计算资源分配方法及系统。
背景技术:
云计算是一种新型的共享基础架构,可以将巨大的系统池连接在一起,以运营商和客户的方式,通过互联网为用户提供各种存储资源和计算资源。其中,云计算资源分配是云计算技术的一个重要组成部分,其云计算资源分配效率直接影响整个云计算环境的工作性能。由于云计算有很多独特的性质,使得原有的针对网络计算的资源分配算法已无法在该环境中有效工作。针对上述问题,目前主要采用蚁群算法,遗传算法,粒子群算法等优化算法对云计算资源进行分配。但是采用上述算法对云计算资源进行分配,分配时普遍存在收敛速度较慢,易陷入局部最优,搜索速度慢等缺点,从而导致不能高效地为用户作业分配合适的云计算资源,降低了云计算资源分配效率。因此,如何保证在用户作业分配到合适的云计算资源前提下,提高云计算资源分配效率是云计算技术领域急需解决的技术问题。
技术实现要素:
本发明的目的是提供一种云计算资源分配方法及系统,能够保证在用户作业分配到合适的云计算资源前提下,提高云计算资源分配效率。
为实现上述目的,本发明提供了如下方案:
一种云计算资源分配方法,所述云计算资源分配方法包括:
获取初选集合和迭代次数;所述初选集合包括多个水波;每个所述水波表示一种云计算资源分配方案;所述水波包括水波的波高、水波的波长、水波的位置、云计算时间和云计算费用;
计算每个所述水波的适应度值,得到适应度值最小的水波;
判断所述适应度值最小的水波的适应度值是否小于或者等于预设阈值,得到第一判断结果;
若所述第一判断结果表示所述适应度值最小的水波的适应度值小于或者等于所述预设阈值,则确定所述适应度值最小的水波所对应的云计算资源分配方案为最优云计算资源分配方案;
若所述第一判断结果表示所述适应度值最小的水波的适应度值大于所述预设阈值,则对所述水波进行传播处理,并计算传播处理后的水波的适应度值;
判断所述传播处理后的水波的适应度值是否小于传播处理前的水波的适应度值,得到第二判断结果;
若所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值,则保留所述传播处理前的水波;
若所述第二判断结果表示所述传播处理后的水波的适应度值小于传播处理前的水波的适应度值,则将传播处理后的水波代替所述传播处理前的水波;
根据所述第二判断结果,更新所述初选集合,并记录所述初选集合的更新次数;
计算更新后的所述初选集合中的每个水波的适应度值,得到更新后的适应度值最小的水波;
判断所述更新次数是否小于所述迭代次数,得到第三判断结果;
若所述第三判断结果表示所述更新次数小于所述迭代次数,则返回判断所述适应度值最小的水波的适应度值是否小于或者等于预设阈值步骤,对更新后的初选集合中的每个水波进行处理;
若所述第三判断结果表示所述更新次数大于或者等于所述迭代次数,则确定更新后的适应度值最小的水波所对应的云计算资源分配方案为最优云计算资源分配方案。
可选的,在计算每个所述水波的适应度值,得到适应度值最小的水波之前,还包括:
获取用户云计算时间阈值和用户云计算费用阈值;
依次判断所述初选集合中每个水波的云计算时间是否小于等于所述用户云计算时间阈值且所述初选集合中每个水波的云计算费用是否小于等于所述用户云计算费用阈值;
若是,则保留所述水波;
若否,则舍去所述水波。
可选的,所述根据所述第二判断结果,更新所述初选集合,并记录所述初选集合的更新次数,具体包括:
若所述第二判断结果表示所述传播处理后的水波的适应度值小于传播处理前的水波的适应度值,则判断所述传播处理后的水波的适应度值是否小于所述适应度值最小水波的适应度值,得到第四判断结果;
若所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值,则保留传播处理前的水波;
若所述第四判断结果表示所述传播处理后的水波的适应度值大于或者等于所述适应度值最小水波的适应度值,则保留所述传播处理后的水波;
若所述第四判断结果表示所述传播处理后的水波的适应度值小于所述适应度值最小水波的适应度值,则对传播处理后的水波进行碎浪处理,得到多个子波;
计算每个所述子波的适应度值,得到适应度值最小的子波;
判断所述适应度值最小的子波是否小于所述传播处理后的水波的适应度值,得到第五判断结果;
若所述第五判断结果表示所述适应度值最小的子波小于所述传播处理后的水波的适应度值,则将所述适应度值最小的子波代替所述传播处理后的水波;
若所述第五判断结果表示所述适应度值最小的子波大于或者等于所述传播处理后的水波的适应度值,则保留所述传播处理后的水波;
根据所述第二判断结果、第四判断结果以及第五判断结果,更新所述初选集合,并记录所述初选集合的更新次数。
可选的,所述保留传播处理前的水波,具体包括:
若所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值,则对传播处理前的水波的波高减1,得到波高减1后的水波;
判断所述波高减1后的水波的波高是否大于0,得到第六判断结果;
若所述第六判断结果表示所述波高减1后的水波的波高大于0,则保留所述波高减1后的水波;
若所述第六判断结果表示所述波高减1后的水波的波高小于或者等于0,则将所述波高减1后的水波进行折射处理,得到折射处理后的水波;
根据所述第四判断结果,所述第五判断结果以及所述第六判断结果,更新所述初选集合,并记录所述初选集合的更新次数。
可选的,在得到所述第一判断结果之后,对所述水波进行传播处理还包括:
若所述第一判断结果表示更新后的所述适应度值最小的水波的适应度值小于或者等于所述预设阈值,则确定更新后的所述适应度值最小的水波所对应的云计算资源分配方案为最优云计算资源分配方案;
若所述第一判断结果表示更新后的所述适应度值最小的水波的适应度值大于所述预设阈值,则对更新后的所述初选集合中的每个水波的波长进行更新,得到更新波长后的水波,并对所述更新波长后的水波进行传播处理。
本发明还提供了一种云计算资源分配系统,所述云计算资源分配系统包括:
初选集合和迭代次数获取模块,用于获取初选集合和迭代次数;所述初选集合包括多个水波;每个所述水波表示一种云计算资源分配方案;所述水波包括水波的波高、水波的波长、水波的位置、云计算时间和云计算费用;
适应度值最小水波得到模块,用于计算每个所述水波的适应度值,得到适应度值最小的水波;
第一判断结果得到模块,用于判断所述适应度值最小的水波的适应度值是否小于或者等于预设阈值,得到第一判断结果;
处理后水波适应度值计算模块,用于当所述第一判断结果表示所述适应度值最小的水波的适应度值大于所述预设阈值时,对所述水波进行传播处理,并计算传播处理后的水波的适应度值;
第二判断结果得到模块,用于判断所述传播处理后的水波的适应度值是否小于传播处理前的水波的适应度值,得到第二判断结果;
传播处理前水波保留模块,用于当所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值时,保留所述传播处理前的水波;
代替模块,用于当所述第二判断结果表示所述传播处理后的水波的适应度值小于传播处理前的水波的适应度值时,将传播处理后的水波代替所述传播处理前的水波;
初选集合更新和更新次数记录模块,用于根据所述第二判断结果,更新所述初选集合,并记录所述初选集合的更新次数;
更新后适应度值最小水波得到模块,用于计算更新后的所述初选集合中的每个水波的适应度值,得到更新后的适应度值最小的水波;
第三判断结果得到模块,用于判断所述更新次数是否小于所述迭代次数,得到第三判断结果;
更新后初选集合处理模块,用于当所述第三判断结果表示所述更新次数小于所述迭代次数时,返回判断所述适应度值最小的水波的适应度值是否小于或者等于预设阈值步骤,对更新后初选集合中的每个水波进行处理;
最优云计算资源分配方案确定模块,用于当所述第一判断结果表示所述适应度值最小的水波的适应度值小于或者等于所述预设阈值时,确定所述适应度值最小的水波所对应的云计算资源分配方案为最优云计算资源分配方案;用于当所述第三判断结果表示所述更新次数大于或者等于所述迭代次数时,确定更新后的适应度值最小的水波所对应的云计算资源分配方案为最优云计算资源分配方案。
可选的,所述云计算资源分配系统还包括:
用户云计算时间阈值和用户云计算费用阈值获取模块,用于获取用户云计算时间阈值和用户云计算费用阈值;
判断模块,用于依次判断所述初选集合中每个水波的云计算时间是否小于等于所述用户云计算时间阈值且所述初选集合中每个水波的云计算费用是否小于等于所述用户云计算费用阈值;
水波保留模块,用于当所述初选集合中每个水波的云计算时间小于等于所述用户云计算时间阈值且所述初选集合中每个水波的云计算费用小于等于所述用户云计算费用阈值时,保留所述水波;
水波舍去模块,用于当所述初选集合中每个水波的云计算时间大于所述用户云计算时间阈值或者所述初选集合中每个水波的云计算费用大于所述用户云计算费用阈值时,舍去所述水波。
可选的,所述初选集合更新和更新次数记录模块,具体包括:
第四判断结果得到单元,用于当所述第二判断结果表示所述传播处理后的水波的适应度值小于传播处理前的水波的适应度值时,判断所述传播处理后的水波的适应度值是否小于所述适应度值最小水波的适应度值,得到第四判断结果;
传播处理前水波保留单元,用于当所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值时,保留传播处理前的水波;
子波得到单元,用于当所述第四判断结果表示所述传播处理后的水波的适应度值小于所述适应度值最小水波的适应度值时,对传播处理后的水波进行碎浪处理,得到多个子波;
适应度值最小子波得到单元,用于计算每个所述子波的适应度值,得到适应度值最小的子波;
第五判断结果得到单元,用于判断所述适应度值最小的子波是否小于所述传播处理后的水波的适应度值,得到第五判断结果;
代替单元,用于当所述第五判断结果表示所述适应度值最小的子波小于所述传播处理后的水波的适应度值时,将所述适应度值最小的子波代替所述传播处理后的水波;
传播处理后水波保留单元,用于当所述第四判断结果表示所述传播处理后的水波的适应度值大于或者等于所述适应度值最小水波的适应度值时,保留所述传播处理后的水波;用于当所述第五判断结果表示所述适应度值最小的子波大于或者等于所述传播处理后的水波的适应度值时,保留所述传播处理后的水波;
初选集合更新和更新次数单元模块,用于根据所述第二判断结果、第四判断结果以及第五判断结果,更新所述初选集合,并记录所述初选集合的更新次数。
可选的,所述保留传播处理前水波保留单元,具体包括:
波高减1后的水波得到子单元,用于当所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值时,则对传播处理前的水波的波高减1,得到波高减1后的水波;
第六判断结果得到子单元,用于判断所述波高减1后的水波的波高是否大于0,得到第六判断结果;
波高减1后的水波保留子单元,用于当所述第六判断结果表示所述波高减1后的水波的波高大于0时,保留所述波高减1后的水波;
折射处理后水波得到子单元,用于当所述第六判断结果表示所述波高减1后的水波的波高小于或者等于0时,则将所述波高减1后的水波进行折射处理,得到折射处理后的水波。
可选的,所述处理后水波适应度值计算模块还包括:
最优云计算资源分配方案确定单元,用于当所述第一判断结果表示更新后的所述适应度值最小的水波的适应度值小于或者等于所述预设阈值时,确定更新后的所述适应度值最小的水波所对应的云计算资源分配方案为最优云计算资源分配方案;
波长和处理后水波适应度值计算单元,用于当所述第一判断结果表示更新后的所述适应度值最小的水波的适应度值大于所述预设阈值时,对更新后的所述初选集合中的每个水波的波长进行更新,得到更新波长后的水波,并对所述更新波长后的水波进行传播处理。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供了一种云计算资源分配方法及系统,该方法首先获取初选集合和迭代次数;并计算初选集合中每个水波的适应度值;所述水波包括水波的波高、水波的波长、水波的位置、云计算时间和云计算费用;其次判断适应度值最小的水波的适应度值是否小于等于预设阈值,若是,则适应度值最小水波所对应的云计算资源分配方案为最优云计算资源分配方案,否则对水波进行传播处理,更新所述初选集合,并记录更新次数;再计算更新后的初选集合中的每个水波的适应度值,得到更新后的适应度值最小的水波,判断更新次数是否小于迭代次数,若是,则更新后的适应度值最小的水波所对应的云计算资源分配方案为最优云计算资源分配方案,否则跳转至判断更新后的适应度值最小的水波的适应度值是否小于等于预设阈值。因此,采用本发明提供的方法或者系统,能够在云计算时间和云计算费用满足用户作业要求的前提条件下,采用水波传播算法,解决了获取云计算资源分配最优解时存在的收敛速度较慢,易陷入局部最优,搜索速度慢等缺点,提高云计算资源分配效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例云计算资源分配方法的流程示意图;
图2为本发明实施例云计算资源分配系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
云计算是指通过互联网连接的超级计算模式,包含了分布式处理、并行处理和网格计算。云计算是一种新型的共享基础架构,可以将巨大的系统池连接在一起,以运营商和客户的方式,通过互联网为用户提供各种存储和计算资源。在云计算环境中,用户将自己的个人电脑、移动电话等终端设备上的大量信息和处理器资源集中在一起,协调工作,这是一个大规模的分布式计算模式,该分布式计算模式由运营商的经济规模决定,并且该分布式计算模式是抽象的、虚拟化、规模动态可变的。云计算的主要内容包括计算能力、存储、平台和服务。这些云计算包括的内容通过互联网,按需分配给外部用户,其重要意义在于将计算能力作为一种商品在互联网上进行流通。云计算的主要优势迅速地降低硬件成本和提升计算能力以及存储容量,用户可以以极低的成本投入获得极高的计算品质,而不用再投资购买昂贵的硬件设备,进行频繁的保养和升级。
云计算资源分配是云计算技术的一个重要组成部分,其效率直接影响整个云计算环境的工作性能。由于云计算由很多独特的性质,使得原有的针对网络计算的资源分配算法已无法在该环境中有效工作。为了解决上述问题,目前云计算资源分配算法主要采用蚁群优化算法或者遗传优化算法,但是采用蚁群优化算法实现云计算资源分配过程中易存在收敛速度较慢、陷入局部最优的问题;采用遗传优化算法实现云计算资源分配过程中易存在遗传算法的编程复杂、需要对问题进行编码找到最优解后对问题进行解码、三个算子的参数太多而且参数设定需要依赖经验、搜索速度慢等问题,因此根据现有的云计算资源分配算法不能对云计算资源做出实时的分配安排,决策出最佳的资源构建和调整策略,不能在保证网络服务质量的前提下,提高云计算的效率。
另外,目前的云计算资源大多从用户角度出发,充分保障用户的需求,但很少考虑成本问题。由于云集算耗能很高,这样不利于绿色环保。因此,尽量降低能耗也是云计算资源分配所需要考虑的问题。
为了解决以上缺陷,本发明提供一种云计算资源分配方法及系统,目的是能够保证在用户作业分配到合适的云计算资源前提下,提高云计算资源分配效率。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明提供的一种云计算资源分配方法,采用了水波优化算法,综合考虑了云计算的一系列特点,能够高效地为用户作业分配合适的计算资源。
图1为本发明实施例云计算资源分配方法的流程示意图,如图1所示,本发明提供的云计算资源分配方法具体包括以下步骤:
步骤101:获取初选集合和迭代次数;所述初选集合包括多个水波;每个所述水波表示一种云计算资源分配方案;所述水波包括水波的波高、水波的波长、水波的位置、云计算时间和云计算费用。
步骤102:计算每个所述水波的适应度值,得到适应度值最小的水波。
步骤103:判断所述适应度值最小的水波的适应度值是否小于或者等于预设阈值,得到第一判断结果。
步骤104:若所述第一判断结果表示所述适应度值最小的水波的适应度值小于或者等于所述预设阈值,则所述适应度值最小的水波所对应的云计算资源分配方案确定为最优云计算资源分配方案。
步骤105:若所述第一判断结果表示所述适应度值最小的水波的适应度值大于所述预设阈值,则对所述水波进行传播处理,并计算传播处理后的水波的适应度值。
步骤106:判断所述传播处理后的水波的适应度值是否小于传播处理前的水波的适应度值,得到第二判断结果。
步骤107:若所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值,则保留所述传播处理前的水波。
步骤108:若所述第二判断结果表示所述传播处理后的水波的适应度值小于传播处理前的水波的适应度值,则将传播处理后的水波代替所述传播处理前的水波。
步骤109:根据所述第二判断结果,更新所述初选集合,并记录所述初选集合的更新次数。
步骤110:计算更新后的所述初选集合中的每个水波的适应度值,得到更新后的适应度值最小的水波。
步骤111:判断所述更新次数是否小于所述迭代次数,得到第三判断结果。
步骤112:若所述第三判断结果表示所述更新次数小于所述迭代次数,则返回步骤103,对更新后的初选集合中的每个水波进行处理。
步骤113:若所述第三判断结果表示所述更新次数大于或者等于所述迭代次数,则返回步骤104,确定更新后的适应度值最小的水波所对应的云计算资源分配方案为最优云计算资源分配方案。
步骤101具体包括:获取初选集合。所述初选集合包括多个水波;每个所述水波表示一种云计算资源分配方案;定义所述初选集合的种群规模为n,最大迭代次数为m。每个水波的波高hmax、波长λ、波长衰减系数α,碎浪系数β,最大碎浪维度kmax。
其中,在步骤102之前,还包括:
获取用户服务质量要求,所述用户服务质量要求包括用户云计算时间阈值和用户云计算费用阈值;
依次判断所述初选集合中每个水波的云计算时间是否小于等于所述用户云计算时间阈值且所述初选集合中每个水波的云计算费用是否小于等于所述用户云计算费用阈值;
若是,则保留所述水波;
若否,则舍去所述水波。
根据上述判断结果,更新初选集合。
例如:在初选集合中筛选出满足云计算时间在1s--10s内,云计算费用在1元-5元的水波,也就是初选集合中筛选出满足云计算时间在1s--10s内,云计算费用在1元-5元的解决方案,输出一个既满足用户的时间需求,同时也满足用户在费用上的需求的结果。这个结果并不是时间最短,或者费用最少,而是时间和费用都是合适的。设定用户服务质量要求的目的就是找出一系列满足一定范围的水波作为初选集合,然后在这些水波中找到最优的解。
步骤102具体包括:根据以下公式,计算每个所述水波的适应度值,得到适应度值最小的水波:
公式(1)中xij表示第i个任务在第j个云计算节点上运行;n为任务数量;m为云计算节点数量;云计算节点表示云计算是由成千上万台计算机组成的,每一台计算机或者一个一个机房都可以看做一个节点;任务表示水波;t表示云计算时间和云计算费用的总和;txij表示第i个任务在第j个云计算节点上运行的云计算时间和云计算费用的总和。
水波优化算法中,一个解,对应一个水波。每个水波有2个属性,波高h和波长λ。初始时,将水波的波高h设置为hmax,波长λ为0.5。
步骤105具体包括:当所述第一判断结果表示所述适应度值最小的水波的适应度值大于所述预设阈值时,对所述水波进行传播处理,传播后的每个水波的位置以下公式计算,即根据以下公式计算传播处理后的水波的位置:
x′i=xi+rand(-1,1)*λli(2);
式中,x′i表示传播处理后的水波的位置;xi表示传播处理前的水波的位置;rand()函数是指在一定范围内生成一个均匀分布随机数;li表示第i个水波搜索空间的长度,如果传播处理后的水波的位置超出了搜索界限就重新赋予其一个搜索空间内的随机位置。
根据传播处理后的水波的位置,更新所述传播处理前的水波的位置,得到传播处理后的水波。
然后根据公式(1)计算传播处理后的水波的适应度值。
步骤110具体包括:
若所述第二判断结果表示所述传播处理后的水波的适应度值小于传播处理前的水波的适应度值,则判断所述传播处理后的水波的适应度值是否小于所述适应度值最小水波的适应度值,得到第四判断结果;
若所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值,则保留传播处理前的水波。
其中,所述保留传播处理前的水波具体包括:
若所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值,则对传播处理前的水波的波高减1,得到波高减1后的水波;
判断所述波高减1后的水波的波高是否大于0,得到第六判断结果;
若所述第六判断结果表示所述波高减1后的水波的波高大于0,则保留所述波高减1后的水波;
若所述第六判断结果表示所述波高减1后的水波的波高小于或者等于0,则将所述波高减1后的水波进行折射处理,得到折射处理后的水波;
根据以下公式对所述波高为0的水波进行折射计算,得到折射处理后的水波:
式中,x″i表示折射处理后的水波的位置;
折射处理后的水波的波高重新设置为hmax,并根据以下公式计算折射处理后的水波的波长:
式中,λ′1表示折射处理后的水波的波长;λ表示波高为0的水波的波长;x0表示波高为0的水波;x”表示折射处理后的水波。
根据折射处理后的水波的位置、折射处理后的水波的波高、折射处理后的水波的波长,更新波高为0的水波,得到折射处理后的水波。
若所述第四判断结果表示所述传播处理后的水波的适应度值大于或者等于所述适应度值最小水波的适应度值,则保留所述传播处理后的水波;
若所述第四判断结果表示所述传播处理后的水波的适应度值小于所述适应度值最小水波的适应度值,则对传播处理后的水波进行碎浪处理,得到多个子波。
其中,对传播处理后的水波进行碎浪处理,得到多个子波具体包括:
碎浪表示如果水波能量持续增加,其波峰会变得越来越陡峭,直到破碎成一连串的孤立波。在水波优化算法中,一旦搜索到一个新的最优水波,就对其进行碎浪操作。具体方式是随机选取n中的k维(1≤k≤kmax),再分别对选中的每一维根据以下公式更新水波。
根据以下公式计算子波的位置:
x″′i=x′i+norm(0,1)*βli(5);
式中,x″′i表示碎浪处理后的子波的位置;x′i表示传播处理后的水波的位置;norm(μ,σ)函数用于生成一个均值为μ,方差为σ的高斯随机数,β表示碎浪系数;li表示第i维搜索空间的长度,如果传播处理后的水波的位置超出了搜索界限就重新赋予其一个搜索空间内的随机位置。
根据所述子波的位置,更新所述传播处理后的水波的位置,得到子波。
计算每个所述子波的适应度值,得到适应度值最小的子波。
判断所述适应度值最小的子波是否小于所述传播处理后的水波的适应度值,得到第五判断结果。
若所述第五判断结果表示所述适应度值最小的子波小于所述传播处理后的水波的适应度值,则将所述适应度值最小的子波代替所述传播处理后的水波;
若所述第五判断结果表示所述适应度值最小的子波大于或者等于所述传播处理后的水波的适应度值,则保留所述传播处理后的水波。
根据所述第二判断结果、第四判断结果以及第五判断结果,更新所述初选集合,并记录所述初选集合的更新次数。
根据所述第四判断结果,所述第五判断结果以及所述第六判断结果,更新所述初选集合,并记录所述初选集合的更新次数。
在对更新后的初选集合中的每个水波进行处理之前,还包括:
若所述第一判断结果表示更新后的所述适应度值最小的水波的适应度值小于或者等于所述预设阈值,则更新后的所述适应度值最小的水波所对应的云计算资源分配方案为最优云计算资源分配方案;
若所述第一判断结果表示更新后的所述适应度值最小的水波的适应度值大于所述预设阈值,则对更新后的所述初选集合中的每个水波的波长进行更新,得到更新波长后的水波,并对所述更新波长后的水波进行传播处理,计算传播处理后的水波的适应度值。
其中,根据以下公式计算更新后的所述初选集合中的每个水波的波长得到更新波长后的水波:
式中,由于水波优化算法,每次迭代后都要更新一次水波的波长,即λ′2表示每次迭代后水波的波长;λ表示水波的波长;fmax和fmin中表示初始集合中水波的最大和最小的适应度值;α是波长的衰减系数,ε是一个极小的正整数(避免除以0)。
本发明提供了一种基于水波算法的云计算资源分配方法,解决了如何更好的配置云计算资源,使得资源利用最优化。与现有技术相比,本发明采用了基于水波优化算法的云计算资源分配方法,有以下优点:
第一,使用水波优化算法,避免了蚁群算法在云计算资源分配中的收敛速度慢容易陷入局部最优解等缺陷,避免了遗传算法在云计算资源分配中的编程复杂,计算参数太多,搜索速度慢的缺陷。
第二,水波优化算法框架比遗传算法简单,控制参数比它少,计算的开销也小。
第三,水波优化算法在能够在高维解空间中进行高效搜索。
第四,水波优化算法已经被证明在大量基准测试问题和工程实际问题上优于许多前沿的启发式优化算法。
为达到上述目的,本发明还提供了一种云计算资源分配系统,图2为本发明实施例云计算资源分配系统的结构示意图,如图2所示,所述云计算资源分配系统包括:
初选集合和迭代次数获取模块201,用于获取初选集合和迭代次数;所述初选集合包括多个水波;每个所述水波表示一种云计算资源分配方案;所述水波包括水波的波高、水波的波长、水波的位置、云计算时间和云计算费用。
适应度值最小水波得到模块202,用于计算每个所述水波的适应度值,得到适应度值最小的水波。
第一判断结果得到模块203,用于判断所述适应度值最小的水波的适应度值是否小于或者等于预设阈值,得到第一判断结果。
处理后水波适应度值计算模块204,用于当所述第一判断结果表示所述适应度值最小的水波的适应度值大于所述预设阈值时,对所述水波进行传播处理,并计算传播处理后的水波的适应度值。
第二判断结果得到模块205,用于判断所述传播处理后的水波的适应度值是否小于传播处理前的水波的适应度值,得到第二判断结果。
传播处理前水波保留模块206,用于当所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值时,保留所述传播处理前的水波。
代替模块207,用于当所述第二判断结果表示所述传播处理后的水波的适应度值小于传播处理前的水波的适应度值时,将传播处理后的水波代替所述传播处理前的水波。
初选集合更新和更新次数记录模块208,用于根据所述第二判断结果,更新所述初选集合,并记录所述初选集合的更新次数。
更新后适应度值最小水波得到模块209,用于计算更新后的所述初选集合中的每个水波的适应度值,得到更新后的适应度值最小的水波。
第三判断结果得到模块210,用于判断所述更新次数是否小于所述迭代次数,得到第三判断结果。
更新后初选集合处理模块211,用于当所述第三判断结果表示所述更新次数小于所述迭代次数时,返回判断所述适应度值最小的水波的适应度值是否小于或者等于预设阈值步骤,对更新后的初选集合中的每个水波进行处理。
最优云计算资源分配方案确定模块212,用于当所述第一判断结果表示所述适应度值最小的水波的适应度值小于或者等于所述预设阈值时,所述适应度值最小的水波所对应的云计算资源分配方案确定为最优云计算资源分配方案;用于当所述第三判断结果表示所述更新次数大于或者等于所述迭代次数时,更新后的适应度值最小的水波所对应的云计算资源分配方案确定为最优云计算资源分配方案。
其中,所述云计算资源分配系统还包括:
用户云计算时间阈值和用户云计算费用阈值获取模块,用于获取用户云计算时间阈值和用户云计算费用阈值;
判断模块,用于依次判断所述初选集合中每个水波的云计算时间是否小于等于所述用户云计算时间阈值且所述初选集合中每个水波的云计算费用是否小于等于所述用户云计算费用阈值;
水波保留模块,用于当所述初选集合中每个水波的云计算时间小于等于所述用户云计算时间阈值且所述初选集合中每个水波的云计算费用小于等于所述用户云计算费用阈值时,保留所述水波;
水波舍去模块,用于当所述初选集合中每个水波的云计算时间大于所述用户云计算时间阈值或者所述初选集合中每个水波的云计算费用大于所述用户云计算费用阈值时,舍去所述水波。
所述初选集合更新和更新次数记录模块208具体包括:
第四判断结果得到单元,用于当所述第二判断结果表示所述传播处理后的水波的适应度值小于传播处理前的水波的适应度值时,判断所述传播处理后的水波的适应度值是否小于所述适应度值最小水波的适应度值,得到第四判断结果。
传播处理前水波保留单元,用于当所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值时,保留传播处理前的水波。
所述保留传播处理前水波保留单元,具体包括:
波高减1后的水波得到子单元,用于当所述第二判断结果表示所述传播处理后的水波的适应度值大于或者等于传播处理前的水波的适应度值时,则对传播处理前的水波的波高减1,得到波高减1后的水波。
第六判断结果得到子单元,用于判断所述波高减1后的水波的波高是否大于0,得到第六判断结果。
波高减1后的水波保留子单元,用于当所述第六判断结果表示所述波高减1后的水波的波高大于0时,保留所述波高减1后的水波。
折射处理后水波得到子单元,用于当所述第六判断结果表示所述波高减1后的水波的波高小于或者等于0时,则将所述波高减1后的水波进行折射处理,得到折射处理后的水波。
子波得到单元,用于当所述第四判断结果表示所述传播处理后的水波的适应度值小于所述适应度值最小水波的适应度值时,对传播处理后的水波进行碎浪处理,得到多个子波。
适应度值最小子波得到单元,用于计算每个所述子波的适应度值,得到适应度值最小的子波。
第五判断结果得到单元,用于判断所述适应度值最小的子波是否小于所述传播处理后的水波的适应度值,得到第五判断结果。
代替单元,用于当所述第五判断结果表示所述适应度值最小的子波小于所述传播处理后的水波的适应度值时,将所述适应度值最小的子波代替所述传播处理后的水波。
传播处理后水波保留单元,用于当所述第四判断结果表示所述传播处理后的水波的适应度值大于或者等于所述适应度值最小水波的适应度值时,保留所述传播处理后的水波;用于当所述第五判断结果表示所述适应度值最小的子波大于或者等于所述传播处理后的水波的适应度值时,保留所述传播处理后的水波。
初选集合更新和更新次数单元模块,用于根据所述第二判断结果、第六判断结果、第四判断结果以及第五判断结果,更新所述初选集合,并记录所述初选集合的更新次数。
所述处理后水波适应度值计算模块204还包括:
最优云计算资源分配方案确定单元,用于当所述第一判断结果表示更新后的所述适应度值最小的水波的适应度值小于或者等于所述预设阈值时,则更新后的所述适应度值最小的水波所对应的云计算资源分配方案确定为最优云计算资源分配方案。
波长和处理后水波适应度值计算单元,用于当所述第一判断结果表示更新后的所述适应度值最小的水波的适应度值大于所述预设阈值时,对更新后的所述初选集合中的每个水波的波长进行更新,得到更新波长后的水波,并对所述更新波长后的水波进行传播处理,计算传播处理后的水波的适应度值。
本发明实施例提供了一种云计算资源分配系统,该系统首先获取初选集合和迭代次数;并计算初选集合中每个水波的适应度值;所述水波包括水波的波高、水波的波长、水波的位置、云计算时间和云计算费用;其次判断适应度值最小的水波的适应度值是否小于等于预设阈值,若是,则适应度值最小水波所对应的云计算资源分配方案为最优云计算资源分配方案,否则对水波进行传播处理,更新所述初选集合,并记录更新次数;再计算更新后的初选集合中的每个水波的适应度值,得到更新后的适应度值最小的水波,判断更新次数是否小于迭代次数,若是,则更新后的适应度值最小的水波所对应的云计算资源分配方案为最优云计算资源分配方案,否则跳转至判断更新后的适应度值最小的水波的适应度值是否小于等于预设阈值。因此,采用本发明提供的方法或者系统,能够在云计算时间和云计算费用满足用户作业要求的前提条件下,采用水波优化算法,解决了获取云计算资源分配最优解时存在的收敛速度较慢,易陷入局部最优,搜索速度慢等缺点,提高云计算资源分配效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。