计算机应用   2017, Vol. 37 Issue (5): 1491-1495,1511  DOI: 10.11772/j.issn.1001-9081.2017.05.1491
0

引用本文 

李焱, 刘弘, 郑向伟. 折半聚类算法在基于社会力的人群疏散仿真中的应用[J]. 计算机应用, 2017, 37(5): 1491-1495,1511.DOI: 10.11772/j.issn.1001-9081.2017.05.1491.
LI Yan, LIU Hong, ZHENG Xiangwei. Application of binary clustering algorithm to crowd evacuation simulation based on social force[J]. JOURNAL OF COMPUTER APPLICATIONS, 2017, 37(5): 1491-1495,1511. DOI: 10.11772/j.issn.1001-9081.2017.05.1491.

基金项目

国家自然科学基金资助项目(61472232,61373149,61572299,61402269);山东省自然科学基金资助项目(ZR2014FQ009)

通信作者

刘弘, 1304788495@qq.com

作者简介

李焱 (1980-), 男, 山东菏泽人, 讲师, 博士研究生, CCF会员, 主要研究方向:计算机仿真、聚类分析;
刘弘 (1955-), 女, 山东济南人, 教授, 博士, CCF会员, 主要研究方向:分布式人工智能、软件工程、计算机辅助设计;
郑向伟 (1971-), 男, 山东泰安人, 教授, 博士, CCF会员, 主要研究方向:计算机网络、计算智能、计算机辅助教育

文章历史

收稿日期:2016-09-30
修回日期:2016-12-09
折半聚类算法在基于社会力的人群疏散仿真中的应用
李焱1,2, 刘弘1,2, 郑向伟1,2    
1. 山东师范大学 信息科学与工程学院, 济南 250014;
2. 山东省分布式计算机软件新技术重点实验室, 济南 250014
摘要: 运用社会力模型(SFM)模拟人群疏散之前,需要先对人群进行聚类分组;然而,k中心聚类(k-medoids)和统计信息网格聚类(STING)这两大传统聚类算法,在聚类效率和准确率上都不能满足要求。针对这个问题,提出了折半聚类算法(BCA)。该算法结合了围绕中心点聚类和基于网格聚类两类方式,并利用二分法查找思想划分网格,不需要反复聚类。先将数据用二分法划分成网格,再根据网格内数据密度选出核心网格,接着以核心网格为中心将邻居网格聚类,最后按就近原则归并剩余网格。实验结果表明,在聚类时间上,BCA平均仅是STING算法的48.3%,不到k-medoids算法的14%;而在聚类准确率上,k-medoids算法平均仅是BCA的50%,STING算法平均也只是BCA的88%。因此,BCA无论在效率还是准确率上都明显优于STING和k-medoids算法。
关键词: 聚类算法    统计信息网格    k中心聚类    人群疏散仿真    社会力模型    
Application of binary clustering algorithm to crowd evacuation simulation based on social force
LI Yan1,2, LIU Hong1,2, ZHENG Xiangwei1,2     
1. School of Information Science and Engineering, Shandong Normal University, Jinan Shandong 250014, China;
2. Shandong Provincial Key Laboratory for Distributed Computer Software Novel Technology, Jinan Shandong 250014, China
Abstract: Pedestrian crowd needs to be divided into groups by using clustering algorithms before using the Social Force Model (SFM) to simulate crowd evacuation. Nevertheless, k-medoids and STatistical INformation Grid (STING) are two traditional clustering algorithms, cannot meet the requirements in the aspect of efficiency and accuracy. To solve the above problem, a new method named Binary Clustering Algorithm (BCA) was proposed in this paper. BCA was composed of two kinds of algorithms:center point clustering and grid clustering. Moreover, the dichotomy was used to divide the grid without repeated clustering. First of all, the data was divided into grids, through the use of dichotomy. Next, the core grid would be selected, according to the data density in a grid. Then, the core grid was used as the center, and the neighbors were clustered. Finally, the residual grids were was merged according to the nearest principle. The experimental results show that, in the clustering time, BCA is only 48.3% of the STING algorithm, less than 14% of the k-medoids algorithm; and in the clustering accuracy, k-medoids is only 50% of BCA, STING doesn't reach to 90% of BCA. Therefore, BCA is better than k-medoids and STING algorithm in both efficiency and accuracy.
Key words: clustering algorithm    STatistical INformation Grid (STING)    k-medoids    crowd evacuation simulation    Social Force Model (SFM)    
0 引言

