数学建模社区-数学中国

标题: TSP算法小软件要考虑的问题很多 [打印本页]

作者: 释永思    时间: 2016-5-4 15:13
标题: TSP算法小软件要考虑的问题很多
本帖最后由 释永思 于 2016-5-10 14:12 编辑
2 D& T* n( S8 _7 X
. J3 W/ H& L% z4 ^. ^TSP算法小软件要考虑的问题很多。
; ]# M; |6 N8 y  c/ D8 u0 a选择遗传算法,蚁群算法,动态规划算法三种算法,
6 D! h: G' M! V如何让这三种算法有公共的参数,如顶点数,顶点坐标,用户自定义坐标,随机生成坐标。
, @6 ?- W7 t5 ?, ~) Y8 b! M又如何三种算法有各自不同的参数,如遗传次数,蚁群蚂蚁数。。。% ^+ S* o  L" l5 y) K! s  d
显示的顶点与坐标,如果超出屏幕如何滚动,顶点如何标号,如何显示最后路径标号。。。
; u( `- }* m: ]! D这三种算法,要如何显示动态求解过程,而不是仅仅显示一个结果。。。
7 f* W1 R* P$ Y3 z- ]最后决定,不作为压力任务,有空时搞下,没空时算了,不理了。。。) s* M; B" K+ t+ O

# u* T2 {4 L" ^3 t0 }0 Y TSPv20.rar (222.11 KB, 下载次数: 1)
  {9 E& i' g6 `# h- w% X
  O6 S! s' C  u9 q* Z& o& I TSP1.png TSP2.png   P. j+ Y3 ]. y; D
QQ图片20160504163318.jpg ! S( [, f8 T- Y- e9 P) I

* D  n, H/ ]+ z" g) Y QQ图片20160507092801.jpg / A' a8 q# M0 H8 k0 N

8 \8 E0 Q  N. E6 X QQ图片20160507092811.jpg
  x) A! g$ m$ o8 N QQ图片20160507092817.png
/ X4 J% w5 c$ k2 a$ h' a) c% o: q5 k- j  H3 K- X/ x7 q
8 Z- J1 f8 X$ x7 a/ f0 E; v

3 F# H+ [9 U5 g& U" `9 N1 d, Y
  i1 Y& H! x# A- [( x) A0 C * r$ u! K. _. V6 `0 G( F- p

5 j  C: H+ d; g# |7 q - {/ J  v; `1 {4 J3 x

