- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于MPI的模拟退火算法求解货郎担问题的并行算法算法
PAGE 1
基于MPI的模拟退火算法求解货郎担问题的并行算法
#include mpi.h
#include math.h
#include stdio.h
#include stdlib.h
#include time.h
#define maxn 51
#define maxnp 100
#define maxlp 5000
int myrandom(int m)
{
return abs(((clock()*rand()))%m);
}
float myrandom0_1()
{
return((float)myrandom(32767)/32767.f);
}
float dist(int x1,int y1,int x2,int y2)
{
return sqrt((float)(x1-x2)*(float)(x1-x2)+(float)(y1-y2)*(float)(y1-y2));
}
void init_d(int x[maxn],int y[maxn],float d[maxn][maxn],int path[maxn],int n)
{
int i,j;
for(i=1;i=n;i++)
{
path[i]=i;
for(j=1;j=i;j++)
d[i][j]=dist(x[i],y[i],x[j],y[j]);
}
for(i=1;i=n;i++)
for(j=i;j=n;j++)
d[i][j]=d[j][i];
}
void generate(int n,int *r,int *m,int c[7])
{
int i;
do
{
c[1]=1+myrandom(n);
c[2]=1+myrandom(n-1);
if(c[2]==c[1]) c[2]++;
i=1+(c[1]-c[2]+n-1)%n;
}while(i3);
c[3]=1+(c[1]+n-2)%n;
c[4]=1+c[2]%n;
c[5]=0;
c[6]=0;
*r=2+myrandom(2);
*m=4;
if(*r==3)
{
c[5]=1+(c[2]+myrandom(abs(i-2)))%n;
c[6]=1+c[5]%n;
*m=6;
}
}
float delta_length(int r,int m,int c0[7],int p[maxn],float d[maxn][maxn])
{
float df;
int j,c[7];
for(j=1;j=m;j++)
c[j]=p[c0[j]];
if(r==2)
df=d[c[1]][c[4]]+d[c[2]][c[3]]-d[c[1]][c[3]]-d[c[2]][c[4]];
else
df=d[c[1]][c[5]]+d[c[2]][c[6]]+d[c[3]][c[4]]-d[c[1]][c[3]]-d[c[2]][c[4]]-d[c[5]][c[6]];
return(df);
}
int accept(float t,float df)
{
return (df0.0)||((df/t88.)(exp(-df/t)myrandom0_1()));
}
void twochain(int n,int c[7],int p[maxn])
{
int i,j,u,v,w;
i=(1+(c[2]-c[1]+n)%n)/2;
for(j=1;j=i;j++)
{
u=1+(c[1]+j-2)%n;
v=1+(c[2]-j+n)%n;
w=p[u];
p[u]=p[v];
p[v]=w;
}
}
void threechain(int n,int c[7],int p[maxn])
{
int p0[maxn],i,j,m1,m2,m3,w;
m1=1+(c[2]-c[1]+n)%n;
m2=1+(c[3]-c[6]+n)%n;
m3=1+(c[5]-c[4]+n)%n;
i=1;
for(j=1;j=m1;j++)
{
w=1+(j+c[1]-2)%n;
p0[i]=p[w];
i++;
}
for(j=1;j=m2;j++)
{
w=1+(j+c[6]-2)%n;
p0[i]=p[w];
i++;
}
for(j=1;j=m3;j++)
{
w=1+(j+c[4]-2)%n;
p0[i]=p[w];
i++;
}
for(j=1;j=n;j++)
p[j]=p0[j];
}
float annealing(int n, int lp, int s
您可能关注的文档
- 十大景区导游词 - 泰宁导游网.doc
- 千与千寻的英语简介.ppt
- 华为基本法及读后感.docx
- 华南 普物习题一及答案.doc
- 华南师范大学教育硕士学位论文开题报告思维导图在高一.doc
- 华为视频终端(VP 9035A)操作手册.ppt
- 华为视频终端(VP 9035A)操作手册.ppt.ppt
- 华工紫龙代理协议完整方案.doc
- 华师大版小学信息技术第一册全册教案.doc
- 华彦钧的音乐人生.doc
- 甘肃省白银市会宁县第一中学2025届高三3月份第一次模拟考试化学试卷含解析.doc
- 2025届吉林市第一中学高考考前模拟生物试题含解析.doc
- 四川省三台县芦溪中学2025届高三下第一次测试生物试题含解析.doc
- 2025届江苏省启东市吕四中学高三适应性调研考试历史试题含解析.doc
- 浙江省宁波市十校2025届高三二诊模拟考试历史试卷含解析.doc
- 甘肃省甘南2025届高考生物必刷试卷含解析.doc
- 河北省石家庄市一中、唐山一中等“五个一”名校2025届高考历史四模试卷含解析.doc
- 江西省南昌市进贤一中2025届高考生物考前最后一卷预测卷含解析.doc
- 甘肃省白银市会宁县第四中学2025届高三第二次模拟考试历史试卷含解析.doc
- 宁夏银川市宁夏大学附属中学2025届高考化学押题试卷含解析.doc
文档评论(0)