何海斌, 张健钦, 徐志洁, 王 硕, 程宇航
(1.北京建筑大学 测绘与城市空间信息学院, 北京 100044; 2.北京建筑大学 理学院, 北京 100044)
随着国民经济的持续快速发展,旅游已成为人们生活中一种必不可少的休闲方式. 近年来,各大城市热点街区的游人量都有大幅度增长,如北京南锣鼓巷、上海田字坊、西安柳巷等,在法定节假日甚至出现了游人量“暴涨”的现象. 游人量的骤增对街区的管理水平提出了更高的要求,街区管理不仅需要注意街区内游人总量,还得掌控区域人流分布密度,防止区域游人过度拥挤出现危险. 通过在街区各入口两侧架设激光探测仪,根据游人通过两层激光平面的先后顺序识别游人进出,根据游人在激光平面中的游人特征,如肩宽、身高识别出同时通过的游人数量,可以精确获取街区内实时游人总量和进出状况[1]. 要是获取街区区域游人数量继而得出区域人流密度,需要在每一个区域入口架设激光探测仪,成本过于高昂且不易推行. 所以基于各入口激光客流数据来模拟区域游人游憩过程,预测区域游人时空分布的研究显得尤为重要[2-3].
南锣鼓巷在2016年国庆期间7天人流累计高达130万人,属于典型的热点街区. 再加上其独特的北京胡同风格,便于多智能体模拟环境的搭建,故本文选择南锣鼓巷进行游人游憩模拟研究. 针对街区内的游人游憩过程模拟和风险评估需求,以激光客流数据和实际调研数据为基础,通过多智能体模拟方法建立街区游人游憩模型. 在此基础上,运用GIS空间分析和JAVA WEB技术,搭建了游人游憩模拟平台,实现对仿真模拟过程数据的多种可视化和精度评价. 通过对模拟过程和结果数据的可视化表达,操作人员可一目了然得知街区内游人区域分布,并分析游人游憩规律. 将街区各入口限流人数以源数据输入系统,进行仿真模拟,可以验证限流管控方法的科学性,为提高街区安全管理水平做出贡献[4].
南锣鼓巷作为典型热点街区,2016年国庆7天人流量高达140万人. 南锣鼓巷位于鼓楼东大街南侧,平安大街北侧,是一条具有旅游价值的北京胡同. 作为北京历史最悠久的经典胡同之一,已有700多年的历史,中央主路全长787 m,主路平均宽度为8 m,是北京市规划中的25片旧城保护区中最主要的街道. 南锣鼓巷具有丰富的旅游价值,各类北京的民俗小吃和手工艺品店分布在街道两侧. 趣味盎然的各色时尚小店,构成了南锣鼓巷独特的魅力与风情. 主街道周边八成的建筑都是商铺,总面积近6 000 m2,仅比主街道占地面积少了300 m2,两者共同构成了智能体活动空间. 主干道分别与 14条主要胡同相交,由南到北分别为板厂胡同、蓑衣胡同、东棉花胡同、雨儿胡同、北兵马司胡同、帽儿胡同、秦老胡同、景阳胡同、前圆恩寺胡同、沙井胡同、后圆恩寺胡同、黑芝麻胡同、菊儿胡同、前鼓楼苑胡同,共有16个入口可以进入街区[5].
1.2.1 激光客流数据
北京南锣鼓巷街区已安装16个激光客流监测设备,分别在14个胡同口和南北口,用于记录进入街区的游人数量. 每个激光客流监测设备都配有传感器,每个1 min,便会将1 min内从该入口进入和离开的游人统计生成一条JSON数据,传到数据库存储起来.
通过统计分析2016年3月到12月期间9个月以来运行数据,得出研究区个出口游人选择概率见表1,游人智能体生成时的目标出口根据该出口选择概率确定.
表1 入口客流统计表
1.2.2 实地调研数据
2016年5—11月分3次进行了南锣鼓巷游客的随机问卷调查. 调查人员由本校研究生16人组成,调查地点分别在南锣鼓巷的16个入口处,调查时间为早8点到晚10点,调查间隔为1 h,调查期间共发放调查问卷1 800份,其中有效调查问卷1 719份,有效率为95.5%. 通过分析调研数据,游人属性特征统计见表2,游人游憩时间统计表见表3. 统计结果显示,游人男女比例基本均等,男性占51%,其余为女性. 南锣鼓巷的游人主要为30岁以下的年轻人,约占总人数的67%,30~50岁区间内的游人约占总人数的23%,其余为50岁以上的老人. 通过以上数据可以确定游人智能体的性别、年龄、游憩时长的分布概率.
表2 游人属性特征统计表
表3 游人游憩时间统计表
同时对研究区内沿街店铺进行实地调研,得到各店铺的基本信息,通过面积可以推算出店铺最大游人承载数. 参照美团和大众评论,设定各店铺的吸引力和平均停留时间. 通过ArcGIS建立店铺矢量图层,将相关属性赋值给各店铺,方便建立沿街店铺环境Agent,店铺矢量图层如图1所示.
图1 店铺矢量图层Fig.1 Store vector layer
通过实地调研发现,南锣鼓巷街区游人游憩行为主要表现为从某一入口进入街道,游览路线沿街道向目标出口前进,游览过程中会被周边店铺的吸引,向店铺位置移动,甚至在某一时刻会在某一地区存在短暂停留,最终到达目标出口结束游览. 在游人游憩过程中,不仅存在空间位置的移动,还存在着时间维度的变化,如在进入店铺购物的过程中游人的空间位置未发生移动但也在进行着游憩行为,需要通过时间的变化来表达. 南锣鼓巷街区游人游憩行为可理解为一种时空变化,具有时间和空间的双重属性.
基于多智能体仿真模拟技术探索游人游憩行为规律,建立街区游憩模型,是当前许多专家学者关注的热点问题. 智能体(Agent)的理论和技术源于人工智能技术,随着计算机分步开放系统的出现,社会与社会行为概念开始引入计算机系统,Minsky教授将计算社会中的个体称为Agent,这些Agent的组合相互作用构成了多Agent系统.
Agent不仅可以具有自身属性和运动规则,还能根据外界环境的变化,而自动地对自己的行为和状态进行调整,并与其他Agent通讯. 游人游憩行为在街区游憩模型中表现为游人Agent根据源数据出现在指定街区入口,沿街道向指定出口运动,运动过程中会因区域人流密度和周边店铺吸引力的影响进行方向上的自我调节,可能会在店铺停留一段时间后再向出口运动,最终到达指定出口,离开街区. 游憩时间会受游人Agent初始属性控制,当在店铺累计停留时间过长,达到指定值时,游人Agent会直接运动到指定出口,中途不再停留[6-7].
根据游憩行为规律和Agent的基本特性,建立街区游憩模型如图2所示.
图2 街区游憩模型Fig.2 Block recreation model
街区游憩模型由模拟环境场景、游人Agent和环境Agent三部分组成. 模拟环境场景是根据热点街区的GIS矢量数据生成的,它是游人Agent的活动范围,是环境Agent所在的区域. 游人Agent具有自身属性和行为规则,可以对环境Agent的刺激做出反应. 环境Agent在影响游人Agent的同时,也能感知区域内游人Agent的数量和状态.
2.2.1 模拟环境场景生成
图4 环境Agent模型介绍Fig.4 Introduction to environmental Agent mode
模拟环境场景是游人Agent和环境Agent所在的虚拟空间,是基于南锣鼓巷GIS矢量数据生成的. 通过街区空间特征分析,发现商铺的占地面积为6 000 m2,与街道面积基本相当,所以模拟环境场景主要包括商铺组成的交互空间(如图3中红色区域所示)和街道及支路胡同组成的道路空间(如图3中黄色区域所示). 黑色线段代表街区边界,游人Agent在移动过程中不能越过边界. 特殊的是菊儿胡同南侧为北京儿童艺术剧院围墙,北兵马司胡同南侧为中央戏剧学院,禁止游人进入,故在此不做考虑. 交互空间主要为商铺类混合型环境Agent构成,可以吸引游人Agent进入其中并停留.
图3 模拟环境场景Fig.3 Simulated environment scene
2.2.2 环境Agent设计
环境Agent具有感知和吸引游人Agent的特性,它可以感知所属区域内游人总数并做出反应,同时还可以吸引游人进入其中停留游览. 环境Agent依据特性不同分为三种,分别为感知型、被感知型和混合型环境Agent,介绍如图4所示.
感知型环境Agent是道路空间分成的45块不规则的四边形,它们具有各自的ID编号,是用于感知并统计街道区域游人时空分布的. 感知型环境Agent在现实街道是不存在的,对游人Agent没有吸引力.
被感知型环境Agent主要包含街区入口和街道主干道,是被游人Agent感知判断自身运动状态的. 游人Agent在运动过程中可以通过感知街道入口的位置,来判断进入和离开街区. 同时还可以根据目标出口的位置和街区主干道来判定自身的运动方向是向南还是向北. 若游人没有进入店铺逗留,都是处于沿主街道运动状态.
混合型环境Agent的主要代表是商铺及公共设施,其既可以吸引游人Agent到其中逗留,又可以感知其中游人Agent的数量、逗留时间等. 混合型环境Agent还具有最大承载数得属性,当其中游人Agent数量达到设定值,便不再对路过游人Agent产生吸引.
图5 游人Agent模型介绍Fig.5 Introduction to the visitor agent model
2.2.3 游人Agent设计
根据游人属性特征和游人游憩行为规律,设计游人Agent如图5所示. 游人Agent在街区游憩过程中具有自身属性、移动速度、移动方向和游憩时间四种属性. 其中自身属性又包括五种具体属性,这是游人Agent在诞生的时候,根据游人属性特征按概率赋予的,分别为游憩目标终点、基础运动速度、吸引力感知范围、速度感知范围和计划游憩时间. 吸引力感知范围是可以感知到周边店铺吸引力的范围. 速度感知范围是感知范围内游人数量来改变自身速度的范围. 计划游憩时间是街区游憩的最长时间.
游人Agent的移动速度是以基础运动速度减去周边游人数量的影响数值,是由速度感知范围内游人数量决定的. 感知范围内游人数量越多,影响数值越大,游人Agent的移动速度便越慢. 游人Agent的移动方向刚进入街区时是沿主街道向目标终点方向,当被商铺或公共设施吸引后,会改变移动方向向目标建筑物运动. 若前进方向上存在游人阻碍前进,则会计算偏离方向进行校正. 游憩时间是最大游憩花费时间,当在商铺及公共设施中累计停留时间加上驶离街区时间超过游憩时间时,游人Agent会立即离开街区,中间不做逗留.
MASON是乔治梅森大学设计开发的多智能体仿真工具包,被设计出来用于在单机上进行大量智能体的有效模拟仿真. MASON多智能体仿真工具包被定义为“超轻量”,在涉及许多相对简单的智能体及常见问题中是非常受欢迎的,包括了人工生命、群体生物学、计算的社会科学、复杂科学、人工智能、蜂群机器人和多量机器人.
3.1.1 模型空间单位
根据游人Agent特点和南锣鼓巷街区模型面积,设定平台内一空间单位表示实际长度为0.5 m. 实际考察主街道全长为787 m,平均宽度为8 m,设定其长为1 574个空间单位,宽为16个空间单位.
3.1.2 模型时间步长
时间步长是指前后两个时间点之间的差值. 在模拟中,模型将整个过程离散为多个细小的过程,而每一步需要的时间就是时间步长. 根据游人平均运动速度为0.8 m/s和南锣鼓巷街区总长度,设定时间步长1 min, 1 440次时间步长代表一天的模拟过程.
3.1.3 游人自身属性设定
游人Agent初始生成时的性别、年龄、计划游憩时间是根据1.2.2中调研数据的概率随机生成的,游憩目标终点是根据1.2.1中激光客流数据的统计的出口选择概率随机生成的. 而游人的年龄和性别决定了基础运动速度、速度感知范围属性、吸引力感知范围,具体设定见表4,其中V、R、r是根据模型空间单位和时间步长设定的,本研究中V、R、r分别为20(单位:长度/时间步长),5(单位:长度)和10(单位:长度)[8-9].
表4 不同性别年龄游人属性表
3.2.1 游人被环境吸引的判定条件
在每一个时间步长开始时,会首先对研究区内所有的游人进行环境吸引判断. 若游人的吸引力感知范围与沿街店铺环境Agent相交,则需要进一步判断游人是否被店铺环境Agent吸引,前往店铺中进行停留. 判定原则为三条,若一条不成立,则判定游人不被店铺吸引,否则游人前往店铺中停留. 判定原则如下:
1)游人计划游憩时间减去在店铺停留时间的值要大于已用游憩时间,否则判定不成立.
2)店铺类混合环境Agent具有吸引力属性,吸引力越大,游人被吸引概率越大. 基于吸引力进行随机判定,判定结果失败,则总体判定不成立.
3)店铺类混合环境Agent具有最大承载人数属性,若店铺内游人数已达到最大值,则判定不成立.
3.2.2 游人游憩结束的判定
当游人移动到目标出口Agent范围内时,若基于空间关系的判断成立,则代表游人游憩行为结束,便销毁该游人Agent. 若到达计划游憩时间,未到达指定出口,则按照就近原则,从最近的出口离开. 同时后台生成一条json数据存入数据库,包括当前的时间步长、出口ID等.
根据游人游憩行为和街区模型设计,结合MASON多主体仿真框架,构建Control和Visitor两个JAVA类,Control代表框架中的Model类,继承MASON中的SimState库,包含start()、finish()、pace()等函数来控制平台运行,环境Agent的生成和感知判断规则的编写也在其中进行. Visitor类用于初始化游人Agent,并赋予其相应的感知判断规则. 在模拟过程中游人Agent的创建和行为判定都会调用该类的方法,游人游憩模拟平台结构及流程如图6所示.
图6 游憩模拟平台结构Fig.6 Recreational simulation platform structure
平台模拟街区游人游憩过程按时间步长的递增为流程判断标准,分为初始阶段、模拟阶段和结束阶段. 当时间步长为零时,处于初始阶段,会根据Control类创建模拟环境场景,同时会在场景内创建环境Agent和初始化500个游人Agent. 500个游人是根据9个月期间激光客流数据日平均零点时刻人数确定的. 之后平台进入模拟阶段,此阶段是街区游人游憩的主要模拟过程,时间步长每递增一次,pace()函数便运行一次,依据当前时刻进入街区的激光客流数据在对应入口生成新的游人Agent,街区内游人也会按照既定规则执行一次. 在此阶段下,感知型和混合型环境Agent会将其感知的当前游人数量数据作为输出数据返回前台,游人Agent会将位置信息、速度属性、游憩时间等基本信息作为输出数据返回前台. 当时间步长递增到1 441时,平台处于结束阶段,销毁智能体,关闭模拟场景.
游憩模拟平台以各入口游人进出数据为源数据,将模拟结果数据通过JDBC接口传回到前台,结合JAVA WEB开发技术,进行多样化可视化渲染,包括分块渲染、统计渲染和热力渲染.
4.1.1 分块渲染
平台设定的一次模拟过程存在1 440次时间步长,一次为1 min共24 h,前台会接收到平台传来的1 440组数组,每组数组存储该时间步长下各个Agent的属性. 在前台渲染过程中,根据该时间步长下分块感知型Agent感知的区域游人数量数据,渲染对应分块ID的颜色,表达出街区游人的时空分布情况. 分块颜色越深表示该区域游人越密集,越需要加以安全管理防范,具体效果如图7所示.
图7 分块渲染效果图Fig.7 Block rendering effect
4.1.2 统计渲染
统计渲染是通过统计图表来表达同时间步长街区内各个分块存在游人Agent数量的比较. 下方时间轴表示模拟过程中的1 440个时间步长,X轴显示的分块感知型Agent的ID编号,Y轴展示的是各分块区域内存在的游人数量. 效果如图8所示,柱子越高表示当前时间步长下,分块区域内存在的游人Agent越多.
图8 统计图表效果图Fig.8 Statistical chart effect chart
4.1.3 热力渲染
通过热力图渲染是较为常见的渲染方式,系统通过调取Baidu API热力图服务接口,基于模拟平台传回的游人Agent的地理坐标属性,进行热力图渲染,通过图上的明暗来寻找游人较集中的区域,效果如图9所示,黄色较区域人流较大,越需要加强安全防范.
图9 热力渲染效果图Fig.9 Thermal rendering effect
将7月份激光客流监测设备获得的每分钟进入的南锣鼓巷游人数据分为31组,每天分为一组,将其作为游人游憩模拟平台源数据输入运行,得到街区游人游憩过程中各时刻各出口游人离开数据. 经调查发现,实际中约60%游人都是从南北口两个主入口离开的. 将7月份激光监测南北口每15 min日平均离开数据与模拟日平均离开数据结果进行比较,得到对比如图10和图11所示.
图10 南口离开人数结果对比图Fig.10 Comparisons of the number of departures from the south passages
图11 北口离开人数结果对比图Fig.11 Comparisons of the number of departures from the north passages
如图11、图12所示,模拟数据与监测数据整体变化趋势相近,模拟数据的波动较大,两者的算术平均值南口约为21.63%,北口约为19.31%,以此为评定标准,平台模型的精度为79.23%,该游人游憩模型模拟数据对实际的游人游憩数据具有一定的参考性.
本研究以南锣鼓巷街区为例,通过实地调研考察,分析街区空间和游人群体特征,总结了街区游人游憩的主要模式,并结合多智能体技术定义了游人Agent和环境Agent,设计了街区游人游憩模型,将游憩这一抽象行为变为具体化.
通过MASON多智能体仿真工具包,结合激光客流数据、实地调研数据、街区GIS矢量数据,基于JAVA WEB开发技术,搭建仿真框架,实现通过JAVA多线程控制的街区游人游憩模拟平台.
激光客流监测技术具有连续性、高精度和实时性的特性,可以有效监测热点街区内实时游人总量和进出状况,但对于街区内部区域客流监测成本高昂不易推广. 本平台基于激光客流数据通过多智能体技术、JAVA WEB技术、可视化技术,对区域客流情况进行了仿真模拟的多样化表达,可与激光客流监测技术内外互补. 管理者通过平台可以实时查看各区域内游人游憩过程的时空分布,当某区域人流密度过高时可及时采取限流措施. 本研究将实现的景区游人游憩模型与景区实际管理应用相关联,为提升街区安全发挥了重要作用.
本研究所设计的游人游憩模型只涉及街区内部空间特征、游人群体特征、游人游憩模式等内部因素,并未考虑街区外部因素影响,如街区周边交通设施运维情况,邻近景点游人热度等. 在后续的研究中将在模型中加入这些外部因素,使模拟更加贴近现实.