% D2 G# _; z6 @5 t) y1 m
( U, h/ O9 ~+ P* _
8 C$ r4 t3 ^( r) C0 I7 X& M9 a
& @) @( J  p7 U* K$ c
8 F0 |; q2 v; V! f7 c5 g: t$ n* Z  {) Z  K, G1 i
% W9 H' A  h5 ^1 o
% o% F1 x4 b% W1 c$ [; H

作者: 释永思    时间: 2016-5-7 11:31
我开发的TSP算法小软件(未完成),暂时如此,下载网址:http://pan.baidu.com/s/1geZdh2F
4 D2 _" b9 D! k( P
作者: 释永思    时间: 2016-5-7 15:09
我开发的TSP算法小软件(未完成),暂时如此,下载网址:0 j9 X) I2 Y0 u- Y
http://pan.baidu.com/s/1o8y7sbK
  d6 h4 i1 h8 _+ {/ L' N比刚才的改正了一些BUG。基本上DELPHI的遗传算法与蚁群算法都可行的了。$ {) C+ A- w" t/ t& X5 G6 o; J
现在周末放松下先,下周开始专攻DELPHI的TSP的动态规划算法代码了。
% |' k0 {6 n4 x小软件,玩下而已,不必太过认真,兴趣玩下。
7 r3 H2 `& S8 f
作者: 释永思    时间: 2016-5-9 15:37
首先解决TSP的DP的数据存储问题,所以称为状态压缩法。也就是用二进制字符串表示子集的方法
% W9 ~, o' K6 p& L# C1 B5 B
- g6 _9 w: q9 w) K: ]。一个TStringList,一行代表一列,即一行本是这样的:   01011101001,P1,P2,,,Pn,1 R( b# ]6 E4 X: u$ i$ p( `
这样用TStringList来做是可能正确的方法。
; x* [4 U- w2 c7 a) O4 c; E4 m由于不可能太大量,所以不用TStringList来做,改用数组来做,这样一样用二进制字串代表表示
. D. k$ K8 m% W( X
% l( K; H; w$ C& F6 p; o子集的方法,就成为方向了。6 p& r1 Z' L3 u& s8 v

作者: 释永思    时间: 2016-5-10 10:17
本帖最后由 释永思 于 2016-5-10 16:32 编辑
* `2 m, L/ H9 v( [/ ]1 B3 A4 c2 ~; e: K; l0 T
经过一段时间的辛苦研究开发,TSP问题算法小软件V1.0终于开发完成了,先发出来让大家使用下: J% Z" G, N6 M3 T( k
先,有什么BUG以后再理了。有遗传算法,蚁群算法,动态规划算法,三种算法同时求解,GUI图
% O; t7 u* ]4 W形路径显示,方便大家学习研究。, s# g& N- o- ?! J/ ]: ]) c
下载网址:http://pan.baidu.com/s/1nveqIV3
1 D0 \, s+ q$ d% A" c" d  K/ D, K: F5 w
作者: 释永思    时间: 2016-5-11 14:36
我现在开始学习思考,遗传算法,蚁群算法,动态规划,在求连续函数的极值中的应用。
/ L5 s9 V1 `7 z2 @7 `) S' u' u在TSP中的应用我已经知了,在连续函数中求极值,又要学习一番了。, j& b$ w# Q9 U) k

作者: 释永思    时间: 2016-5-12 10:49
自思自悟:
! H/ ~* p+ z- }8 Y8 u蚁群求极值:
; ^8 M; R9 Y# h6 d" _一开始M个蚂蚁,平均取值,得到M个适应值。
2 L( P( r: p( }+ t* c由M个适应值,按比例比重调整信息素,
* e$ {4 }8 Z) z, |2 }/ f4 g下次产生随机点时,不是平均产生,是按信息素产生,% o6 C' G/ ]9 p0 _. `! _( p
就是这么简单。
5 u# w# I8 b  U1 t) Q  _不理什么路径。蚁群在求函数极值时路径对应什么,实在想不出来。0 x! K  e3 `8 Y9 c/ v# ~0 D

. N( B7 a! e1 V6 V4 S遗传算法求极值:
/ D0 Z  `8 s3 c5 o9 N一开始M个种群,平均取值,得到M个适应值。- a; }9 K* X- i2 R
交叉变异,又得N个适应值,排序筛选种群。重复。
  f& T0 e% l! |如何交叉变异,这是数字游戏。$ ~1 G, d5 c% W5 T
+ H$ U* G9 U9 q

作者: 释永思    时间: 2016-5-12 13:37
本帖最后由 释永思 于 2016-5-12 15:34 编辑 ' N& ^  D# v( D3 r9 X  Y

2 Q) [- T; @3 C# u# L6 p4 b5 h8 M关于思考一个数字与一条路径的对应关系,又令我一个午睡没法睡着。
* p8 v5 c# f6 L8 p1 Q( I9 u$ ?我这样想,一个数字,假定是固定的N位数,则每位数是十进制,就是N重循环,每重循环取十个数字。& t3 ]  M! f+ A; A- S  _; Y2 G. w
这如同一个图,有N个点,每个点十条边,穷举历遍所有路径,就是N位数字的全部数字。这样,就可以和蚁群中的路径对应上了,就可以用蚁群中的节点信息素来运用到函数求极值上来了。这样,不用一个蚁点一个信息素,而是一位数字一个信息素,与TSP路径可以对应上了。为思考此,我又一个午睡没有睡着了。
5 T9 d& Y1 k; g
1 @% |% X) ?& T, r% [ 蚁群算法原理及其应用 2005,462页.png
7 _4 ^- ^& L# I  `3 |; s
. W  q: s" P- C1 U2 H
1 }8 X; ?1 U9 S8 I  z1 L. a( q
2 T1 s' s, g0 ]4 B& r




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5