人群疏散研究涉及到避免践踏等公共安全问题,是近年来研究的热点。为了定量分析、模拟人群运动,很多研究人员已经作了大量调查、实验乃至疏散演习并收集了观测数据,因此,很多研究人员转向运用计算机模拟来仿真人群疏散,也取得了很多成果,而以真人作模拟实验会发生很多不受控制的情况,有一定危险性,而且实验成本也很高。

1) 人群疏散数学模型。

研究人员纷纷采用像排队论之类的数学理论或思想,建立人群疏散仿真的数学模型,比如排队模型[1-2]、格子气模型[3-5]、元胞自动机模型[6-7]、基于代理的疏散模型[8-9]、社会力模型[10-13]等。这些模型大致可以分为两类:微观和宏观[14]。其中,除排队模型是宏观模型,其余4个模型都是微观模型。

文献[1-2]结合排队模型,更多地是从整体研究人群流动特性,但是没有考虑个体间的作用和关系 (如物理上的摩擦与碰撞、心理上的排斥与吸引等),所以本文从个体间作用入手,运用微观模型研究人群疏散问题。文献[3-5]运用改进的格子气模型模拟了人流状态,文献[5]还增加了对个体步长的调整;文献[6-7]都利用元胞自动机模型研究了火灾时的人群疏散;文献[8-9]则分别在平面建筑和多层建筑中运用基于代理的模型仿真人群疏散。以上文献虽然都采用了微观模型,具体研究了行人的步长、恐慌等个体因素,取得了较好的效果,但没有涉及到个体间的相互作用。而文献[10-13]则采用了社会力模型对人群疏散进行了微观仿真研究, 尤为难得的是社会力模型描述了人群中的个体,在与其他个体及环境的相互作用力的作用下以期望速度向着给定目标运动的状态[13]。因此,本文采用了基于社会力模型的方法仿真人群疏散。

2) 人群疏散的特征。

在人群疏散过程中,个体自身的心理状态及个体间的相互作用可能影响人流运动,尤其在紧急状态下,人群运动的盲目性、从众性的特征更加显著,这将导致较为典型的现象发生:

1) “瓶颈节点”。危急情况下,人流速度明显加快,而相对于房间、中厅、走廊等位置,出口显然会成为人流的目标,极易因争抢而降低通行效率,从而造成阻塞[11],成为通行中的“瓶颈节点”。

2) 盲目从众。即个体行为很容易被其周围人群的行为所影响[15]。因为不仅周围人群的恐慌情绪会感染该个体,而且他们的行为也将影响该个体并引发衍生效应。

3) 聚团运动。即群体运动中关系亲密的个体倾向于在运动中形成一个个的小团体,比如家庭、朋友、同学等。这些小组对疏散速度的影响是显著的,但其影响是不确定的,有时能帮助个体快速找到出口,有时小组运动也会阻碍其他个体的运动。同组个体间的作用也呈现明显的非线性特征[16]

尽管社会力模型很好地模拟了“瓶颈节点”、出口“拱形效应”“快即是慢”[11]等典型现象,也很细致地描述了个体自身的驱动力及个体与个体、个体与环境间的相互作用力,但是它忽略了现实中的人际关系,即人群在运动过程中,关系亲密的人比如情侣、家庭等,不能有效地模拟聚团分组运动,那么,如何快速地识别出人群中的有关系的人并准确地聚类成组,就成了模拟人群疏散中的重要一环。本文在社会力模型中增加了团组划分信息,促使人群在社会力作用下进行聚团分组运动,以便更真实地模拟人群疏散。

本文把聚类算法用到了人群分组中,并把分组信息加入了社会力模型,用以仿真人群疏散,因为人群运动中分组可能随时变化,这就需要聚类算法具有较高的速度和准确度。本文通过对比统计信息网格 (STatistical INformation Grid, STING)[17]算法和k中心聚类 (k-medoids)[18]算法,在传统的围绕中心点聚类的思想上结合了网格划分思想,并在划分网格时引入了非均匀的折半划分思想,提出了折半聚类算法 (Binary Clustering Algorithm, BCA),并尝试把该算法运用到人群分组的聚类中;通过仿真实验同传统的STING和k-medoids两种算法作对比,展现了折半聚类算法在速度和准确度上的优势。

