释永思 发表于 2016-5-4 15:13

TSP算法小软件要考虑的问题很多

本帖最后由 释永思 于 2016-5-10 14:12 编辑

TSP算法小软件要考虑的问题很多。
选择遗传算法,蚁群算法,动态规划算法三种算法,
如何让这三种算法有公共的参数,如顶点数,顶点坐标,用户自定义坐标,随机生成坐标。
又如何三种算法有各自不同的参数,如遗传次数,蚁群蚂蚁数。。。
显示的顶点与坐标,如果超出屏幕如何滚动,顶点如何标号,如何显示最后路径标号。。。
这三种算法,要如何显示动态求解过程,而不是仅仅显示一个结果。。。
最后决定,不作为压力任务,有空时搞下,没空时算了,不理了。。。

























释永思 发表于 2016-5-7 11:31

我开发的TSP算法小软件(未完成),暂时如此,下载网址:http://pan.baidu.com/s/1geZdh2F

释永思 发表于 2016-5-7 15:09

我开发的TSP算法小软件(未完成),暂时如此,下载网址:
http://pan.baidu.com/s/1o8y7sbK
比刚才的改正了一些BUG。基本上DELPHI的遗传算法与蚁群算法都可行的了。
现在周末放松下先,下周开始专攻DELPHI的TSP的动态规划算法代码了。
小软件,玩下而已,不必太过认真,兴趣玩下。

释永思 发表于 2016-5-9 15:37

首先解决TSP的DP的数据存储问题,所以称为状态压缩法。也就是用二进制字符串表示子集的方法

。一个TStringList,一行代表一列,即一行本是这样的:   01011101001,P1,P2,,,Pn,
这样用TStringList来做是可能正确的方法。
由于不可能太大量,所以不用TStringList来做,改用数组来做,这样一样用二进制字串代表表示

子集的方法,就成为方向了。

释永思 发表于 2016-5-10 10:17

本帖最后由 释永思 于 2016-5-10 16:32 编辑

经过一段时间的辛苦研究开发,TSP问题算法小软件V1.0终于开发完成了,先发出来让大家使用下
先,有什么BUG以后再理了。有遗传算法,蚁群算法,动态规划算法,三种算法同时求解,GUI图
形路径显示,方便大家学习研究。
下载网址:http://pan.baidu.com/s/1nveqIV3

释永思 发表于 2016-5-11 14:36

我现在开始学习思考,遗传算法,蚁群算法,动态规划,在求连续函数的极值中的应用。
在TSP中的应用我已经知了,在连续函数中求极值,又要学习一番了。

释永思 发表于 2016-5-12 10:49

自思自悟:
蚁群求极值:
一开始M个蚂蚁,平均取值,得到M个适应值。
由M个适应值,按比例比重调整信息素,
下次产生随机点时,不是平均产生,是按信息素产生,
就是这么简单。
不理什么路径。蚁群在求函数极值时路径对应什么,实在想不出来。

遗传算法求极值:
一开始M个种群,平均取值,得到M个适应值。
交叉变异,又得N个适应值,排序筛选种群。重复。
如何交叉变异,这是数字游戏。

释永思 发表于 2016-5-12 13:37

本帖最后由 释永思 于 2016-5-12 15:34 编辑

关于思考一个数字与一条路径的对应关系,又令我一个午睡没法睡着。
我这样想,一个数字,假定是固定的N位数,则每位数是十进制,就是N重循环,每重循环取十个数字。
这如同一个图,有N个点,每个点十条边,穷举历遍所有路径,就是N位数字的全部数字。这样,就可以和蚁群中的路径对应上了,就可以用蚁群中的节点信息素来运用到函数求极值上来了。这样,不用一个蚁点一个信息素,而是一位数字一个信息素,与TSP路径可以对应上了。为思考此,我又一个午睡没有睡着了。





页: [1]
查看完整版本: TSP算法小软件要考虑的问题很多