2019美赛D题 人员疏散模型Python编程

Louvre_Evacuation

题目来源:2019年 美赛 D题
完整代码请见:https://github.com/izcat/Louvre_Evacuation

2019 ICM
Problem D: Time to leave the Louvre

问题背景

法国发生的恐怖袭击越来越多,在许多热门目的地,亟需一个应对紧急情况的疏散计划。
你们的ICM团队正在帮助设计在法国巴黎卢浮宫的疏散计划
总的来说,疏散的目标是让所有的人都撤离,尽快安全离开大楼。
接到疏散通知后,为了尽快清空建筑,每个人尽可能的通过一个最佳出口。

问题要求

建立一个卢浮宫紧急疏散模型,以满足:

  • 当出现突发意外事件时,指导游客人群从卢浮宫疏散 (evacuate visitors from the museum)
  • 探讨安保/急救人员进入策略 (allow emergency personnel to enter the building)
  • 确定人流移动的瓶颈 (identify potential bottlenecks limiting movement towards the exits)
  • 模型考虑各种威胁 (a broad set of considerations and various types of potential threats)

My Work:

不考虑个体行为的情况下,可以将卢浮宫抽象为二维平面图,记录各个关键节点、出口、节点之间的长度、路径信息等,建立图论模型,求解最短路、网络流等,从而得到疏散时间,瓶颈等结果。

从人群疏散的角度看,查阅资料,我们发现目前疏散模型大致有两种处理方式,元胞自动机模型和社会力模型。
本程序主要模拟了人员疏散的撤离情况。

编程目的

  • 研究人群在一般空间的流动情况
  • 出口数量、分布对疏散时间的影响
  • 障碍物对人员流动的影响
  • 定量求解人流密度,确定疏散瓶颈

算法思想

利用元胞自动机实现 (社会力模型人员会在地图上重叠)

  • 初始化地图,地图为矩形区域,基本信息包含长Length、宽Width、若干出口Exit、障碍物Barrier等
  • 基于该论文,出口距离在地图上反映为势能的高低,初始化地图的势能
  • 初始化人群,人群随机分布在地图的合法区域内
  • 疏散模拟:
    • 移动方向:每个人优先选择最短路进行撤离,考虑使用Moore型元胞,有8个移动方向
    • 移动速度:一定区域内(周围8个邻居元胞)人流密度决定人员的移动速度 (待改进:统计可视角度内的人流密度)

模拟结果

人员疏散过程模拟




热力图

反映瓶颈位置




使用Python编程实现人员疏散模拟

包含三个模块 main.py map.py people.py

main.py

界面实现,包含GUI类,显示地图、人员、疏散情况等信息

map.py

地图类,地图以点(px, py)集形式保存出口Exit位置及障碍物Barrier位置
出口对地图的势能初始化:利用BFS算法实现,多个出口取最小势能

people.py

包含两个类,Person类和People类,前者只有移动速度、位置等基本属性,后者包含了整个地图信息,人流密度等,方便指引每个人的移动

有待改进之处

模型人员移动策略可以修改为:

  • 只设置一定比例的人员(作为安保/疏导人员)能够自动走到出口
  • 其他人员随机走动/从众心理跟着人流走动

考虑人员增加更多属性,如年龄、性别、是否结队等

  • 不同年龄人群移动速度不同
  • 家人、朋友等同行人员等使用相同的移动策略
  • 男性群体可能更理性,倾向于走最短路径/避让人群

编程收获

  • 再次熟悉使用了pkinter实现GUI,并再次利用plt作图(热力图)
  • 深刻领会了 Python 的赋值、引用、拷贝问题 :可变对象之间的赋值是传引用,不可变对象的赋值是传值。详见博客
  • 求解最短路要注意连通性!!!初始距离设为无穷大可避免出现更新距离问题(不连通的区块距离为0导致错误)
  • 对矩阵np.array的访问,下标为浮点数只会报Warning,改了好久值类型dtype才发现下标为浮点数!

原文地址:https://www.cnblogs.com/izcat/p/12169268.html

时间: 2024-10-27 18:55:44

2019美赛D题 人员疏散模型Python编程的相关文章

2019美赛B题

问题B:发送无人机:开发空中灾难救援响应系统 背景:2017年,遭受美国波多黎各领土袭击的最严重飓风(见附件1)使该岛遭受严重破坏,造成2900多人死亡飓风风暴潮和波浪作用的综合破坏力对建筑物,房屋和道路造成了广泛的破坏,尤其是波多黎各东部和东南沿海地区.风暴和暴雨带来的风暴击倒了波多黎各80%的电线杆和所有输电线路,导致岛上340万居民基本丧失了电力.此外,风暴还破坏或摧毁了岛上大部分的蜂窝通信网络.岛上大部分地区的电力和电池服务中断持续数月,而在某些地区则更长.广泛的洪水阻塞并破坏了岛上的许

Linux运维人员如何学习python编程

从不会写代码,到自己独立能写代码解决问题 .这个问题很重要!盲目学习所谓的项目,最后 还是不会自己写代码解决问题.首先解决了独立能写代码解决问题,再通过项目来加强训练. 运维必须懂开发,特别是python开发,已经形成大家的共识,不懂开发的运维,路会越走越窄. 部分运维遇到的困难是:有的连书都不懂:有的书是可以看懂,别人写的简单代码也可以看懂,但自己不会写代码解决问题. 笔者认为学习编程不止是学习语法,需要学习算法(计算思维.解决问题的方法.编程思路). 何为计算思维: 计算思维(Computa

2017年第六届数学中国数学建模国际赛(小美赛)C题解题思路

这篇文章主要是介绍下C题的解题思路,首先我们对这道C题进行一个整体的概括,结构如下: C题:经济类 第一问:发现危险人群. 发现:欺诈的方式开始.雇佣或浪漫的承诺. 数据→确定特定的经济萧条地区→确定最危险的人群→针对这些人群的预防活动 被贩卖的因素(卷入人口贩运的风险因素): 贫困.失业.移民.逃避政治冲突.战争. 第二问:受害者身份和位置 发现:人口贩运网:动态的 贩毒者:频繁地改变分布.运输路线 (以避免被发现) ↓(信息不完整) 执法人员和分析人员→试图识别.摧毁 人口贩卖网络→(信息不

2019数学建模(美赛)模拟赛

问题A:贸易战最近,美国发起的贸易战引起了全球关注,这将对中国经济产生重大影响.处理贸易战带来的经济问题至关重要.请收集相关数据,建立合适的数学模型,分析美国贸易战的成因及其对双方经济的可能影响.最后,根据您的模型,本文提出了一些有效应对贸易战的政策建议. 问题B是上一年的美赛题目,我们队伍选择的A题,这里对B题不做叙述. 总体思路: 第二个问,通过模型分析,提出建议,可以在第三个模型总结中提出.此类资料可以去世界银行,世贸组织,中国海关等相关网站查询. 原文地址:https://www.cnb

ACM-ICPC 2019南昌网络赛I题 Yukino With Subinterval

ACM-ICPC 2019南昌网络赛I题 Yukino With Subinterval 题目大意:给一个长度为n,值域为[1, n]的序列{a},要求支持m次操作: 单点修改 1 pos val 询问子区间中某个值域的数的个数,连续的相同数字只记为一个.(即统计数字段的个数) 2 L R x y 数据范围: 1 ≤ n,m ≤ 2×10^5 1 ≤ a[i] ≤ n 解题思路: 连续重复的数字只记一次.所以考虑将每个数字段除第一个出现外的数字都删去(记为0).在读入操作的时候暴力模拟,同时维护

2019暑假——区域赛真题讲解

第一场[cx]2019.7.19 第一题 (2019 ICPC 徐州 H.Rikka with A Long Colour Palette) Q:n条线段(每条线段给出左右边界位置[ l, r ]),k种颜色.你要为每条线段染一种颜色,问至少能被k种颜色所覆盖的区间的最大总长度.∑n <= 2e6,1 <= k <= 2e5,0 <= l < r <= 1e9. A: 第二题 (2018ICPC南京 M - Mediocre String Problem ) Q:给一个

TI MSP430工程配置及2019年电赛A题编程示例(使用430 F5529)

配置 第一步:右击工程,选择Options 第二步:在General Options的Target选项卡里选择对应的器件Device,这里是MSP430G2231 第三步:在Debugger里选择FET Debugger: 第四步: 检查FET Debugger里的设置是否正确,这里是Texas Instrument USB-IF采用Automatic方式 这里选择Automatic与Automatic selection,当用串口会自动连接上串口. 第五步:编译程序,下载验证 电赛A题源码 小

【持续更新】一个简洁、易用的美赛LaTeX模板:easyMCM

若您无意阅读下面的这番引入性介绍,想直接下载模板,请点这里. 1 当前美赛模板通行情况的概述 美赛是许多大学生第一次接触\(\LaTeX\)的机会,但是由于时间安排上的原因,很多人都是在赛前几天匆匆拾起\(\LaTeX\)编译器决定用其排版论文.花了一下午安装编译器,又花了一晚上琢磨命令行里弹出来的各种莫名其妙的警告和错误--最终,一些队伍把美赛的时间浪费在对付"难用"的\(\LaTeX\)系统上,失去了许多宝贵的时间.除此以外,网上流传的各种参差不齐的美赛\(\LaTeX\)模板.\

2019模拟赛09场解题报告

目录 2019模拟赛09场解题报告 目录la~~ 题一:瞬间移动 题二:食物订购 题三:马蹄印 题四:景观美化 2019模拟赛09场解题报告 标签(空格分隔): 解题报告 Forever_chen 2019.8.20 目录la~~ 题一:瞬间移动 [题面] 有一天,暮光闪闪突然对如何将一个整数序列a1,a2,...,an排序为一个不下降序列起了兴趣.身为一只年轻独角兽的她,只能进行一种叫做"单元转换"(unit shift)的操作.换句话说,她可以将序列的最后一个元素移动到它的起始位置