1 聚类算法

聚类算法大体分为基于划分的、基于层次的、基于密度的、基于网格的、基于模型的、模糊聚类、基于图论的、基于分形的、复杂网络聚类、仿生法及核聚类等11种方法[19]。本文选取了其中两种经典的算法进行了人群分组聚类实验:一种是基于划分的k-medoids算法, 另一种是基于网格的STING算法,发现效果不佳。

k-medoids算法 它是最经典的聚类算法k-means的延伸,不仅可以处理数值属性类数据,还可以处理分类属性类数据,并且它在处理存在“噪声”和孤立点的数据时,比k-means更健壮、更有效,不像k-means那样容易受极端数据影响。不过,它用于人群分组,运行时间很长,整体准确度也较低,不能满足人群分组的要求。

STING算法 它是传统的基于网格的多分辨率聚类算法,将空间区域划分为矩型单元。针对不同级别的分辨率,通常存在多个级别的矩形单元,这些单元形成了一个层次结构;高层的每个单元被划分为多个低一层的单元。每个网格单元属性的统计信息 (例如平均值、最大值和最小值) 被预先计算和存储[20]。相对于传统的划分算法,该算法具有时间复杂度较低、执行效率较高、聚类准确度也相对较高的优点。

但是,由于STING算法采用了一个均匀划分的方法来进行聚类,其聚类的质量取决于网格结构的最底层的粒度[21]。其实,由网格最低层粒度决定的不仅是聚类的质量,还有聚类的时间复杂度,即粒度越粗 (底层格子密度越低),聚类的准确度就越低,而时间复杂度也就随之降低;反之则都会提高。因为人群分组对于实时性和准确性都有较高要求,所以对于聚类算法,不仅要求质量高还要满足速度快,但是,在实验过程中,发现STING算法中这两个指标是一对矛盾体,质量高速度就会降低,而且STING算法因为算法自身的局限,它的准确度本身就有瓶颈,而且所要付出的代价太大,时间耗费得太多不符合实时性要求。

针对人群分组的自身特点和要求,本文尝试了一种非均匀的折半聚类方法,该方法在结合上面两类算法的思想上增加了折半划分的思路,即先把场景网格化,但这个网格化过程是基于折半思路的非均匀二分法划分的过程,再利用围绕中心点聚类的思想,找出核心网格 (内部个体密度高的网格),然后进行聚类分组,这样减少了最终的网格划分数量,提高了聚类效率。

2 折半聚类算法

人群的分布状态随着行人的运动随时会发生变化,在整个场景中人群的局部疏密度也会发生变化,而折半聚类的方法可以区分疏密区域、粗分稀疏区域或舍弃空白区域、细分稠密区域,在提高准确度的同时减少了网格数量。

2.1 算法思想及过程

折半聚类的思想是以二分法对整个场景划分网格,划分原则是网格中个体属于同一属性组 (下简称同组) 则不分,否则继续二分。该算法整体分为如下三个阶段。

首先,对整个场景进行二分的非均匀网格划分,比较场景的边长,把长边均分两半,形成两个格子,再检测每个格子,如果格子里是空的或者是同组的个体则停止,否则就把该格子按同样规则二等分,这样继续二等分下去,直到格子为空或者格子里的个体都是同组的为止。这个过程类似以先根遍历建立了一棵不含度为1节点的二叉树,只不过树叶都是同组个体或者空的网格。

其次,把最终的非空叶子网格聚成k(k是事先给定的,为了减少拥塞提高疏散效率,人群的最佳分组数目将取决于封闭场景中的出口数目,通常是其三倍) 组,小组聚合的规则是以核心网格为中心聚合其周围邻居的叶子网格。首先把这些非空叶子网格按密度 (密度等于格子内的个体数目除以个体所占实际面积) 非递增排序,次序靠前的叶子网格的是核心网格,检测核心网格周围的邻居叶子网格是否与其同组,同组则聚合,否则以剩余的叶子网格为核心网格继续聚合,直到所有的叶子网格都检测一遍。

最后,如果存在未同核心网格聚合的网格 (主要是只含个体的网格),就把这些网格中的个体同前面完成聚合的小组中心位置对比距离,聚合到最近的网格小组中。

过程 折半聚类。

