- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模拟退火求解TSP问题实验报告
模拟退火求解TSP问题实验报告
实验要求:
旅行商问题(Travelling Salesman Problem, 简记TSP,亦称货郎担问题):设有n个城市和距离矩阵D=[dij],其中dij表示城市i到城市j的距离,i,j=1,2 … n,则问题是要找出遍访每个城市恰好一次的一条回路并使其路径长度为最短。
实验思路:
1)指标函数:访问所有城市的路径的长度
2)新解的产生: 选择两个城市间的位置交换方式得到一个可能解的邻域,在随机选择一个解
3)新解的接受准则:exp(-(fj-fi)/t)
4)初始温度的确定:产生一组解,使其平均接受概率为0.9
5)内循环次数:n
6)温度的衰减系数:0.95
7)算法的停止准则:温度低于.01获没有新解产生
实验代码:
/*
指标函数:访问所有城市的路径的长度
新解的产生: 选择两个城市间的位置交换方式得到一个可能解的邻域,在随机选择一个解
新解的接受准则:exp(-(fj-fi)/t)
初始温度的确定:产生一组解,使其平均接受概率为.9
内循环次数:n
温度的衰减系数:.95
算法的停止准则:温度低于.01获没有新解产生
*/
#includestdlib.h
#includestdio.h
#includemath.h
#includetime.h
const long MAX=100;
struct
double x,y;
} city[MAX];
//函数:读入数据--返回城市数目
long initial()
{
long i,n;
//读入城市的数目、x坐标、y坐标
scanf(%d,n);
for(i=0;in;i++)
scanf(%lf%lf,city[i].x,city[i].y);
return n;
}
//函数:计算指标函数f(i)的值
double cal_f(long *path,long n)
{
long pre,i;
double len;
len=0.0;
pre=path[0];
for(i=1;in;i++){
len+=sqrt((city[path[i]].x-city[pre].x)*(city[path[i]].x-city[pre].x)
+(city[path[i]].y-city[pre].y)*(city[path[i]].y-city[pre].y));
pre=path[i];
}
len+=sqrt((city[path[0]].x-city[pre].x)*(city[path[0]].x-city[pre].x)
+(city[path[0]].y-city[pre].y)*(city[path[0]].y-city[pre].y));
return len;
}
void generate_path(long *path,long n);
//函数:计算初始温度
double cal_temperature(long num)
{
long j,n;
double t,sum,fi,fj;
long path[MAX];
t=1.0;
n=20*num;
while(1){
sum=0.0;
generate_path(path,num);
fi=cal_f(path,num);
for(j=0;jn;j++){
generate_path(path,num);
fj=cal_f(path,num);
sum+=fi-fj;
fi=fj;
}
if(exp(-(sum/n)/t)=0.9)
break;
t*=1.05;
};
return t;
}
//函数:生成一个序列作为解
void generate_path(long *path,long n)
{
long i,cnt,temp;
long mark[MAX];
for(i=0;in;i++)
mark[i]=0;
cnt=0;
//srand(time(NULL)); //pay attention to随机数的生成??
while(cntn){
temp=rand()%n;
if(mark[temp]==0){
mark[temp]=1;
path[cnt]=temp;
cnt++;
}
}
}
long main()
{
freopen(10.txt,r,stdin);
clock_t start,finish;
struct Neighbour{
long path[MAX];
bool flag;//true--未选择;false--已选择
} ne
您可能关注的文档
最近下载
- 一文就讲透|主流证券公司基金公司等行业职务职级以及专业技术、市场营销、操作技能、管理序列等划分案例.pdf VIP
- 工伤事故证人证言表.xls VIP
- 2.2 社会主义制度在中国的确立 课件(30张PPT).pptx VIP
- 大型火电厂制粉系统模糊控制策略:原理、应用与优化.docx
- 必威体育精装版初中七年级数学运算能力培养策略(课件).pptx VIP
- NB_T 31147-2018 风电场工程风能资源测量与评估技术规范.docx VIP
- 钛材产品手册.pdf VIP
- 地产基金尽职调查报告.doc VIP
- 基金管理公司证券公司尽职调查报告提纲.docx VIP
- 2、深信服aStor-Backup-12xx备份一体机(EasyProtect)用户手册V1.0.pdf VIP
文档评论(0)