数学建模期末速成 最短路径
关键词:Dijkstra算法 Floyd算法
例题
已知有6个村庄,各村的小学生人数如表所列,各村庄间的距离如图所示。现在计划建造一所医院和一所小学,问医院应建在哪个村庄才能使最远村庄的人到医院看病所走的路最短?又问小学建在哪个村庄使得所有学生上学走的总路程最短?
村庄 | v 1 v_1 v1 | v 2 v_2 v2 | v 3 v_3 v3 | v 4 v_4 v4 | v 5 v_5 v5 | v 6 v_6 v6 |
小学生人数/个 | 50 | 40 | 60 | 20 | 70 | 90 |
一、 问题重述
在6个村庄构成的交通网络中,已知各村小学生人数及村庄间道路距离。现需解决两个优化问题:
医院选址:确定一个村庄建立医院,使得离医院最远村庄的就医路径最短。
小学选址:确定一个村庄建立小学,使得全体学生上学总路程最短。
二、 问题分析
医院选址问题属于最小化最大距离问题,需计算各候选点到其他所有点的最短距离中的最大值,再选择使该值最小的位置。
小学选址问题属于加权最短路径和问题,需计算各候选点到所有生源村的加权距离和(权重为各村学生数),选择总和最小的位置。
三、 符号说明
符号 | 含义 | 单位 |
V V V | 村庄集合 { v 1 , . . . , v 6 v_1,...,v_6 v1,...,v6} | - |
E E E | 边集合(道路连接关系) | - |
W W W | 邻接矩阵(道路距离) | - |
d ( i , j ) d(i,j) d(i,j) | 村庄 v i v_i vi 到 v j v_j vj 的最短距离 | - |
s i s_i si | 村庄 v i v_i vi 的学生人数 | - |
四、 模型假设
- 道路网络为无向图,距离对称
- 最短路径计算不考虑交通拥堵等动态因素
- 学生人数固定且全部就近入学
五、 模型建立与求解
模型建立:
1. 图论建模
构造赋权图 ,邻接矩阵为:
W = [ 0 2 7 ∞ ∞ ∞ 2 0 4 6 8 ∞ 7 4 0 1 3 ∞ ∞ 6 1 0 1 6 ∞ 8 3 1 0 3 ∞ ∞ ∞ 6 3 0 ] W=\begin{bmatrix}0&2&7&\infty&\infty&\infty\\2&0&4&6&8&\infty\\7&4&0&1&3&\infty\\\infty&6&1&0&1&6\\\infty&8&3&1&0&3\\\infty&\infty&\infty&6&3&0\end{bmatrix} W= 027∞∞∞20468∞74013∞∞61016∞83103∞∞∞630
2. 最短路径计算
应用Floyd算法求得全源最短距离矩阵 :
d = [ 0 2 6 7 8 11 2 0 4 5 6 9 6 4 0 1 2 5 7 5 1 0 1 4 8 6 2 1 0 3 11 9 5 4 3 0 ] d=\begin{bmatrix}0&2&6&7&8&11\\2&0&4&5&6&9\\6&4&0&1&2&5\\7&5&1&0&1&4\\8&6&2&1&0&3\\11&9&5&4&3&0\end{bmatrix} d= 02678112045696401257510148621031195430
3. 医院选址分析
计算各列最大值:
最大值向量 = [ 11 , 9 , 6 , 7 , 8 , 11 ] [11,9,6,7,8,11] [11,9,6,7,8,11]
最小值6对应的 v 3 v_3 v3 为最优选址。
4. 小学选址分析
计算加权总路程:
总路程向量 = [ 2130 , 1670 , 1070 , 1040 , 1050 , 1500 ] [2130,1670,1070,1040,1050,1500] [2130,1670,1070,1040,1050,1500]
最小值1040对应的 v 4 v_4 v4 为最优选址。
例题求解代码
import numpy as np
import networkx as nx# 初始化参数
n = 6
node = ['v' + str(i) for i in range(1, n+1)]
students = [50, 40, 60, 20, 70, 90]# 构建邻接矩阵
A = np.zeros((n, n))
A[0, [1, 2]] = [2, 7] # v1连接v2(2),v3(7)
A[1, [2, 3, 4]] = [4, 6, 8] # v2连接v3(4),v4(6),v5(8)
A[2, [3, 4]] = [1, 3] # v3连接v4(1),v5(3)
A[3, [4, 5]] = [1, 6] # v4连接v5(1),v6(6)
A[4, 5] = 3 # v5连接v6(3)
A = np.maximum(A, A.T) # 保证对称性# 计算最短路径
G = nx.from_numpy_array(A)
d = nx.floyd_warshall_numpy(G)# 医院选址分析
max_distances = np.max(d, axis=0)
hospital = node[np.argmin(max_distances)]# 小学选址分析
weighted_dist = np.dot(d.T, students)
school = node[np.argmin(weighted_dist)]print(f"医院最佳选址: {hospital}")
print(f"小学最佳选址: {school}")
相关文章:

