GA的主要步骤不在这里阐述,有关GA的介绍见3.3.1小节。在这里主要阐述病毒优化算法(virus optimization algorithm,VOA)。VOA是由学者Wang等人于2009年提出来的一种模拟病毒攻击宿主细胞行为的优化方法[2]。在病毒攻击宿主细胞过程中,病毒通过复制操作产生新病毒来高效地定位至细胞源。当病毒锁定细胞核后,它会造成宿主细胞的死亡。VOA的原理简单,实施起来较为容易。同时,它能快速找到复杂问题的近似解甚至是最优解,而传统方法难以解决这类复杂问题。2015年,Liang等人在原有VOA的基础上提出了一种新的改进版本[3],新版本VOA与原有VOA主要有以下几点不同:①新版本VOA具有更少的参数,在不影响算法性能的情况下,参数数目从12个减少到5个;②新版本VOA具有较强的鲁棒性;③新版本VOA的搜索能力得到了显著的提升。
VOA是受到病毒攻击宿主细胞行为的启发而发展起来的一种优化算法。因此,VOA与病毒攻击宿主细胞行为之间存在着一定的类比关系,其类比关系如下:第一,在VOA中,细胞被当作问题的可行解空间。第二,全局最优解在这些可行解空间之中,同理,细胞核代表最优解的位置,细胞核可合成细胞复制所需的蛋白质。第三,VOA用户需确定共存于宿主细胞的病毒数目,病毒寄宿的细胞位置代表一个完整的解。也就是说,对于一个具有n维变量的优化问题,根据变量维度上的值将确定出病毒的位置。第四,病毒复制,VOA将触发病毒与宿主细胞之间的相互作用。具体地来说,这些病毒将通过复制操作产生新的病毒。在第四个类比中,考虑了两种病毒:强病毒和普通病毒。强病毒具有良好的结构(它寄宿的细胞具有较高的适应度值),而普通病毒具有较劣的结构(它寄宿的细胞具有较低的适应度值)。由于强病毒能高效地开采(exploit)出更多的细胞,因此强病毒以较高的概率被复制。普通病毒致力于探索(explore)新细胞(解空间),而强病毒致力于杀死细胞(开采已发现较好解的区域),并采用一个随机扰动操作来产生靠近强病毒且远离普通病毒的新病毒。对于强病毒与普通病毒来说,这种干扰机制产生的效果是不同的。第五,组织的免疫系统,其作用是产生抗体以阻止病毒的复制。在VOA中,这个系统就是抗病毒机制,其作用是阻止病毒攻击宿主细胞,抗病毒机制会消灭某些病毒个体,由于普通病毒具有较劣的基因结构(取决于目标函数值),因此普通病毒很可能被消灭。但是复制操作紧随于产生新病毒之后,某些个体也许优于上一代的个体。除非复制过程中产生了更强病毒个体(即产生了更好的解)或者细胞被消灭(即找到了全局最优解),否则抗病毒毒素经过几次复制循环后很可能会消灭病毒,但是某些强病毒是不会被淘汰的。也就是说,除非强病毒从强病毒成员中移除并被划归于普通病毒成员,否则抗病毒毒素是不会杀死任何强病毒的。图4-1所示为VOA的流程示意图。
图4-1 VOA流程示意图
病毒优化算法主要包含四个步骤:①初始化;②复制;③更新和维护;④停止。具体步骤如下所示。
Step 1:初始化。首先随机初始化病毒种群,然后对这些病毒种群进行评价。
Step 2:复制。
Step 2.1:病毒分类。根据适应度值,将病毒划分为强病毒和普通病毒。表4-1中的实例说明了病毒分类的规则。初始化种群由5个病毒个体构成,根据目标函数值(从最优到最差)对种群个体进行排序。假设优化目标为最小化某函数值,强病毒数目为2,其余个体均为普通病毒。
表4-1 病毒分类举例
Step 2.2:病毒复制。根据公式(4-12)和公式(4-13),新产生的病毒存储在临时矩阵中。(www.daowen.com)
式中:下脚标i和j表示第i个病毒和该病毒上的第j个变量;NVij表示新病毒;SVij和CVij分别表示强病毒和普通病毒;rand表示[0,1]区间上的随机数。
公式(4-12)中的intensity的作用是降低随机干扰。在复制的初期阶段,intensity的值为1,这表明在初期随机干扰是一个均匀的概率事件。在种群质量没有得到改善前,intensity的值是增加的。公式(4-12)和公式(4-13)可使算法达到一种全局探索和局部寻优的平衡。图4-2进一步阐述了新病毒产生的规则。
图4-2 储存在矩阵中的病毒复制后产生的新病毒
Step 3:更新和维护。
Step 3.1:局部寻优机制。该步骤的作用是在当前较好解的周围搜寻更高质量的解。局部寻优机制是否继续执行取决于当前种群的质量,若当前种群的平均适应度值还没有得到改善,需增加intensity的值,以实现局部寻优操作。
Step 3.2:种群维护机制。该机制也被称为抗病毒操作,在每次病毒复制过程中该机制都会杀死一定数量的病毒。根据公式(4-14),可确定需要淘汰的病毒数量,那些普通病毒(适应度值较差的个体)将被淘汰,直到满足给定的数目要求为止。式中:populationSize表示种群数量大小;strongSize表示强病毒数量大小。
Step 4:停止。如果不能满足停止条件,则增加复制次数并执行以上循环;否则停止循环,并输出最优病毒(最优结果)。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。