本节将梳理蚁群优化的算法流程。由于许多使用蚁群算法举行任务调度的文献都没有表述清楚怎样将原始的蚁群算法应用到云计算的任务调度中,因此本节还将具体表述怎样将原始的蚁群算法应用到云计算的任务调度中。
3.1 根本算法
蚁群算法是一种用来寻找优化路径的概率型算法。它由Colorni[18]于1992年在他的博士论文中提出,其灵感来源于蚂蚁在寻找食品过程中发现路径的行为。这种算法具有分布计算、信息正反馈和开导式搜索的特征,本质上是进化算法中的一种开导式全局优化算法。由于蚁群算法本身就是用来搜寻路径的,因此很容易就可以或许移植到云计算的任务调度算法上。
蚂蚁一开始是随机寻找食品的,在找到食品后,蚂蚁会增加从食品地到蚁群的路径上的信息素。一旦它们找到了食品路径,下次它们就不再随机观光,而是沿着信息素多的地方,盼望这条线索能找到食品。然而,随着时间的推移,信息素痕迹开始消失,这导致吸引力削弱。如果蚂蚁花更多的时间在这条路上走,就会呈现更多的信息素痕迹。与此同时,从食品来源到食品的较短路径有更多的信息素痕迹,由于蚂蚁习惯于找到这条短路径并穿过这条短路径。因此长路径上的信息素密度小于短路径上的信息素密度。信息素的蒸发消除了局部最优解的收敛性。
在蚁群优化系统中,每个蚂蚁都是一个计算代理。它迭代地构造出对该标题的最佳解决方案。在每一代中,每个蚂蚁都从一个状态i过渡到状态j,并朝着局部最优解决方案过渡。因此,在每次迭代中,每个蚂蚁都通过使用概率来计算针对其当前状态的一组可行解,并将其移至局部最优状态之一。对于每个蚂蚁k,从状态i迁移到状态j的概率 P i , j k P_{i, j}^{k} Pi,jk通常取决于两个参数, τ i , j \tau_{i, j} τi,j表现信息素浓度,代表先前的移动,而 η i , j \eta_{i, j} ηi,j表现的移动的可见性,表现过去的价值。这些值会不停更新,以在每次迭代中获得更好的最佳解决方案。在每次迭代中,它们的值可能会根据其效果而增加或淘汰,从而获得最佳解决方案。通常,蚂蚁将任务i分配给捏造机j的概率由公式(3-1)给出。