手机版

用js回溯法计算最佳行程代码的一个例子

时间:2021-08-20 来源:互联网 编辑:宝哥软件园 浏览:

追踪

如果有A、B、C、D四个城市,它们之间的距离用G[V][E]表示,这个距离是无限的,说明这两个城市没有连接

现在,从计算来看,从某个城市开始,所有城市都不会出行一次,最短路径会是

g是:(Infinity表示城市不相连)

Var g=[[infinity,3,infinity,8,9],[3,infinity,3,infinity,4,3],[8,10,4,infinity,20],[9,5,3,3,3]如果确定从A城市出发,就要对剩下的城市进行探索,剩下的城市会进一步探索。如果失败,它们将被放弃并返回到以前的状态

var g=[ [Infinity,3,Infinity,8,9],[ 3,Infinity,3,10,5],[Infinity,3,Infinity,4,3],[8,10,4,Infinity,20],[9,5,3,20,Infinity] ] var x=[0,1,2,3,4];//城市序号为var cl=0;//规划过程中记录的距离为var bestl=Infinity//当前最优解var bestx=[0,0,0,0,0];//当前最优解的路径//var t=0;//目前要到达的城市var n=x . length-1;函数行波(t){ if(t ^ n){//搜索到底部,记录if (g [x [n]] [0]无穷大(cl g [x [n]] [0]最佳l)){ for(var j=0;j=n;j){ bestx[j]=x[j];} bestl=cl g[x[n]][0];} } else { for(var j=t;j=n;j){ if(g[x[t-1]][x[j]]Infinity(cl g[x[t-1]][x[j]]bestl)){ swap(x,t,j);//对换仓位,以j点为目前要到达的城市cl=cl g[x[t-1]][x[t]];//添加选定点training(t1);//搜索下一个节点cl=cl-g[x[t-1]][x[t]];//搜索前还原swap(x,t,j);//restore}}}}函数交换(arr,x,y){ var temp=arr[x];arr[x]=arr[y];arr[y]=temp;}旅行(1);console . log(bestx);以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:用js回溯法计算最佳行程代码的一个例子是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。