数学建模 银行最优建造问题matlab源程序.doc

数学建模 银行最优建造问题matlab源程序.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数学建模 银行最优建造问题matlab源程序

银行最优建造问题 1 问题重述 现准备在7 个居民点v1, v2, … , v7中设置一银行.问设在哪个点, 最合理?要建2个银行呢? 2 问题分析 最合理的标准是7个村子到银行的最短路径总和最短。即7个点到银行点的最短路的总和最小。由此分析:此问题的基础是图论中最短路径问题。此问题是全局最短路径问题。故建设一个银行时,采用Floyed算法。先建立此无向图的邻接矩阵(权矩阵),使用Floyed算法生成最短路径矩阵。比较生成矩阵每列的和,取最小值。即可找出建造一个银行时的最佳建造点。 建造两个银行时,仍以Floyed算法为基础,求出最短路径矩阵。采用枚举法,一循环的方式比较建设在1、2点,1、3点,1、4点。。。。。等的最短路径的大小。以对称矩阵的形式输出最短路径的值。 3 符号说明 w 无向图的权矩阵 u 用Floyed算法求出的最短路径矩阵 d 最短路径矩阵各列的和组成的向量 d-min 最短路径的长度 rowcol 最短路径和最小的标号,即建造一个银行时的建造点 tu 枚举法比较求得的最小路径矩阵 td tu各列的和经转换所得的对称矩阵 td-min 建设两个银行时最短路径的总长 [row,col] 矩阵最小值所在位置的行号,列号。即建设两个银行时的最佳居民点 Matlab程序及注释在Floyed.m文件中。 4 问题求解 使用matlab求解: 源程序如下: w=[0 3 inf inf inf inf inf 3 0 2 inf 18 2.5 inf inf 2 0 6 2 inf inf inf inf 6 0 3 inf inf inf 18 2 6 0 4 inf inf 2.5 inf inf 4 0 1.5 inf inf inf inf inf 1.5 0] n=length(w); u=w; m=1; while m=n for i=1:n for j=1:n u(i,j)=min(u(i,j),u(i,m)+u(m,j)); end end m=m+1; end u for i=1:n d(i) =0; for j=1:n d(i)=u(i,j)+d(i); end end d d_min=min(d(:)) rowcol=find(d==d_min) tu=zeros(n^2,n); for m=1:n^2 for j=1:n tu(m,j)=min(u(m-n*(ceil(m/n)-1),j),u(ceil(m/n),j)); end end tu tdd=linspace(0,0,n^2); for i=1:n^2 tdd(i)=0; for j=1:n tdd(i)=tu(i,j)+tdd(i); end end td=zeros(n,n); for i=1:n for j=1:n td(i,j)=tdd(7*(i-1)+j); end end td td_min=min(td(:)) [row,col]=find(td==td_min) 运行求解结果如下: w = 0 3.0000 Inf Inf Inf Inf Inf 3.0000 0 2.0000 Inf 18.0000 2.5000 Inf Inf 2.0000 0 6.0000 2.0000 Inf Inf Inf Inf 6.0000 0 3.0000 Inf Inf Inf 18.0000 2.0000 6.0000 0 4.0000 Inf Inf 2.5000 Inf Inf 4.0000 0 1.5000 Inf Inf Inf Inf Inf 1.5000 0 u = 0 3.

文档评论(0)

seunk + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档