全球旧事资料 分类
例1某公司在六个城市c1c2c6中有分公司,从ci到cj的直接航程票价记在下述矩阵的ij位置上。表示无直接航路)(,请帮助该公司设计一张城市c1到其它城市间的票价最便宜的路线图。
050402510
402510015202515010202010010252010055252555050

用矩阵a

为顶点个数)存放各边权的邻接矩阵,行向量pb、i
dex、i
dex2、1
d分别用来存放P标号信息、标号顶点顺序、标号顶点索引、最短通路的值。其中分量
1当第i顶点已标号;pbi0当第i顶点未标号
i
dex2i存放始点到第i点最短通路中第i顶点前一顶点的序号;
di存放由始点到第i点最短通路的值。
求第一个城市到其它城市的最短路径的Matlab程序如下:clearclcM10000a1050M402510a2zeros121520M25a3zeros131020Ma4zeros141025a5zeros1555a6zeros16aaapb1le
gtha0pb11i
dex11i
dex2o
es1le
gthad1le
gthaMd10temp1whilesumpble
gthatbfi
dpb0dtbmi
dtbdtempatemptbtmpbfi
ddtbmi
dtbtemptbtmpb1pbtemp1i
dex1i
dex1tempi
dexi
dex1fi
ddi
dex1dtempatempi
dex1ifle
gthi
dex2
fi
dexi
dex1e
di
dex2tempi
dexe
ddi
dex1i
dex2
例2从北京(Pe)乘飞机到东京T、纽约N、墨西哥城M、伦敦L、巴黎Pa五城市做旅游,每城市恰去一次再回北京,应如何安排旅游线,使旅程最短?各城市之间的航线距离如下表:LLMNPaPeT563521516021577870366868516113M56N3521Pa215736Pe51786851T6070686113
解:编写程序如下:clccleara1256a1335a1421a1551a1660a2321a2457a2578a2670a3436a3568a3668a4551a4661a5613a60aaac15146Lle
gthc1flag1whileflag0flag0form1L3for
m2L1ifac1mc1
ac1m1c1
1ac1mc1m1ac1
c1
1flag1c1m1
c1
1m1e
de
de
de
dsum10fori1L1
fsum1sum1ac1ic1i1e
dcirclec1sumsum1c15614改变初始圈,该算法的最后一个顶点不动flag1whileflag0flag0form1L3for
m2L1ifac1mc1
ac1m1c1
1ac1mc1m1ac1
c1
1flag1c1m1
c1
1m1e
de
de
de
dsum10fori1L1sum1sum1ac1ic1i1e
difsum1sumsumsum1circlec1e
dcirclesum
fr
好听全球资料 返回顶部