2025数学建模美赛|D题成品论文

通往更美好城市的路线图

摘要

本研究旨在通过改善巴尔的摩市的交通系统来提升居民的生活质量,分析了三种关键交通项目:大桥修复、公交系统优化和步行网络完善,并评估了它们对城市交通流动性、环境影响和居民满意度的综合影响。通过构建交通网络模型,我们分析了每个项目对交通效率、环境可持续性及居民出行便利性的影响。具体来说,我们通过优化公交系统,减少了通勤时间并提高了公交覆盖范围;评估了步行网络完善对减少私家车依赖及降低碳排放的积极作用;同时,修复大桥对于缓解城市中心交通拥堵的影响也得到了探讨。研究结果表明,公交系统优化方案最能有效提升巴尔的摩市居民的生活质量,优化了交通流动性、减少了碳排放并增加了居民的出行满意度。因此,本研究推荐优先实施公交系统优化,并提出了未来实施该项目的相关建议。

**针对问题一,**使用图论(Graph Theory)构建交通网络模型,节点代表交叉口、枢纽或交通站点,边代表道路或连接线路。对大桥倒塌后的交通路径进行调整,考虑替代路线的负荷变化,特别是交通流量较大的区域。

**针对问题二,**通过计算最短路径、通勤时间等指标,评估公交优化或步行网络完善后,居民的通勤时间是否得到有效缩短。使用遗传算法、粒子群优化或其他优化算法,优化公交站点和路线布局,或优化步行道网络。

**针对问题三,**选择交通效率,环境影响,居民满意度,评估公交系统优化对居民通勤便利性、安全性、舒适性的影响,模拟改进后的公共交通服务是否提升了居民的整体出行体验。

最后,我们对提出的模型进行全面的评价:本文的模型贴合实际,能合理解决提出的问题,具有实用性强,算法效率高等特点,该模型在城市路径规划方面也能使用。

关键词: 交通网络模型 遗传算法 图论

一、 问题重述

1.1 问题背景

交通系统可以促进或阻碍城市的发展以及居民的生活质量。成功的交通基础设施可以吸引企业、学校、游客以及新居民。然而,城市面临的交通挑战复杂且相互交织。不同利益相关者(城市居民、企业主、郊区居民、通勤者、过境旅客、游客等)在交通系统中的需求和优先事项各不相同。系统中的某些元素可能对特定利益相关者有利,但会妨碍其他需求。高速公路、公交线路和铁路可能会干扰城市自行车骑行者和行人,而步行道和红绿灯又可能让车辆驾驶员面临延误。此外,城市地理条件(如河流、港口、山丘和排水系统)有时成为交通系统的最大障碍,甚至土壤结构和天气条件也会造成破坏。

1.2 问题提出

问题一:通过网络模型评估大桥倒塌或重建对交通系统和利益相关者的影响。

巴尔的摩市的弗朗西斯·斯科特·基大桥的倒塌对交通系统造成了显著的影响,特别是对港口区域和繁忙的I-95州际高速公路流量产生了阻碍。大桥是巴尔的摩地区的重要交通枢纽,倒塌不仅影响了通行效率,还导致了车辆绕行和交通堵塞。因此,我们需要通过交通网络模型评估重建大桥对交通流动、居民通勤、商业活动、游客和过境旅客的影响。

问题二:选择一个与公交或步行系统相关的项目,评估其对交通系统的影响。

巴尔的摩市的公交系统和步行网络存在一定的不足,特别是在一些交通密集的区域和远郊地区。考虑到巴尔的摩城市的空间布局和交通需求,优化公交系统或步行网络可以有效地提高居民的出行效率和生活质量。此问题的重点是选择一个项目,并评估其对交通系统的影响,重点关注通勤时间、交通流量、碳排放等方面的效果。

问题三:推荐一个最能改善巴尔的摩居民生活的交通项目,并评估其对利益相关者和其他交通需求的影响。

在多个项目中选择一个最能有效改善巴尔的摩居民生活质量的交通项目,并进行综合评估。需要考虑不同利益相关者(如居民、企业、游客、政府等)的需求,评估不同项目的成本、效益、环境影响等。通过综合考虑交通效率、环境影响和居民满意度,推荐最合适的项目。

