2024年美国大学生数学建模比赛MCM问题B:搜索潜水器-思路解析与代码解答

news2024/11/16 20:48:48

2024 MCM
Problem B Searching for Submersibles

一、题目翻译

背景:

总部位于希腊的小型海上巡航潜艇(MCMS)公司,制造能够将人类运送到海洋最深处的潜水器。潜水器被移动到该位置,并不受主船的束缚。MCMS现在希望用他们的潜水器带游客在爱奥尼亚海底探险,寻找沉船。然而,在他们能够做到这一点之前,他们需要通过制定安全程序,以防失去与主船的通信和可能的机械缺陷,包括潜水器的推进力损失。特别是,他们希望你开发一个模型来预测潜水器的位置。与典型的陆地或海面上的搜救不同,有缺陷的潜水器可能会发现自己位于海底或水下的中性浮力点。它的位置可能会进一步受到洋流、海洋密度的不同,和/或海底的地理位置的影响。

词汇解释:

潜水器:潜水器是一种需要由更大的船只或平台来运输和支撑的水下航行器。这就区分了潜水器和潜艇,潜艇可以自我支撑,能够在海上长期独立运行。

中性浮力:发生在一个物体的平均密度等于流体的浸泡密度,导致浮力平衡的重力,否则会导致物体下沉(如果身体的密度大于液体的密度浸泡)或上升(如果它是更少的)。具有中性浮力的物体既不会下沉也不会上升。

问题:

您的任务是:

1.定位-开发一个模型,可以预测潜水器的位置。

o与这些预测的不确定性是什么?

o潜水器在事故发生前可以定期向主船发送哪些信息,以减少这些不确定性?潜水器需要什么样的设备呢?

2.准备-如果有的话,你会建议公司携带主船部署?您可以考虑不同类型的设备,但也必须考虑与该设备的可用性、维护、准备情况和使用相关的成本。如有必要,救援船可能需要配备哪些额外的设备来协助?

3.搜索-开发一个模型,它将使用来自您的位置模型的信息来推荐设备的初始部署点搜索模式,以尽量减少丢失的潜水器的定位时间。确定找到潜水器的概率作为时间和累积的搜索结果的函数。

4.外推-如何将你的模式扩展到其他旅游目的地,如加勒比海?你的模型将如何改变,以考虑到多个潜水器在同一附近移动?

准备一份不超过25页的报告,提供你的计划的细节。包括一份两页的报告备忘录,以帮助获得批准。

二、解题过程与结果

0.数据收集与解释说明

根据题目背景和任务收集了以下数据(在文件夹“dataset”内)

(1)File#1 = Countries.csv (大洲及其国家/地区列表)

(2)File#2 = Cities.csv(国家及其城市列表)

(3)File#3 = SeaTemperatures.csv (城市列表及其海水温度、湿度、风速)

(4)data_for_vis 东海洋流数据(亚洲)

Adts:water level   ugs和vgs分别是水平和垂直方向的速度分解量

(5)Coastal Data System - Waves (Mooloolaba) 01-2017 to 06 – 2019 海洋波浪数据

1. 定位-开发一个模型,可以预测潜水器的位置。

该问需要我们根据题目中的提示信息分析缺陷潜水器的定位,建立一个初步的粗模型。这个粗模型可以是很简单的、基于诸多理想条件和假设的,也可以包含很多未知信息(也就是不确定性),这些不确定性可以通过后续增添观测设备、更完善精确的定位数据等来解决。

·粗模型的分析与建立:

题目中提到的关键信息为:有缺陷的潜水器可能会发现自己位于海底或水下的中性浮力点

中性浮力点是指潜水器的浮力等于其重力的深度位置。计算中性浮力点的位置需要考虑潜水器的浮力、重力以及水的密度和压力的变化。

·假设水体是均匀、静止的,并且潜水器没有发动机或其他产生气泡的装置。

#完整模型见文末

·【o这些预测的不确定性是什么?】

