数学建模社区-数学中国

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

作者: 释永思    时间: 2016-5-4 15:13
标题: TSP算法小软件要考虑的问题很多
本帖最后由 释永思 于 2016-5-10 14:12 编辑
  s$ ^3 Z6 \8 e, Y/ T$ F& l' m8 P$ s$ G% k
TSP算法小软件要考虑的问题很多。1 R9 g  M: g6 ]5 I
选择遗传算法,蚁群算法,动态规划算法三种算法,
9 w8 t* \& g' U; y如何让这三种算法有公共的参数,如顶点数,顶点坐标,用户自定义坐标,随机生成坐标。9 j; O5 _4 B5 }5 a- z
又如何三种算法有各自不同的参数,如遗传次数,蚁群蚂蚁数。。。
; h  R# b( a4 ?* _. I8 k显示的顶点与坐标,如果超出屏幕如何滚动,顶点如何标号,如何显示最后路径标号。。。) P3 \) `+ Y& |! Z( e
这三种算法,要如何显示动态求解过程,而不是仅仅显示一个结果。。。
0 V  W7 W0 F/ _3 ?7 _& x最后决定,不作为压力任务,有空时搞下,没空时算了,不理了。。。1 ~1 s+ H1 @6 K) J

: K0 J$ Y# A. e3 }5 x: G, z TSPv20.rar (222.11 KB, 下载次数: 1)
  c4 j; |! I  h) n. F4 b- g- L; ^$ O* s, \( W7 q/ j+ ~' Q
TSP1.png TSP2.png   h! e' ]% I) L2 X
QQ图片20160504163318.jpg   m( h& W1 T! |

! p! R1 V* R! ?$ } QQ图片20160507092801.jpg
+ i2 z0 E' k) F, ~, s& y5 \+ j2 f! ^5 h
QQ图片20160507092811.jpg
& j  W. h, g4 \5 J6 U0 Y QQ图片20160507092817.png 6 G( [+ h( ?  }7 R. ?# {& E
- W; Z4 Z3 _* h

% B% a" z6 T9 T) @" D7 y' O# G9 m4 x9 p; h0 ?; t  y7 N$ k

7 t: Z2 _) V' N5 x6 O5 B! W0 v+ A
& ^; Q+ P. I: R ; l, ~6 K. o8 g3 Y& ]$ T- o2 @: N/ d: t

" k6 ^" y8 N! Z8 s$ ^( M7 z8 v
0 [! y3 L7 l) v9 C
0 f* W. H( V2 A9 G% J) \. @( f8 g9 |3 t( e2 t: h

7 {0 I; Q% h- `. }% [/ A( b1 _" F; f) i4 ?" _( s) Q
& P- n& b, T$ n! G
2 D# S6 M( o7 D/ F. G5 W

9 V4 \. g' l/ E3 @6 ?/ w8 v6 |$ r
作者: 释永思    时间: 2016-5-7 11:31
我开发的TSP算法小软件(未完成),暂时如此,下载网址:http://pan.baidu.com/s/1geZdh2F. d4 \/ U* R$ K# K

作者: 释永思    时间: 2016-5-7 15:09
我开发的TSP算法小软件(未完成),暂时如此,下载网址:& D8 D4 ^4 w) n9 q" F
http://pan.baidu.com/s/1o8y7sbK+ `. ]! T' F6 X0 y& K' o
比刚才的改正了一些BUG。基本上DELPHI的遗传算法与蚁群算法都可行的了。0 H4 z1 C, ]9 y3 d3 n
现在周末放松下先,下周开始专攻DELPHI的TSP的动态规划算法代码了。
; K& I& S* j* `+ o' T" _' _1 M小软件,玩下而已,不必太过认真,兴趣玩下。: n; T( o8 m  J) o# p7 _1 V( [

作者: 释永思    时间: 2016-5-9 15:37
首先解决TSP的DP的数据存储问题,所以称为状态压缩法。也就是用二进制字符串表示子集的方法
& [3 K5 I# _2 c) n# f. ~/ A& x7 s7 v8 s8 ?$ D- X, W
。一个TStringList,一行代表一列,即一行本是这样的:   01011101001,P1,P2,,,Pn,0 m. N2 _; s$ o1 A9 n! U
这样用TStringList来做是可能正确的方法。' G( d9 t0 W$ w  }2 X
由于不可能太大量,所以不用TStringList来做,改用数组来做,这样一样用二进制字串代表表示* M7 ]  f) x9 R* O& N( q' f7 X
" ]% O( t/ |: e# H
子集的方法,就成为方向了。& R6 Z) p" }: w

作者: 释永思    时间: 2016-5-10 10:17
本帖最后由 释永思 于 2016-5-10 16:32 编辑
: v8 J7 K9 F7 \" u1 H0 F' Z8 {: S8 p! T, o8 g. h
经过一段时间的辛苦研究开发,TSP问题算法小软件V1.0终于开发完成了,先发出来让大家使用下
* j- ?9 e& M5 s* b5 n1 e# \5 m先,有什么BUG以后再理了。有遗传算法,蚁群算法,动态规划算法,三种算法同时求解,GUI图
0 _+ n- x. K/ O% i: ^8 I形路径显示,方便大家学习研究。
9 D3 F: m% P4 Z" o/ z7 m0 ?5 |下载网址:http://pan.baidu.com/s/1nveqIV3
( }" e' A: X9 h& n& Z
作者: 释永思    时间: 2016-5-11 14:36
我现在开始学习思考,遗传算法,蚁群算法,动态规划,在求连续函数的极值中的应用。
2 `7 U' s  g% ^# U: I" z% d7 y6 p2 Y在TSP中的应用我已经知了,在连续函数中求极值,又要学习一番了。
7 a" L/ u+ ?2 T, D5 Y( p# x
作者: 释永思    时间: 2016-5-12 10:49
自思自悟:
/ k* s3 h& Q6 I0 k* `. Q- K0 G. r; ]蚁群求极值:( U! _+ |  ?) q: ~. }# E8 n# K  U/ n9 ?
一开始M个蚂蚁,平均取值,得到M个适应值。
" G* m4 F2 N; `8 R$ @) q8 B( k# a由M个适应值,按比例比重调整信息素,
- y- G* S' M' `( m下次产生随机点时,不是平均产生,是按信息素产生,& v& p$ ]& v/ D3 _2 q
就是这么简单。) B9 _2 b& m7 T+ h# p
不理什么路径。蚁群在求函数极值时路径对应什么,实在想不出来。
# O; r* w- y! c  _  w( R( j
+ P9 v$ \6 E# {8 l. E% a遗传算法求极值:
: m$ F* l3 w  b% o7 |2 t) v0 h一开始M个种群,平均取值,得到M个适应值。! d) e: q5 @6 h1 R/ z5 Y" L4 ^
交叉变异,又得N个适应值,排序筛选种群。重复。
3 N/ v) V* u8 E" u3 a如何交叉变异,这是数字游戏。8 Y1 b7 b: q1 ^5 ?3 R9 S
3 e. m4 d7 t, S

作者: 释永思    时间: 2016-5-12 13:37
本帖最后由 释永思 于 2016-5-12 15:34 编辑
8 T9 `6 U  R' f9 G  G) \5 `: E- i% Q# o/ L
关于思考一个数字与一条路径的对应关系,又令我一个午睡没法睡着。+ z5 |( M$ p. Y$ j+ E
我这样想,一个数字,假定是固定的N位数,则每位数是十进制,就是N重循环,每重循环取十个数字。
" c( a. V1 D# t! b这如同一个图,有N个点,每个点十条边,穷举历遍所有路径,就是N位数字的全部数字。这样,就可以和蚁群中的路径对应上了,就可以用蚁群中的节点信息素来运用到函数求极值上来了。这样,不用一个蚁点一个信息素,而是一位数字一个信息素,与TSP路径可以对应上了。为思考此,我又一个午睡没有睡着了。
* c" E; x) S' R; j9 p
7 X$ X/ k, Z+ v# w5 g! B$ M2 f3 Q) g 蚁群算法原理及其应用 2005,462页.png
' H: O% |" g( o* ^
9 M: U3 o* M0 f" f0 f
$ f" ^1 K8 x, e, z8 i! x# z5 q; [& W: c5 _$ ]( D8 `





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