如何在JavaScript中实现此功能?谢谢。
Ant System(AS)是文献中提出的第一种ACO算法(Dorigo等,1991,Dorigo等,1996)。其主要特征是信息素值由已完成巡视的蚂蚁的所有更新。解决方案组件 c_ {i,j} 是图的边缘, \ tau_ {i,j} 的信息素更新,即与信息素相关联的信息素加入城市 i 和 j 的边缘按以下方式执行:
\tau_{i,j} <- (1-\rho)*\tau_{i,j} + \sum\limits_{k=1}^{m} \Delta\tau_{i,j}^{k}
当蒸发率 rho 在区间(0,1)中时, m 是蚂蚁的数量, \ Delta * \ tau_ {i ,j} ^ {k} 是由 k -th ant放在边缘(i,j)上的信息素数量。如果是蚂蚁在其巡视中使用边缘,放置在该边缘上的信息素数量计算如下,
\Delta\tau_{i,j}^{k} = 1/L_{k}
其中 L_ {k} 是 k-th 蚂蚁的游览长度。如果蚂蚁不使用边缘(i,j),则 \ Delta \ tau_ {i,j} ^ {k} 为零。
我正在努力....
pher[i][j]= pher[i][j] *(1.0-rho) + numAnts*(.......
答案 0 :(得分:0)
所以这是一个总和的例子。但我不了解算法的其余部分。你有任何信息素矩阵吗?
function sumk2m(k0,m,f){
var result = 0;
for(var k = k0; k<m ; k++){
result = result+f(k);
}
return result
}
function isedgeintour(k){
//I don't know what's this!
}
function L(k){
//I don't know what's this either!
}
var deltapher = function (k){
if(isedgeintour(k)){
return 1/L(k);
} else {
return 0;
}
}
pher[i][j]= pher[i][j] *(1.0-rho) + sumk2m(1,numAnts,deltapher)