二、 问题分析

问题一:通过网络模型评估大桥倒塌或重建对交通系统和利益相关者的影响。

数据收集与处理:

收集大桥倒塌前后的交通流量数据,包括MDOT_SHA_Annual_Average_Daily_Traffic_Baltimore.csv等交通数据,分析事故发生前后巴尔的摩的交通流量变化。

获取相关道路和交通设施的信息(如大桥的替代道路、绕行方案等),并在交通网络模型中反映。

构建交通网络模型:

使用图论(Graph Theory)构建交通网络模型,节点代表交叉口、枢纽或交通站点,边代表道路或连接线路。

对大桥倒塌后的交通路径进行调整,考虑替代路线的负荷变化,特别是交通流量较大的区域。

评估指标:

交通流量变化:通过网络模型分析大桥倒塌后,交通流量如何从大桥区域分流到周围道路,评估绕行道路的拥堵情况。

通勤时间:模拟不同利益相关者(居民、企业、游客等)因交通拥堵而增加的通勤时间。

商业和物流影响:分析大桥倒塌对商业活动(如港口货物运输、供应链等)产生的影响。

影响评估:

分析大桥倒塌对居民、企业、过境旅客、游客等的影响,评估社会、经济和环境方面的效应。

问题二:选择一个与公交或步行系统相关的项目,评估其对交通系统的影响。

项目选择:

公交系统优化:选择优化现有公交系统,提高公交站点的覆盖范围,增加公交班次,并改善换乘系统。

步行网络完善:增加步行道、步行桥,连接重要交通枢纽或商业区域,提升居民的步行出行便利性。

数据收集与模型构建:

使用提供的数据集(如Bus_Routes.csv,Bus_Stops.csv,nodes_all.csv,edges_all.csv)构建交通网络图。

将优化公交系统或步行网络纳入现有交通网络模型中,计算优化后的公交路线、步行道分布和交通流量。

评估指标:

交通效率:通过计算最短路径、通勤时间等指标,评估公交优化或步行网络完善后,居民的通勤时间是否得到有效缩短。

环境影响:评估通过优化公交系统和步行道的完善,减少私家车使用,从而减少碳排放的效果。

居民满意度:模拟优化后的公交系统和步行网络对居民出行的便利性、安全性以及舒适性的影响。

优化与仿真:

使用遗传算法、粒子群优化或其他优化算法,优化公交站点和路线布局,或优化步行道网络。

利用交通仿真工具(如SUMO、MATSim)对优化后的交通系统进行仿真,评估公交优化或步行网络改善对整体交通流量和居民满意度的影响。

问题三:推荐一个最能改善巴尔的摩居民生活的交通项目,并评估其对利益相关者和其他交通需求的影响。

项目选择:

选择公交系统优化作为最优推荐项目。公交系统的优化不仅能够提升交通效率,还能减少碳排放,增加居民的出行便利性。

多维度评估指标:

交通效率:评估公交系统优化后,居民通勤时间是否缩短,公交车次的增多是否有效提升了交通流动性。

环境影响:通过减少私家车使用、增加公共交通使用,计算碳排放减少的效果。

居民满意度:评估公交系统优化对居民通勤便利性、安全性、舒适性的影响,模拟改进后的公共交通服务是否提升了居民的整体出行体验。

影响分析:

对居民的影响:优化公交系统能减少居民的通勤时间、减少出行成本,提高公共交通的便利性。

对企业的影响:企业员工通勤效率提升,工作时间的利用率提高,企业整体生产力增强。

对政府的影响:政府投入公共交通优化项目,减少私家车使用,缓解交通拥堵,改善环境质量,提升城市的可持续发展。

对游客和过境旅客的影响:优化后的公交系统可以提高游客在巴尔的摩的出行便利性,增加游客对城市的吸引力。

成本效益分析:

评估公交系统优化项目的实施成本与预期效益,综合考虑交通流量提升、环境改善、居民生活质量提升等方面的效果。

结论与推荐:

通过评估公交优化项目的综合效益,结合环境保护、交通效率和居民满意度,推荐公交系统优化作为最适合提升巴尔的摩居民生活质量的交通项目。

三、 模型假设与符号说明

3.1 模型基本假设

3.2 符号说明

