欢迎来到天天文库
浏览记录
ID:38427732
大小:38.37 KB
页数:29页
时间:2019-06-12
《遗传算法解决TSP问题,C++版(带注释)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//遗传算法解决简单TSP问题,(VC6.0)//一、定义头文件(defines.h)#ifndefDEFINES_H#defineDEFINES_H/////////////////////////////////DEFINES/////////////////////////////////////////窗口定义大小#defineWINDOW_WIDTH500#defineWINDOW_HEIGHT500//城市数量及城市在窗口显示的大小#defineNUM_CITIES20#defineCITY_SIZE5//变异
2、概率,交叉概率及种群数量#defineMUTATION_RATE0.2#defineCROSSOVER_RATE0.75#definePOP_SIZE40//倍数#defineNUM_BEST_TO_ADD2//最小容许误差#defineEPSILON0.000001#endif//二、一些用得到的小函数(utils.h)//utils.h:interfacefortheCutilsclass.//头文件名///////////////////////////////////////////////////////////
3、///////////#ifndefUTILS_H#defineUTILS_H#include#include#include#include#includeusingnamespacestd;//--------定义一些随机函数--------//----定义随机整数,随机[x,y]之间的整数---inlineintRandInt(intx,inty){returnrand()%(y-x+1)+x;}//--------------
4、随机产生0到1之间的小数----------inlinefloatRandFloat(){returnrand()/(RAND_MAX+1.0);}//-----------------随机产生0和1-------------inlineboolRandBool(){if(RandInt(0,1))returntrue;elsereturnfalse;}//-----定义一些方便的小功能包括:整形转字符型,浮点型转字符型---stringitos(intarg);//convertsanfloattoastd::strin
5、gstringftos(floatarg);//限制大小voidClamp(double&arg,doublemin,doublemax);voidClamp(int&arg,intmin,intmax);#endif//三、地图头文件(CmapTSP)#ifndefCMAPTSP_H#defineCMAPTSP_H//如果没有定义那么就定义////////////////////////////////////////////////////类名:CmapTSP.h////描述:封装地图数据、城市坐标以及适应度计算。//
6、///////////////////////////////////////////////#include#include"utils.h"#include"defines.h"usingnamespacestd;constdoublepi=3.1415926535897;//------CoOrd结构体,保存每个城市的坐标--------structCoOrd//没有括号{floatx,y;CoOrd(){}CoOrd(floata,floatb):x(a),y(b){}};//------CmapT
7、SP类,封装地图数据,城市坐标,以及适应度计算----classCmapTSP{private://城市数目intm_NumCities;//地图长度和宽度intm_MapWidth;intm_MapHeight;//可能最好路径doublem_dBestPossibleRoute;//把所有城市组成一个环形voidCreateCitiesCircular();//用勾股定理计算两个城市A和B之间的距离doubleCalculateA_to_B(constCoOrd&city1,constCoOrd&city2);//该函
8、数计算出排列成环形后的最佳路径,答案是显而易见的(环形多边形周长)voidCalculateBestPossibleRoute();public://城市坐标vectorm_vecCityCoOrds;//构造函数,当创建一个实例时,城市坐标即被创建,并计算出可能的最佳路径CmapTSP(
此文档下载收益归作者所有