我正在学习如何将max-min蚂蚁系统添加到我当前的蚂蚁系统中。从我读过的试验信息素初始化tMax,tMax计算,
tMax = 1 / best tour length
但如果它依赖于尚未存在的游览,那么如何将踪迹信息素初始化为tMax呢?
tMin还依赖于tMax,这也使得在没有最佳解决方案的情况下无法进行初始化。
答案 0 :(得分:0)
在MMAS中,所有边缘都初始化为 tauMax ,但tauMax的定义与您上面所说的略有不同:
tauMax <-- 1 / (rho * bestTourSoFarLength),
其中rho是蒸发率(通常设置为0.5),并且对游览长度的关注最好到目前为止(见下文)。每次现有的最佳游览(到目前为止)更新时,在算法执行期间反复更新tauMax。
对于初始化,启发式构建初始可行游览。通常,使用随机起始城市的最近邻居游览。
回想一下,在蚁群优化(ACO)/ MMAS等随机优化方法的背景下,我们通常无法证明算法终止时最佳现有解决方案(巡视)的最优性(我们从实践中知道,但是,ACO / MMAS在一些问题上表现良好,最明显的是旅行商问题(TSP)的变化。因此,在诸如此类的背景下,术语“最佳解决方案”#34;非严格地表示来自不同作者的不同含义; &#34;目前为止最好&#34;,&#34;最好在算法终止&#34;等等,在阅读有关该主题的文献时要注意这一点。
最后,作为一个注释,tauMin取决于 - 正如您已经注意到的那样 - 在tauMax上,但通常在初始化后不会更新。当施加信息素限制时,重要的动态&#34;部分是单调递减的tauMax,而大多数边缘的信息素最终将由于蒸发而落在恒定的tauMin上。 tauMin的合适值由可怕的表达式(基于经验数据)给出
tauMin = tauMax*(1-(0.05)^(1/n))/((n/2-1)*(0.05)^(1/n)).