云计算环境中存在着诸多不同类型的计算资源, 各种类型的资源之间存在着一定的差异. 云计算资源调度问题正是将云环境中的各类资源进行合理调度, 以达到缩短计算时间且提高资源利用率等目的的复杂调度问题. 随着“互联网+”和“自媒体”概念的日益升温, 长期以来被应用的调度效率较低的云计算资源调度算法不再能够满足人们的现实需求[1].
云计算资源调度算法研究已成为云计算领域的研究热点之一. 云计算资源调度需要同时兼顾计算效率和负载均衡, 这依赖于具有强大搜索能力的智能优化算法. 目前, 已经有诸多的智能优化算法应用于云计算资源调度中. 针对云计算服务集群资源调度和负载平衡的优化问题, 刘万军[2]等提出了一种适用于云计算资源调度的粒子群改进算法. 针对目前静态的网络资源调度算法不能满足动态的云计算资源调度要求的问题, 周文俊[3]等提出了一种基于预测及蚁群算法的云计算资源调度策略. 为了提高云计算资源的利用率, 以保持负载平衡, 孟令玺[4]等提出一种适用于云计算资源调度的文化粒子群算法. 为了提高云计算资源的调度效率, 袁浩[5]等提出了一种适合于云计算资源调度的社会力群智能优化算法. 针对传统资源调度算法中存在资源利用率低等缺陷, 卓涛[6]等提出一种基于改进人工蜂群算法的云计算资源调度模型(Improved Artificial Bee Colony, IABC). 尽管上述的改进算法在一定程度上能够提升云计算资源调度的效率和精度, 但仍有一些不足之处.
云计算调度问题极难求得令人满意的解. 这一方面是因为云计算资源问题具有大规模、非线性、逻辑复杂的特点, 另一方面则是由于现有的智能优化算法及其改进策略都存在着对模型参数敏感、迭代后期容易陷入局部收敛等缺陷. 为有效弥合智能优化算法的缺陷以改善其优化性能, 本文提出了一种云计算调度粒子群改进算法. 基于云资源调度优化模型, 本文将混沌随机数扰动引入现有的惯性权重线性递减(LDW)粒子群算法中, 且结合了蚁群算法的寻优策略. 基于2种测试函数和1个云计算资源调度实际算例对3种不一样的优化算法进行比对试验, 其对比试验结果表明, 本文提出的粒子群改进算法的算法性能更佳.
1 云计算资源调度问题的优化模型云计算资源调度问题的核心是节约其执行任务的时间. 因此, 云计算资源调度问题中最重要的优化目标即是其最大任务的执行时间, 记为
$\begin{gathered} \min \;\;\;\;\;\;{T_{\max }}\;\;\;\;\;\;{B_{{\rm{degree}}}} \\ {\rm{s.t.}}\left\{ \begin{gathered} \sum\limits_{i = 1}^m {{e_{ij}}} {t_{ij}} \leqslant {T_{\max }}\;\;\;\;\;\;\forall j \in N \\ {e_{ij}} \in \left\{ {0,1} \right\} \\ \exists \sum\limits_{j = 1}^n {{e_{ij}} = 1\;\;\;\;\;\;\forall i \in M} \\ \end{gathered} \right. \\ \end{gathered} $ | (1) |
式(2)中,
最大任务的执行时间
${T_{\max }} = \max (\sum\limits_{i = 1}^m {{e_{ij}}} {t_{ij}})\;\;\;\;\;\;\forall j \in N$ | (2) |
负载不平衡程度
${B_{{\rm{degree}}}} = E({e_{num}})$ | (3) |
式(3)中,
上述优化模型求得最优需使得任务完成时间最短, 也即:
$cost = \min ({T_{\max }})$ | (4) |
式中,
由上述云计算资源调度问题的优化模型可知, 采用传统的梯度下降算法等常规算法是不易求得满意的优化解的, 因此, 一般会采用粒子群算法等智能优化算法进行求解.
2 改进的粒子群算法 2.1 粒子群算法美国心理学家Kennedy和电气工程师Eberhart于1995年共同提出了粒子群算法(PSO)[8]. 假设群体规模为
$\left\{\begin{aligned} v_{i,t + 1}^d = & w * v_{i,t}^d + {c_1} * rand * (p_{i,t}^d - x_{i,t}^d) \\ &+ {c_2} * rand * (p_{g,t}^d - x_{i,t}^d) \\ x_{i,t + 1}^d =& x_{i,t}^d + v_{i,t + 1}^d \\ \end{aligned} \right.$ | (5) |
式中,
为改善粒子群算法极易陷入局部收敛的缺陷, 众多学者考虑了一种惯性权重系数
$\left\{\begin{aligned} v_{i,t + 1}^d =& \omega _{i,t}^d * v_{i,t}^d + {c_1} * rand * (p_{i,t}^d - x_{i,t}^d) \\ & + {c_2} * rand * (p_{g,t}^d - x_{i,t}^d) \\ x_{i,t + 1}^d =& x_{i,t}^d + v_{i,t + 1}^d \\ \omega _{i,t}^d =& {\omega _{\max }} - {\omega _k} * t \\ \end{aligned} \right.$ | (6) |
式中,
惯性权重
惯性权重线性递减(Linear Decreasing inertia Weight, LDW)的具体策略如下所述: 在LDW粒子群算法的整个过程中, 以进化代数为标准, 惯性权重以
2.3 增加混沌随机数扰动的惯性权重线性递减粒子群算法
惯性权重线性递减(LDW)粒子群算法较基本粒子群算法而言, 具有更好的寻优性能. 然而, 由于粒子群算法实际搜索过程具有非线性的特点, 于是惯性权重
$\left\{\begin{aligned} v_{i,t + 1}^d =& \omega _{i,t}^d * v_{i,t}^d + {c_1} * rand * (p_{i,t}^d - x_{i,t}^d) \\ &+ {c_2} * rand * (p_{g,t}^d - x_{i,t}^d) \\ x_{i,t + 1}^d =& x_{i,t}^d + v_{i,t + 1}^d \\ \omega _{i,t}^d =& {\omega _{\max }} - {\omega _k} * t + {A_t} \\ {A_t} \in &\left\{ {0,0.1} \right\} \\ \end{aligned} \right.$ | (7) |
式中,
${A_t} = 0.1 \cdot ran{d^2} \cdot \sin (\pi \cdot rand)$ | (8) |
其增加混沌随机数扰动的惯性权重
2.4 蚁群算法
1992年, 意大利学者Dorigo提出了蚁群算法[11]. 在蚁群算法中, 每只蚂蚁均在进行路径搜索后独立的产生一个可行解, 并产生信息素. 假设当前共有
$j = \left\{ \begin{gathered} \arg \mathop {\max }\limits_{u \in {J_k}(i)} [{({\tau _{iu}})^\alpha } \cdot {({\eta _{iu}})^\beta }], q \leqslant {q_0} \\ J, q > {q_0} \\ \end{gathered} \right.$ | (9) |
每只蚂蚁在构建可行解的同时分泌信息素, 局部信息素更新方式如下式所示:
$\tau _{ij}^{new} \leftarrow (1 - \rho ) \cdot \tau _{ij}^{old} + \rho \cdot {\tau _0}$ | (10) |
当一次循环中的所有蚂蚁均构建了可行解后, 对该次循环产生的最优解与已知的最优解进行比较, 判断是否产生了新的当前的最优解, 若产生, 则对该解上的弧信息素进行更新, 如下式所示:
$\left\{\begin{gathered} \tau _{ij}^{new} \leftarrow (1 - \rho ) \cdot \tau _{ij}^{old} + \rho \cdot {\tau _0} \\ {\tau _{ij}} = \left\{ \begin{gathered} \frac{1}{{{L_{best}}}}, (i,j) \in {V_{best}} \\ 0, (i,j) \notin {V_{best}} \\ \end{gathered} \right. \\ \end{gathered}\right. $ | (11) |
式(8)–(10)中, 蚁群算法主要变量如下:
粒子群算法和蚁群算法的寻优模式相对单一, 总是全部个体向最优个体进行学习, 其最优解对种群的进化方向的影响是很大的. 为了克服采用单一的有相对固定寻优指引方向的寻优模式导致的算法容易陷入局部最优的缺点, 本文提出了一种同时混入蚁群优化策略的改进LDW粒子群优化策略的混合优化算法, 记为Improved PSO. 目的在于在保持原有粒子群算法和蚁群算法搜索性能的同时, 防止算法因为寻优模式单一而导致的陷入局部收敛的缺点. 具体的计算步骤如下所述:
Step1. 初始化混合优化算法的各项参数: 种群规模
Step2. 随机生成
Step3. 计算
Step4. 采用增加混沌随机数扰动的惯性权重的线性递减(LDW)粒子群算法的更新规则对所有粒子进行更新;
Step5. 将这
Step6. 粒子群和蚁群交换一定数目
Step7. 查看是否达到最大迭代次数, 如果是则转步骤Step5, 否则转步骤Step2;
Step8. 输出计算得到的最优解的适应度函数值.
本文中, 粒子群算法和蚁群算法的主要参数如下: 粒子群规模
基于2种不同的测试函数, 采用粒子群改进算法(IPSO)、增加混沌随机数扰动的惯性权重线性递减(LDW)的粒子群算法[12] (linear decreasing inertia weight PSO with chaotic constant disturbance, CLDWPSO)和普通的惯性权重线性递减粒子群算法[13] (Linear Decreasing inertia Weight PSO, LDWPSO)求极小值. 具体的仿真结果如下所述.
(1) De jong函数, 最优解为0.0. 其De jong函数的解析式为
由图3和表1可知, 相比于其它算法, 粒子群改进算法(IPSO)最优, 寻优得到的最优解为:
(2) Schaffer函数, 最优解0.0. 其Schaffer函数的解析式为
由图4和表2可知, 粒子群改进算法(IPSO)同样最优, 寻优得到的最优解为:
为了验证算法的改进效果, 本文采用粒子群改进算法(IPSO)、增加混沌随机数扰动的惯性权重线性递减的粒子群算法(CLDWPSO)和普通的惯性权重线性递减粒子群算法(LDWPSO)求解了一个云资源调度实际算例的最短任务完成时间及其不平衡程度. 实际算例有10个计算节点和100个任务.具体的云资源调度问题的估算执行时间表如表3所述[14].
由图5和图6可知, 相比于其它算法, 粒子群改进算法(IPSO)最优, 求解得到的任务执行节点序列为
本文基于云资源调度问题的优化模型, 提出了一种粒子群改进算法(IPSO). 首先, 基于惯性权重线性递减粒子群算法, 引入适当的混沌随机数扰动; 其次, 将蚁群算法寻优策略引入粒子群算法中以改善其全局优化性能. 本文采用了2种测试函数(De jong、Schaffer)和1个云计算资源调度实际算例来验证优化算法的性能. 其验证结果表明, 相比于其他两种优化算法, 本文提出的改进算法(IPSO)更佳.
[1] |
Fan GS, Yu HQ, Chen LQ. A formal aspect-oriented method for modeling and analyzing adaptive resource scheduling in cloud computing. IEEE Transactions on Network and Service Management, 2016, 13(2): 281-294. DOI:10.1109/TNSM.2016.2553157 |
[2] |
刘万军, 张孟华, 郭文越. 基于MPSO算法的云计算资源调度策略. 计算机工程, 2011, 37(11): 43-44, 48. DOI:10.3778/j.issn.1002-8331.2011.11.013 |
[3] |
周文俊, 曹健. 基于预测及蚁群算法的云计算资源调度策略. 计算机仿真, 2012, 29(9): 239-242, 246. DOI:10.3969/j.issn.1006-9348.2012.09.058 |
[4] |
孟令玺, 李洪亮. 基于CA-PSO算法的云计算资源调度策略. 计算机仿真, 2013, 30(10): 406-410. DOI:10.3969/j.issn.1006-9348.2013.10.093 |
[5] |
袁浩, 李昌兵. 基于社会力群智能优化算法的云计算资源调度. 计算机科学, 2015, 42(4): 206-208, 243. DOI:10.11896/j.issn.1002-137X.2015.04.041 |
[6] |
卓涛, 詹颖. 改进人工蜂群算法的云计算资源调度模型. 微电子学与计算机, 2014, 31(7): 147-150, 155. |
[7] |
袁正午, 李君琪. 基于改进粒子群算法的云资源调度. 计算机工程与设计, 2016, 37(2): 401-404, 412. |
[8] |
Kennedy J, Eberhart R. Particle swarm optimization. Proceedings of IEEE International Conference on Neural Networks. Perth, WA, Australia, 1995, 1942-1948. |
[9] |
钟臻, 张楷旋, 吴贞龙, 等. 基于改进的LDW粒子群算法的风-火电力系统联合优化调度策略. 贵州电力技术, 2017, 20(10): 50-55. |
[10] |
陈艳. 物流配送路线优化粒子群改进算法. 浙江水利水电学院学报, 2019, 31(2): 69-74. |
[11] |
游晓明, 刘升, 吕金秋. 一种动态搜索策略的蚁群算法及其在机器人路径规划中的应用. 控制与决策, 2017, 32(3): 552-556. |
[12] |
张选平, 杜玉平, 秦国强, 等. 一种动态改变惯性权的自适应粒子群算法. 西安交通大学学报, 2005, 39(10): 1039-1042. DOI:10.3321/j.issn:0253-987X.2005.10.001 |
[13] |
Gao YL, An XH, Liu JM. A particle swarm optimization algorithm with logarithm decreasing inertia weight and chaos mutation. Proceedings of 2008 International Conference on Computational Intelligence and Security. Suzhou, China, 2008, 61-65. |
[14] |
刘钙. 物联网平台下基于云计算的智能药盒系统[硕士学位论文]. 镇江: 江苏科技大学. 2018.
|