选址问题

现准备在7个居民点中设置一银行,路线与距离如下图,问设在哪个点,可使最大服务距离最小?若设两个点呢?

在matlab中把图给画出来

s = [1 2 2 3 3 3 4 5 6];
t = [2 3 6 4 6 7 7 6 7];
weights = [3 2 1.5 6 2.5 4 3 1.5 1.8];
G = graph(s,t,weights);
plot(G,'EdgeLabel',G.Edges.Weight,"EdgeLabelColor",'r')

算出每个点到其他点的最小加权距离

总共有7个节点,算出每个点到其他点最短加权路径之和,最终得到一个对称的矩阵,其中每个点表示i到j的距离。

% 总共有7个节点
% 算出每个点到其他点最短加权路径之和
% 最终得到一个对称的矩阵,其中每个点表示i到j的距离
D=zeros(7,7);
for i=1:7for j=1:7[ ~,D(i,j)] = shortestpath(G,i,j);end
end

计算每个点作为银行建设点的最大服务距离

% 看看哪个覆盖范围最大
[m,index]=min(max(D'))

最后结果是6号点,最大服务距离为4.8

第二问

第二问要求建两个银行,主要思想就是,把所有建银行的可能情况都列出来,然后计算,每个点到这两个银行距离的最小值作为该点到银行的距离,之后把这些距离的最大值作为该店建银行的最大服务距离,最后找到这些最大服务距离的最小值即可得到结果。

列出所有的选两个点的情况

% 第二问
% 列出所有的选两个点的情况
tp=zeros(21,11);
tt=1;
for i=1:7for j=i+1:7tp(tt,1)=i;tp(tt,2)=j;tt=tt+1;end
end
点1 点2
1 2
1 3
1 4
1 5
1 6
1 7
2 3
2 4
2 5
2 6
2 7
3 4
3 5
3 6
3 7
4 5
4 6
4 7
5 6
5 7
6 7
D2=zeros(7,1);
for i=1:length(tp)for j=1:7[ ~,temp1] = shortestpath(G,j,tp(i,1));[ ~,temp2] = shortestpath(G,j,tp(i,2));tp(i,j+2) = min([temp1 temp2]);end
end
tp(:,10) = sum(tp(:,3:9),2);
tp(:,11) = max(tp(:,3:9),[],2);
% [m,index]=min(tp(:,11))
% 因为会有多个最小的,故用find函数找
res=tp(find(tp(:,11)==min(tp(:,11))),1:2)

最终结果是在2、4或者2、7建银行。

变题

这个题目是让我们求设在哪个点,可使最大服务距离最小,其实,如果把问题改成设在哪个点,可使其他点离银行的总距离最小。

思路

思路其实很简单,就是在之前的基础上,把每个点到银行的距离加起来,然后找到建银行距离总和最小的点。

变题第一问

最后看看哪个点的路径之和最小
[m,index]=min(sum(D))

最后结果也是6号点,距离其他点的总距离是16.6

变题第二问

D2=zeros(7,1);
for i=1:length(tp)for j=1:7[ ~,temp1] = shortestpath(G,j,tp(i,1));[ ~,temp2] = shortestpath(G,j,tp(i,2));tp(i,j+2) = min([temp1 temp2]);end
end
tp(:,10) = sum(tp(:,3:9),2);
tp(:,11) = max(tp(:,3:9),[],2);
% [m,index]=min(tp(:,11))
% 因为会有多个最小的,故用find函数找
res=tp(find(tp(:,11)==min(tp(:,11))),1:2)
res2=tp(find(tp(:,10)==min(tp(:,10))),1:2)

最后结果是在4、6建银行会让总距离最小。

结语

由此可见,让最大服务距离最小的时候不一定总距离会最小。

下表是问题2的总结果

第一个点 第二个点 点1距银行的距离 点2距银行的距离 点3距银行的距离 点4距银行的距离 点5距银行的距离 点6距银行的距离 点7距银行的距离 距离之和 最大距离
1 2 0 0 2 6.3 3 1.5 3.3 16.1 6.3
1 3 0 2 0 6 4 2.5 4 18.5 6
1 4 0 3 5 0 6 4.5 3 21.5 6
1 5 0 3 4 6.3 0 1.5 3.3 18.1 6.3
1 6 0 1.5 2.5 4.8 1.5 0 1.8 12.1 4.8
1 7 0 3 4 3 3.3 1.8 0 15.1 4
2 3 3 0 0 6 3 1.5 3.3 16.8 6
2 4 3 0 2 0 3 1.5 3 12.5 3
2 5 3 0 2 6.3 0 1.5 3.3 16.1 6.3
2 6 3 0 2 4.8 1.5 0 1.8 13.1 4.8
2 7 3 0 2 3 3 1.5 0 12.5 3
3 4 5 2 0 0 4 2.5 3 16.5 5
3 5 5 2 0 6 0 1.5 3.3 17.8 6
3 6 4.5 1.5 0 4.8 1.5 0 1.8 14.1 4.8
3 7 5 2 0 3 3.3 1.8 0 15.1 5
4 5 6 3 4 0 0 1.5 3 17.5 6
4 6 4.5 1.5 2.5 0 1.5 0 1.8 11.8 4.5
4 7 6.3 3.3 4 0 3.3 1.8 0 18.7 6.3
5 6 4.5 1.5 2.5 4.8 0 0 1.8 15.1 4.8
5 7 6 3 4 3 0 1.5 0 17.5 6
6 7 4.5 1.5 2.5 3 1.5 0 0 13 4.5

【数模】选址问题 7个居民点中建设银行(多目标,NP-Hard)相关推荐

  1. 数模电路基础知识 —— 1. 回路中的电压、电流、电阻、电功率计算式

    文章目录 1. 电流 III.电压 VVV.电阻 RRR.电功率 WWW 的计算公式 2. 串联电路和并联电路的功率.电压关系 2.1. 串联电路 2.2. 并联电路 1. 电流 III.电压 VVV ...

  2. 不定期备考小tips[数模][0] #20210529

    不定期备考小tips[数模][0] #20210529 边值问题 S-L微分方程中两种内积的理解 一种内积:(u,v)=∫uvdx(u,v)=\int uvdx(u,v)=∫uvdx 另一种内积:(u ...

  3. Tecnomatiix PDPS数模数据格式转换方法

    PD/PS软件模型数据支持JT格式的文件,一般情况下,资源文件.部件文件均使用包含有JT文件的cojt类型的文件夹来表示.特殊情况下,也可用Robcad的co类型文件.如果在PD/PS软件中使用co格 ...

  4. stp文件怎么变文件夹_PDPS教程之数模数据格式转换-stp文件怎么打开

    PD/PS软件模型数据支持JT格式的文件,一般情况下,资源文件.部件文件均使用包含有JT文件的cojt类型的文件夹来表示.特殊情况下,也可用Robcad的co类型文件.如果在PD/PS软件中使用co格 ...

  5. 参加美国大学生数学建模竞赛,为什么通过数模乐园辅助报名?

    喜讯: 数模乐园美赛辅助报名人数荣登国内榜首,成为国内最大辅助报名平台! 数模乐园已累计为10万多人以上同学完成了美赛辅助报名服务!已成为国内最大的美赛辅助报名平台!数模乐园辅助报名不仅仅只是一个单纯 ...

  6. 杨昕立计算机学院,华南理工学子在全国大学生数模竞赛中创历史佳绩

    11月4日,由教育部高等教育司.中国工业与应用数学学会(CSIAM)共同主办的"2017年高教社杯全国大学生数学建模竞赛"成绩揭晓,华南理工参赛队伍荣获一等奖3项,二等奖6项,创学 ...

  7. 数模国赛备赛(6)数学建模中的图论方法

    图论中的许多问题都是NP问题,目前找不到多项式时间内的解决方法. 涉及图论的数学建模题目 涉及到线路,网点等概念的问题,天生就有了图. 图论的很多问题都可以转化成线性规划问题. 例题引入 灾情巡视问题 ...

  8. 数模混合电路设计中的难点

    数模混合电路设计中的难点 数模混合电路的设计,一直是困扰硬件电路设计师提高性能的瓶颈.众所周知,现实的世界都是模拟的,只有将模拟的信号转变成数字信号,才方便做进一步的处理.模拟信号和数字信号的转变是否 ...

  9. 硅谷数模10Gbps USB-C重定时器搭载于最新一代笔记本电脑、台式电脑、显示器和配件中

    ANX74xxUSB-C重定时器系列是英特尔.超微半导体和英伟达CPU/GPU平台的首选解决方案 加州圣克拉拉--(美国商业资讯)--硅谷数模半导体公司(AnalogixSemiconductor, ...

最新文章

  1. 流控制传输协议 SCTP
  2. codeforces D. Palindrome Degree(hash)
  3. Transform Model
  4. Angular js 具体应用(一)
  5. BOOST_CONSTANTS_GENERATE宏相关用法的测试程序
  6. FPGA学习之路—接口(1)—URAT Verilog程序设计
  7. java jpeg压缩解码_图片压缩(iOS)
  8. 字段缺失_区分Protobuf 3中缺失值和默认值
  9. 认识软件性能测试10大误区
  10. vue摸板 大数据_Vue和DataV强强联合,这个大数据可视化模板你一定要拥有
  11. .NET Core 3.0中的Cookie身份验证
  12. 什么是E-MapReduce
  13. L2-004. 这是二叉搜索树吗?-PAT团体程序设计天梯赛GPLT
  14. 源码方式安装最新版本snmp的过程
  15. Windows核心编程_在Visual Studio窗口输出调试信息
  16. 在Linux上如何查看Python3自带的帮助文档?
  17. 少年,别再收藏文章了!
  18. python自动测试方法_python接口自动化测试二十一:类和方法
  19. 2017 年“认证杯”数学中国数学建模网络挑战赛 比赛心得
  20. 03-jenkins集成环境配置

热门文章

  1. [Cocos Creator 3.5]cc.Tween中easing包含哪些
  2. 台湾大学公开课《概率》第三周作业题
  3. Android-五子连珠(二)-布局文件
  4. c语言中判断字符串s1大于s2 应当使用,湖北省计算机二级C语言考试
  5. RFID的标签天线应该怎么仿真?--(1)
  6. VOCs在线监测系统安装部署步骤
  7. Java的简单if和switch条件语句的简单分支结构介绍
  8. k8s pod容器自动伸缩
  9. 微信朋友圈小视频显示服务器超时,微信小视频转发到朋友圈却提示发送失败怎么办?...
  10. 入门学python(三)