数学建模期末速成 最短路径
关键词:Dijkstra算法 Floyd算法 例题 已知有6个村庄,各村的小学生人数如表所列,各村庄间的距离如图所示。现在计划建造一所医院和一所小学,问医院应建在哪个村庄才能使最远村庄的人到医院看病所走的路最短?又问小学建…...
【Netty系列】实现HTTP文件服务器
目录 一、完整代码实现 1. Maven依赖 (pom.xml) 2. 主启动类 (FileServer.java) 3. 通道初始化类 (FileServerInitializer.java) 4. 核心业务处理器 (FileServerHandler.java) 二、代码关键解释 1. 架构分层 2. 安全防护机制 3. 文件传输优化 4. 目录列表生成 三、运…...

Java开发经验——阿里巴巴编码规范实践解析7
摘要 本文主要解析了阿里巴巴 Java 开发中的 SQL 编码规范,涉及 SQL 查询优化、索引建立、字符集选择、分页查询处理、外键与存储过程的使用等多个方面,旨在帮助开发者提高代码质量和数据库操作性能,避免常见错误和性能陷阱。 1. 【强制】业…...

权威认证与质量保障:第三方检测在科技成果鉴定测试中的核心作用
科技成果鉴定测试是衡量科研成果技术价值与应用潜力的关键环节,其核心目标在于通过科学验证确保成果的可靠性、创新性和市场适配性。第三方检测机构凭借其独立性、专业性和权威性,成为科技成果鉴定测试的核心支撑主体。本文从测试流程、第三方检测的价值…...
混和效应模型在医学分析中的应用
混合效应模型(Mixed Effects Model),又称多层模型或随机效应模型,因其能同时分析固定效应(群体平均趋势)和随机效应(个体或组间差异),在医学研究中广泛应用于处理具有层次…...
架构分享|三层存储架构加速云端大模型推理
作者简介 Nilesh Agarwal,Inferless 联合创始人&CTO 关于Inferless Inferless :无服务器 GPU 推理无需管理服务器即可扩展机器学习推理,轻松部署复杂的自定义模型。获得Sequoia、Antler 和 Blume Ventures 的支持。 大语言模型(LLM&a…...

Perforce P4产品简介:无限扩展+全球协作+安全管控+工具集成(附下载)
本产品简介由Perforce中国授权合作伙伴——龙智编辑整理,旨在带您快速了解Perforce P4版本控制系统的强大之处。 世界级无限可扩展的版本控制系统 Perforce P4(原Helix Core)是业界领先的版本控制平台,备受19家全球Top20 AAA级游…...

网络协议入门:TCP/IP五层模型如何实现全球数据传输?
🔍 开发者资源导航 🔍🏷️ 博客主页: 个人主页📚 专栏订阅: JavaEE全栈专栏 内容: 网络初识什么是网络?关键概念认识协议五元组 协议分层OSI七层模型TCP/IP五层(四层&…...

Docker安装Redis集群(3主3从+动态扩容、缩容)保姆级教程含踩坑及安装中遇到的问题解决
前言 部署集群前,我们需要先掌握Redis分布式存储的核心算法。了解这些算法能帮助我们在实际工作中做出合理选择,同时清晰认识各方案的优缺点。 一、分布式存储算法 我们通过一道大厂面试题来进行阐述。 如下:1-2亿条数据需要缓存ÿ…...

企业级 AI 开发新范式:Spring AI 深度解析与实践
一、Spring AI 的核心架构与设计哲学 1.1 技术定位与价值主张 Spring AI 作为 Spring 生态系统的重要组成部分,其核心使命是将人工智能能力无缝注入企业级 Java 应用。它通过标准化的 API 抽象和 Spring Boot 的自动装配机制,让开发者能够以熟悉的 Spr…...

如何用docker部署ELK?
环境: ELK 8.8.0 Ubuntu20.04 问题描述: 如何用docker部署ELK? 解决方案: 一、环境准备 (一)主机设置 安装 Docker Engine :版本需为 18.06.0 或更新。可通过命令 docker --version 检查…...

Redis最佳实践——安全与稳定性保障之高可用架构详解
全面详解 Java 中 Redis 在电商应用的高可用架构设计 一、高可用架构核心模型 1. 多层级高可用体系 #mermaid-svg-Ffzq72Onkv7wgNKQ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Ffzq72Onkv7wgNKQ .error-icon{f…...

【Python 算法零基础 4.排序 ⑥ 快速排序】
既有锦绣前程可奔赴,亦有往日岁月可回首 —— 25.5.25 选择排序回顾 ① 遍历数组:从索引 0 到 n-1(n 为数组长度)。 ② 每轮确定最小值:假设当前索引 i 为最小值索引 min_index。从 i1 到 n-1 遍历,若找到…...
Java面试实战:从Spring Boot到微服务与AI的全栈挑战
场景一:初步了解和基本技术问题 面试官:我们先从基础开始,谢先生,你能简单介绍一下你在Java SE上的经验吗? 谢飞机:当然!Java就像是我的老朋友,尤其是8和11版本。我用它们做过很多…...

Go 即时通讯系统:日志模块重构,并从main函数开始
重构logger 上次写的logger.go过于繁琐,有很多没用到的功能;重构后只提供了简洁的日志接口,支持日志轮转、多级别日志记录等功能,并采用单例模式确保全局只有一个日志实例 全局变量 var (once sync.Once // 用于实现…...
CppCon 2014 学习:Exception-Safe Coding
以下是你提到的内容(例如 “Exception-Safe Coding 理解” 和 “Easier to Read!” 等)翻译成中文并进一步解释: 承诺:理解异常安全(Exception-Safe Coding) 什么是异常安全? 异常安全是指&a…...

MYSQL MGR高可用
1,MYSQL MGR高可用是什么 简单来说,MySQL MGR 的核心目标就是:确保数据库服务在部分节点(服务器)发生故障时,整个数据库集群依然能够继续提供读写服务,最大限度地减少停机时间。 2. 核心优势 v…...

阿里通义实验室突破空间音频新纪元!OmniAudio让360°全景视频“声”临其境
在虚拟现实和沉浸式娱乐快速发展的今天,视觉体验已经远远不够,声音的沉浸感成为打动用户的关键。然而,传统的视频配音技术往往停留在“平面”的音频层面,难以提供真正的空间感。阿里巴巴通义实验室(Qwen Lab࿰…...

异步上传石墨文件进度条前端展示记录(采用Redis中String数据结构实现-苏东坡版本)
昔者,有客临门,亟需自石墨文库中撷取卷帙若干。此等文册,非止一卷,乃累牍连篇,亟需批量转置。然吾辈虑及用户体验,当效东坡"腹有诗书气自华"之雅意,使操作如行云流水,遂定…...

处理知识库文件_编写powershell脚本文件_批量转换其他格式文件到pdf文件---人工智能工作笔记0249
最近在做部门知识库,选用的dify,作为rag的工具,但是经过多个对比,最后发现, 比较好用的是,纳米搜索,但是可惜纳米搜索无法在内网使用,无法把知识库放到本地,导致 有信息…...

rtpmixsound:实现音频混音攻击!全参数详细教程!Kali Linux教程!
简介 一种将预先录制的音频与指定目标音频流中的音频(即 RTP)实时混合的工具。 一款用于将预先录制的音频与指定目标音频流中的音频(即 RTP)实时混合的工具。该工具创建于 2006 年 8 月至 9 月之间。该工具名为 rtpmixsound。它…...
【Netty系列】解决TCP粘包和拆包:LengthFieldBasedFrameDecoder
目录 如何使用? 1. 示例代码(基于Netty) 2. 关键参数解释 3. 协议格式示例 4. 常见配置场景 场景1:长度字段包含自身 场景2:长度字段在消息中间 5. 注意事项 举个例子 完整示例:客户端与服务端交互…...
stm与51单片机哪个更适合新手学
一句话总结 51单片机:像学骑自行车,简单便宜,但只能在小路上骑。 STM32:像学开汽车,复杂但功能强,能上高速公路,还能拉货载人(做复杂项目)。 1. 为啥有人说“先学51单片…...

【计算机网络】第3章:传输层—面向连接的传输:TCP
目录 一、PPT 二、总结 TCP(传输控制协议)详解 1. 概述 核心特性: 2. TCP报文段结构 关键字段说明: 3. TCP连接管理 3.1 三次握手(建立连接) 3.2 四次挥手(终止连接) 4. 可…...
从架构视角设计统一网络请求体系 —— 基于 uni-app 的前后端通信模型
在使用 uni-app 开发跨平台应用时,设计一套清晰、统一、可扩展的网络请求模块 是前期架构的关键环节。良好的请求模块不仅提高开发效率,更是保证后期维护、调试和业务扩展的基础。 一、网络请求设计目标 在uni-app中设计网络请求模块,应遵循…...

《信号与系统》--期末总结V1.0
《信号与系统》–期末总结V1.0 学习链接 入门:【拯救期末】期末必备!8小时速成信号与系统!【拯救期末】期末必备!8小时速成信号与系统!_哔哩哔哩_bilibili 精通:2022浙江大学信号与系统(含配…...
第32次CCF计算机软件能力认证-2-因子化简
因子化简 刷新 时间限制: 2.0 秒 空间限制: 512 MiB 下载题目目录(样例文件) 题目背景 质数(又称“素数”)是指在大于 11 的自然数中,除了 11 和它本身以外不再有其他因数的自然数。 题…...

mac笔记本如何快捷键截图后自动复制到粘贴板
前提:之前只会进行部分区域截图操作(commandshift4)操作,截图后发现未自动保存在剪贴板,还要进行一步手动复制到剪贴板的操作。 mac笔记本如何快捷键截图后自动复制到粘贴板 截取 Mac 屏幕的一部分并将其自动复制到剪…...

高考加油!UI界面生成器!
这个高考助力标语生成器具有以下特点: 视觉设计:采用了蓝色为主色调,搭配渐变背景和圆形装饰元素,营造出宁静而充满希望的氛围,非常适合高考主题。 标语生成:内置了超过 100 条精心挑选的高考加油标语&a…...

window ollama部署模型
注意去官网下载ollama,这个win和linux差别不大,win下载exe,linux用官网提供的curl命令 模型下载表:deepseek-r1 使用命令:Ollama API 交互 | 菜鸟教程 示例: 1.查看已加载模型: 2.文本生成接口 curl -X POST http://localhost:11434/v1/completions -H "Conte…...