重庆交通大学学生实验报告
实验课程名称数学建模B
开课实验室数学实验室
学院***** 院10 级水利专业班 1 班学生姓名倪** 学号************
开课时间2011 至2012 学年第 2 学期
实验一 人、猫、鸡、米安全过河问题
一、摘要
.本文研究的的是人带着猫、鸡、米过河问题,船除人划以外,至多可以载猫、鸡、米三者之一,但当人不在场时猫要吃鸡、鸡要吃米、需要设计一个安全过河方案,并使渡河次数尽量减少。
二、问题的重述
人带着猫、鸡、米过河问题,船除人划以外,至多可以载猫、鸡、米三者之一,但当人不在场,时猫要吃鸡、鸡要吃米。需要设计一个安全过河方案,并使渡河次数尽量减少。
三、基本假设与符号说明
(一)基本假设
1、人必须划船。
2、船载猫、鸡、米三者之一。
3、当人不在场,时猫要吃鸡、鸡要吃米。
(二)符号说明
我们将人,狗,鸡,米依次用四维向量1234(,,,)s x x x x =中的分量表示,当一物在此岸时,相应分量记为1i x =,在彼岸时记为0i x =.如向量(1,1,1,1)表示人,猫,鸡,米四者都在此岸,彼岸什么也没有。
四、问题的分析
这个问题与商人怎样安全过河一样,问题比较简单,研究对象少。所以可以用穷举法,简单运算和图论即可解题。
五、模型的建立
人、猫、鸡、米分别记为i=1、2、3、4.当在此岸是记为1i x =,在彼岸是记为0i x =,因此,在此岸的状态为1234(,,,)s x x x x =,在彼岸的状态为'1234(1,1,1,1)s x x x x =----,允许状态集合为{(1,1,1,1),(1,1,1,0),(1,1,0,1),(1,0,1,1),(1,0,1,0)}以及它的5个反状态。
决策为乘船方案:记为1234(,,,)d u u u u =当i 在船上是记为1i u =,否则即为0i u =,允许决策集合为{(1,1,0,0),(1,0,1,0),(1,0,0,1),(1,0,0,0)}。 记第k 次渡河前此岸的状态为k s ,第k 次渡河决策为k d ,得状态转移规律为 1(1)k k k k s s d +=+- 设计安全渡河方案归结为求决策序列123,,n d d d d ,使状态k s s ∈,按状态转移规律由初状态1(1,1,1,1)s =经n 次达到1(0,0,0,0)n s +=
六、模型的求解
所以得出此问题的最优方案为:人先带鸡过河然后人再回来,把米带过河,然后把鸡带回河岸,人再把猫带过河,最后人回来把鸡带过河。
七、模型的评价与推广
(一)优点:
1、模型简单,符合实际,更容易让人理解
2、建立了合理科学的状态转移的模型
3、通过实例对问题进行分析,使模型有很好的通用性和推广性。
(二)缺点:由于问题的求解没有使用LINGO或MATLAB软件,当状态和决策过多时,采用此方法太过繁琐,容易出错。
(三)推广:正如课本上的商人们安全过河问题,当商人和随从人数增加或小船容量加大是靠逻辑思考就有些困难了,而适当地设置状态和决策,确定状态转移律,建立多步决策模型,仍然可以有效地解决此类型问题。
八、参考文献
【1】姜启源,谢金星,叶俊,数学模型,第三版。北京:高等教育出版社。
实验二、生产计划安排问题
一、摘要
本文研究的是用四种不同含硫量的液体原料如何混合生产成两种产品?根据市场的需求量安排如何生产的问题。建模时我们必须考虑原料如何的分配顺序,以及四种原料的含硫量,供应量和限制问题。
二、问题的重述
某公司将四种不同含硫量的液体原料(分别记为甲,乙,丙,丁)混合生产两种产品(分别记为A,B ).按照生产工艺的要求,原料甲,乙,丁必须先倒入混合池中混合,混合后的液体再分别与原料丙混合生产A,B 。已知原料甲乙丙丁的含硫量分别是3,2,3,1(%),进货价格分别为6,16,10,15(千克/吨)。根据市场信息,原料甲乙丙夫人供应没有限制,原料丁的供应量最多为50吨;产品A,B 的市场需求量分别为100吨,200吨。问应如何安排生产?
三、问题的分析
问题的意思是我们用怎样的方法生产让利润最大,即用尽量少的原料生产出最多的合格产品;由于理想和现实有差别,使原料产生了限制条件,这是我们必须考虑的,产品要符合市场需求,还有原料的进价以及商品的售价都对我们的利润有很大的关联,因此我们要先建立一系列的方程,最后用LINGO 求解出最后的结果。
四、模型的假设
设产品A 中的来自混合池和原料病的吨数为11,y z 。产品B 中来自混合池和原料丙的吨数为于,中。混合池中原料甲乙丁所占的比例分别12 4.,,x x x
五、模型的建立
安排生产就等于优化目标是生产的利润最大,即
Max 1241124212(961615)(1561615)(910)(1510)x x x y x x x y z z ---+---+-+- 约束条件为:
1)原料最大供应量的限制:412()x y y +<=50
2)产品最大需求量限制:11y z +<=100,22y z +<200 3)产品最大含硫量的限制: 对产品A :
12411
11
(3)2x x x y z y z ++++<=2.5,即:12411(3 2.5)0.5x x x y z ++--<=0
对产品B,类似可得12422(3 1.5)0.5x x x y z ++-+<=0 4)其他限制:12412412220,,,,,,,,x x x x x x y z y z ++=>=0
六、模型的求解:用LINDO 求解过程如下:
Max =(9-6*x1-16*x2-15*x4)*y1+(15-6*x1-16*x2-15*x4)*y2+(9-10)*z1+(15-10)*z2;
(y1+y2)*x4<=50; y1+z1<=100; y2+z2<=200;
(3*x1+x2+x4 -2.5)*y1-0.5*z1<=0; (3*x1+x2+x4 -1.5)*y2+0.5*z2<=0; X1>=0; X2>=0; X4>=0; Y1>=0; Z1>=0 Y2>=0 Z2>=0
x1+x2+x4=1; 用LINGO 解的
Local optimal solution found.
Objective value: 450.0000 Total solver iterations: 27
Variable Value Reduced Cost X1 0.000000 0.000000 X2 0.5000000 0.000000 X4 0.5000000 0.000000 Y1 0.000000 0.000000 Y2 100.0000 0.000000 Z1 0.000000 0.000000 Z2 100.0000 0.000000
Row Slack or Surplus Dual Price 1 450.0000 1.000000 2 0.000000 1.000000 3 100.0000 0.000000 4 0.000000 2.000000 5 0.000000 2.000000 6 0.000000 6.000000 7 0.000000 -200.0000 8 0.5000000 0.000000 9 0.5000000 0.000000 10 0.000000 -4.000000 11 0.000000 0.000000 12 100.0000 0.000000 13 100.0000 0.000000 14 0.000000 -2200.000
因此用LINGO 解的结果为:24220.5,100x x y z ====,其余为0,目标函数值为450.
七、模型的评价和推广
(a)优点:1、模型简单,符合实际,更容易让人理解.
2、用LINGO对模型求解不容易出错。
3、通过实例对问题进行分析,使模型有很好的通用性和推广性。
(b)缺点:这是在各个条件不变下求解得的结果,还没有考虑其他的突变情况,因此只能用于特定的一段时间。
八、参考文献:【1】姜启源,谢金星,叶俊,数学模型,第三版。北京:高等教育出版社。
实验三、捕鱼策略问题
一、摘要
本题研究的是渔场的最大持续产量以及在此基础上的捕捞强度和渔场鱼量水平问题 。 二、问题多的重述 与logistic 模型不同的另一种描述种群增长规律的是gompertz 模型:.
()ln N
t rx x
x =,其中r 和N 的意义与logistic 模型相同。
设渔场鱼量的自然增长模型服从这个模型,且单位时间捕捞量为h Ex =。讨论渔场
鱼量的平衡点及其稳定性,求最大持续产量的m h 及获得最大产量的捕捞强度m E 和渔场鱼量水平0x .
三、基本假设与符号说明
(1)时刻t 渔场中鱼量为x (t ).
(2)假设在自然情况下渔场鱼量增长规律的是gompertz 模型:.
()ln N
t rx x
x =(r
为固有增长率,N 为环境最大容量.)
(3)假设单位时间捕捞量为h Ex =(E 为捕捞强度). (4)用f (x )表示单位时间的增长量.
四、模型的分析
可持续发展是一项基本国策,对于渔业这样的再生资源,要注意适度的开发,不可因为一时的高产就“竭泽而渔”,应该在持续稳产的前提下追求产量或效益的最大化。 鱼量在天然的环境下市按一定的规律增长,如果捕捞量恰好等于增长量,那么渔场鱼量将保持不变,这个捕捞量就可以持续下去,本题就是在捕捞情况下,利用渔场鱼量遵从的方程,分析鱼量稳定的条件,并且在稳定的前提下讨论如何控制捕捞市持续产量达到最大。
五、模型的建立:由假设得在自然情况下x (t )服从.
()ln N
t rx x
x =,且单位时间捕捞
量为h Ex =.所以的捕捞情况下渔场鱼量满足的方程F (x )=f(x)-h(x)
即为: .x ()()l n N t F x r x E x x
==- (1)
我们不需要解方程(1)以得到x (t )的动态变化方程,只希望知道渔场的稳定鱼量和保持稳定的条件,即时间t 足够长以后渔场鱼量x (t )的趋向,并由此确定最大持续产量。
六、模型的求解
(1)求其平衡点:
令()ln 0N
F x rx Ex x
=-= 得到两个平衡点
r
0E x Ne =,10x = (2)
不难得出:
'
()ln N x
F x r r E =+-(可知x=0不合题意,即x=0时 ,不稳定)
且 '0()F X r E N =--明显得 '
0()0F X < 所以0x 稳定 .E 是捕捞率,r 是最大的增长率,上述分析表明当渔场鱼量稳定在0x 处,得到持续产量00()h x Ex =;但将渔场鱼量10x =时,当然谈不上持续长了了。
(2)进一步讨论渔场鱼量稳定在0x 的前提下,如何控制捕捞强度E 使持续产量最大的问题,用图解法可以简单地得到结果。
根据方程.
()ln N
t rx x
x =与h Ex =作得抛物线和直线()y h x Ex ==,可得二
者交点p ,p 的横坐标就是稳定平衡点0x .
又根据假设3,p 点的纵坐标h 为稳定条件小单位时间的持续产量,由图得在其顶点式可获得最大的持续产量,此时的稳定平衡点
*
0N x e
=
且单位的最大持续产量为
/m h rN e =
由(2)式不难得出保持渔场鱼量稳定在*
0x 的捕捞率
m E r =
综上所述,此模型的结论是将捕捞率控制在固有增长率r 的一倍时,可以得到最大持续产量.
实验四:校车最优的安排问题
一、摘要
本文研究了如何合理安排车辆并让教师和工作人员满意的问题。
问题1:本文利用Floyd算法求出了最短路距离矩阵,在此基础上,本文以各区域到最近乘车点的距离和最小为目标函数对50个区域进行遍历分析,建立模型一,找出n 个最优乘车点。并利用模型求出了如果设立2个乘车点则区号为18区和31区,其最短总距离为24492米。如果设立3个乘车个点则分别为15区、21区和31区,其最短总距离为19660米。
问题2:为了表示满意度随距离的增大而减小的关系,本文建立满意度函数,然后以所有区域人员平均满意度最大为目标函数建立模型二。并依据模型求出当建立2个乘车点时最优解为区域24和32,总满意度为0.7239。当建立3个乘车点时的最优解为区域16、23和32。平均满意度为0.7811。
问题3:本文在模型二的基础上,设立满意度最低标准,添加满意度的约束条件H k>h,建立车辆数模型。求得满意度最大的情况下的3个乘车点车辆使用情况,确定车辆最少需要54辆,三个站点所在的区域分别为2、26、31,对应的车辆数分别为12、19、23。
问题4:我们结合模型对校车的安排问题提供了建议。
二、问题的重述
许多学校都建有新校区,常常需要将老校区的教师和工作人员用校车送到新校区。由于每天到新校区的教师和工作人员很多,往往需要安排许多车辆。有效的安排车辆并让教师和工作人员尽量满意是个十分重要的问题。现有如下四个问题需要设计解决。
假设老校区的教室和工作人员分布在50个区,各区的距离见附录中表1。各区人员分布见附录中表2。
问题1:如果建立n个乘车点,为使各区人员到最近乘车点的距离最小,建立模型,并n2,3时的结果。
分别给出
问题2:考虑每个区的乘车人数,使工作人员和教室的满意度最大,建立模型,并分别建立两个和三个乘车点的校车安排方案。(假定车只在起始点载人)
问题3:若建立3个乘车点,为使教师和工作人员尽量满意,至少需要安排多少辆车。假设每辆车最多载客47人(假设车只在起始站点载人)。
问题4:关于校车安排问题,你还有什么好的建议和考虑。可以提高乘车人员的满意度,
又可节省运行成本。
三、基本假设与符号说明
(1)基本假设1.假设未给出距离的两个区可以通过其他区间接到达。
2.每位教师及工作人员均选择最短路径乘车。
3.乘车点均建在各区内,不考虑区与区之间。
4. 教师及工作人员到各站点乘车的满意度与到该站点的距离有关系,距离近则满意度高,距离远则满意度低。
5. 假设任意时刻任意站点均有车,不考虑教师及工作人员的等车时间。
6. 在乘车点区内的人员乘车距离为零。
7. 根据实际情况,我们假设所设置的乘车点数不大于50。
8. 假设所有人员均乘车。
9. 假设每辆车只载一次人。
10. 假设汽车中途不再载人。
11. 假设每辆车的型号一致。
12. 假设每个乘车点的乘车人数固定不变。
(2)符号说明:(,)
B i j:各个区通路的邻接矩阵.
*(,)
B i j:各个区完备图的邻接矩阵.
p:第i乘车点所在的区.
i
l:第k个区到最近乘车点的距离.
k
Z:50个区到各自最近乘车点的距离之和.
H:第k区乘客的满意度.
k
H:所有乘客的平均满意度.
W:第i个乘车点的车辆数.
i
W:所有乘车点的总车辆数.
m:第k区的人数.
k
h:每个区满意度的下限(0 n :共要建的站点数 四、问题的分析 问题1:要求建立n 个乘车点,使各区人员到最近乘车点的距离最小。首先结合表1,利用Floyd 算法求得任意两点之间最短距离;其次在50个区域中任意选取n 个区域作为乘车点,,找出每个区域所对应的最近乘车点,最后以50个区域到各自最近乘车点的最短距离和的最小值为目标函数建立模型一。并对设立2个和3个乘车点时的校车安排问题进行求解。 问题2:要求在教师和工作人员的满意度最大为前提条件下选出最佳乘车点。为此需要建立关于满意度的函数,然后以平均满意度最高为目标函数建立模型二,并对设立2个和3个乘车点时的校车安排问题进行求解。 问题3:要求建立3个乘车点,在尽量使教师和工作人员满意的前提下,所需的车辆最少,我们利用模型二和总车辆数最少函数的双目标函数进行优化求解,得出最优解。 问题4:我们结合第3问的结果对车辆的安排情况提出了建议。 五、问题1的模型的建立与求解 (1)、 Floy d 算法简介:Floyd 算法是弗洛伊德(floyd )提出的一种解决每对节点之间最短路径问题的的算法。 算法的基本思想:直接在图的带权邻接矩阵中,用插入顶点的方法依次构造出v 个矩阵D (1)、D (2)、…、D (v),使最后得到的矩阵D (v)为图的距离矩阵,同时也求出插入点矩阵以便得到两点间的最短路径。 1.在邻接矩阵G 中ij G 表示第i 个区域到第j 个区域之间的距离; 2.用矩阵R 来记录插入点的信息,其中ij R 表示第i 个区域到达第j 个区域所要经过点的记录,把各个区域插入图中,比较插入区域后的距离与原来的距离, min(,)ij ij ik kj G G G G =+,如果ij G 的距离变小,则ij R =k ,并把最短距离记录在矩阵D 中。算法完成后则R 中包含了最短通路的信息,ij D 中包含了最短路径的信息。 关于本文具体问题的算法(算法程序见程序1)如下: 1.先根据题目所给的各个连通区域之间距离的数据为初始矩阵(,)B i j 赋值,其中没有给出距离的赋给无穷大,其中B(i,j)=0(i=j)。 2.进行迭代计算。对任意两点(,)i j ,若存在k ,使(,)(,)(,)B i k B k j B i j +<,则更新 (,)(,)(,)B i j B i k B k j =+。 3.直到所有点的距离不再更新停止计算,则得到最短路距离矩阵 B *(i,j)(,1,2,...,50)i j =。 (2)、模型一的建立 在上述最短路距离矩阵B *(i,j)的基础上,分析建立n 个乘车点的情况: 首先,在50个区域中任意选取n 个区域作为乘车点 {}n p p p ,...,,21{}50,...,2,1∈ 其次,由于每个区的乘客都选距离本区最近的乘车点乘车,引入变量k l ,表示第个k 区域到最近乘车点的距离 {}),(),...,,(),,(min 21n k p k B p k B p k B l =(k=1,2,…50) 然后,求出50个区域到各自最近乘车点的最短距离之和 ∑==50 1 k k l Z 最后,建立针对问题1所述的数学模型。最佳乘车点是使得50个区域到各自最近乘车点的距离之和最小的点,基于此建立目标函数 min ∑== 50 1 k k l Z (1) 其中{}),(),...,,(),,(min 21n k p k B p k B p k B l =,{}n p p p ,...,,21{}50,...,2,1∈为选出的n 个最佳乘车点所在的区域号。 (3)、模型一的求解 依据模型一,利用MATLAB 软件(程序见附录中程序2)求得结果如下 当2=n 时: 乘车点设立在18区和31区,各个区域到各自最近乘车点的最短距离之和为Z =24492米。 选18区域有:1、2、3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、20、21、24、25、22、26、27、47。 选31区域有:23、28、29、30、31、32、33、34、35、36、37、38、38、40、41、42、43、44、45、46、48、49、50。 当3=n 时: 乘车点设立在15区、21区和31区,各个区域到各自最近乘车点的最短距离之和Z =19660米。 选15区域有:5、6、7、8、9、10、11、12、13、14、15、16、17、18、24 25、26、27。 选21区域有:1、2、3、4、19、20、21、22、23、24、44、45、46、47、48、49。 选31区域有:28、29、30、31、32、33、34、35、36、37、38、39、40、41、42、43、50。 由结果可看出当乘车点越多时,Z 值越小。 六、问题2的模型建立与求解 (1)、建立满意度函数 如果车站就建在自己的区,则乘客就非常的满意,如果离自己区最近的车站比较远,则乘客就不满意。乘客对车站点的满意度取决于自己区到最近乘车点的距离。为此我们建立满意度函数 min max max l l l l H k k --= (1) 其中,max l 为第k 个区离本区最远区的距离,min l 为第k 个区离本区最近区的距离,当然离自己区的距离最近,即0min =l 。化简得 max 1l l H k k - = (2) H k 的值越大,满意度就越大。如果乘车点就建在自己的区,则d=0, H k =1,该区的 乘客非常满意;如果让乘客去距离本区最远的区乘车,则H k =0,为极度不满意。 (2)模型二的建立 结合满意度函数,在模型一的基础上,建立最高满意度乘车点选择模型, 由于每个区乘客的满意度不同,每个区的人数也不同,我们不可能使每个区乘客的满意度都最大,因此我们关注的是全体乘客的平均满意度H ∑∑==?= 501 50 1 k k k k k m m H H 为使教师和工作人员的满意度最大,为此我们将全体人的平均满意度作为目标函数 Max ∑∑==?= 501 50 1 k k k k k m m H H (3) (3)模型二的求解 依据模型二,利用MATLAB 软件求得结果如下(程序见附录附录中程序3): 当2=n 时: 选择的2个乘车点为区域24和区域32,平均满意度为0.7239。 选区域有36个:1、2、3、4、5、6、7、8、9、10、11、12、13、15、16、17、18、19、20、21、22、23、24、25、26、27、28、29、43、44、45、46、47、48、49、50。 选区域有14个:14、30、31、32、33、34、35、36、37、38、39、40、41、42。 当3=n 时: 选择的三个乘车点为区域16、区域23和区域32。平均满意度为0.7811。 选16有:1、2、25、26、27。 选23有:3、4、5、6、7、8、9、10、11、12、13、14、15、16、17、18、19、42、43、44、45、46、47、48、49。 选32有:20、21、22、23、24、28、29、30、31、32、33、34、35、36、37、38、39、40、41、50。 由计算结果可看出,建立车站数越多,乘客的平均满意度越高。 七、问题三的模型建立与求解 (1)模型三的建立 对所需车辆数w k 的分析。 设到第i 个乘车点的区域的子集合为i A 47 i k k A i P w ∈????=??????∑。 (????表示向上取整) (4) 123min W w w w =++ 由于每个站点的人数不恰好是车辆满载乘客数的整数倍,每个站点就有可能有一辆车不能满载,所以当站点数越多,不能满载的车辆数就越多,从而导致所需车辆总数的增加。当n=1时,w=54,这也是所需车辆数的最小值。 关于模型二当n =3时结出的结果,其中平均满意度是在建立3个站点的请况下最大的结果,经运算得需车辆数为56,但车辆数不是最小。 在模型二中,虽然使得平均满意度最大,但个别区的满意度却相当的小,比如第三个区的满意度仅为0.4434。 为了兼顾平均满意度尽可能的大、车辆数尽可能小,建立以下模型:在每个区的满意度都大于最低满意度标准的情况下,即H k >h ,其中h 可人为地设定且0 Max ∑∑==?= 50 1 50 1 k k k k k m m H H (5) s.t. H k >h (0 依据模型三利用MATLAB 软件球的结果如下(程序见附录中的程序4) 当3=n 时,H 取不同的值时,算得在平均满意度较高的几种情况下,站点、平均满意度及车辆数的情况如表1所示: 表1 站点、平均满意度及车辆数 于是可取得在H=0.533,车辆数达到了最小值54,平均满意度为0.769,相对比较高。三个站点所在的区域分别为2、26、31,对应站点的车辆数分别为12、19、23。 八、问题四的解答 通过对第三问的结果的分析可知,每个站点都存在空座的情况,所以我们建议在站点校车空座率较高的情况下时,在其他站点进行一次巡游。当校车型号单一时,很容易造成某些站点乘客难以乘车而其他某些站点又大量空座的情况,这种方案最大限度的节省了成本,相当于所有乘客集中乘车,同时因为乘客依然可以在对自己满意度高的站点候车,也达到了使满意度逼近甚至达到最大的效果。 九、模型的改进及其推广 改进方案:本文模型适合于区域较少的情况,当区域量十分庞大的时候,模型的误差变大,所以我们考虑到,对于区域量很大的情况,以区域密集度为决策量,选出密集度高的区域作为乘车点被选区,在对乘车点被选区利用本文模型进行求解,这样使得问题变得简单化。 十、参考文献 [1] 陈恩水,王峰,朱道元.数学建模与实验.北京:科学出版社,2008 [2] 邬学军,周凯.数学建模竞赛铺导教程.杭州:浙江大学出版社,2009 十一、附录 表1 各区距离表 Matlab程序: 程序1: clear;clc; n=50;a=zeros(n); a(1,2)=400;a(1,3)=450; a(2,4)=300;a(2,21)=230;a(2,47)=140; a(3,4)=600;a(4,5)=210;a(4,19)=310; a(5,6)=230;a(5,7)=200;a(6,7)=320;a(6,8)=340; a(7,8)=170;a(7,18)=160;a(8,9)=200;a(8,15)=285; a(9,10)=180;a(10,11)=150;a(10,15)=160; a(11,12)=140;a(11,14)=130;a(12,13)=200;a(13,34)=400; a(14,15)=190;a(14,26)=190;a(15,16)=170;a(15,17)=250; a(16,17)=140;a(16,18)=130;a(17,27)=240; a(18,19)=204;a(18,25)=180;a(19,20)=140;a(19,24)=175; a(20,21)=180;a(20,24)=190;a(21,22)=300;a(21,23)=270; a(21,47)=350;a(22,44)=160;a(22,45)=270;a(22,48)=180; a(23,24)=240;a(23,29)=210;a(23,30)=290;a(23,44)=150; a(24,28)=130;a(24,25)=170;a(26,27)=140;a(26,34)=320; a(27,28)=190;a(28,29)=260;a(29,31)=190;a(30,31)=240; a(30,42)=130;a(30,43)=210;a(31,32)=230;a(31,36)=260; a(31,50)=210;a(32,33)=190;a(32,35)=140;a(32,36)=240; a(35,37)=160;a(36,39)=180;a(36,40)=190;a(37,38)=135; a(38,39)=130;a(39,41)=310;a(40,41)=140;a(40,50)=190; a(42,50)=200;a(43,44)=260;a(43,45)=210;a(33,34)=210; a(45,46)=240;a(46,48)=280;a(48,49)=200; a=a+a';M=max(max(a))*n^2; a=a+((a==0)-eye(n))*M; path=zeros(n); for k=1:n for i=1:n for j=1:n if a(i,j)>a(i,k)+a(k,j) a(i,j)=a(i,k)+a(k,j); path(i,j)=k; end end end end a; 程序2: sl=inf; for b=1:n for c=1:n for d=1:n