1) 外层循环。以场景为根,用先序遍历建立一棵二叉树。先二等分较长的边,形成左右子树即两个网格,再检测左子树即第一个格子,若格子内的个体不同组则继续二等分,否则,若同组或为空,则设为叶子格子,然后检测右子树即第二个格子,依此类推,直到所有的格子为同组或为空,即生成了所有的叶子格子。

2) 内层循环。检测非空网格内的个体是否同组。以个体的实际中心为中心位置,即以边界个体的坐标而不是网格顶点坐标来计算中心位置,以个体到中心距离的均值为邻域半径,距离在半径内的个体则同组并设置同组属性,否则是异组。

3) 按网格密度非递增排序叶子网格。

4) 按顺序依次提取叶子网格为核心网格,聚合其周围的同组邻居网格,聚合规则是邻居网格中任意一个体的属性与核心网格属性相同则为同组,因为叶子网格内的个体都是同组的。

5) 按距离就近原则,聚合剩余的非核心网格 (主要是单个体的网格)。聚类结束。

2.2 定义及公式描述

为了更准确地介绍该算法,下面给出算法中使用的定义及公式。

定义1 场景面积定义为p=L*W,其中,LW分别代表场景的长和宽,场景中的坐标用 (x, y) 表示。

定义2 人群疏散个体数据集定义如下:

E={ei, i=1, 2, …, num}

其中,ei表示在数据集中的第i号个体,num是个体总数,pigj分别表示第i号个体和j号网格的小组属性, j=1, 2, …, nn是非空叶子网格数目。

定义3 个体数据集E到场景S的映射是ES,被定义为S={ei(x, y)},其中,eiE中第i号个体 (1≤inum);(x, y) 是场景中的坐标,1≤xW,1≤yLei(x, y) 表示i号个体的位置。

定义4 同组个体属性设定,先求得j号网格内的个体序号,再确定网格内个体实际范围左下方及右上方的边界点 (xld, yld) 和 (xru, yru),就可以算出中心位置 (xm, ym)(如图 1所示),得到同组个体的邻域半径rj,从而确定同组内个体的属性值pi(在实际仿真中,pi是个体间的关系阈值,而个体间的关系值则在初始化时给定的关系矩阵确定)。

图 1 网格内个体实际边界 Figure 1 Individual's actual boundaries in a grid

定义5 网格密度den(cj),表示网格第j号叶子网格cj的密度 (1≤jn),n是叶子网格的总数。den(cj)=count(cj)/s(cj),其中count()、s() 分别是计算网格内个体数目和个体所占实际面积的函数。如图 2所示,实际面积是通过网格内个体实际范围左下方及右上方的边界点 (xld, yld) 和 (xru, yru) 计算得到的。

图 2 网格密度 Figure 2 Grid density

定义6 核心网格是包含的个体数目大于1的叶子网格且核心网格数目不大于k。如图 3所示,每个核心网格的邻居网格是和它直接相连的网格,最多有8个。

图 3 核心网格及其邻居网格 Figure 3 Core grid and its neighbors
2.3 折半聚类算法流程

算法 折半聚类。

输入 E, S, k

输出 G(包含k个分组的个体序号)。

1) 外层循环,到所有格子为空或格子内个体同组为止。

2) 判断是非二等分当前j号网格,计算rj,若网格为空或内个体到中心的距离均不大于rj则停止当前网格划分,标记属性并计算当前网格密度den(cj),再转向其他网格;否则,二等分当前网格。

3) 直到生成全部叶子网格,循环结束。

4) 按照den(cj) 非递增排序叶子网格,并设置网格属性gj的值。

5) 内层循环,检查非空格子是否为空,遍历完为止。

6) 聚合核心网格周围的邻居网格并把个体属性值都更新成核心网格的属性值gj

7) 直到遍历完核心网格或者其数目达到k,则结束循环。

8) 若有剩余的非核心叶子网格,则归并到离其最近的核心网格; 否则转向9)。

9) 输出聚类结果。

2.4 算法时间复杂度分析

对于同样规模的数据集,数据量是num,聚类成k组。下面简要分析k-medoids、STING和折半聚类算法的时间复杂度。

k-medoids算法,不仅对初始中心点的选择比较敏感,总体准确率较低,而且聚类过程需要反复迭代,每次更新中心点时都要遍历所有数据,所以聚类效率较低,其平均时间复杂度是O (k(num-k)2)[22]

与之相比,STING算法的聚类效率较高。该算法创建网格信息表时,只需要计算相关网格的信息,其划分网格的时间复杂度是O(n)[23](n是底层网格数目,本文中n通常取num的1/4),若再计算选择和归并核心网格时间,即使不重复访问邻近网格,其时间复杂度也是O(n(n-1) /2)。总体时间复杂度是O(n2) 级的。该算法的聚类效率、质量都取决于网格结构最低层的划分粒度,随着粒度加细,其处理的代价会显著增加。在人群疏散聚类实验中,其处理时间并不理想。

而折半聚类算法,划分网格相当于建立一棵没有度为1的节点的二叉树,所以其时间复杂度仅为O(2n-1),n是度为2的叶子网格数目,网格总数最大为num,所以n最差取值 (num+1) /2,最好取值k,所以平均复杂度是O(k+(num-1) /2);因为该算法保证同一个网格内的个体同组,所以选择和归并核心网格时,可以直接归并成k组网格,所以其平均时间复杂度是O((k2-1) n/(2k)-(k-1) /2);若还有剩余的叶子网格,设其数目为m(m不大于n-k),则归并它们的时间复杂度为O(km)。

综上所述,折半聚类算法的总体时间复杂度为O((k2-1) n/(2k)+(k+1) m+(num-k)/2-1) 也就是O (kn+km+num/2),即O(cn),c是常数,显然这是个O(n) 级接近线性时间的复杂度。

3 仿真实验

为了展示折半聚类算法 (BCA) 在人群疏散过程中的效果,本文采用了Matlab R2013a作为仿真平台,在300×250的矩形场景中,对于多种规模的人群疏散的聚类效果,同k-medoids算法和STING算法在效率和准确率两方面分别作了对比实验;而在3.3节的实验中,为了更直观地演示分组效果,则采用Microsoft.Net FrameWork 4.5框架,以Mcrisoft Visual Studio 2012作为编译环境,并配置了开放场景图形库3.2.1版 (OpenSceneGraph-3.2.1,OSG-3.2.1),最终以三维造型演示行人群体。

3.1 聚类效率的对比实验

本实验针对300、500、700、900、1 100共5种规模的人群疏散的聚类效率进行对比,分别作了10组实验,记录了k-medoids、STING、BCA这三种算法的运行时间,取其平均值为对比数据,其实验数据平均值如表 1所示。

表 1 聚类时间表 s Table 1 Clustering time s

表 1的实验数据可以说明,在聚类效率上BCA最高,STING算法次之,k-medoids算法最差。从表 1中还能看出随着人群规模逐渐增大,各自的时间也呈上升趋势,但BCA耗时最少也最平稳,而k-medoids算法和STING算法都有不同程度的起伏变化。对比分析表 1中的数据,本文可以计算出BCA聚类耗时平均仅是STING算法的48.3%,k-medoids算法的13.9%。

3.2 聚类准确率的对比实验

本实验针对300、500、700、900、1 100共5种规模的人群疏散的聚类准确率进行对比,用BCA、STING、k-medoids三种算法进行对比实验,分别作了10组实验,取其平均值为对比数据。而聚类准确率则是正确个数与事先给定的组内个体数目的比值 (聚类分组后,每组的个体序号与事先给定的该组个体序号一一匹配,记录正确的数目,与该组给定的个体数目的比值就是该组的准确率,各组准确率加和求得平均值,就是总的准确率)。因为人群中的社会关系是客观存在的,所以仿真程序会事先给定人群的关系矩阵,为了便于比较,人群里个体间并非人人都有关系,而是分成人数不等的多个朋友圈和一部分互不认识的陌生人,并且这些朋友圈间两两没有交集,于是每个朋友圈就是一个事先给定的分组,单个孤立的陌生人归入与距离 (即该个体到组心位置的距离) 最近的分组,最后只要把聚类结果和这些分组进行匹配就可以得到聚类的准确率了。实验数据平均值如表 2所示。

表 2 聚类准确率表 Table 2 Clustering accuracy rate

表 2的实验数据可以看出,k-medoids的准确率最低,平均仅是BCA准确率的50%,这个和该算法自身特点有关,虽然它比k-means算法有较强的处理噪声点的能力,但是对于极端数据点处理还是较弱,人群中的孤立陌生人给它造成了很大的麻烦;而相对而言,STING算法的准确率就很高,平均能达到BCA准确率的88%,当然随着人群规模增加,STING算法的准确率也在下降,这同它均分网格的划分方式有关,人越多人群分布就可能越复杂,不仅其精度降低,其耗时也会大幅增加。

3.3 聚类后的人群疏散实验

为了展示加入分组信息后的人群疏散的效果,本实验在场景 (300 m×250 m) 中,仿真了规模是300人的疏散效果。其中,初始化状态如图 4;分组后效果如图 5图 5中不同颜色代表不同的分组。

图 4 人群分组前的初始状态 Figure 4 Initialization before grouping
图 5 人群分组后的聚类状态 Figure 5 Clustering state after grouping

在向着出口疏散过程中,聚类后同组的个体会向着一起聚拢,而且为了跟上同伴,同组个体的速度基本保持一致。这类同组个体的聚团运动现象如图 6所示,而人群出门时形成拱形的“拱效应”则如图 7所示。

图 6 人群疏散中的聚团运动状态 Figure 6 Gathering movement state in crowd evacuation
图 7 人群疏散出门“拱效应” Figure 7 Arch effect in exits

上面的仿真实验的结果表明,本文提出的折半聚类算法很适合用于人群疏散仿真中的聚类分组。在同样规模、同样场景下,对设定同样社会关系的疏散人群进行聚类,其优点有如下:

1) 在聚类效率上有显著优势。具体表现是聚类平均耗费的时间,BCA是STING算法的48.3%,仅是k-medoids算法的13.9%。

2) 在聚类精度上有明显提高。具体表现是聚类的平均准确率,BCA比STING算法提高了14%,更比k-medoids算法提高了100%。

3) 聚类后聚团运动现象明显。具体表现是在社会力模型中添加了行人个体的分组信息后,个体在运动过程中的“聚团现象”非常明显,更加符合人群疏散的现实情况。

4 结语

在人群疏散的问题研究中,为了克服社会力模型没有考虑人群中人际关系的缺陷,从而更真实地模拟人群疏散现象,本文运用CBA对疏散人群进行聚类,从而快速、准确地得到了个体的分组信息。本文把两种经典的聚类算法:k-medoids和STING,同CBA作了对比,既从理论上分析了这三种算法的时间复杂度,又经过了反复实验对比,验证了k-medoids算法和STING算法,在人群疏散过程中进行聚类时,无论从效率上还是从准确率上都不如CBA。

尽管如此,本文的研究仍显粗糙,比如本文还没有尝试对无人际关系的数据集进行聚类,所以,不好说该算法有良好的适应性;另外,虽然通过实验可以观察到孤立陌生人的数量将会影响聚类结果的准确率,但还没有定量地对其研究分析,后面将进一步在通用数据集上进行实验,完善实验细节参数,以便更进一步地改进、完善该算法。

参考文献
[1] 魏国强, 杨永清. 应急资源布局评估与调整策略研究[J]. 计算机工程与应用, 2011, 47(28): 215-218. ( WEI G Q, YANG Y Q. Study on emergency resources location and allocation assessment and adjustment[J]. Computer Engineering and Applications, 2011, 47(28): 215-218. doi: 10.3778/j.issn.1002-8331.2011.28.060 )
[2] 于瑛英, 池宏, 祁明亮, 等. 应急管理中资源布局评估与调整的模型和算法[J]. 系统工程, 2008, 26(1): 75-81. ( YU Y Y, CHI H, QI M L, et al. Modelling and algorithm of resource location and allocation assessment and adjustment in emergency management[J]. Systems Engineering, 2008, 26(1): 75-81. )
[3] MURAMATSU M, IRIE T, NAGATANI T. Jamming transition in pedestrian counter flow[J]. Physica A:Statistical Mechanics & Its Applications, 1999, 267(3/4): 487-498.
[4] TAJIMA Y, NAGATANI T. Clogging transition of pedestrian flow in T-shaped channel[J]. Physica A:Statistical Mechanics & Its Applications, 2002, 303(1): 239-250.
[5] SHANG H Y, HUANG H J, ZHANG Y M. An extended mobile lattice gas model allowing pedestrian step size variable[J]. Physica A:Statistical Mechanics & Its Applications, 2015, 424: 283-293.
[6] ZHENG Y, JIA B, LI X G, et al. Evacuation dynamics with fire spreading based on cellular automaton[J]. Physica A:Statistical Mechanics & Its Applications, 2011, 390(18): 3147-3156.
[7] 刘全平, 梁加红, 李猛, 等. 基于多智能体和元胞自动机人群疏散行为研究[J]. 计算机仿真, 2014, 31(1): 328-332. ( LIU Q P, LIANG J H, LI M, et al. Study on crowd evacuation behaviors based on multi-Agent and cellular automata technology[J]. Computer Simulation, 2014, 31(1): 328-332. )
[8] SHI J, REN A, CHEN C. Agent-based evacuation model of large public buildings under fire conditions[J]. Automation in Construction, 2009, 18(2): 338-347.
[9] HA V, LYKOTRAFITIS G. Agent-based modeling of a multi-room multi-floor building emergency evacuation[J]. Physica A:Statistical Mechanics & Its Applications, 2012, 391(8): 2740-2751.
[10] HELBING D, MOLNAR P. Social force model for pedestrian dynamics[J]. Physical Review E:Statistical Physics Plasmas Fluids & Related Interdisciplinary Topics, 1998, 51(5): 4282-4286.
[11] HELBING D, FARKAS I, VICSEK T. Simulating dynamical features of escape panic[J]. Nature, 2000, 407(6803): 487-490. doi: 10.1038/35035023
[12] HELBING D, BUZNA L, JOHANSSON A, et al. Self-organized pedestrian crowd dynamics:experiments, simulations, and design solutions[J]. Transportation Science, 2005, 39(1): 1-24. doi: 10.1287/trsc.1040.0108
[13] JOHANSSON F, PETERSON A, TAPANI A. Waiting pedestrians in the social force model[J]. Physica A:Statistical Mechanics & Its Applications, 2015, 419: 95-107.
[14] TWAROGOWSKA M, GOATIN P, DUVIGNEAU R. Macroscopic modeling and simulations of room evacuation[J]. Applied Mathematical Modelling, 2014, 38(24): 5781-5795. doi: 10.1016/j.apm.2014.03.027
[15] FANG Z, LO S M, LU J A. On the relationship between crowd density and movement velocity[J]. Fire Safety Journal, 2003, 38(3): 271-283. doi: 10.1016/S0379-7112(02)00058-9
[16] HENEIN C M, WHITE T. Macroscopic effects of microscopic forces between Agents in crowd models[J]. Physica A: Statistical Mechanics & Its Applications, 2007, 373(36): 694-712.
[17] WANG W, YANG J, MUNTZ R. STING: a statistical information Grid approach to spatial data mining[C]// Proceedings of the 23rd International Conference on Very Large Data Bases. San Francisco, CA: Morgan Kaufmann, 1997:186-195.
[18] KAUFMAN L, ROUSSEEUW P J. Finding Groups in Data: an Introduction to Cluster Analysis[M]. Hoboken, NJ: Wiley, 1990 : 145 -193.
[19] 金建国. 聚类方法综述[J]. 计算机科学, 2014, 41(Z2): 288-293. ( JIN J G. Review of clustering method[J]. Computer Science, 2014, 41(Z2): 288-293. )
[20] 钱卫宁, 周傲英. 从多角度分析现有聚类算法[J]. 软件学报, 2002, 13(8): 1382-1394. ( QIAN W N, ZHOU A Y. Analyzing popular clustering algorithms from different viewpoints[J]. Journal of Software, 2002, 13(8): 1382-1394. )
[21] 伍育红. 聚类算法综述[J]. 计算机科学, 2015, 42(S1): 491-499. ( WU Y H. General overview on clustering algorithms[J]. Computer Science, 2015, 42(S1): 491-499. )
[22] HAN J W, KAMBER M, PEI J. 数据挖掘: 概念与技术[M]. 范明, 孟小峰, 译. 北京: 机械工业出版社, 2012: 293-297. ( HAN J W, KAMBER M, PEI J. Data Mining: Concepts and Techniques[M]. FAN M, MENG X F, translated. Beijing: China Machine Press, 2012: 293-297. )
[23] 张书春, 孙秀英. 基于网格结构的CLARANS改进算法[J]. 计算机工程, 2012, 38(6): 56-59. ( ZHANG S C, SUN X Y. Improved CLARANS algorithm based on grid structure[J]. Computer Engineering, 2012, 38(6): 56-59. )