- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
智能算法实验报告剖析
人工智能实验—智能算法实验一
实验目的:
实验原理:
实验内容:#includeiostream
#includemath.h
#includetime.h
using namespace std;
const int MaxInt=~(unsigned int)0 / 2;
/*double d[5][5]={
{0, 7, 6,10,13},
{7, 0, 7,10,10},
{6, 7, 0,5 ,9 },
{10,10,5,0, 6 },
{13,10,9,6, 0 }
}; //表示路径(i,j)之间的长度
*/
class Ant
{
private:
int AntNum;//蚂蚁个数;
int NodeNum;//节点个数;
int MaxRunNum;//最大运行次数
int RunNum;//运行次数
double **d;//表示路径(i,j)之间的长度
double **n;//边弧(i,j)的能见度(visibility), 或称局部启发因子,一般取1/d 表示路径(i,j)之间的长度;
double **t;//边弧(i,j)的信息素轨迹强度(intensity)
double INITINFO;//初始的信息素值
//double **deltaT;//蚂蚁k 于弧上(i,j)留下的单位长度轨迹信息素数量;
double **P;//蚂蚁k 在结点的转移概率,j 是尚未访问结点;
int **tab;//蚂蚁的禁忌表
double MinSum;//最短路径长度
int *MinRoute;//最优路径
double a;//信息素轨迹的相对重要性
double b;//边弧能见度的相对重要性
double p;//信息素轨迹的持久性(Evaporation)
double Q;//(轨迹数量)
public:
Ant(int Num,double position[][2]):NodeNum(Num)
{
srand(time(NULL));
AntNum=50;
p=0.8;
a=1;//(1~2)
b=2;//(2~5)
P=get2DMemory(P,NodeNum);
t=get2DMemory(t,NodeNum);
n=get2DMemory(n,NodeNum);
d=get2DMemory(d,NodeNum);
tab=get2DMemory(tab,AntNum,NodeNum);
posToDistance(position);
MinSum=MaxInt;
MinRoute=new int[NodeNum];
MaxRunNum=200;
RunNum=0;
INITINFO=200;
Q=2000;
}
void posToDistance(double pos[][2])
{
for(int i=0;iNodeNum;i++)
for(int j=0;jNodeNum;j++)
{
d[i][j]=sqrt((pos[i][0]-pos[j][0])*(pos[i][0]-pos[j][0])+(pos[i][1]-pos[j][1])*(pos[i][1]-pos[j][1]));
}
}
void getMinRoute(int *CurrentRoute)
{
for(int i=0;iNodeNum;i++)
MinRoute[i]=CurrentRoute[i];
}
double getPossiblity(int i,int j,int k,int cNode)
{
if(i==j) return 0;
else {
if(inTab(j,k,cNode)==true)
return 0;
}
return Pow(t[i][j],a)*Pow(n[i][j],b)/sumPossiblity(i,k,cNode);
}
bool inTab(int s,int k,int cNode)
{
for(int m=0;mcNode;m++)
if(s==tab[k][m])
return true;
return false;
}
double sumP
您可能关注的文档
- 儿童肾上腺危象的早期识别与治疗.ppt
- 儿童液体平衡的特点和液体疗法.ppt
- 儿童肺炎管理.ppt
- 儿童胸闷病因解析.ppt
- 儿童预防保健.ppt
- 元宵节活动方案.pptx
- 元明清作品选新大纲期末复习资料.doc
- 儿童气管异物.pptx
- 元江三中八年级语文第二学期期末模拟试卷(一).doc
- 智能电视产业链.ppt
- 急性肾功能衰竭综合征的肾血管介入性诊治4例报告并文献复习.docx
- 基于血流动力学、镇痛效果分析右美托咪定用于老年患者髋部骨折术的效果.docx
- 价格打骨折 小心统筹车险.docx
- 交通伤导致骨盆骨折合并多发损伤患者一体化救治体系的效果研究.docx
- 多层螺旋CT与DR片诊断肋骨骨折的临床分析.docx
- 儿童肱骨髁上骨折后尺神经损伤恢复的预测因素分析.docx
- 康复联合舒适护理在手骨折患者中的应用及对其依从性的影响.docx
- 机器人辅助老年股骨粗隆间骨折内固定术后康复.docx
- 超声辅助定位在老年髋部骨折患者椎管内麻醉中的应用:前瞻性随机对照研究.docx
- 两岸《经济日报》全面合作拉开帷幕.docx
原创力文档


文档评论(0)