Javascript 蚂蚁系统(信息素追踪)

Javascript 蚂蚁系统(信息素追踪),javascript,Javascript,如何在JavaScript中实现这一点?多谢各位 蚂蚁系统(AS)是文献中提出的第一个蚁群优化算法(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}^{

如何在JavaScript中实现这一点?多谢各位

蚂蚁系统(AS)是文献中提出的第一个蚁群优化算法(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}
其中L{k}是第k个蚂蚁的旅行长度。如果蚂蚁不使用边(i,j),则\Delta\tau_{i,j}^{k}为零

我在努力


pher[i][j]=pher[i][j]*(1.0-rho)+numAnts*(….
这是一个求和的例子。但我不理解算法的其余部分。例如,你有信息素矩阵吗

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)
函数sumk2m(k0,m,f){
var结果=0;

对于(var k=k0;kLooks像你一样走在正确的道路上。问题是什么?我不知道如何继续它。我不知道如何翻译Sigma徽标,k=1这只是它右侧部分从k=1到k=m的总和。感谢你的回答和对堆栈溢出的贡献,但是请再看看这个问题,因为它似乎偏离了主题根据。回答离题题问题让你看起来可以问这样的问题——事实并非如此。离题问题可能会被关闭,然后被删除,这将使你的贡献无效!该问题不符合可验证的标准,因为没有与之相关的预期行为。除此之外,我认为它符合这是一个常见的算法问题——蚂蚁系统。
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)