数学建模社区-数学中国

标题: 最短路径算法小软件V5.0 [打印本页]

作者: 释永思    时间: 2018-6-28 12:39
标题: 最短路径算法小软件V5.0

% c' L8 E! W# Y) z+ Q百度百科:最短路径
6 y9 C% u0 ^& `* t! c6 X$ ^6 q* J$ V8 B6 u: L9 I3 ], g! w
用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。6 I2 y3 j0 j% U  z$ p4 H
中文名 最短路径7 T# T: F' i* D8 l% O$ Y0 X# B4 _
特点 以起始点为中心向外层层扩展4 ~, [3 j6 i0 I
性质 一个经典算法问题
  W5 \1 t5 ^6 a: y8 m3 q  I! n解决方法 Dijkstra算法A*算法
1 _8 H# |7 M$ S/ g$ \0 U
3 A( h5 ?& M3 ]概述
/ e" F0 i9 a& q
7 Y' S( ]3 X* z最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括:
  I) x7 B$ L' n- y! w( \' |* i% o确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题。
/ |0 P: ~$ @! B* U确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。
- \- l$ z. s0 x8 V确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径。5 I3 @, R0 L# ^  l& _3 `
全局最短路径问题 - 求图中所有的最短路径。
) E6 _$ f0 k: V
8 V: A3 Y. H) Y% ?////////////////////////////////////////////////////////////* F. v& N. s2 u& K
  {3 k- d8 g1 F' E* }: E* `
最短路径算法小软件V5.0( }( J( u6 U' E) {* g5 f- _4 q9 [
2018年6月
! R2 Y7 t# d+ i7 b$ g" A0 w( x作者:李庚子李丙寅(李均宇)
5 R4 w* e/ R+ `4 r8 }8 oQQ:165442523 & Q. K! K$ r0 X) C3 _
EMail:165442523@qq.com  . s9 _- k, S1 {# K; {7 z3 Z
http://www.okmyok.com/lisoft.htm
/ p4 n+ w3 `* ?; n& c7 h
) ]# u  o5 V  Q  T3 p( T下载地址:. M/ c' t; M; B: }. [% k
https://pan.baidu.com/s/1dY_9GQC3G435d2nke2WoQg# v7 \& {2 i- E: e
最短路算法小软件3.jpg - I% D9 ?% x  B& q

& e2 D, ]: o. u+ L* m( b( |  i( D! b: f1 `& s
最短路算法小软件2.jpg
7 {+ M6 {7 H: I* h: y
9 P4 O$ R+ S$ t/ {$ a) e$ c. `' H0 R& K; R
最短路径算法小软件5.0EXE.zip (3.38 MB, 下载次数: 1) * ^- g1 z8 v6 [( ^" C5 w0 {% Q2 E

; a4 Y/ u( @( ~% i7 e7 [7 h
5 I. u8 {7 d2 s0 Q& `: {, D# d 最短路算法小软件1.jpg 0 g& C2 t$ b- n; |; \4 J; W# M% Y

& L! H. P6 q! R4 w! ?8 P( S+ B0 V4 ^  P! n" _, d2 U

4 g# w! Y+ l" t- P' O# h0 d0 `
2 g( x4 Y  O; a& a: E1 V  c/ e6 g0 Q  E% ^- J5 _  K

4 S6 o- T  `: ^" n: }+ h2 ?+ I3 i

! r$ v7 p% b1 o
! {! B7 M  B5 U3 m
1 Q+ P. i/ X' S! t5 t% @! v0 X7 H; }3 U3 d! w' F6 G4 J+ Q+ h2 I/ L6 U; n+ c

: T# h# }/ q2 X
, I1 Q7 t' m8 m2 N5 I2 R/ L/ O1 o  Q( `0 `; T
1.本软件为小软件,不想为项目管理花过多时间,例如要新增一个项目,又删除或修改一个项目等。4 r" ?: Q4 I6 T7 N0 W& |
为此,本小软件只有两个默认的项目,一个为演示项目,一个用户当前正在使用的项目,不能增也不能减。
# z, t: K! H+ g& |$ t2 l6 e! M  H. `用户可以清空当前的用户项目,从而使用自已自定义的项目。先输入质点数等等。: w8 p6 x7 {/ \0 r, X$ S2 ?( P
如果你要多个项目,可以COPY多个本软件所在文件夹使用。1 c/ Z5 n) }* S7 A0 }
2.初始化粗略质点坐标时,边长不作校验,例如,三角形两边长之和本应大于第三边,但是输入时三角形两边长之和小于第三边,将不作检验,所以请手工确保原始数据的正确性。
' A/ C( P6 v. C5 o3.质点坐标是屏幕像素坐标,left,top,纵坐标向下不是向上,与数学上的纵坐标方向相反。- o# A; F9 R' {# k- @& k% X
4.坐标为屏幕像素坐标,所以只能整数,边长为两位小数,如果四舍五入导致的出错不作处理。$ f! @. }( o* o9 b" P0 H7 l  ^
5.注意,用户要先点击“注意:先清空用户项目!!!”才可以自定义自已要用到的顶点数的改变。
1 B5 L  N+ x# Z) @: b0 K5 [/ e5 F1 p9 \' T9 {3 Z
- i; @# t- b+ a
本次升级到5.0主要修改如下:
+ O) g4 @# R/ {6 Y1。边线条改成灰色,当鼠标移到边线条时,高亮显示边与边长数字,这对于边长数字重叠时有用。
' v6 R  k# n& _1 `2 I3 t9 C0 ^2。点坐标可以超出屏幕范围自动产生滚动行,但点坐标不可以为负数。
6 x  l5 e  K- M! s0 d/ E8 t3。增加了SPFA算法,来处理边长为 0 或者负数的情况,但SPFA当有负环时无解。
4 ]6 |  a. o& L; A' r4。增加了处理负环的两个新算法,这两个算法皆为作者自创的新算法,一个点与边都不可以重复,另一个点可以重复,边不可以重复。; [5 [$ R* x6 W0 }) b
5。边长为负数时最好有方向单向,一般不允许双向或无向。或者每条双向无向的负数边,可以每次取单向,如此组合出所有情况,来求最短路径,再在所有最短路径中再取其最小值。这个组合的算法暂不处理,由用户手工处理。
: W& ]: r9 C/ Y, Y2 Z& O6 K4 q& T# W
/ k3 c# a4 }- a升级到4.0时主要修改如下:
. |3 u, K5 U" z8 J6 Q" V1。更正了算法上的一个BUG。
# s) O4 i, {$ c  d" r2。边长由只可以为整数升级为可以为两位小数。
7 R! Q% n8 F" g8 ~6 ]3。增加了可以保存运算结果,下次不用再运算的功能。
* R# a9 E* s4 \  X2 V7 H6 b: M- F4。增加了可以列举所有最短路径的功能,不止一条最短路径时有用。* W5 {. a* I% X5 F& f# @% m! a
5。增加了边向量功能,边向量方向可以双向或无向,或序号从小指向大,或序号从大指向小,三种选择。  t  y8 w1 C2 ~, s
6。改正了设置起点和终点的小BUG,增加了进度条显示。; A# Z+ d8 E4 S1 ~! H3 p4 j- }2 i- l
7。增加了可以鼠标拖动质点,所相关联的边相应变动的功能。
6 H& a- s: J& b1 R' t- u( L+ {5 n& ^0 R8 z6 F" N. V0 e, T
作者的个人网站:http://www.okmyok.com/lisoft.htm
0 Z" s! W1 p0 Q, f6 Z& g  x  j( L% ]上面有作者个人开发的所有软件,全免费下载。免费但不开源,源代码要收费。* V9 n; W2 P4 E4 w" A5 I
上面有作者个人开发的中医五运六气和子午流注软件,有PC电脑版,安卓版,ASP网页版等。
6 m/ u: W5 H2 w$ A; }* O还有作者开发的“行星财务”安卓软件,是一款在安卓设备上运行的真正意义上的财务软件,不是记录个人收支的个人记账,在安卓手机上可以运行,掌上财务软件。
8 h3 g* y& b6 v还有作者开发的TSP算法小软件,或叫旅行商问题,不了解者可以百度。( F* Z8 U% }+ k
还有作者开发的表达式求值的计算器,可以层层括号等等。。。+ a2 L; I6 J8 y3 u( I: T' J
. p+ b! L  |5 d% Q8 m
我的软件全免费,无广告,无须权限,无须上网,无时间和任何功能限制,纯绿色不污染系统,不体积庞大。。。
; o, J) P; G; I
  p0 m/ S! }6 [9 w1 s8 _8 {! X; D3 }; w0 K/ v; {2 M+ f1 y" w' K
3 b& V7 O' ^( N& i
8 v$ k% c' y! a7 V# G9 w& c8 y! y" E
+ ^$ H7 y4 u/ P" \9 g' K1 v3 `6 f, ^

) X- ^2 Y7 v- u4 ?& M
- P+ W0 s; [1 U( C* k# |
; ^4 o6 `* O' U/ N
9 f" s1 G0 o+ J% x8 @: `4 O
: h: W" ^1 M* V: Q1 b( y' H
/ |/ u( I. k$ `6 ]
& i2 E. D! \0 s; ~6 W$ B2 s! B0 V1 ]+ `$ \/ Y

2 R6 F( @" R/ \9 Y1 B7 I, i# Y, B+ z( H% b& \
0 L5 l% F" s/ ?& |

/ v" N) `/ `# z. e" }, n$ m
- {5 v7 ~1 X" J+ P. C$ |8 v9 O/ D! n; C% z* X6 e

: |" |; \. Q( A7 G, P0 ?( c4 C, N& i6 G; J7 o  _' I; h

3 {3 o. K* b/ v: [( Q/ Z6 \) X- [- q3 i
) k7 v( M7 e! L& q
. j7 E# y. h7 @# V





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