蚁群算法调参记录
蟻群算法主要有5個參數
a信息素重要程度,
b啟發式因子重要程度,
c信息素蒸發系數,
ant螞蟻數量,
iter迭代次數
制作了一個50個節點的地圖,用交叉對比的方法尋找最佳參數
首先調b
螞蟻數100,迭代數100.
很明顯b越小距離和平均值越大,標準差也越大,b=14的時候距離的平均值,最小值,和標準差都幾乎是最小的,當b=20的時候距離變大。
這件事的可能原因是b大一些會使城市的權重和sum變的很小Math.pow(1.0/distance[currentCity][i], b),可能會達到2.397101359805423E-30,這樣會使優勢城市權重占比變的非常突出。而如果b很小比如如果b=2,sum可能等于9.226501283762148E-7,這樣會使被選城市的權重占比看起來優勢模糊。
所以b選擇14.
然后調節a
a對效果的影響看起來像是單調的,隨著a的減小平均值,標準差都在減小。當a=0.0001的時候得到的最小值更小些,所以a取0.0001.
然后調節r
螞蟻數100,迭代數100.
?
當r等于0的時候意味著信息素矩陣沒有遺忘,當r=1的時候相當于螞蟻完全是在隨機運動,但是可以看到即便是沒有信息素矩陣的幫助只是靠著城市之間距離的關系得到的值也并不是非常差,71212相比67801相差大概5%。
通過對比可以發現除了r=1完全遺忘,其余的值對結果的影響都不是很明顯。也就是說信息素只要不是全忘了對結果相差不大。
所以r選擇0.5,
然后調節螞蟻數和迭代數
增加螞蟻數和迭代數效果非常明顯,隨著螞蟻數*迭代數的增大,距離平均值和標準差都在減小。耗時也在等比例的增大。
綜合起來
a信息素重要程度,a越小得到的距離越小
b啟發式因子重要程度,有至少一個最優值
c信息素蒸發系數,只要不是1,相差并不是特別大
ant螞蟻數量,數量越多性能越好,越穩定,耗時也越大
iter迭代次數,數量越多性能越好,越穩定,耗時也越大
原始數據地圖
總結
- 上一篇: 权重可以当做概率幅吗?---用神经网络的
- 下一篇: 并行多机调度遗传算法调参记录---变异和