遗传算法解决TSP问题,C++版(带注释)

遗传算法解决TSP问题,C++版(带注释)

ID:38427732

大小:38.37 KB

页数:29页

时间:2019-06-12

遗传算法解决TSP问题,C++版(带注释)_第1页
遗传算法解决TSP问题,C++版(带注释)_第2页
遗传算法解决TSP问题,C++版(带注释)_第3页
遗传算法解决TSP问题,C++版(带注释)_第4页
遗传算法解决TSP问题,C++版(带注释)_第5页
资源描述:

《遗传算法解决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(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。