本教程详细介绍如何使用 Pathfinder 2021.2 中引入的 Queues(排队)功能来模拟人员流动。用户将通过一个食堂模型示例,了解如何创建复杂的排队队列、构建复杂的流动行为,以及将排队队列与行为相结合来模拟人员流动。这些排队队列和行为将产生如图 1 所示的模拟结果。

准备工作
- 查阅《食堂人员流动》教程,了解不含排队队列的模型。
- 阅读用户手册中的 Queues 章节。
- 阅读《简单排队队列》教程,了解 Pathfinder 中排队队列的基础知识。
- 下载带排队队列的食堂模型压缩包,跟随教程编辑。
人员流动模型的典型场景包括:顾客在商场购物、旅客在机场寻找登机口、患者在医院候诊大厅移动等。这些复杂的人员流动模拟可以通过 Pathfinder 中的一些技术手段来近似实现。
《准备工作》中提供的模型是一个使用排队队列在 Pathfinder 中建模的食堂。
模型说明
预制排队队列模拟了食堂中常见的几种排队场景,包括取餐队列、饮品/调料区和餐椅就座。
146 名人员通过模型右侧的人员源(Occupant Source)在 500 秒 内进入模型。模型共有 4 个可能的出口,其中包括人员进入时通过的那扇门。
本教程完成后,人员将通过人员源进入模型,穿过取餐区,在收银台结账,坐下就餐,结束后通过其中一个出口离开模型。
排队队列示例
本节简要介绍一些比《简单排队队列》教程中更复杂的排队队列示例。如需更简单的示例,请参阅该教程。
桌椅队列

桌椅队列由一条带有多个服务点的路径组成。该路径设置了强制沿路径行进和可见参数为禁用状态。这会隐藏路径,并允许人员在移动到服务点之前仅移动到排队队列的末端,从而模拟实现更真实的人员移动——人员不会排队等候座位,而是直接移动到服务点坐下。
沙拉吧队列

沙拉吧队列是一个由 2 个排队队列组成的队列组,每个队列有 1 条路径和 2 个服务点。该队列与《简单排队队列》教程中创建的队列组类似,但提供了更多供人员交互的服务点,用于模拟人员在沙拉吧自助取餐的场景。
垃圾桶队列

垃圾桶队列是一个由 3 个排队队列组成的队列组,每个队列有 1 条路径和 1 个服务点。该队列展示了一个重要概念:同一队列组中的排队队列不必在几何位置上彼此靠近。当人员被派往垃圾桶队列组时,他们将移动到靠近出口的 3 个排队队列之一,模拟人员在离开食堂前丢弃垃圾的行为。
如果直接运行提供的食堂模型模拟而不做修改,人员将进入模型后立即从最近的出口门离开。这是因为人员只有一个”前往出口”行为可供执行。他们需要更多的行为才能实现人员流动模拟。
创建流动行为
本节将介绍如何在提供的模型中创建和实现复杂的人员流动行为。
餐厅行为

人员进入食堂的主要原因之一就是前往图 5 中高亮显示的 5 个主要餐厅之一。
为每个餐厅创建行为:
- 在导航视图中,右键单击行为根节点。
- 单击新建行为。
- 将新行为命名为
Sandwiches(三明治),然后单击确定。 - 重复步骤 1-3,再创建 9 个行为,分别命名为
Pizza(披萨)、Entree(主菜)、Grill(烧烤)、Salad(沙拉)、Beverages(饮品)、Beverages Refill(饮品续杯)、Condiments(调料)、Checkout(结账)和Tables(桌椅)。

此时模型应包含图 6 所示的所有行为。其中许多行为将在后续章节中进行设置。本节核心关注 5 个主要的”餐厅”行为——Sandwiches、Pizza、Entree、Grill 和 Salad。
对于 5 个”餐厅”行为中的每一个:
- 在导航视图中选择该行为。
- 单击添加动作旁的下拉箭头。
- 选择前往排队队列动作。
- 单击排队队列旁的链接。
- 在搜索栏中,搜索与该行为同名的队列组。
- 从列表中选择该队列组,然后单击创建。