以上只是一个基本的计算方法,实际情况可能更为复杂,因为潜水器的形状、浮力调节系统、环境因素(洋流、海底地理位置)等都会对结果产生影响,因此计算获得的只是一个大致估计深度(存在一定的偏差范围)。

而且,尽管可以确定中性浮力点深度,缺陷潜水器的具体位置坐标仍然难以获得。直接根据计算得到的粗略中性点进行盲目的搜索,有可能搜索到的不是目标潜水器而是其他生物或者非生物物体。

·【o潜水器在事故发生前可以定期向主船发送哪些信息,以减少这些不确定性?潜水器需要什么样的设备呢?】

查阅资料得知,无线电信号是很难穿透海水的,所以潜艇只能在浮出海面时才能接收信号,在海中潜艇靠指挥部的长波电台联系,但是长波信号传输很慢,而且能够接受信号的海水深度也并不深,只能定期接收长波信号。

#完整版分析建模见文末

结合国内现采用的技术,选取xxxx等设备,即令潜水器定时向主船发射以上信息从而获取定期的位置定位。现使用python进行仿真模拟,来验证潜水器在事故发生前可以定期向主船发送位置信息之后可以减少事故时定位潜水器不确定性。(模拟潜水器的运动和通信,并分析定位不确定性的变化。

#代码见文末

2.准备-如果有的话,你会建议公司携带主船部署?您可以考虑不同类型的设备,但也必须考虑与该设备的可用性、维护、准备情况和使用相关的成本。如有必要,救援船可能需要配备哪些额外的设备来协助?

该问需要在第一问给出的回答的基础上,对备选增添的所有设备进行综合评估(包含可用性、维护、准备情况、使用成本以及带来的搜寻成效增益)。

由于具体数据难以获得,所以本题需要进行大量的估计和测算。

首先列出各备选设备并计算出各个设备的参数。

#过程见完整版

 列出表格,并依据此建立综合评价模型选出最优方案。

层次分析法(Analytic Hierarchy Process,AHP)是一种多标准决策分析的方法,用于确定一组选择中最优选择的相对重要性。在这个问题中,我们将考虑价格、维护成本、可用性(技术)和增益指数四个标准,然后使用AHP确定这些标准的相对权重,并评估每个方案的得分。

#ahp实现见完整版

【必要性】:使用蒙特卡洛方法验证增设以上类别的设备带来了搜寻成效增益

假设潜水器和母船一起航行时潜水器在一段时间后失联,潜水器失联后会以原先的速度向随机的方向继续航行,分别模拟计算(1)母船随机网格搜寻到潜水器的概率(2)已知失联前的潜水器的位置、速度和方向,依据失联前的轨迹模式预测潜水器位置的正确率。

#见完整版

3.搜索-开发一个模型,它将使用来自您的位置模型的信息来推荐设备的初始部署点搜索模式,以尽量减少丢失的潜水器的定位时间。确定找到潜水器的概率作为时间和累积的搜索结果的函数。

在确定了问题二的结果之后,我们确定为母船和潜水器增设声呐基阵(母船)与应答器(潜水器)。由此,设置初始部署点和搜索模式。

设潜水器每间隔时间△t向母船发送信号,由此母船可以根据连续的信号解析获得潜水艇的位置坐标[xt,yt],以及潜水艇的前进速度[vxt,vyt](这里分解为x和y两个方向的速度,总速度为vt),潜水艇周围海洋密度ρ。

#在问题二基础上获得了额外的信息后,建立数学模型测算出最优部署点,
并结合贪婪算法和网格搜索模型制定最优搜索方案。
使用蒙特卡洛方法进行仿真随机模拟实验,与不指定方案而随机搜索得到的耗时进行对比,
验证了所制定的搜索方案是有效可行的。
#见完整版

 

4.外推-如何将你的模式扩展到其他旅游目的地,如加勒比海?你的模型将如何改变,以考虑到多个潜水器在同一附近移动?

该问题的地点有所改变,涉及的海洋密度、洋流情况、海底地形都有所变化。直接影响的中性点深度h公式发生了变化。

此外,洋流情况和海底地形对于失联潜水器的随后轨迹预测都将产生影响,可引入这些参数,和历史信息一起预测失联潜水器的运行轨迹,从而重新规划部署点。

对于新的搜索地点,修改模型中海洋洋流以及相关的地形参数即可。对于多潜水器模式,引入多个潜水器之间的相互影响参数,修改模型以考虑它们之间的相互作用。

 完整版请戳↓

链接:https://pan.baidu.com/s/1PgSN7m9I_kvRIP4FyfZBzw?pwd=lv3y 
提取码:lv3y 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1430297.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTTP和HTTPS区别!

http 是我们几乎天天都要打交道的东西,相关知识点有点多,所以也有不少面试必问的点,这里做了一些整理,帮且大家树立完整的 http 知识体系,对面试官说 so easy HTTP 的特点和缺点 特点:无连接、无状态、灵…

【HarmonyOS应用开发】Web组件的使用(十三)

文章末尾含:Web组件抽奖案例(ArkTS)-示例源码下载 Web组件的使用 一、概述 相信大家都遇到过这样的场景,有时候我们点击应用的页面,会跳转到一个类似浏览器加载的页面,加载完成后,才显示这个页…

vivado 运行编译

运行合成 运行定义并配置在合成过程中使用的设计方面。一个合成run定义了以下内容: •AMD设备在合成过程中成为目标 •要应用的约束集 •启动单个或多个合成运行的选项 •控制合成引擎结果的选项 要定义RTL源文件和约束的运行,请执行以下操作&…

Java 数据结构 二叉树(二)红黑树

目录 数据结构图-树 简介 规则 旋转 重新着色 红黑树构建过程 前言-与正文无关 生活远不止眼前的苦劳与奔波,它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中,我们往往容易陷入工作的漩涡,忘记了停下脚步&#xf…

关于华为应用市场上架,申请权限未告知目的被驳回问题的简单处理方式

关于华为应用市场上架过程中出现的【您的应用在运行时,未同步告知权限申请的使用目的,向用户索取(存储、拍照)等权限,不符合华为应用市场审核标准。】 使用方式: 1、引入 import permision from "/m…

配置实例—交换机VLAN聚合配置实例

一、组网需求 某公司拥有多个部门且位于同一网段,为了提升业务安全性,将不同部门的用户划分到不同VLAN中。现由于业务需要,不同部门间的用户需要互通。如图1所示,VLAN2和VLAN3为不同部门,现需要实现不同VLAN间的用户可…

【MySQL】学习如何通过DQL进行数据库数据的基本查询

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-KvH5jXnPNsRtMkOC {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

Java学习day28:线程池Pool(知识点非常非常的详解)

声明:该专栏本人重新过一遍java知识点时候的笔记汇总,主要是每天的知识点题解,算是让自己巩固复习,也希望能给初学的朋友们一点帮助,大佬们不喜勿喷(抱拳了老铁!) 往期回顾 Java学习day27:join方…

YOLOv5算法进阶改进(15)— 引入密集连接卷积网络DenseNet

前言:Hello大家好,我是小哥谈。DenseNet(密集连接卷积网络)是一种深度学习神经网络架构,它在2017年由Gao Huang等人提出。DenseNet的核心思想是通过密集连接(dense connection)来促进信息的流动和共享。在传统的卷积神经网络中,每个层的输入只来自于前一层的输出。而在…

c语言---操作符(详解)

目录 一、操作符的分类二、算术操作符三、 移位操作符3.1<<左移操作符3.1.1移位规则3.1.2直接上代码以及解释 3.2>> 右移操作符3.2.1移位规则3.2.2画图解释 3.3注意 四、位操作符&#xff1a;&、|、^、~4.1&按位与4.1.1按位与的计算逻辑4.1.2代码4.1.3运行…

Modbus协议学习第七篇之libmodbus库API介绍(modbus_write_bits等)

写在前面 在第六篇中我们介绍了基于libmodbus库的演示代码&#xff0c;那本篇博客就详细介绍一下第六篇的代码中使用的基于该库的API函数。另各位读者&#xff0c;Modbus相关知识受众较少&#xff0c;如果觉得我的专栏文章有帮助&#xff0c;请一定点个赞&#xff0c;在此跪谢&…

redis布隆过滤器(Bloom)详细使用教程

文章目录 布隆过滤器1. 原理2. 结构和操作3. 特点和应用场景4. 缺点和注意事项 应用-redis插件布隆过滤器使用详细过程安装以及配置springboot项目使用redis布隆过滤器下面是布隆过滤器的一些基础命令 扩展 布隆过滤器 Bloom 过滤器是一种概率型数据结构&#xff0c;用于快速判…

算法学习——华为机考题库5(HJ31 - HJ35)

算法学习——华为机考题库5&#xff08;HJ31 - HJ35&#xff09; HJ31 单词倒排 描述 对字符串中的所有单词进行倒排。 说明&#xff1a; 1、构成单词的字符只有26个大写或小写英文字母&#xff1b; 2、非构成单词的字符均视为单词间隔符&#xff1b; 3、要求倒排后的单…

Jmeter,如何从数组参数中取值

有个post请求&#xff0c;参数“equipment_ids”&#xff0c;是个数组&#xff0c;需求每次执行的时候&#xff0c;按顺序取equipment_ids中不同的值 要实现在 JMeter 中每次执行请求时按顺序取不同的 equipment_ids 中的值&#xff0c;你可以使用 Counter 元件来生成索引&…

Linux 磁盘空间占用率100%的排查

&#x1f4d1;前言 使用 Linux 操作系统时&#xff0c;可能会遇到磁盘空间不足的错误&#xff0c;这种错误通常会导致系统运行缓慢或崩溃。本文将介绍磁盘排查的方法。⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1…

【深入浅出Java性能调优】「底层技术原理体系」详细分析探索Java服务器性能监控Metrics框架的实现原理分析(Dropwizard度量基础案例指南)

深入探索Java服务器性能监控Metrics框架的实现原理分析 前提介绍Dropwizard MetricsDropwizard的特点Dropwizard的开发案例需要引入Maven依赖常用度量类型Meter(每秒请求数为单位测量请求率)定义度量核心MetricRegistry构建对应的Meter指标对象请求标记采样业务方法控制报告器…

【C++入门到精通】C++的IO流(输入输出流) [ C++入门 ]

阅读导航 引言一、C语言的输入与输出二、流是什么三、CIO流1. C标准IO流&#xff08;1&#xff09;istream&#xff08;2&#xff09;ostream&#xff08;3&#xff09;iostream&#xff08;4&#xff09;cin 和 cout 2. C文件IO流&#xff08;1&#xff09;ifstream&#xff0…

WPF简介

WPF早期名称为Avalon&#xff0c;是微软的一个项目&#xff0c;目的是构建统一的平面展示平台 WPF是一个与分辨率无关的UI框架&#xff0c;是一种基于矢量的呈现引擎技术&#xff1b;所用的语言为XAML(全称Extensible Application MarkupLanguage)&#xff0c;它的基本度量单位…

02 使用jdk运行第一个java程序:HelloWorld

使用jdk运行第一个java程序 1 HelloWorld小案例1.1 编写流程1.2 错误示例 首先在CMD命令行里面&#xff0c;使用javac xxxx.java&#xff0c; 进行编译&#xff0c;其中会有报错&#xff1b; 然后生成xxxx.class 文件&#xff0c;然后使用java xxxx.class 进行运行。 1 HelloWo…

回归预测 | Matlab实现POA-CNN-LSTM-Attention鹈鹕算法优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制)

回归预测 | Matlab实现POA-CNN-LSTM-Attention鹈鹕算法优化卷积长短期记忆网络注意力多变量回归预测&#xff08;SE注意力机制&#xff09; 目录 回归预测 | Matlab实现POA-CNN-LSTM-Attention鹈鹕算法优化卷积长短期记忆网络注意力多变量回归预测&#xff08;SE注意力机制&…