- 6
- 0
- 约1.79万字
- 约 16页
- 2016-09-26 发布于天津
- 举报
2.4并行遗传算法消息传递实现的核心代码
2.4 ?并行遗传算法消息传递实现的核心代码
??? 1)主程序代码
//接收各个从程序的最优个体
for(i=0;islave;i++)
{
MPI_Recv(Rchrom[i],chrom,MPI_UNSIGNED,MPI_ANY_SOURCE,gen,MPI_COMM_WORLD,status);
}
//计算接收各个从程序的最优个体的回路距离
for(i=0;islave;i++)
{
??????? fitness[i]=0.0;
??????? for(int j=0;jchrom-1;j++)
fitness[i]=fitness[i]+distance[Rchrom[i][j]][Rchrom [i][j+1]];
fitness[i]=fitness[i]+distance[Rchrom[i][0]][Rchrom [i][chrom-1]];???????????
}
//找到最优的个体并把它记录到文件里
for(i=0;islave;i++)
{
if(1/fitness[i]min)
{
sign=i; min=1/fitness[i];
}
}
fwrite(gen,sizeof(int),1,out);
for(i=0;ichrom;i++)
fwrite(Rchrom[sign][i],sizeof(unsigned),1,out);
fwrite(fitness[sign],sizeof(double),1,out);
//每九代向从程序发送一个最优个体 if(gen%9==0)
MPI_Bcast(Rchrom[sign],chrom,MPI_ UNSIGNED,0,MPI_COMM_WORLD);
2)从程序代码
//将上一代的最优个体传回主程序
MPI_Send(Rchrom1,chrom,MPI_UNSIGNED,0,gen,MPI_COMM_WORLD);
//每九代接收一个最优个体并将其加入种群中替换掉最差个体
if(gen%9==0)
{
PI_Bcast(Rchrom2,chrom,MPI_UNSIGNED,0,MPI_COMM_WORLD);
Tsp.IndiAlternate(Rchrom2);
}
//进行下一代的计算
Tsp.Aternate();
Tsp.Generation();????
Tsp.Statistics();????????
大家来看看这个遗传算法程序C#include stdio.h#includegraphics.h#include math.h#include graph.c/* 全局变量 */struct individual???????????????????????/* 个体*/{ unsigned *chrom;????????????????????/* 染色体 */ double???fitness;?????????????????? /* 个体适应度*/ double???varible;?????????????????? /* 个体对应的变量值*/?????? int??????xsite;?????????????????????/* 交叉位置 */??? int??????parent[2];?????????????????/* 父个体??*/??? int??????*utility;??????????????????/* 特定数据指针变量 */};struct bestever???????????????????????? /* 最佳个体*/{??? unsigned *chrom;????????????????????/* 最佳个体染色体*/??? double???fitness;?????????????????? /* 最佳个体适应度 */??? double???varible;?????????????????? /* 最佳个体对应的变量值 */??? int??????generation;??????????????? /* 最佳个体生成代 */};struct individual *oldpop;???????????? /* 当前代种群 */struct individual *newpop;???????????? /* 新一代种群 */struct bestever bestfit;???????????????/* 最佳个体 */double sumfitness;?????????????????????/* 种群中个体适应度累计 */double max;???????????????????????
您可能关注的文档
最近下载
- MySQL数据库项目化教程课件 3.项目一-任务3-表的操作与管理.pptx VIP
- 22G101图集常用点解读课件.pptx VIP
- MySQL数据库项目化教程课件 6.项目二-任务3-多表查询.pptx VIP
- 老年肺炎临床诊断与治疗专家共识2025解读.pptx
- 康复医学考试题及答案.doc VIP
- 进阶练03 被动语态(模拟好题100道)(解析版).docx VIP
- MySQL数据库原理与应用项目化教程课件-数据库的创建与管理.pptx VIP
- JCT 60018-2023 现浇混凝土养护技术规范.pdf VIP
- 破界与跃迁:AIGC技术浪潮下体育媒体人才培养的创新路径.pdf VIP
- MySQL数据库项目化教程课件 5.项目二-任务2-单表查询.pptx VIP
原创力文档

文档评论(0)