【数模】选址问题 7个居民点中建设银行(多目标,NP-Hard)
选址问题
现准备在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. 电流 III.电压 VVV.电阻 RRR.电功率 WWW 的计算公式 2. 串联电路和并联电路的功率.电压关系 2.1. 串联电路 2.2. 并联电路 1. 电流 III.电压 VVV ...
- 不定期备考小tips[数模][0] #20210529
不定期备考小tips[数模][0] #20210529 边值问题 S-L微分方程中两种内积的理解 一种内积:(u,v)=∫uvdx(u,v)=\int uvdx(u,v)=∫uvdx 另一种内积:(u ...
- Tecnomatiix PDPS数模数据格式转换方法
PD/PS软件模型数据支持JT格式的文件,一般情况下,资源文件.部件文件均使用包含有JT文件的cojt类型的文件夹来表示.特殊情况下,也可用Robcad的co类型文件.如果在PD/PS软件中使用co格 ...
- stp文件怎么变文件夹_PDPS教程之数模数据格式转换-stp文件怎么打开
PD/PS软件模型数据支持JT格式的文件,一般情况下,资源文件.部件文件均使用包含有JT文件的cojt类型的文件夹来表示.特殊情况下,也可用Robcad的co类型文件.如果在PD/PS软件中使用co格 ...
- 参加美国大学生数学建模竞赛,为什么通过数模乐园辅助报名?
喜讯: 数模乐园美赛辅助报名人数荣登国内榜首,成为国内最大辅助报名平台! 数模乐园已累计为10万多人以上同学完成了美赛辅助报名服务!已成为国内最大的美赛辅助报名平台!数模乐园辅助报名不仅仅只是一个单纯 ...
- 杨昕立计算机学院,华南理工学子在全国大学生数模竞赛中创历史佳绩
11月4日,由教育部高等教育司.中国工业与应用数学学会(CSIAM)共同主办的"2017年高教社杯全国大学生数学建模竞赛"成绩揭晓,华南理工参赛队伍荣获一等奖3项,二等奖6项,创学 ...
- 数模国赛备赛(6)数学建模中的图论方法
图论中的许多问题都是NP问题,目前找不到多项式时间内的解决方法. 涉及图论的数学建模题目 涉及到线路,网点等概念的问题,天生就有了图. 图论的很多问题都可以转化成线性规划问题. 例题引入 灾情巡视问题 ...
- 数模混合电路设计中的难点
数模混合电路设计中的难点 数模混合电路的设计,一直是困扰硬件电路设计师提高性能的瓶颈.众所周知,现实的世界都是模拟的,只有将模拟的信号转变成数字信号,才方便做进一步的处理.模拟信号和数字信号的转变是否 ...
- 硅谷数模10Gbps USB-C重定时器搭载于最新一代笔记本电脑、台式电脑、显示器和配件中
ANX74xxUSB-C重定时器系列是英特尔.超微半导体和英伟达CPU/GPU平台的首选解决方案 加州圣克拉拉--(美国商业资讯)--硅谷数模半导体公司(AnalogixSemiconductor, ...
最新文章
- 流控制传输协议 SCTP
- codeforces D. Palindrome Degree(hash)
- Transform Model
- Angular js 具体应用(一)
- BOOST_CONSTANTS_GENERATE宏相关用法的测试程序
- FPGA学习之路—接口(1)—URAT Verilog程序设计
- java jpeg压缩解码_图片压缩(iOS)
- 字段缺失_区分Protobuf 3中缺失值和默认值
- 认识软件性能测试10大误区
- vue摸板 大数据_Vue和DataV强强联合,这个大数据可视化模板你一定要拥有
- .NET Core 3.0中的Cookie身份验证
- 什么是E-MapReduce
- L2-004. 这是二叉搜索树吗?-PAT团体程序设计天梯赛GPLT
- 源码方式安装最新版本snmp的过程
- Windows核心编程_在Visual Studio窗口输出调试信息
- 在Linux上如何查看Python3自带的帮助文档?
- 少年,别再收藏文章了!
- python自动测试方法_python接口自动化测试二十一:类和方法
- 2017 年“认证杯”数学中国数学建模网络挑战赛 比赛心得
- 03-jenkins集成环境配置
热门文章
- [Cocos Creator 3.5]cc.Tween中easing包含哪些
- 台湾大学公开课《概率》第三周作业题
- Android-五子连珠(二)-布局文件
- c语言中判断字符串s1大于s2 应当使用,湖北省计算机二级C语言考试
- RFID的标签天线应该怎么仿真?--(1)
- VOCs在线监测系统安装部署步骤
- Java的简单if和switch条件语句的简单分支结构介绍
- k8s pod容器自动伸缩
- 微信朋友圈小视频显示服务器超时,微信小视频转发到朋友圈却提示发送失败怎么办?...
- 入门学python(三)