⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getcitymartix.htm

📁 遗传算法解决TSP问题C++源码
💻 HTM
字号:
<html>
<head>
<title>TSP问题城市间距离矩阵生成--章舜仲:zszws@jlonline.com</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body style="font-size:14px;">

<script language="JavaScript">
//**********城市对象*********************//
function City(CityNo){
  this.x=Math.ceil(Math.random()*300);//x坐标
  this.y=Math.ceil(Math.random()*150);//y坐标
  this.num=CityNo;
  this.to
  this.toString=function(){
    return(CityNo+"("+this.x+","+this.y+")");
  }
  this.display=function(){
    s="<div style='position:absolute;left:"+3*this.x+";top:"+3*this.y+";";
    s=s+"height:10;font-size:10px;width:10;background:red;color:blue;z-index:10;'>"+CityNo+"</div>"
    document.write(s);
  }
  this.setPosition=function(){
    this.x=Math.ceil(Math.random()*300);//x坐标
    this.y=Math.ceil(Math.random()*200);//y坐标
  }
}
function sameCity(City1,City2){
  if((City1.x==City2.x)&&(City1.y==City2.y)){
    return(true);
  }else{
    return false;
  }
}
//**********************************************//


var CityCount=30;//城市个数
var Cities=new Array(CityCount);
var i,j,distance;
//定义二维数组,距离矩阵
var Martix=new Array(CityCount);
for(i=0;i<CityCount;i++){
  Martix[i]=new Array(CityCount);
}
//创建城市对象
document.write("红色方块为城市位置的示范:"+CityCount+"个城市坐标(改变城市个数请修改CityCount变量):<br>");
for(i=0;i<CityCount;i++){
  Cities[i]=new City(i);
  for(j=0;j<i;j++){
    while(sameCity(Cities[i],Cities[j])){
      Cities[i].setPosition();
    }
  }
  document.write(Cities[i].toString()+";");
  Cities[i].display();
}


//计算城市间距离,填入距离矩阵
for(i=0;i<CityCount;i++){
  Martix[i][i]=0;
}
for(i=0;i<CityCount;i++){
  for(j=i+1;j<CityCount;j++){
    distance=Math.sqrt((Cities[i].x-Cities[j].x)*(Cities[i].x-Cities[j].x)+
             (Cities[i].y-Cities[j].y)*(Cities[i].y-Cities[j].y));
    distance=Math.round(distance);
    Martix[i][j]=distance;
    Martix[j][i]=distance;
  }
}

document.write("<br><br>距离矩阵(以下粘贴到遗传算法源程序中即可):<br>");
//输出距离矩阵
for(i=0;i<CityCount;i++){
  document.write("{"+Martix[i]+"},<br>");
}



</script>

<script>
//setTimeout("alert(document.body.innerHTML);",1000);
</script>



</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -