结合最短路径改进的社会力人群疏散仿真模型
2021-04-23李俊
李 俊
宁波工程学院 电子与信息工程学院,浙江 宁波315211
当人群密集场所(如商场、交通枢纽、学校、医院等)发生火灾、地震、恐怖袭击等紧急事件时,人群需要及时疏散到安全区域。如果建筑布局复杂,安全通道和逃生出口设计得不合理,或在突发事件时没有对人群进行合理有效的疏散指导,极易使人错过最佳疏散时机,导致出现严重的人员伤亡后果。因此,设计布局合理的建筑物,在公共场所发生突发事件前能进行预防,以及在突发事件发生时能对人群进行合理科学的疏导进行指导,是目前公共安全领域亟待解决的问题。
突发事件中人群疏散行为研究方法主要分为两种:一是在规定的时间和地点中,组织人员进行模拟疏散演习,获取疏散数据进行分析。另外是利用计算机进行场景建模,结合社会学、心理学和力学等学科,进行人群疏散仿真,研究在不同情景下的人群疏散特征规律。前者方法消耗较多的人力物力,存在安全隐患,难于开展大规模研究。后者方法在成本和安全性上有较大优势,可以在不同场景中重复仿真,通过仿真数据可以判断建筑物的疏散通道设计得是否合理,是否满足人群疏散的要求,也可以为制定科学合理的疏散方案提供决策支持。因此利用计算机进行人群仿真是研究人群疏散行为的重要途径。
许多研究人员和机构对人群疏散仿真进行了广泛的研究和探索,主要人群仿真模型有社会力模型(SFM)[1-2]、元胞自动机模型(CA)[3-4]和势能场模型(PF)[5-6],其中社会力模型应用广泛,许多学者对其进行了优化和改进。文献[7]设计了带有动态导航场的扩展SFM,以研究双向行人运动。文献[8]设计了一种改进的两层SFM用于仿真人群聚会过程。文献[9]利用SFM开发了用于交叉路口的行人行为分析的微观仿真模型。文献[10]在SFM 中增加了领导者参数进行人群仿真。文献[11]基于改进的SFM 开发了自动扶梯中拥堵风险的仿真模型。文献[12]利用密度场对SFM进行了改进。文献[13]提出紧张系数、出口可靠性等参数改进SFM 来仿真车站的负重人群疏散。文献[14]改进SFM的二维特性,在三维楼梯空间验证SFM 可行性。文献[15]基于SFM 建立了考虑行人随机行为的仿真模型。
在人群疏散仿真过程中,疏散路径的选择对行人疏散时间和效率有重要影响。文献[16]建立了一个动态规划模型,通过找到最优解来确定路径。文献[17]基于改进的动态参数模型,提出了一种具有不对称出口布局的房间行人疏散的仿真模型。文献[18]采用一种多行人导航图与SFM相结合来执行路线规划。文献[19]提出了一种性能评估框架用于城市疏散建模的行人导航模型。
本文结合最短路径提出一种适用于多障碍物和多出口场景下的社会力人群疏散仿真模型。该模型能够根据行人的位置、场景中障碍物的分布及每个出口的位置规划出一条合理有效的疏散路径。该模型能够有效解决社会力模型出现行人运动停滞不前,行人陷入非凸边形障碍物中和行人仿真的疏散路线与行人实际选择的路线不相符等问题。通过相关实验表明该人群疏散模型在人群仿真上更加真实。
1 社会力模型存在的问题
1.1 社会力模型原理
Helbing等人[1-2]观察到行人在逃生过程中会与障碍物和其他人保持一定安全距离后,于1998 年提出了社会力模型,该模型基于牛顿的力学公式和行人的逃生行为,将每个行人简化抽象为用一个粒子来描述,该粒子受到目的地的吸引产生一个自身的驱动力,同时该粒子受到与障碍物和其他粒子的斥力和摩擦力,在这些力的合力作用下,该粒子在二维的空间中产生加速度,驱动该粒子连续运动,其使用动力学公式如下:
其中,mi(v0i(t)e0i(t)-vi(t))/τi为行人指向目的地的驱动力,fij为行人间的作用力,fiw为行人与障碍物间的作用力。mi是行人质量,v0i、vi(t)为行人的期望速度和实际速度,e0i(t)为期望的运动方向,τi为适应时间。
行人间的作用力fij由排斥力和摩擦力组成,其计算公式如下:
其中,Ai、Bi、k、κ为常数量,Ai为行人间排斥力的强度,Bi为产生排斥力的最小距离,k和κ为较大的常量。rij=ri+rj,表示行人的半径之和。dij表示行人间质心的距离,dij=‖ri-rj‖。nij表示由行人间的标准化向量,nij=(n1ij,n2ij)=(ri-rj)/dij。g(x) 表示一个函数,当行人不能互相接触时(rij<dij)取值为0,否则为x。 Δvtji表示行人间的切线方向的相对速率,Δvtji=(vj-vi)·tij,tij表示行人间的切线方向,tij=(-n2ij,n1ij)。
行人和障碍物间的作用力fiw由排斥力和摩擦力组成,其计算公式如下:
其中,diw表示行人和障碍物边缘的距离,niw表示由障碍物边缘到行人的标准化向量,vi表示行人的实际速率,tiw表示行人与障碍物边缘的切线方向。社会力模型中参数详见表1。
表1 社会力模型参数
1.2 社会力模型在人群仿真中存在的问题
基于社会力模型进行人群疏散仿真过程中,行人在社会力的驱动下可以避免行人之间相互碰撞,向目的地方向运动,被广泛应用于突发事件人群疏散仿真,但在多障碍物场景中,障碍物的形状、位置分布会影响行人的疏散行为,导致基于社会力模型的人群疏散仿真有可能出现下列问题。
(1)行人运动轨迹震荡、停滞不前
根据社会力模型的原理,如果行人和目的地之间没有障碍物,行人在自驱动力和行人间的作用力下会疏散到目的地,但当行人和目的地之间有障碍物时,如果行人运动方向和障碍物垂直,则会出现行人运动轨迹震荡,停滞不前现象。例如图1 场景中,S点为行人出发点,T点为目的点,W为障碍物。根据公式(3),当行人距离W较远时,自驱力大于障碍物的斥力,行人向W运动;当行人逐渐靠近W时,受W的斥力逐渐增加,当斥力大于自驱动力时,行人开始减速运动;当速度减到0时,行人开始反向运动,当行人远离W过程中受到W的斥力越来越小,使运动方向再次反转,行人又接近障碍物。该过程会重复进行多次,导致出现行人运动轨迹振荡现象,当行人受到的合力为0时,行人将停滞在G1点,无法抵达T点。
图1 行人运动轨迹震荡、停滞不前
(2)行人无法绕过非凸边形障碍物
当场景中有非凸边形障碍物时,社会力模型会使处在非凸边形区域内的行人无法绕出障碍物。例如图2为一个具有非凸边形障碍物的场景,当S点的行人在社会力模型驱动下运动到G1 点后,行人与W接触,产生排斥力和摩擦力,由于行人此时受到自驱动力、与W的排斥力和摩擦力的作用下会沿着W向下运动,当行人运动到G2 点后,行人受到的自驱动力与W垂直,行人最终会停止在G2 点,无法绕过障碍物疏散到目的地点。
图2 行人无法绕过非凸边形障碍物
(3)行人疏散仿真路径不合理
社会力模型中行人的运动路径依赖于合力的驱动,在某些场景中,该模型不能产生合理的行人运动轨迹。例如图3 场景,S点行人往往会选择最短路径进行疏散,即选择S→G1 →T疏散路径。然而在社会力模型中,S点行人在社会力的作用下首先运动到G2 点,然后碰撞到W后沿着W向上运动到G3 点,绕过W后,在目的地方向的自驱力的作用下运动到T点,整个疏散轨迹为S→G2 →G3 →T,与行人实际疏散路径不相符。
图3 行人仿真的疏散路径过长
2 基于最短路径改进的社会力模型
针对社会力模型存在的上述问题,提出一种基于最短路径改进的社会力模型,解决在复杂空间场景中的行人疏散仿真问题。首先,在障碍物的每个顶点附近选择一个合理的位置作为行人路径节点。然后,根据行人初始节点、路径节点、目的节点之间的连通性,以及节点的安全系数和拥挤系数对节点通行性的影响构造一个无向图,并在无线图中生成从行人初始节点到目的节点的最短路径。最后基于社会力模型将行人按照最短路径疏散到目的地。
2.1 生成路径节点
用多边形表示场景中的障碍物。为了使行人在疏散过程中能绕过障碍物,并且不与障碍物发生碰撞,在障碍物的每个顶点附近生成一个节点作为行人绕过障碍物的路径节点。生成的节点需满足两个条件:一是所生成的节点不能与障碍物相交,因为如果相交,会使行人与障碍物发生碰撞,出现行人运动轨迹振荡、停滞不前现象。例如图4中,如果D1 点或D本身点作为顶点D附近的节点,当行人抵达该节点时将会与障碍物发生碰撞,导致行人产生振动、停滞不前。另一个是如果场景中相邻的两个顶点是连通的,那么由这两个顶点生成的路径节点在场景中也必须是连通的,因为如果不保持连通性将会导致疏散行人与障碍物发生碰撞,例如图4中选择A1 和B1 为顶点A和B的路径节点,顶点A和B在场景中是连通的,但是生成的路径节点A1 和B1不是连通的,行人会与障碍物发生碰撞。图4 中A1 和B2 为正确的路径节点的样例,因为它们既不与障碍物相交,它们的连线又保持了连通性。
图4 选择路径节点
为了使选择的路径节点满足上述两个条件,选择在障碍物顶角的角平分线的反向延长线上,找到距离顶点的距离为行人N倍半径长度的点作为该顶点生成的路径节点。以图5中顶点B生成路径节点为例,描述路径节点生成算法。
图5 障碍物顶点对应的路径节点
输入:顶点A、B、C的坐标(Ax,Ay),(Bx,By),(Cx,Cy)。
输出:角B的角平分线BF的反向延长线上距离B点长度为N×r的B'的坐标。
步骤:
(1)根据顶点A、B的坐标,求出AB的直线方程为:
(2)根据顶点B、C的坐标,求出BC的直线方程为:
(3)设直线AB和BC的角平分线为BF,设点(Fx,Fy)为直线BF上的任意一点。根据角平分线定理,点(Fx,Fy)到直线AB和BC距离相等,得到方程:
(4)根据公式(6),当Fx取值为0时可得到Fy的两个值,设为Fy0、Fy1。通过(0,Fy0)、(Bx,By)和(0,Fy1)、(Bx,By)可以得到直线AB和BC的两条对应的角平分线BF和BF',如图6所示。
图6 生成路径节点过程
(5)在直线BF和BF'上分别求出距离B点距离为NR的点,可以得到四个点,分别是B1、B2、B3、B4,这四个点中只有一个点可以作为路径节点。为了确定该点,首先找出这四个点中位于障碍物内的点,该点所在的直线上的另一个点即是所选择的路径节点。如图6中找到位于障碍物内的点是B1 点,该点所在的直线是BF,该直线上另一个点是B3,则B3 的坐标是顶点B对应路径节点B'的坐标。
2.2 判断路径节点的可选择性
疏散路径节点的通行状况会随着环境的变化而改变,例如发生火灾时,着火点周围的空间存在危险性,越靠近着火点的路径节点的危险性越高,越难作为逃生路线中的节点,因此对路径节点定义一个危险系数属性,用NR表示,其取值范围为[0,1],NR值越大,代表危险性越高,0 表示路径节点无危险,1 表示危险性最高。NR计算方法如下:
其中,DR是路径节点与危险源中心点的距离,危险源可以为着火点、物体倒塌位置或移动的恐怖分子等,DMinR是路径节点与危险源的最小安全距离。
当某个疏散路径周围的人数较为拥挤时,会降低该节点的可通行性,因此疏散路径节点的拥挤程度也会影响路径节点的通行效率。定义路径节点的拥挤性系数NC,取值范围为[0,1],NC值越大,代表拥挤性越高,0表示路径节点无拥挤,1表示拥挤性最高。设路径节点周围5 m 范围内的行人会对拥挤系数产生影响,NC计算方法如公式(8):
其中PR为行人与路径节点的距离。
行人在疏散过程中会考虑危险系数和拥挤系数选择合理的疏散路径。由于行人存在个体性差异,对于危险性和拥挤性的认知不同,定义行人对于危险性的认知系数(用PR表示)和对拥挤性的认知系数(用PC表示),根据不同的行人类型,其取值范围为[0,1],取值越高表明行人对于路径节点的危险和拥挤程度的承受能力越强。行人选择路径节点的条件为PR≥NR&PC≥NC,行人只能在符合条件的路径节点中选择最短疏散路径。
2.3 基于路径节点构造行人疏散路径
为求得行人的疏散路径,采用一个无向图对场景进行重构。把场景中行人开始节点、所有可选路径节点(若路径节点的危险系数PR或拥挤系数PC高于行人的危险认知系数NR和拥挤认知系数NC,则该节点为不可选路径节点)和所有出口节点作为无向图的顶点集合,判断该集合中任意两个顶点的连线与障碍物是否相交,如果不相交,表明顶点连通,创建一条边,如此构造出场景的连通无向图。该无向图中从行人开始节点到目的节点的每条通路都是行人可能选择的疏散路径,一般情况下,行人会在众多疏散路径中选择最短路径,因此在构造的无向图中采用Dijkstra算法求出从行人开始节点到每个出口节点的最短路径,选择其中最短的一条路径作为行人选择的疏散路径。
通过一个复杂多障碍场景实例验证行人疏散路径选择的合理性。在图7(a)中,S点为行人初始点,T1、T2 点为出口点,中间为多边形障碍物,A~O为障碍物生成的路径节点,其中假设K点为着火区域,危险系数很高,M点为拥挤系数很高。根据算法行人不会选择K点和M点,故场景中去除M点和K点,根据场景中任意两个节点的连线与障碍物是否相交构造无向图。具体构造场景的无向图如图7 所示。依次判断S点和A点之间是否有障碍物,通过图7(a)可见,S和A点之间有障碍物,所以S和A点之间没有边。判断S和B点之间没有障碍物,则S和B点之间创建一条连线,如图7(a)所示。再同理依次判断S和图中其他节点之间是否有障碍物画出连线,结果如图7(b)所示。重复进行此操作,至到把无向图中所有连通的两个顶点创建一条连线,构造出场景最终连通无向图,如图7(c)蓝色虚线所示。最后求出从行人开始节点到所有目的地点的最短路径,选择其中最短的一条路径作为疏散路径,见图7(d)红色路径S→C→D→E→F→T2 为行人选择的疏散路径。
图7 生成最短路径
2.4 基于社会力模型疏散行人
确定行人疏散路径后,采用社会力模型对行人进行疏散。先将行人位置作为行人的初始节点,以行人疏散路径中的第二个节点作为行人的临时目的地,利用社会力模型驱动行人运动到该临时目的地,再将疏散路径中的下一个节点作为行人的临时目的地,如此往复直到行人抵达目的地。
3 相关实验
为验证算法的有效性采用Visual Studio 2019开发仿真系统,通过设置不同的障碍物场景,记录行人的运动轨迹,验证行人是否能够合理、有效地绕行障碍物,选择合理的疏散路径逃到出口。
3.1 简单障碍物的路径规划实验
仿真实验场景中的障碍物分别采用三角形(见图8(a))和多边形(见图8(b))表示,实验单个行人疏散路径规划。图8中A点为行人出发节点,B点为目的节点,蓝色节点为障碍物生成的路径节点,绿色的路径为算法规划出的行人疏散路径。从图中可见该算法在单障碍物场景中可以有效规划出行人疏散路径。
图8 简单障碍物场景
3.2 多障碍物的路径规划实验
图9(a)、(c)是两个包含多种障碍物(包括非凸边形)组合而成的场景,根据路径节点和目的节点生成连通图。图9(b)、(d)为算法在这两个图中对多个不同位置的行人规划的疏散轨迹线,从图中可见该算法在多障碍物、多行人场景中都可以有效规划出疏散路径。
图9 多障碍物多行人场景
3.3 复杂场景路径规划实验
设计一个超市场景,场景中有横向和纵向的货架且存在非凸形的货架。图10(a)为只在超市场景中的下面设计一个安全出口,图10(b)为在超市场景中的左侧、右侧和下侧各设计一个安全出口。超市场景中随机布置50个行人。图10为本文算法对该场景生成的疏散轨迹线,可见不同位置行人可以选择与其最近的出口完成疏散,表明该算法可以根据场景中障碍物和出口的布局规划出合理的疏散路径。
图10 复杂障碍物多行人场景
3.4 路径危险性实验
为了验证路径节点存在危险性时算法的有效性,设计如下实验。
(1)多障碍物场景
设计由4 个矩形构成的场景,下方为行人的出发点,上方的矩形为目的区域,当所有的路径节点有效时,行人疏散轨迹如图11(a)所示。用一个矩形障碍物阻挡通道,如图11(b)所示,使相关路径节点失效,此时行人疏散轨迹发生了变化,避开了不可通行区域,选择了可同行的路径疏散到目的地。用圆形表示场景中发生火灾的区域(见图11(c)、(d)),这时火灾相邻区域的路径节点危险系数较高,此时行人都选择危险系数较低的路径通行。通过这些实验结果可知该算法能使行人选择更加合理的疏散路径,说明了算法的有效性。
图11 多障碍物多行人场景
(2)复杂障碍物场景
为了验证算法的有效性,模拟在商场场景中突发事件时人群疏散情况。设计商场场景中分布着3 行、4 列柜台,右侧有一个出口,场景中人数为70人。图12(a)为场景中的通道通畅时算法模拟出的行人轨迹线。图12(b)是单个通道中发生火灾时本文算法模拟出的行人轨迹线,图12(b)中的圆形表示火灾的范围,火灾附近的路径节点会失效,从图中可以看出行人会避开火灾区域,选择合理的绕行路径疏散到安全出口。
(3)复杂障碍物场景三维效果实验
为了提升仿真效果,采用unity3D 进行三维场景仿真,在场景中利用六面体表示柜台,加入火焰效果,导入3D人物模型,三维仿真效果如图13所示,其中图13(a)为正常场景,图13(b)为单个火灾场景。从图中可以看出行人会避开火灾区域,选择合理的绕行路径疏散到安全出口。
图12 复杂障碍物行人疏散轨迹
图13 复杂障碍物行人疏散三维场景
3.5 与AnyLogicg轨迹对比实验
常用的行人疏散仿真软件有AnyLogic、MassMotion、Simwalk、Steps等。其中Anylogic实现了基于SFM和最短路径优化的行人库模型,可用于复杂空间中的行人模拟,因此本文采用Anylogic进行实验对比。
采用相同的场景,相同的行人数量及初始位置与Anylogic进行实验对比。对比仿真的轨迹如图14所示,其中图14(a)、(c)为AnyLogic的行人疏散轨迹线,图14(b)、(d)为本文算法的行人疏散轨迹线。从图中可以看出,本文改进的社会力模型和Anylogic模型中行人选择避开障碍物的疏散路径基本一致,并且场景中的所有行人都可以成功撤离到出口,表明本文算法的有效性。但是在图14(c)中,AnyLogic算法在出口附近部分行人疏散轨迹线显示为弧形,这与实际的行人疏散行为不符,主要原因是Anylogic 模型在疏散行人的过程中考虑了行人的惯性作用所致。在本文算法中,当行人疏散到出口时,他们将疏散到离自己最近的位置,疏散轨迹更加逼真。
图14 与AnyLogic对比实验
通过上述实验表明该改进的社会力模型能有效解决原有社会力模型中出现行人停滞不前、无法通过非凸边形障碍物和疏散路径过长问题。在复杂多障碍物、多出口、凹多边形障碍物场景中,该模型都可以合理地规划出行人疏散路径。当场景中存在危险源和行人拥挤时,该模型也可以规划出合理的疏散路径。并且与AnyLogic 的疏散路径相比较,该算法模拟出的疏散路径更真实。表明该模型能够更加真实地模拟突发事件时行人疏散行为。
4 结束语
本文通过研究社会力模型在人群仿真中存在的局限性,提出了一种改进的社会力人群疏散模型,该模型根据障碍物的顶点生成路径节点,然后根据行人可选路径节点构造出场景无向图,最后根据构造出的无向图获得行人最佳疏散路径,并使用社会力模型对行人进行疏散。实验结果表明本文算法在多障碍场景中能够有效地规划出疏散路径,使得人群疏散仿真更加真实。人群仿真是一个具有挑战性的工作,人群在疏散过程中,还有多种因素影响疏散轨迹的选择,行人个体导航的认知能力、场景中导向标记、场景中刺激源的分布、人群的整体运动方向等,这些是下一步研究路径规划过程中拟进一步考虑的因素。