四、 数据预处理

4.1 数据清洗

对 edges_all.csv 数据:处理 lanes 和 maxspeed 字段中可能存在的缺失值或异常值,使用中位数或平均值填充。转换字段数据类型(如将 maxspeed 转换为数值类型)。使用 length 字段作为边的权重,计算路径距离。

对 MDOT_SHA_Annual_Average_Daily_Traffic_Baltimore.csv 数据:

将 AADT 数据转换为交通流量权重,结合 GIS Shape Length 字段计算单位长度流量。

标准化年度交通流量数据,公式为:

五、 模型建立与求解

5.1 问题一模型建立与求解

5.1.1 问题一求解思路

需要建立一个或多个网络模型来研究交通系统的问题,

使用数据集:如公交线路(Bus_Routes.csv)、节点与边(nodes_all.csv 和 edges_all.csv)、交通流量数据(MDOT_SHA_Annual_Average_Daily_Traffic_Baltimore.csv)。

模型选择:

图论模型:节点表示交叉路口,边表示道路或轨道。

流量分析:基于交通流量数据,构建交通容量和拥堵程度的网络模型。

工具与方法:利用Python 中的NetworkX 或OSMnx 库实现交通网络建模。

5.1.2 问题一模型建立

(1)交通网络的定义

将巴尔的摩的交通系统建模为加权有向图 G = (V,E):V :节点集合,表示道路交叉点、公交站点等位置。E :边集合,表示节点之间的道路或交通连接。每条边eij 赋予权重 wij ,权重基于距离、交通流量和车道数量综合计算。

(2)网络权重定义

对于每条边 eij ,综合权重公式为:

5.1.3 问题一模型求解与分析

图 1 中显示的是巴尔的摩交通网络采样节点和边的布局。

红色节点代表桥梁节点(目标桥梁)。蓝色节点表示普通交通节点。边表示节点之间的交通连接。

桥梁节点被单独标注,方便研究其在整个交通网络中的位置和作用。网络结构复杂,展示了节点和边的高密度分布情况。

图 2 中展示了桥梁倒塌后,通过优化后的交通流分布。

边的颜色深浅代表流量强度(深蓝色表示流量高,浅蓝色表示流量低)。使用颜色条表明优化流量的范围,从 0 到 1(归一化)。

桥梁倒塌后,部分路径的流量发生变化,显示了流量的重新分配。流量分布优化后,部分路径的流量显著增加,表明其承担了更多的交通流。
图1 桥梁倒塌前 图2 桥梁倒塌后 图3 桥梁倒塌后交通变化

**图3:**展示桥梁倒塌后优化流量的分布。

边的颜色:颜色从浅蓝到深蓝,表示交通流量的变化。流量越大,颜色越深。此图通过颜色条展示了优化后的交通流量,反映了流量分布的重新调整。

节点与边:仍然展示交通点和连接这些点的道路,经过优化后,部分道路的流量较高。

流量优化效果:桥梁倒塌后,交通流被引导至其他路径上,从而实现了流量的优化分配。显示了在极端事件下交通流的重新分配情况。

优化效果:该图为桥梁倒塌后流量分配的效果图,确保了交通系统在经历重大变化后仍然能保持有效运行。

分析总结与建议

  1. 交通流量优化

通过遗传算法进行的交通流量优化,合理调整了流量的分配,缓解了桥梁倒塌后的交通压力。尤其在高流量的区域,流量得到了有效的重新分配。

某些路径上的流量显著增大,这可能会引发新的拥堵问题,需要进一步优化。

  1. 绕行路径的有效性

桥梁倒塌后,优化的流量分布确保了绕行路径的有效性。通过算法的调整,其他道路的流量被合理增加,确保了交通流的均衡分布。

  1. 桥梁重建后的流量恢复预测

重建桥梁后,流量将恢复到正常水平,尤其是那些曾因桥梁倒塌而负担增加的路径。但在短期内,流量恢复的过程可能会因道路建设等因素出现滞后,需要继续进行流量优化。

附录

第一问求解代码

