1. 参数B很敏感,从1-500不等,需要简单调参
B的取值:1、500、250、二分法。
2. 参数zeta的设置
在TSP问题中(最小化):zeta_(r, s)=1/d_(r,s)
在0-1KP问题中(最大化):zeta_i = vi/wi
3. 参数delta_tau的设置
在TSP问题中(最小化):delta_tau(r, s)=1/Lgbest
在0/1-KP问题中(最大化):delta_tau_i=B*(vi/Vgbest) 如果商品i属于gbest
4. 最大化问题和最小化问题的转化
把你的0/1-KP问题转化为最大化问题,再用ACS去解决。
可以对适应度值加负号。
5. 全局最优解vs一次更新的最优解。
标准ACS中,一次更新最优解 等于 全局更新最优解。
6. 信息素全局更新 vs 信息素局部更新
信息素局部更新是对每个蚂蚁的当前路径进行更新,目标为每次迭代的物品清单。
信息素全局更新是对最优蚂蚁的路径进行更新,目标为每次迭代的最优物品清单。
7. 转移规则
蚁群系统的状态转移规则
在蚁群系统一只位于节点r的蚂蚁通过伪随机比例规则,即式(1),选择下一个将要移动到的城市k。
其中,如果 ,则按先验知识选择路径;否则,按式(2)进行概率搜索。
其中, 表示相邻两个城市i、j之间的距离;ηij为能见度因数;
表示在t时刻,处于城市i的蚂蚁k(k=1,2,3,…,m)选择城市j的概率;
表示允许蚂蚁k下一步要选择的城市;
为信息素因数;
常数 为信息启发式因子,反映了蚂蚁在运动过程中所积累的信息素的相对重要性。反映了蚂蚁在运动过程中所积累的信息在蚂蚁运动时所起的作用,其值越大,则该蚂蚁越倾向于选择其他蚂蚁经过的路径,蚂蚁之间协作性越强;
参数 为期望启发式因子,反映了启发信息在路径选择中的相对重要性。即启发信息在蚂蚁选择路径中的受重视程度,其值越大,则该状态转移概率越接近于贪心规则。
这个状态转移规则倾向于选择短的且有着大量信息素的边作为移动方向。当一只蚂蚁将要从城市r移动到城市k时,首先,它要选取一个随机数q(0≤q≤1)。当q≤ ,时,则依据先验知识(根据式子(1))选择最好的边,当q>qo时,按式3概率地选择一条边。其中,K即为根据方程式3给出的概率分布产生出来的随机变量;
q是在[0,1]区间均匀分布的随机变量,参数 (0≤ ≤1),是蚂蚁选择当前最优移动方式的概率。可以通过调整 的值进而改变算法对新路径的探索能力,从而决定算法下一步做法是应该探索新区域,还是在目前最优路径附近。即参数 的大小决定了利用先验知识与探索新路径之间的相对重要性。
8. 其他
蚁群解决问题很方便,但是需要调参。
蚁群系统中,禁忌表tabu,就是PSO中的新pos。