可执行文件下载:
/Files/gpcuster/TSPGA.rar
修正显示的版本下载:
/Files/gpcuster/TSPGA2.rar
简介

首先,咱们可以看看用遗传算法求解的旅行商问题的效果图:


您可以在黑色背景的区域内看到问题的求解结果,下面对该程序的使用做一些说明:

  1. 黑色区域的绿色空心点是需要访问的点。
  2. 黑色区域的红色空心点是开始访问的起点。(有且只有一个)
  3. 白色的连线代表从起点(红色空心点)开始,分别经过需要访问的点(绿色空心点)的行走路线。(注意:这里定义的旅行商问题和传统的定义有一点不同。这里的定义不需要从终点再回来起点。)

程序使用说明

启动程序,您将看到如下界面:

下面,我对程序的界面做一些说明:

  1. Population Size:这个参数代表种群的个体数量。
  2. Generations:这个参数代表种群的繁殖代数。
  3. CorssOverRate:这个参数代表种群的个体之间发生交配的概率。
  4. MutationRate:这个参数代表种群个体发生变异的概率。
  5. CitiesNum:这个参数代表需要访问的城市的数量(体现为黑色区域中绿色空心点的个数)。
  6. Random:点击这个按钮,将随机参数起始点(红色空心点)和需要访问的城市(绿色空心点)。
  7. Reset:点击这个按钮,将清除所有在黑色区域的点。
  8. Start:点击这个按钮,将根据黑色区域的数据开始计算旅行商问题,并显示最后计算的结果。

更加您的需要,可以不用点击Random按钮随机产生问题的描述。您可以自己手动地在黑色区域设置起点和需要访问的点。设置方法如下:

将鼠标移到到黑色区域,点击鼠标的右键将在黑色区域设置一个需要访问的点,点击鼠标的左键将在黑色区域设置访问的起点(有且仅有一个)

当您完成黑色区域的设置以后,在点击Start就可以运行程序,并观看到最后的计算结果了。

程序的组织结构

整个程序分为2个部分:

  1. 表现层:Form1.cs
  2. 逻辑层:World.cs

您在使用的时候不需要考虑表现层中的内容。(如果您想对程序的界面做修改那就是另外一回事了J)

您关注的重点应该在逻辑层当中。里面描述了整个程序的计算过程。

程序的计算原理

整个程序的计算流程相对简单,根据初中做学的达尔文关于《物种起源》的思想。描述如下:

Start

配置种群的相关参数

_world.Population = Int32.Parse(population.Text);

_world.Generation = Int32.Parse(generation.Text);

_world.CrossOverRate = Double.Parse(crossOverRate.Text);

_world.MutationRate = Double.Parse(mutationRate.Text);

初始化种群的第一代

generateFirstGeneration();

进化到下一代

generateNextGeneration()

返回最优的个体

End

具体的实现原理和方法,可以参考这篇论文
/Files/gpcuster/AFastTSPSolverUsingGAOnJAVA.rar

最后,程序的源代码下载:
/Files/gpcuster/TSPGACode1.rar