import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt
import geopandas as gpd
from shapely.geometry import Point, LineString
import numpy as np
import matplotlib.cm as cm
from matplotlib.colors import Normalize
from scipy.optimize import minimize
from scipy.optimize import differential_evolution
# 1. 加载数据
nodes_file = r"E:\Desktop\美赛\2025_MCM-ICM_Problems\2025_Problem_D_Data\nodes_all.csv"
edges_file = r"E:\Desktop\美赛\2025_MCM-ICM_Problems\2025_Problem_D_Data\edges_all.csv"
traffic_file = r"E:\Desktop\美赛\2025_MCM-ICM_Problems\2025_Problem_D_Data\MDOT_SHA_Annual_Average_Daily_Traffic_Baltimore.csv"

nodes = pd.read_csv(nodes_file, encoding='ISO-8859-1')
edges = pd.read_csv(edges_file, encoding='ISO-8859-1')
traffic = pd.read_csv(traffic_file, encoding='ISO-8859-1')
print("done Step 1")

# 2. 数据清洗
nodes = nodes[['osmid', 'x', 'y']]
edges = edges[['u', 'v', 'length', 'highway', 'maxspeed', 'geometry']]
traffic = traffic[['AADT (Current)', 'Road Name', 'County Name', 'Functional Class']]
print("done Step 2")

# 确保数据类型一致
nodes['osmid'] = nodes['osmid'].astype(int)
edges['u'] = edges['u'].astype(int)
edges['v'] = edges['v'].astype(int)

# 3. 识别大桥所在的道路段(假设桥梁节点为 27029857-775383890)
bridge_nodes = [27029857, 775383890]
missing_nodes = [node for node in bridge_nodes if node not in nodes['osmid'].values]

if missing_nodes:
    print(f"Missing nodes: {missing_nodes}")
else:
    print("All bridge nodes exist")
# 仅取前10000个节点和20000条边进行子图绘制,以提高渲染速度
sample_nodes = list(nodes['osmid'].unique())[:10000]
sample_edges = edges[(edges['u'].isin(sample_nodes)) & (edg-es['v'].isin(sample_nodes))].head(20000)

# 4. 构建交通网络
G = nx.DiGraph()

# 添加节点(跳过缺失坐标的情况)
for _, row in nodes.iterrows():
    if row['osmid'] in sample_nodes and not pd.isna(row['x']) and not pd.isna(row['y']):
        G.add_node(row['osmid'], pos=(row['x'], row['y']))

# 添加边(确保连接的节点存在)
for _, row in sample_edges.iterrows():
    if row['u'] in G.nodes and row['v'] in G.nodes:
        G.add_edge(row['u'], row['v'], weight=row['length'])

# 提取节点坐标位置
pos = nx.get_node_attributes(G, 'pos')

# 检查是否存在桥梁节点位置
existing_bridge_nodes = [node for node in bridge_nodes if node in pos]

# 5. 交通网络可视化
plt.figure(figsize=(12, 8))
nx.draw(G, pos, node_size=10, edge_color='gray', width=0.5, alpha=0.7)
if existing_bridge_nodes:
    nx.draw_networkx_nodes(G, pos, nodelist=existing_bridge_nodes, node_color='red', label='Bridge Nodes', node_size=50)
plt.title("Sampled Baltimore Traffic Network")
plt.legend()
# 保存图片
plt.savefig("baltimore_traffic_network.png", dpi=300, bbox_inches='tight')
plt.show()


# 6. 桥梁倒塌影响分析(移除桥梁节点)
G_removed = G.copy()
if G_removed.has_edge(27029857, 775383890):
    G_removed.remove_edge(27029857, 775383890)
    print("Bridge edge removed successfully.")
else:
    print("Edge (27029857, 775383890) does not exist in the graph.")

# 评估绕行路径的变化
source, target = 27029857, 900133411

7. 交通流量重新分配(使用最短路径算法)
sample_size = 500
edges_sample = edges.head(sample_size)

def optimize_with_de():
    def objective(x):
        return sum(x[i] / edges_sample['length'].iloc[i] for i in range(len(edges_sample)))

    bounds = [(0, traffic['AADT (Current)'].max())] * len(edges_sample)

    result = differential_evolution(objective, bounds, strategy='best1bin', maxiter=10, pop-size=15, disp=True)
    return result.x

optimized_flow_de = optimize_with_de()
print(optimize_with_de)
edges_sample['optimized_flow'] = optimized_flow_de
print("done optimized_flow")

