📄 map.cpp
字号:
// MAP.cpp: implementation of the MAP class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "MAP.h"
#include "operation.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
MAP::MAP()
{
int i,j;
rho=0.7;// XXX
for(j=0;j<mapH;j++)
for(i=0;i<mapV;i++)
{
point[i][j].PointType=0;
point[i][j].tau=20;
}
}
MAP::~MAP()
{
}
void MAP::addobstacle(unsigned int point)
{
}
unsigned int MAP::PointState(unsigned int p)
{
unsigned int i,j,state;
i=p%mapH;
j=p/mapH;
state=point[j][i].PointType;
return state;
}
void MAP::UpdateMap() //挥发信息素
{
unsigned int i,j;
for(i=0;i<mapV;i++)
for(j=0;j<mapH;j++)
{
point[i][j].tau = point[i][j].tau * rho;
if(point[i][j].tau<20)
point[i][j].tau=20;
}
}
void MAP::UpdateInfo(double info,unsigned int *path)//写入新代信息素
{
unsigned int i,x,y;
//限制只写入可行解的信息素到地图中
for(i=0;i<StepLimit;i++)
{
x=*path%mapH;
y=*path/mapH; //得到坐标点的位置
point[y][x].tau+=info;
if(point[y][x].tau>=200)
point[y][x].tau=200;
path++;
if(*(path-1)==Target)//目标点
break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -