2024年美国大学生数学建模竞赛D题五大湖的水问题解题全过程文档及程序

2024年美国大学生数学建模竞赛

D题 五大湖的水问题

原题再现:

  背景
  美国和加拿大的五大湖是世界上最大的淡水湖群。这五个湖泊和连接的水道构成了一个巨大的流域,包含了这两个国家的许多大城市地区,气候和局部天气条件各不相同。

  湖泊的水用于多种用途(捕鱼、娱乐、发电、饮用、航运、动物和鱼类栖息地、建筑、灌溉等)。因此,各种各样的利益相关者都对流入和流出湖泊的水的管理感兴趣。特别是,如果湖水排放或蒸发太少,则可能发生洪水,沿岸的家庭和企业将受到影响;如果排水量过大,大型船舶就无法通过水路运输补给和支持当地经济。主要问题是调节水位,使所有利益相关者都能受益。
  每个湖泊的水位取决于进出湖泊的水量。这些水位是温度、风、潮汐、降水、蒸发、水深(湖底形状)、河流流量和径流、水库政策、季节周期和长期气候变化之间复杂相互作用的结果。五大湖系统内的水流有两个主要控制机制——Sault-Ste Soo船闸的补偿工程。Marie(三座水电站、五座船闸和急流顶部的一座闸坝)和康沃尔的摩西桑德斯大坝,如附录所示。
  虽然两个控制大坝、许多渠道和渠道以及流域水库可能由人类控制,但降雨、蒸发、侵蚀、冰塞和其他水流现象的速率超出了人类的控制范围。地方司法管辖区的政策可能会产生不同于预期的效果,流域的季节性和环境变化也会产生不同的效果。这些变化反过来影响该地区的生态系统,从而影响湖泊及其周围的动植物群和生活在该流域的居民的健康。尽管大湖区似乎有一个固定的年度格局,但2至3英尺的正常水位变化可能会对一些利益攸关方产生重大影响。
  这种动态网络流问题是“邪恶的”——由于相互依赖性、复杂的需求和固有的不确定性,非常难以解决。对于湖泊问题,我们有着千变万化的动态和利益相关者的利益冲突。
  更多信息请参见问题D附录。

  要求
  国际联合委员会(IJC)请求贵公司国际网络控制建模师(ICM)提供支持,以协助管理和建模直接影响大湖区水流网络水位的控制机制(补遗中所示的两座大坝——补偿工程和Moses Saunders大坝)。贵公司ICM主管已指示贵公司团队负责开发模型和实施模型的管理计划。您的主管指出,有几个考虑因素可能有助于实现这一目标,首先是为大湖区建立一个网络模型,并将苏必利尔湖的河流流量连接到大西洋。您的主管提到的其他一些可选考虑事项或问题包括:

  •确定五大湖在一年中任何时候的最佳水位,同时考虑到各利益攸关方的愿望(每个利益攸关方的成本和收益可能不同)。
  •建立算法,根据五个湖泊的流入和流出数据保持最佳水位。
  •了解控制算法对两个控制坝流出的敏感性。鉴于2017年的数据,您的新控制措施是否会使各利益相关者在该年的实际记录水位令人满意或更好?
  •您的算法对环境条件变化(如降水、冬季积雪、冰塞)的敏感性如何?
  •重点分析影响安大略湖的利益相关者和因素,因为最近对安大略湖水位管理存在更多关注。
  IJC还对您用于通知模型和建立参数的历史数据感兴趣,因为他们很想比较您的管理和控制策略与以前的模型的比较。向IJC领导层提供一份一页的备忘录,传达您模型的关键特性,以说服他们选择您的模型。

整体求解过程概述(摘要)

  美国和加拿大的大湖面临水问题。为了满足利益相关者的利益,平衡生态系统,需要对大湖的水位进行调节。由于水的复杂动力学特性,控制水的流动具有挑战性。几十年来,一些组织一直在研究这个问题,并发布了解决方案,如Plan 2014。然而,利益相关者对目前的情况并不满意,不断变化的气候带来了不确定性。
  在这个项目中,建立了一个五大湖的网络模型来优化一年中任何时候的水位。它采用多层建模设计,既有用于描述五大湖主要流动过程的基本网络模型,也有用于细化影响流动的复杂因素的高级流动模型。与以前的计划相比,该计划允许增加湖泊水位的灵活性,适应高低水位之间的波动。

  主要步骤如下:
  首先,建立了连接五个湖泊的基本网络模型,分析了五个湖泊的主要水过程。结合对所提供数据的分析,建立了描述管网中水流的若干方程,为模型的建立奠定了基础。利用该模型和数据集,可以计算水位和流量。
  然后,在基本模型的基础上建立了先进的水流模型,以更好地描述影响水流的复杂过程。由于它分析了风、雪、冰塞等气象因素,因此更为全面和精确。该模型更侧重于安大略湖和圣劳伦斯河来解决子问题。敏感性分析表明,该模型对降水敏感,对融雪不敏感。
  为了找到满足利益相关者的方案,首先建立多个收益和成本函数,形成目标函数,从而建立多目标优化模型。然后采用NSGA-II算法,通过选择、交叉、变异等操作求解最优水位。
  此外,利用2017年的数据,从基于多元线性回归算法的用水量外推和新优化算法的计算两方面验证了模型的高稳定性和准确性。
  通过建立网络模型,有效地模拟和优化了五大湖的水位。它是有前途的、可靠的,而且对所有利益相关者都有利。更重要的是,这一新计划也是可持续的,将使大湖区走向更美好的未来。

问题分析:

  五大湖由五个相连的湖泊组成。密歇根湖和休伦湖的水位大致相同,通常被认为是完整的。该排水系统中的水从苏必利尔湖开始,流经休伦湖、伊利湖、安大略湖,最终流入大西洋。(图2)。

在这里插入图片描述

  连接这些湖泊的几条水道控制着水的流入和流出。水从一个湖流向下一个湖,是单向流。受降水、风、冰塞等自然因素的影响,由于这些物理因素随时间变化,水流有其年、月、日变化规律。
  水流的两个主要控制机制是Soo水闸和Moses Saunders大坝。可对其进行控制,以获得更好的水位,满足该区域的利益相关者。
  为了找到合适的水位调节方法,建立描述水流的基本网络模型是非常重要的。水位和流量在不同时段的变化规律是该模型的基础。基于该网络,可以计算出水位与水流之间的关系,这对于调节大湖的水位至关重要。
  水位和水流在不同时间尺度下有变化规律。它们受风、降水、雪等因素的影响,以安大略湖为例。上图显示水位每年都在变化。(图3)。

在这里插入图片描述
  背景:需要人工调节大坝流量
  在五大湖系统的水流中有两个主要的控制机制——Sault-Ste的补偿工程。还有康沃尔的摩西桑德斯水坝。其中,摩西桑德斯大坝管理着从安大略湖流入圣劳伦斯河的流量。大坝流量的适当调节对安大略湖水位以及圣劳伦斯河下游流量和水位的调节具有关键影响。
  安大略湖水位控制高级模型
  在我们设计的模型中,考虑了冰塞、降水和风等自然因素,期望通过设置大坝出流来调整上游和下游水位,以满足每个利益相关者的最佳水位。(集成所有利益相关者的最佳水位将在后面详细描述。)
  聚焦安大略湖-圣劳伦斯河
  由于近年来安大略省的水位管理问题越来越受到关注。我们采用安大略湖-圣劳伦斯河高级模型进行深入分析,假设安大略湖的流出量与摩西桑德斯大坝的流出量接近。(图9)随着供水趋势高于正常值或圣劳伦斯河流量减少,湖泊排放量增加。随着供应趋势低于正常值或圣劳伦斯河流量增加,湖泊排放量减少。
在这里插入图片描述
  在一年中任何时候确定大湖区的最佳水位都需要考虑若干因素。由于最近对安大略湖的管理越来越感兴趣,因此本文将重点关注六类安大略湖利益相关者的愿望,以此作为获得安大略湖最佳水位的手段。
  该方法也同样适用于其他四个湖泊的最优水位计算,从而找到整个流域的最优水位。
  任何一个临界低水位或高水位都不会对系统产生“不利影响”。该系统用户所遭受的危害程度在很大程度上取决于位置和使用情况,有时还取决于一年中的时间,因为暴风雨天气和大风可能会造成巨浪,损坏任何高水位的海岸线。
  本文将考虑六类船东:航运公司、管理船坞或居住在蒙特利尔港附近的人、环保人士、安大略湖沿岸的财产所有者、安大略湖上的游船和渔船以及水力发电公司。它们与水位的关系如图所示。
  首先建立其效益和成本函数,找到相应的目标函数。由于多目标优化模型能够同时考虑多个目标,因此更适合这种问题场景,遗传算法具有很强的鲁棒性,适用于处理复杂的优化问题,即使在优化目标不明确或不确定的情况下也能进行优化。为此,建立了多目标优化模型,并采用遗传算法NSGA-II对模型进行求解。
在这里插入图片描述

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分代码:(文档及代码not free)

from typing import List, Tuple
# Definition of the objective functiondef objective functions(x,y):
f1 =x+ 1f2=(x-2)**2f3 =x+yreturn np.array([f1,f2,f3])
# Initializing populations
def create population(pop size:int,n var: int)
->np.ndarray:return np.random.rand(pop size,nvar)*10-5
# non-dominated order
def non_dominated sorting(population: np.ndarray)->Tuple[np.ndarray, List[List[int]]]:pop size= len(population)fronts =[[]]
domination counts =np.zeros(pop size)
dominated solutions=lforin range(pop size)]
ranks = np.zeros(pop size)
for i in range(pop size):
for j in range(pop size):
if np.all(objective functions(*population[i])<objective functions(*population[j])):
dominated solutionsli].append(j)elif np.all(objective functions(*population[j])< objective functions(*population[i])):
domination counts[i]+= 1ifdomination counts[i]== 0:ranks[i]=0
fronts[o].append(i)
i = 0while fronts[il:
next front =for p in frontsli]:
for q in dominated solutionslp]:
domination countslg]-= 1if domination counts[g]== 0:
ranks[q]=i+1next front.append(q)
i += 1
fronts.append(next front)
return ranks, fronts[:-1]
spl best water level = make interp spline(snowmelt, best water level, k=3)
spl satisfaction = make interp spline(snowmelt, satisfaction, k=3)
snowmelt smooth = np.linspace(snowmelt.min(),snowmelt.max(),308)
best water level smooth = spl best water level(snowmelt smooth)
satisfaction smooth=spl satisfaction(snowmelt smooth)
fig,ax1= plt.subplots()
color ='tab:blue
ax1.set xlabel('snowmelt(ml)')
ax1.set ylabel('Water level(m)',color=color)1ine1, = ax1.plot(snowmelt smooth, best water level smooth, color=color, label-'water Level')ax1.tick 
params(axis='y',labelcolor=color)
ax2 = ax1.twinx()
color ='tab:red
ax2.set ylabel('satisfaction(%)',color=color)
line2, = ax2.plot(snowmelt smooth, satisfaction smooth, color=color, label='satisfaction')
ax2.tick params(axis='y',labelcolor=color)
fig.tight layout()
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
  • 16
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值