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

📄 map.cpp

📁 双蚁群算法实现机器人路径规划
💻 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 + -