遗传算法的一个例子(CC++).doc

遗传算法的一个例子(CC++).doc

遗传算法的一个例子(C/C++) 作者:newsuppy 摘要: m个工件分配给m架机床的效益最优化问题,使用一种遗传算法解决。 一,E eij M1 M2 M3 M4 M5 J1 5 6 4 8 3 J2 6 4 9 8 5 J3 4 3 2 5 4 J4 7 2 4 5 3 J5 3 6 4 5 5 Jn为工件,Mn为机床,矩阵对应的一格即为,某工件分配给某机床的效益。效益指花费的时间,金钱等,数值越大越差。产生一个分配序列C=(5,2,3,4,1)指将5号工件分配给1号机床,2号工件分配给2号机床,以此类推求得当前分配对应的效益为3+4+2+5+3=17。最佳化问题就是要求该效益值最小时对应的分配序列。下面采用一种遗传算法,具体算法这里不再复述,可以参考[1]或其他相关书籍。要注意由于工件与机床是一一对应的,算法与一些常见的遗传算法在某些细节上有所不同,如染色体编码,到位,变异。 下面是算法实现,由于某些原因,不得不采用C/C++混合编码,C++代码主要在文件输入输出部分。另外要让程序正常运行需要包括几个支持文件(与程序在同一路径): benefit.txt输入效益矩阵 num_of_gen.txt最后产生的代序 numofcolony.txt为群体中个体总数 numoftm.txt为工件数与机床数 内容可以如下: benefit.txt 5 6 4 8 3

文档评论(0)

1亿VIP精品文档

相关文档