# 8. 绘制流量优化后的道路网络
# edge_colors = [edges_sample['optimized_flow'].iloc[i] / edg-es_sample['optimized_flow'].max() for i in range(len(edges_sample))]
norm = Normalize(vmin=edges_sample['optimized_flow'].min(), vmax=edges_sample['optimized_flow'].max())
edge_colors = cm.Blues(norm(edges_sample['optimized_flow']))
plt.figure(figsize=(12, 8))
nx.draw(G_removed, pos, node_size=10, edge_color=edge_colors, width=2, edge_cmap=plt.cm.Blues)
plt.title("Optimized Traffic Flow after Bridge Collapse")
plt.colorbar(plt.cm.ScalarMappable(cmap=plt.cm.Blues), label="Traffic Flow")
plt.savefig("Optimized Traffic Flow after Bridge Collapse.png", dpi=300, bbox_inches='tight')
plt.show()

# 9. 遗传算法进行流量优化
from deap import base, creator, tools, algorithms

def evaluate(individual):
    return sum(individual[i] / edges['length'].iloc[i] for i in range(len(edges))),

creator.create("FitnessMin", base.Fitness, weights=(-1.0,))
creator.create("Individual", list, fitness=creator.FitnessMin)

toolbox = base.Toolbox()    
toolbox.register("attr_float", np.random.uniform, 0, traffic['AADT (Current)'].max())
toolbox.register("individual", tools.initRepeat, creator.Individual, toolbox.attr_float, n=len(edges))
toolbox.register("population", tools.initRepeat, list, toolbox.individual)
toolbox.register("evaluate", evaluate)
toolbox.register("mate", tools.cxBlend, alpha=0.5)
toolbox.register("mutate", tools.mutGaussian, mu=0, sigma=1, indpb=0.2)
toolbox.register("select", tools.selTournament, tournsize=3)

population = toolbox.population(n=50)
result = algorithms.eaSimple(population, toolbox, cxpb=0.5, mutpb=0.2, ngen=50, ver-bose=False)
best_solution = tools.selBest(population, k=1)[0]

edges['GA_optimized_flow'] = best_solution

# 10. 绘制遗传算法优化后的流量分布
edge_colors = [edges['GA_optimized_flow'].iloc[i] / edges['GA_optimized_flow'].max() for i in range(len(edges))]
plt.figure(figsize=(12, 8))
nx.draw(G_removed, pos, node_size=10, edge_color=edge_colors, width=2, edge_cmap=plt.cm.Reds)
plt.title("Genetic Algorithm Optimized Traffic Flow")
plt.colorbar(plt.cm.ScalarMappable(cmap=plt.cm.Reds), label="Optimized Traffic Flow")
plt.show()

略。

相关推荐
数模加油站13 小时前
2025数学建模美赛|E题成品论文
数学建模·数学建模美赛·2025美赛·美赛论文
数模加油站19 小时前
2025数学建模美赛|赛题翻译|E题
数学建模·翻译·数学建模美赛·2025美赛
金融OG19 小时前
6. 马科维茨资产组合模型+政策意图AI金融智能体(DeepSeek-V3)增强方案(理论+Python实战)
大数据·人工智能·python·算法·机器学习·数学建模·金融
小天数模1 天前
【2025美赛D题】为更美好的城市绘制路线图建模|建模过程+完整代码论文全解全析
数学建模
Better Rose1 天前
【2025年数学建模美赛E题】(农业生态系统)完整解析+模型代码+论文
数学建模·e题·美赛·美赛e题·2025美赛e题
AI技术控1 天前
2025美赛MCM数学建模A题:《石头台阶的“记忆”:如何用数学揭开历史的足迹》(全网最全思路+模型)
数学建模
C灿灿数模1 天前
2025美赛数学建模A题:解题的长期磨损——思路+代码+模型:
数学建模
Better Rose1 天前
【2025年数学建模美赛C题】第1-5问F奖解题思路+高级绘图+可运行代码
数学建模·美赛·美赛c题·2025美赛·2025美赛c题
数模加油站1 天前
2025数学建模美赛|F题成品论文
数学建模·美赛·数学建模美赛·2025美赛·美赛论文