- 从该行为中删除前往出口动作。
- 在导航视图中选择该行为。
- 单击添加动作旁的下拉箭头。
- 选择更改行为动作。
- 在目标行为对话框中,单击清除,然后清除所有行。
- 取消选中仅显示非零行。
- 输入图 8 所示的分布,然后单击创建。注意:此分布不适用于
Salad行为。该行为应为 60% 饮品、40% 结账的分布,以避免Salad行为循环。 - 如有必要,重新排序行为中的动作,使前往排队队列动作位于最上方。


二级行为
人员通过排队队列取到餐食后,应继续进行一系列二级行为。这些二级行为由 Beverages、Beverages Refill、Condiments 和 Checkout 行为表示。这些行为的创建方式与”餐厅”行为类似,但其分布有所不同。
创建这些行为:
- 与”餐厅行为”的步骤 5-10 类似,为每个行为添加对应的前往排队队列动作。
- 从每个行为中删除退出动作。
- 根据以下分布为每个行为添加更改行为动作:
Beverages行为应 100% 更改为Checkout。Beverages Refill和Checkout行为应 100% 更改为Tables。Condiments行为应更改为图 10 所示的分布。


终端行为
需要创建的最后一个行为是终端行为。这是所有人员最终都会遇到的行为,它将触发人员在模型中的最终动作——在大多数情况下(包括本例),该动作是退出动作。
本模型中的终端行为是 Tables 行为。人员在取餐并付款后,应前往餐桌就座用餐,可选择续杯饮品,然后扔掉垃圾并离开模型。
创建该行为:
- 选择
Tables行为。 - 与”餐厅行为”的步骤 5-10 类似,为
Tables队列组添加前往排队队列动作。 - 从行为中删除退出动作。
- 添加一个更改行为动作,15% 更改为
Beverages Refill行为,85% 为无变化。 - 为
Trash队列组添加另一个前往排队队列动作。 - 最后添加一个退出动作,目标为所有出口。

分配初始行为
所有行为创建完成后,最后一步是为人员分配初始行为,让他们在模型中自然地移动。
设置初始行为分布:
- 在导航视图中选择
Entry Source人员源。 - 在属性面板中,单击行为旁的链接。
- 输入图 13 所示的分布。

此分布模拟了大多数进入模型的人员将前往 5 个”餐厅”之一,但少数人可能仅为了购买饮品或去调料台而进入。这些行为将在人员进入模型后立即生效。
运行模拟并查看结果
食堂模型现在已按《模型》章节所述完成配置。
单击运行模拟
图标以运行模拟。在结果窗口中,单击播放按钮以查看人员如何在模型中移动。

如图 14 所示,人员进入模型,领取食物、饮品和调料,通过结账队列,坐下就餐,然后扔掉垃圾离开模型。通过修改各项分布的比例,可以控制人员经过每个排队队列的具体百分比。
结果分析

累计使用热力图是目前可视化哪些排队队列被使用最多的最佳方式。图 15 显示了该模型的累计使用热力图。可以看出,调料台队列是使用最少的队列,而桌椅队列中的两张桌子使用最多。热力图还显示,虽然餐桌普遍使用率较高,但模型角落的吧台式座位很少有人使用。
注意:人员流动模型涉及大量变量,每个变量都会引入累积误差。在本教程中,影响流动行为的主要变量是”更改行为”动作中的百分比分布和排队队列服务点的等待时间。对这些变量的修改将对模型中人员通过排队队列的流动方式产生很大影响。在使用此方法构建未来模型时,请牢记这一点。
总结
用户现在应已了解如何使用 Pathfinder 的 Queues 功能创建人员流动模型。同时,用户也应更加熟悉排队队列的一些更复杂配置,以及 Pathfinder 中行为的更复杂交互方式。
-e1750215042767.png)