利用遗传算法求解旅行商问题相关推荐

  1. 【GA TSP】基于matlab遗传算法求解旅行商问题【含Matlab源码 1909期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[GA TSP]基于matlab遗传算法求解旅行商问题[含Matlab源码 1909期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方 ...

  2. 【GA TSP】基于matlab遗传算法求解旅行商问题【含Matlab源码 1337期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab遗传算法求解旅行商问题[含Matlab源码 1337期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  3. 利用遗传算法求解函数极值

    1.利用遗传算法求解函数极值 例1 利用遗传算法求函数 f(x) = 11sin(6x) + 7cos(5x),x∈[- π,π]的最大值点. 解:在MATLAB中编制绘制函数曲线的代码,运行得到题中 ...

  4. 用遗传算法求解旅行商问题

    以下是用遗传算法解决旅行商问题的实验报告 1.问题描述 旅行商问题(Travelling Salesman Problem, 简记TSP,亦称货郎担问题):设有n个城市和距离矩阵D=[dij],其中d ...

  5. 遗传算法求解旅行商问题

    问题描述 旅行商问题即TSP(traveling salesman problem),也就是求解最短汉密尔顿回路问题. 给定一个图G,要求找一条回路,使得该回路过每个顶点一次且仅一次,并且要让这条路最 ...

  6. 基于Matlab的协同进化遗传算法求解旅行商问题

    旅行商问题(Traveling Salesman Problem,简称TSP问题),即为求解最优化的城市线路组合,要求每个城市都要走且只走一遍,终点城市同出发城市为同一个,最终所走路程需最短.本文在传 ...

  7. c语言旅行规划问题,利用动态规划法求解旅行商问题(TSP)的C语言实现(一)...

    算法改进:通过改进集合操作降低比较次数,利用二进制表示集合.确定元素k是否在集合S中的比较次数为1,从而降低了时间复杂度到O(n2^n) #include #include #include #inc ...

  8. 【TSP问题】基于改进遗传算法求解旅行商问题matlab源码

    1 算法介绍 模型介绍见这里. 2 部分代码 nn=40; % number of cities asz=10; % area size asx x asz ​ ​ ps=3000; % popula ...

  9. 遗传算法顺序交叉java,求解旅行商问题的顺序交叉多子代遗传算法

    求解旅行商问题的顺序交叉多子代遗传算法 [专利摘要]本发明公开了一种求解旅行商问题的顺序交叉多子代遗传算法.首先依据生物进化理论和数学生态学理论,提出了一种求解旅行商问题的顺序交叉多子代遗传算法,并给 ...

  10. 人工智能导论——遗传算法求解TSP问题实验

    一.实验目的: 熟悉和掌握遗传算法的原理.流程和编码策略,并利用遗传算法求解组合优化问题,理解求解TSP问题的流程并测试主要参数对结果的影响. 二.实验原理: 旅行商问题,即TSP问题(Traveli ...

最新文章

  1. 授以渔 - Autodesk Forge 学习简谈 - 引言
  2. SD-WAN能带来什么好处?
  3. 洛谷P2680:运输计划(倍增、二分、树上差分)
  4. Day5 - 前端高频面试题之计算机网络相关
  5. Python+django网页设计入门(15):公用模板设计与使用
  6. c语言学生综合测评系统_综合测评线上系统帮助文档
  7. 【每日算法Day 67】经典面试题:手动开根号,你知道几种方法?
  8. mysql一主多从同步配置
  9. afx_msg void OnHScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar )的参数和作用分析
  10. 单片机步进电机正反转C语言程序,单片机控制步进电机正反转
  11. 多元相关分析与回归分析(转)
  12. MySQL数据库—SQL汇总
  13. Python excel数据处理之公式---openpyxl
  14. 《想做视频号必须要懂的知识——音质篇》
  15. ENVI中的3种图像分类方法
  16. 手机收到回复TD退订的短信,需要回复吗?今天算是搞明白了
  17. pip install了之后还是显示no module named xxx的解决办法
  18. 网络安全专业的就业方向有哪些?
  19. 艾永亮:耐克阿迪都慌了,成功逆袭的李宁,产品创新战略是什么
  20. Scrapy爬取知乎Python专题精华,连答主头像都给爬下来,不放过一切

热门文章

  1. Android 四大组件学习之Service三
  2. 车牌识别 php,eoLinker-API_Shop_OCR-车牌识别_API接口_PHP调用示例代码
  3. mysql怎么判断多行数据日期是否连续_MySQL学习笔记(一)
  4. VPP 20.09版本正式发布
  5. netlink 011 -- generic netlink 编程入门
  6. linux文件界面画面,Linux对比文件,很好用的图形界面
  7. 题目241-字母统计
  8. C#网络编程----(二)启动、停止和观察进程
  9. vue检测是不是360浏览器兼容模式_Vue项目兼容IE11
  10. linux最小化连接开放wifi,CentOS最小化安装后启用无线连接网络