我正在测试我制作的ACO,我注意到如果我使用相同的图形但是如果我在计算游览距离时使用米而不是厘米,那么我的AC沉积物的信息素量会发生变化。这似乎是错的,但在阅读文献后,我不确定我错过了什么。
例如,这是以米为单位的信息素更新计算:
Tour distance = 5m
extraPheromone = 0.2 = 1 / 5m
然后在CM:
Tour distance = 500cm
extraPheromone = 0.002 = 1 / 500cm
在向上缩放图表时也适用。如果所有距离都加倍,您可以期望ACO执行相同的操作,但是这会改变信息素更新计算并影响在选择游览边缘时使用的游览边缘距离和信息素计数启发式之间的平衡。
关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
信息素水平只是相对度量,用于描述任何单个边缘的优势。在ACO中,游览选择不是启发式的,而是概率。
考虑一下蚂蚁,在任何游览的构建期间,比如S,蚂蚁即将离开节点i。作为下一个节点,蚂蚁将以概率
选择节点j(即,边缘e_ij)p(e_ij|S) = (tau_ij^alpha * nu_ij^beta) /
sum(k in allNotYetVisitedNodes) {
(tau_ik^alpha * nu_ik^beta) }.
当然,这个表达式是无单位的,并且(所有)节点距离的任何缩放都不会影响这些概率。算法的结果在定义节点的图中不需要任何特定长度单位;以米为单位定义的图形将产生以米为单位的最佳游览,并且以任意长度单位le形成的图形将以le:s生成结果。