## 基于遗传算法的旅行商最短路径规划问题 (GA-based TSP)
### 算法描述
[算法描述](Description.md)
### Install
swig -c++ -python traveller.i
python setup.py install
### Some Test:
> Python Test:
cd test
python test.py
> C++ Test:
gcc -std=c++11 -fPIC -lm -lstdc++ -pthread DPoint.cpp CityMap.cpp test.cpp -o test -g
./test city_num time_out
> Execute
* 设置城市数500,将随机生成 经度~(30.0, 40.0),纬度~(110.0, 130.0)之间的城市
* 城市距离没有使用球面模型计算,而是如下简化的计算方法:
* 南北方向AM = 地球半径 \* 纬度差 \* Math.PI/180.0;
* 东西方向BM = 地球半径 \* 经度差 \* Cos<当地纬度数 \* Math.PI/180.0>
* 距离 = sqrt(AM\*AM + BM\*BM)
* reference: http://tech.meituan.com/lucene-distance.html
* 遗传算法参数:
* 种群数:种群数越大,遗传基因多样性越丰富
* 子女数:每个种群遗传产生下一代的子女数
* 最大转移数:变异时两个基因产生交叉的序列长度,该数值越大,变异性越大
* ***灾变***:灾变初始值,灾变倍增值
* 灾变的概念:这里设定当最优个体在连续多代遗传时都保持不变,就启动灾变倒计时。
当倒计时为0时表示当前种群陷入***局部最优***,将种群基因重置,类似于物种灭绝并产生新物种
* 设置程序运行时间20秒,设置调试模式为true
* Result of Execution:
[work@localhost test]$ python analysis.py
time_out: 2000 , state: 500个城市 第2776代 最优产生于第2763代 分数0.186737 里程34096140.417267 灾变倒计数0788 灾变计数000 群体平均分0.143186 用时2000(ms)
time_out: 4000 , state: 500个城市 第5695代 最优产生于第5682代 分数0.237647 里程26791815.559546 灾变倒计数0788 灾变计数000 群体平均分0.173504 用时4000(ms)
time_out: 6000 , state: 500个城市 第8691代 最优产生于第8618代 分数0.258155 里程24663463.804994 灾变倒计数0728 灾变计数000 群体平均分0.196991 用时6010(ms)
time_out: 8000 , state: 500个城市 第11644代 最优产生于第11640代 分数0.280567 里程22693316.459644 灾变倒计数0797 灾变计数000 群体平均分0.216620 用时8010(ms)
time_out: 10000 , state: 500个城市 第14671代 最优产生于第14565代 分数0.291937 里程21809472.816275 灾变倒计数0695 灾变计数000 群体平均分0.188085 用时10010(ms)
![Result](img/ga.png "ga")
### Q&A:
* ERROR:traveller_wrap.cxx:2843:13: 错误:‘ptrdiff_t’不是一个类型名
virtual ptrdiff_t distance(const SwigPyIterator &/*x*/) const\
* Solution:类型ptrdiff_t在<stddef.h>中定义,在swig生成的traveller_wrap.cxx文件头部添加:#include<stddef.h>
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
【旅行商问题】GA-based-TSP.zip (31个子文件)
【旅行商问题】GA-based-TSP
vs_project
citytraveller.vcxproj.filters 1KB
citytraveller.vcxproj 4KB
citytraveller.sln 872B
citytraveller.vcxproj.user 370B
Description.md 3KB
setup.py 609B
CityMap.cpp 19KB
res
1022.mp3 26KB
1000.mp3 40KB
1010.mp3 48KB
juke_26d2d8cee591a28.mp3 1.25MB
1020.mp3 25KB
juke_f7ca601a23b740b.mp3 1.3MB
juke_e7f819d4137d894.mp3 1.25MB
1011.mp3 47KB
juke_0001.mp3 4.64MB
MainActivity.java 9KB
1021.mp3 24KB
juke_10417dd72401db9.mp3 1.36MB
img
GA-TSP.png 77KB
ga.png 198KB
test.cpp 1KB
DPoint.cpp 1KB
traveller.i 206B
test
analysis.py 2KB
compiler.sh 404B
test.py 910B
traveller.h 1KB
README.md 3KB
DPoint.h 845B
CityMap.h 3KB
共 31 条
- 1
资源评论
想念@思恋
- 粉丝: 3852
- 资源: 516
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功