更改

添加114,718字节 、 2020年5月9日 (六) 11:56
此词条暂由彩云小译翻译,未经人工整理和审校,带来阅读不便,请见谅。

{{technical|date=October 2016}}

{{3D computer graphics}}

'''Crowd simulation''' is the process of simulating the movement (or '''{{vanchor|dynamics|CROWD_DYNAMICS}}''') of a large number of entities or characters.<ref>{{cite book |doi=10.1007/978-3-319-08234-9_69-1 |chapter=Crowd Simulation |title=Encyclopedia of Computer Graphics and Games |pages=1–8 |year=2016 |last1=Thalmann |first1=Daniel |isbn=978-3-319-08234-9 }}</ref> It is commonly used to create [[virtual scene]]s for visual media like films and [[video game]]s, and is also used in crisis training,<ref>http://cc.ist.psu.edu/BRIMS/archives/2007/papers/07-BRIMS-025.pdf Jérôme Comptdaer, Emmanuel Chiva, Stéphane Delorme, Henri Morlaye, Jérôme Volpoët, Multi-scale behavioral models for urban crisis training simulation.</ref> architecture and urban planning,<ref>{{cite journal |doi=10.1162/pres.16.3.318 |title=Design and Evaluation of a Real-World Virtual Environment for Architecture and Urban Planning |journal=Presence: Teleoperators and Virtual Environments |volume=16 |issue=3 |pages=318–32 |year=2007 |last1=Drettakis |first1=George |last2=Roussou |first2=Maria |last3=Reche |first3=Alex |last4=Tsingos |first4=Nicolas |url=https://hal.inria.fr/inria-00607261/file/DRRT07.pdf }}</ref> and evacuation simulation.<ref>{{cite journal |doi=10.1016/S0360-1323(98)00057-2 |title=A review of the methodologies used in the computer simulation of evacuation from the built environment |journal=Building and Environment |volume=34 |issue=6 |pages=741–9 |year=1999 |last1=Gwynne |first1=S. |last2=Galea |first2=E.R. |last3=Owen |first3=M. |last4=Lawrence |first4=P.J. |last5=Filippidis |first5=L. }}</ref>

Crowd simulation is the process of simulating the movement (or ) of a large number of entities or characters. It is commonly used to create virtual scenes for visual media like films and video games, and is also used in crisis training, architecture and urban planning, and evacuation simulation.

人群模拟是对大量实体或字符的运动进行模拟的过程。它通常用于为电影和视频游戏等视觉媒体创建虚拟场景,也用于危机培训、建筑和城市规划以及疏散模拟。



Crowd simulation may focus on aspects that target different applications. For realistic and fast [[rendering (computer graphics)|rendering]] of a crowd for visual media or [[virtual cinematography]], reduction of the complexity of the [[3D scene]] and [[image-based rendering]] are used,<ref>{{cite journal |doi=10.1111/1467-8659.00633 |title=Visualizing Crowds in Real-Time |journal=Computer Graphics Forum |volume=21 |issue=4 |pages=753–65 |year=2002 |last1=Tecchia |first1=Franco |last2=Loscos |first2=Celine |last3=Chrysanthou |first3=Yiorgos }}</ref> while variations in appearance help present a realistic population.<ref name="Thalmann et al 2009">{{cite book |doi=10.1109/CW.2009.23 |chapter=Challenges in Crowd Simulation |title=2009 International Conference on CyberWorlds |pages=1–12 |year=2009 |last1=Thalmann |first1=Daniel |last2=Grillon |first2=Helena |last3=Maim |first3=Jonathan |last4=Yersin |first4=Barbara |isbn=978-1-4244-4864-7 |citeseerx=10.1.1.365.5045 }}</ref><ref name="Maim et al 2009">{{cite journal |doi=10.1109/MCG.2009.129 |pmid=24806782 |title=Unique Character Instances for Crowds |journal=IEEE Computer Graphics and Applications |volume=29 |issue=6 |pages=82–90 |year=2009 |last1=Maim |first1=J. |last2=Yersin |first2=B. |last3=Thalmann |first3=D. }}</ref>

Crowd simulation may focus on aspects that target different applications. For realistic and fast rendering of a crowd for visual media or virtual cinematography, reduction of the complexity of the 3D scene and image-based rendering are used, while variations in appearance help present a realistic population.

人群模拟可以集中于针对不同应用的方面。对于视觉媒体或虚拟摄影的人群的真实和快速渲染,减少3 d 场景的复杂性和基于图像的渲染被使用,而外观的变化有助于呈现一个真实的人群。



In games and applications intended to replicate real-life [[human]] crowd movement, like in evacuation simulations, simulated agents may need to navigate towards a goal, avoid collisions, and exhibit other human-like behavior. Many crowd steering algorithms have been developed to lead simulated crowds to their goals realistically. Some more general systems are researched that can support different kinds of agents (like cars and pedestrians),<ref>{{cite journal |doi=10.1002/cav.1654 |title=Vehicle-pedestrian interaction for mixed traffic simulation |journal=Computer Animation and Virtual Worlds |volume=26 |issue=3–4 |pages=405–12 |year=2015 |last1=Chao |first1=Qianwen |last2=Deng |first2=Zhigang |last3=Jin |first3=Xiaogang }}</ref> different levels of abstraction(like individual and continuum),<ref>{{cite journal |doi=10.1145/2070781.2024169 |title=Interactive hybrid simulation of large-scale traffic |journal=ACM Transactions on Graphics |volume=30 |issue=6 |pages=1 |year=2011 |last1=Sewall |first1=Jason |last2=Wilkie |first2=David |last3=Lin |first3=Ming C. }}</ref> agents interacting with smart objects,<ref>{{cite book |doi=10.1007/978-3-7091-6375-7_6 |chapter=Modeling Objects for Interaction Tasks |title=Computer Animation and Simulation '98 |pages=73–86 |series=Eurographics |year=1999 |last1=Kallmann |first1=Marcelo |last2=Thalmann |first2=Daniel |isbn=978-3-211-83257-8 |citeseerx=10.1.1.550.2013 }}</ref> and more complex physical and social dynamics.<ref>http://dl.acm.org/citation.cfm?id=1272705 Pelechano, N. and Allbeck, J. M. and Badler, N. I. Controlling individual agents in high-density crowd simulation. In Proceedings of the 2007 ACM SIGGRAPH/Eurographics Symposium on Computer Animation. {{ISBN|978-1-59593-624-0}}</ref>

In games and applications intended to replicate real-life human crowd movement, like in evacuation simulations, simulated agents may need to navigate towards a goal, avoid collisions, and exhibit other human-like behavior. Many crowd steering algorithms have been developed to lead simulated crowds to their goals realistically. Some more general systems are researched that can support different kinds of agents (like cars and pedestrians), different levels of abstraction(like individual and continuum), agents interacting with smart objects, and more complex physical and social dynamics.

在模拟真实人群运动的游戏和应用程序中,比如疏散模拟,模拟代理可能需要导航到一个目标,避免碰撞,并展示其他类似人类的行为。许多人群指导算法已经开发,以引导模拟人群到他们的目标现实。研究了一些更一般的系统,它们可以支持不同类型的代理(如汽车和行人)、不同的抽象层次(如个体和连续体)、与智能对象相互作用的代理,以及更复杂的物理和社会动态。



== History ==

There has always been a deep-seated interest in the understanding and gaining control of motional and behavior of crowds of people. Many major advancements have taken place since the beginnings of research within the realm of crowd simulation. Evidently many new findings are continually made and published following these which improve the scalability, flexibility, applicability, and realism of simulations:

There has always been a deep-seated interest in the understanding and gaining control of motional and behavior of crowds of people. Many major advancements have taken place since the beginnings of research within the realm of crowd simulation. Evidently many new findings are continually made and published following these which improve the scalability, flexibility, applicability, and realism of simulations:

理解和控制人群的情绪和行为一直是人们根深蒂固的兴趣所在。自从人群模拟领域的研究开始以来,已经取得了许多重大进展。显然,许多新的发现不断地被提出和发表,这些发现提高了模拟的可扩展性、灵活性、适用性和真实性:



In 1987, behavioral animation was introduced and developed by [[Craig Reynolds (computer graphics)|Craig Reynolds]].<ref>{{Cite book|last=Reynolds|first=Craig|year=1987|title=Flocks, herds, and schools: A distributed behavior model.|url=|journal=Proceedings of ACM SIGGRAPH 87|volume=July 1987|pages=25–34|doi=10.1145/37401.37406|citeseerx=10.1.1.103.7187|isbn=978-0897912273}}</ref> He had simulated flocks of birds alongside schools of fish for the purpose of studying group intuition and movement. All agents within these simulations were given direct access to the respective positions and velocities of their surrounding agents. The theorization and study set forth by Reynolds was improved and built upon in 1994 by [[Xiaoyuan Tu]], [[Demetri Terzopoulos]] and Radek Grzeszczuk.<ref>{{cite journal |doi=10.1162/artl.1994.1.4.327 |title=Artificial Fishes: Autonomous Locomotion, Perception, Behavior, and Learning in a Simulated Physical World |journal=Artificial Life |volume=1 |issue=4 |pages=327–51 |year=1994 |last1=Terzopoulos |first1=Demetri |last2=Tu |first2=Xiaoyuan |last3=Grzeszczuk |first3=Radek |citeseerx=10.1.1.33.8131 }}</ref> The realistic quality of simulation was engaged with as the individual agents were equipped with synthetic vision and a general view of the environment within which they resided, allowing for a perceptual awareness within their dynamic habitats.

In 1987, behavioral animation was introduced and developed by Craig Reynolds. He had simulated flocks of birds alongside schools of fish for the purpose of studying group intuition and movement. All agents within these simulations were given direct access to the respective positions and velocities of their surrounding agents. The theorization and study set forth by Reynolds was improved and built upon in 1994 by Xiaoyuan Tu, Demetri Terzopoulos and Radek Grzeszczuk. The realistic quality of simulation was engaged with as the individual agents were equipped with synthetic vision and a general view of the environment within which they resided, allowing for a perceptual awareness within their dynamic habitats.

1987年,克雷格 · 雷诺兹引入并发展了行为动画。为了研究群体的直觉和运动,他模拟了成群的鸟和成群的鱼。在这些模拟中的所有代理都可以直接访问它们周围代理的各自位置和速度。雷诺兹提出的理论和研究是1994年杜晓原、特佐普洛斯和格兹兹丘克对雷诺兹理论和研究的改进和发展。模拟的真实质量是参与的,因为个别代理人配备了合成的视觉和一个总体的看法,他们居住的环境,允许在他们的动态栖息地的知觉意识。



Initial research in the field of crowd simulation began in 1997 with [[Daniel Thalmann]]'s supervision of Soraia Raupp Musse's PhD thesis. These two present a new model of crowd behavior in order to create a simulation of generic populations.<ref>{{Cite book|url=https://books.google.com/?id=3Adh_2ZNGLAC&pg=PR8&dq=history+of+crowd+simulation#v=onepage&q=history%20of%20crowd%20simulation&f=false|title=Crowd Simulation|last=Thalmann|first=Daniel|last2=Musse|first2=Soraia Raupp|date=2012-10-04|publisher=Springer Science & Business Media|isbn=978-1-4471-4449-6|language=en}}</ref> Here a relation is drawn between the autonomous behavior of the individual within the crowd and the emergent behavior originating from this.<ref>{{cite book |doi=10.1007/978-3-7091-6874-5_3 |chapter=A Model of Human Crowd Behavior : Group Inter-Relationship and Collision Detection Analysis |title=Computer Animation and Simulation '97 |pages=39–51 |series=Eurographics |year=1997 |last1=Musse |first1=S. R. |last2=Thalmann |first2=D. |isbn=978-3-211-83048-2 |citeseerx=10.1.1.14.7049 }}</ref>

Initial research in the field of crowd simulation began in 1997 with Daniel Thalmann's supervision of Soraia Raupp Musse's PhD thesis. These two present a new model of crowd behavior in order to create a simulation of generic populations. Here a relation is drawn between the autonomous behavior of the individual within the crowd and the emergent behavior originating from this.

人群模拟领域的初步研究始于1997年,由丹尼尔 · 塔尔曼指导索拉亚 · 劳普 · 穆塞的博士论文。这两个提出了一个新的群体行为模型,以创建一个仿真的通用群体。在这里,在群体中个体的自主行为和由此产生的突发行为之间,得出了一种关系。



In 1999, individualistic navigation began its course within the realm of crowd simulation via continued research of Craig Reynolds.<ref>{{Cite web|url=http://www.red3d.com/cwr/papers/1999/gdc99steer.html|title=Steering Behaviors For Autonomous Characters|website=www.red3d.com|access-date=2016-12-17}}</ref> Steering behaviors are proven to play a large role in the process of automating agents within a simulation. Reynolds states the processes of low-level locomotion to be dependent and reliant on mid-level steering behaviors and higher-level goal states and path finding strategies. Building off of the advanced work of Reynolds, Musse and Thalmann began to study the modeling of [[real-time simulation|real time simulation]]s of these crowds, and their applications to human behavior. The control of human crowds was designated as a hierarchical organization with levels of autonomy amongst agents. This marks the beginnings of modeling individual behavior in its most elementary form on humanoid agents.<ref>{{cite journal |doi=10.1109/2945.928167 |title=Hierarchical model for real time simulation of virtual human crowds |journal=IEEE Transactions on Visualization and Computer Graphics |volume=7 |issue=2 |pages=152–64 |year=2001 |last1=Musse |first1=S.R. |last2=Thalmann |first2=D. |url=http://infoscience.epfl.ch/record/98931 |type=Submitted manuscript }}</ref>

In 1999, individualistic navigation began its course within the realm of crowd simulation via continued research of Craig Reynolds. Steering behaviors are proven to play a large role in the process of automating agents within a simulation. Reynolds states the processes of low-level locomotion to be dependent and reliant on mid-level steering behaviors and higher-level goal states and path finding strategies. Building off of the advanced work of Reynolds, Musse and Thalmann began to study the modeling of real time simulations of these crowds, and their applications to human behavior. The control of human crowds was designated as a hierarchical organization with levels of autonomy amongst agents. This marks the beginnings of modeling individual behavior in its most elementary form on humanoid agents.

1999年,通过克雷格 · 雷诺兹的持续研究,个人主义导航开始了它在人群模拟领域的进程。仿真结果表明,转向行为在自动化代理过程中起着重要的作用。雷诺兹指出,低水平运动的过程依赖于中等水平的转向行为和高水平的目标状态以及路径寻找策略。在 Reynolds、 Musse 和 Thalmann 先进工作的基础上,他们开始研究这些人群的实时模拟模型,以及它们在人类行为中的应用。对人群的控制被指定为具有代理人自治水平的分层组织。这标志着在人形代理上以最基本的形式建立个体行为模型的开始。



Coinciding with publications regarding human behavior models and simulations of group behaviors, Matt Anderson, Eric McDaniel, and Stephen Chenney's proposal of constraints on behavior<ref>{{Cite article|author1=Matt Anderson|author2=Eric McDaniel|author3=Stephen Chenney|title=Constrained animation of flocks|publisher=SCA '03 Proceedings of the 2003 ACM SIGGRAPH/Eurographics symposium on Computer animation |pages= 286–297|date=July 26–27, 2003 |ISBN=1-58113-659-5 }}</ref> gained popularity. The positioning of constraints on group animations was presented to be able to be done at any time within the simulation. This process of applying constraints to the behavioral model is undergone in a two-fold manner, by first determining the initial set of goal trajectories coinciding with the constraints, and then applying behavioral rules to these paths to select those which do not violate them.

Coinciding with publications regarding human behavior models and simulations of group behaviors, Matt Anderson, Eric McDaniel, and Stephen Chenney's proposal of constraints on behavior gained popularity. The positioning of constraints on group animations was presented to be able to be done at any time within the simulation. This process of applying constraints to the behavioral model is undergone in a two-fold manner, by first determining the initial set of goal trajectories coinciding with the constraints, and then applying behavioral rules to these paths to select those which do not violate them.

马特 · 安德森、埃里克 · 麦克丹尼尔和史蒂芬 · 陈尼关于人类行为模型和群体行为模拟的论文发表后,行为约束的提议大受欢迎。对组动画的约束定位被提出能够在任何时候在模拟中完成。将约束应用到行为模型的过程分为两步: 首先确定与约束一致的初始目标轨迹集,然后将行为规则应用到这些路径上,选择那些没有违反约束的路径。



Correlating and building off of the findings proposed in his work with Musse, Thalmann, working alongside Bratislava Ulicny and Pablo de Heras Ciechomski, proposed a new model which allowed for interactive authoring of agents at the level of an individual, a group of agents and the entirety of a crowd. A brush metaphor is introduced to distribute, model and control crowd members in real-time with immediate feedback.<ref>{{cite book |doi=10.1145/1028523.1028555 |chapter=Crowdbrush |title=Proceedings of the 2004 ACM SIGGRAPH/Eurographics symposium on Computer animation – SCA '04 |pages=243–52 |year=2004 |last1=Ulicny |first1=Branislav |last2=Ciechomski |first2=Pablo de Heras |last3=Thalmann |first3=Daniel |isbn=978-3-905673-14-2 }}</ref>

Correlating and building off of the findings proposed in his work with Musse, Thalmann, working alongside Bratislava Ulicny and Pablo de Heras Ciechomski, proposed a new model which allowed for interactive authoring of agents at the level of an individual, a group of agents and the entirety of a crowd. A brush metaphor is introduced to distribute, model and control crowd members in real-time with immediate feedback.

与马塞、塔尔曼、 Bratislava Ulicny 和巴勃罗 · 德赫拉斯 · 谢洪斯基一起工作的他,根据与马塞的合作中提出的研究结果,提出了一种新的模式,这种模式允许在个人、一组代理人和整个群体的层面上进行代理人的互动创作。引入了一个刷子隐喻来实时分配、建模和控制人群成员并提供即时反馈。



== Crowd dynamics ==

One of the major goals in crowd simulation is to steer crowds realistically and recreate human dynamic behaviors.

One of the major goals in crowd simulation is to steer crowds realistically and recreate human dynamic behaviors.

人群模拟的主要目标之一是真实地引导人群,重现人类的动态行为。



There exists several overarching approaches to crowd simulation and AI, each one providing advantages and disadvantages based on crowd size and time scale. Time scale refers to how the objective of the simulation also affects the length of the simulation. For example, researching social questions such as how ideologies are spread amongst a population will result in a much longer running simulation since such an event can span up to months or years. Using those two characteristics, researchers have attempted to apply classifications to better evaluate and organize existing crowd simulators.<ref>{{cite journal |doi=10.1145/1842722.1842725 |title=Crowd modeling and simulation technologies |journal=ACM Transactions on Modeling and Computer Simulation |volume=20 |issue=4 |pages=1–35 |year=2010 |last1=Zhou |first1=Suiping |last2=Chen |first2=Dan |last3=Cai |first3=Wentong |last4=Luo |first4=Linbo |last5=Low |first5=Malcolm Yoke Hean |last6=Tian |first6=Feng |last7=Tay |first7=Victor Su-Han |last8=Ong |first8=Darren Wee Sze |last9=Hamilton |first9=Benjamin D. |hdl=10149/118022 |url=https://research.tees.ac.uk/ws/files/6477586/Accepted_manuscript.pdf }}</ref>

There exists several overarching approaches to crowd simulation and AI, each one providing advantages and disadvantages based on crowd size and time scale. Time scale refers to how the objective of the simulation also affects the length of the simulation. For example, researching social questions such as how ideologies are spread amongst a population will result in a much longer running simulation since such an event can span up to months or years. Using those two characteristics, researchers have attempted to apply classifications to better evaluate and organize existing crowd simulators.

人群模拟和人工智能有几种主要的方法,每种方法根据人群规模和时间尺度提供优缺点。时间尺度是指仿真的目标如何影响仿真的长度。例如,研究社会问题,如意识形态如何在人群中传播,将导致一个长得多的运行模拟,因为这样的事件可以跨越数月或数年。利用这两个特点,研究人员试图应用分类,以更好地评估和组织现有的人群模拟器。



;Flow-based Approach: Flow based crowd simulations focus on the crowd as a whole rather than its components. As such individuals do not have any distinctive behaviors that occur due to input from their surroundings and behavioral factors are largely reduced.<ref name="Degond">{{cite journal|title= Congestion in a macroscopic model of self-driven particles modeling gregariousness| last1=Degond| first1=Pierre| last2=Navoret| first2=Laurent| last3=Bon| first3=Richard| last4=Sanchez| first4=David| journal=[[Journal of Statistical Physics]]| volume=138| issue=1–3| year=2010| pages=85–125| publisher=[[Springer Publishing|Springer]]| doi=10.1007/s10955-009-9879-x| arxiv=0908.1817| bibcode=2010JSP...138...85D}}</ref> This model is mainly used to estimate the flow of movement of a large and dense crowd in a given environment. Best used in studying large crowd, short time objectives.

Flow-based Approach: Flow based crowd simulations focus on the crowd as a whole rather than its components. As such individuals do not have any distinctive behaviors that occur due to input from their surroundings and behavioral factors are largely reduced. This model is mainly used to estimate the flow of movement of a large and dense crowd in a given environment. Best used in studying large crowd, short time objectives.

基于流动的方法: 基于流动的人群模拟关注于人群作为一个整体,而不是其组成部分。因为这样的个体没有任何独特的行为是由于他们周围的环境和行为因素在很大程度上减少了。该模型主要用于估计给定环境下大型密集人群的运动流量。最适用于研究人群大,时间短的目标。



;Entity-based Approach: Models that implement a set of physical, predefined, and global laws meant to simulate social/psychological factors that occur in individuals that are a part of a crowd fall under this category. Entities in this case do not have the capacity to, in a sense, think for themselves. All movements are determined by the global laws being enforced on them. Simulations that use this model often do so to research crowd dynamics such as jamming and flocking. Small to medium-sized crowds with short term objectives fit this approach best.

Entity-based Approach: Models that implement a set of physical, predefined, and global laws meant to simulate social/psychological factors that occur in individuals that are a part of a crowd fall under this category. Entities in this case do not have the capacity to, in a sense, think for themselves. All movements are determined by the global laws being enforced on them. Simulations that use this model often do so to research crowd dynamics such as jamming and flocking. Small to medium-sized crowds with short term objectives fit this approach best.

基于实体的方法: 实施一套物理的、预先确定的和全球性的法律的模型,意在模拟发生在属于群体一部分的个人身上的社会 / 心理因素。在这种情况下,实体在某种意义上没有独立思考的能力。所有的运动都是由强加在他们身上的全球法律决定的。使用这个模型的仿真经常用来研究人群动态,例如拥挤和聚集。具有短期目标的中小型群体最适合这种方法。



;Agent-based Approach: Characterized by autonomous, interacting individuals. Each agent of a crowd in this approach, is given a degree of intelligence; they can react to each situation on their own based on a set of decision rules. Information used to decide on an action is obtained locally from the agent's' surroundings. Most often, this approach is used for simulating realistic crowd behavior as the researcher is given complete freedom to implement any behaviors.

Agent-based Approach: Characterized by autonomous, interacting individuals. Each agent of a crowd in this approach, is given a degree of intelligence; they can react to each situation on their own based on a set of decision rules. Information used to decide on an action is obtained locally from the agent's' surroundings. Most often, this approach is used for simulating realistic crowd behavior as the researcher is given complete freedom to implement any behaviors.

基于 agent 的方法: 拥有属性自治的,互动的个体。在这种方法中,人群中的每个代理人,都被赋予了一定程度的智能; 他们可以根据一组决策规则,自己对每种情况做出反应。用于决定一个行动的信息是从代理人的周围局部获得的。最常见的是,这种方法是用来模拟现实的人群行为,因为研究人员被给予完全自由实施任何行为。



== Particle systems ==

One way to simulate virtual crowds is to use a [[particle system]]. Particle systems were first introduced in computer graphics by W. T. Reeves in 1983.<ref>{{cite journal |doi=10.1117/12.261175 |title=From crowd simulation to airbag deployment: Particle systems, a new paradigm of simulation |journal=Journal of Electronic Imaging |volume=6 |pages=94–107 |year=1997 |last1=Cohen |first1=Eyal |last2=Cohen |first2=Eyal |last3=Najman |first3=Laurent |bibcode=1997JEI.....6...94B }}</ref> A particle system is a collection of a number of individual elements or ''particles''. Each particle is able to act autonomously and is assigned a set of physical attributes (such as color, size and velocity).

One way to simulate virtual crowds is to use a particle system. Particle systems were first introduced in computer graphics by W. T. Reeves in 1983. A particle system is a collection of a number of individual elements or particles. Each particle is able to act autonomously and is assigned a set of physical attributes (such as color, size and velocity).

一种模拟虚拟人群的方法是使用粒子系统。1983年,w. t. Reeves 在计算机图形学首次引入了粒子系统。粒子系统是一系列单个元素或粒子的集合。每个粒子都能够自主行动,并被赋予一组物理属性(如颜色、大小和速度)。



A particle system is dynamic, in that the movements of the particles change over time. A particle system's movement is what makes it so desirable and easy to implement. Calculating the movements of these particles takes very little time. It simply involves physics: the sum of all the forces acting on a particle determines its motion. Forces such as gravity, friction and force from a collision, and social forces like the attractive force of a goal.

A particle system is dynamic, in that the movements of the particles change over time. A particle system's movement is what makes it so desirable and easy to implement. Calculating the movements of these particles takes very little time. It simply involves physics: the sum of all the forces acting on a particle determines its motion. Forces such as gravity, friction and force from a collision, and social forces like the attractive force of a goal.

粒子系统是动态的,因为粒子的运动随着时间而改变。粒子系统的运动使它如此可取和容易实现。计算这些粒子的运动只需要很少的时间。它仅仅涉及到物理学: 作用在一个粒子上的所有力的总和决定了它的运动。诸如重力、碰撞产生的摩擦和力,以及诸如目标的吸引力之类的社会力。



Usually each particle has a [[velocity vector]] and a [[position vector]], containing information about the particle's current velocity and position respectively. The particles next position is calculated by adding its velocity vector to its position vector. A very simple operation (again why particle systems are so desirable). Its velocity vector changes over time, in response to the forces acting on the particle. For example, a collision with another particle will cause it to change direction.

Usually each particle has a velocity vector and a position vector, containing information about the particle's current velocity and position respectively. The particles next position is calculated by adding its velocity vector to its position vector. A very simple operation (again why particle systems are so desirable). Its velocity vector changes over time, in response to the forces acting on the particle. For example, a collision with another particle will cause it to change direction.

通常每个粒子都有一个速度矢量和一个位置矢量,分别包含关于粒子当前速度和位置的信息。通过将粒子的速度矢量加到其位置矢量来计算粒子的下一个位置。一个非常简单的操作(再次说明为什么粒子系统如此可取)。它的速度矢量随时间变化,以响应作用在粒子上的力。例如,与另一个粒子的碰撞将导致它改变方向。



Particles systems have been widely used in films for effects such as explosions, for water effects in the 2000 movie ''[[The Perfect Storm (film)|The Perfect Storm]]'', and simulated gas in the 1994 film ''[[The Mask (1994 film)|the Mask]]''.

Particles systems have been widely used in films for effects such as explosions, for water effects in the 2000 movie The Perfect Storm, and simulated gas in the 1994 film the Mask.

粒子系统已经广泛应用于电影效果,如爆炸,2000年的电影完美风暴的水效果,以及1994年的电影面具模拟气体。



Particles systems, however, do have some drawbacks. It can be a bad idea to use a particle system to simulate agents in a crowd that the director will move on command, as determining which particles belong to the agent and which do not is very difficult.

Particles systems, however, do have some drawbacks. It can be a bad idea to use a particle system to simulate agents in a crowd that the director will move on command, as determining which particles belong to the agent and which do not is very difficult.

然而,粒子系统确实有一些缺点。使用粒子系统模拟人群中的代理可能是个坏主意,因为确定哪些粒子属于代理,哪些不属于代理是非常困难的。



=== Algorithm by Patil and Van Den Berg ===

This algorithm was designed for relatively simplistic crowds, where each agent in the crowd only desires to get to its own goal destination while also avoiding obstacles.<ref>{{cite journal |doi=10.1109/TVCG.2010.33 |pmid=21149879 |title=Directing Crowd Simulations Using Navigation Fields |journal=IEEE Transactions on Visualization and Computer Graphics |volume=17 |issue=2 |pages=244–54 |year=2011 |last1=Patil |first1=Sachin |last2=Van Den Berg |first2=Jur |last3=Curtis |first3=Sean |last4=Lin |first4=Ming C |last5=Manocha |first5=Dinesh |citeseerx=10.1.1.183.7823 }}</ref> This algorithm could be used for simulating a crowd in Times Square.

This algorithm was designed for relatively simplistic crowds, where each agent in the crowd only desires to get to its own goal destination while also avoiding obstacles. This algorithm could be used for simulating a crowd in Times Square.

该算法是针对相对简单化的群体设计的,群体中的每个代理人只希望到达自己的目的地,同时避开障碍物。这个算法可以用来模拟时代广场的人群。



Patils algorithm's most important and distinctive feature is that it utilizes the concept of ''navigation fields'' for directing agents. This is different from a guidance field; a guidance field is an area around the agent in which the agent is capable of "seeing"/detecting information. Guidance fields are typically used for avoiding obstacles, dynamic obstacles (obstacles that move) in particular. Every agent possesses its own guidance field. A navigation field, on the other hand, is a vector field which calculates the minimum cost path for every agent so that every agent arrives at its own goal position.

Patils algorithm's most important and distinctive feature is that it utilizes the concept of navigation fields for directing agents. This is different from a guidance field; a guidance field is an area around the agent in which the agent is capable of "seeing"/detecting information. Guidance fields are typically used for avoiding obstacles, dynamic obstacles (obstacles that move) in particular. Every agent possesses its own guidance field. A navigation field, on the other hand, is a vector field which calculates the minimum cost path for every agent so that every agent arrives at its own goal position.

帕蒂尔斯算法最重要的区辨特征是它利用了导航场的概念来指导代理。这不同于指导字段; 指导字段是代理周围的一个区域,代理可以在其中“看到” / 检测信息。导航区域通常用于避开障碍物,特别是动态障碍物(移动的障碍物)。每个主体都有自己的指导领域。另一方面,导航场是一个向量场,它为每个代理计算最小代价路径,使每个代理到达自己的目标位置。



The navigation field can only be used properly when a path exists from every free (non-obstacle) position in the environment to one of the goal positions. The navigation field is computed using coordinates of the static objects in the environment, goal positions for each agent, and the guidance field for each agent. In order to guarantee that every agent reaches its own goal the navigation field must be free of local minima, except for the presence of sinks at the specified goals.

The navigation field can only be used properly when a path exists from every free (non-obstacle) position in the environment to one of the goal positions. The navigation field is computed using coordinates of the static objects in the environment, goal positions for each agent, and the guidance field for each agent. In order to guarantee that every agent reaches its own goal the navigation field must be free of local minima, except for the presence of sinks at the specified goals.

只有当从环境中的每一个自由(无障碍)位置到目标位置之一的路径存在时,导航场才能正确使用。使用环境中静态对象的坐标、每个代理的目标位置和每个代理的导航字段计算导航字段。为了保证每个主体达到自己的目标,导航域必须不受局部最小值的限制,除非在特定目标处存在汇。



The running time of computing the navigation field is <math>O(m*n*log(mn))</math>, where m × n is the grid dimension (similar to [[Dijkstra's algorithm]]). Thus, the algorithm is only dependent on the grid resolution and not dependent on the number of agents in the environment. However, this algorithm has a high memory cost.

The running time of computing the navigation field is <math>O(m*n*log(mn))</math>, where m × n is the grid dimension (similar to Dijkstra's algorithm). Thus, the algorithm is only dependent on the grid resolution and not dependent on the number of agents in the environment. However, this algorithm has a high memory cost.

计算导航字段的运行时间是 math o (m * n * log (mn)) / math,其中 m n 是网格维度(类似于 Dijkstra 的算法)。因此,该算法仅依赖于网格分辨率,而不依赖于环境中的代理数量。但是,这种算法的内存开销很大。



=== Individual behavior modelling ===

One set of techniques for AI-based crowd simulation is to model crowd behavior by advanced simulation of individual agent motivations and decision-making. Generally, this means each agent is assigned some set of variables that measure various traits or statuses such as stress, personality, or different goals. This results in more realistic crowd behavior though may be more computationally intensive than simpler techniques.

One set of techniques for AI-based crowd simulation is to model crowd behavior by advanced simulation of individual agent motivations and decision-making. Generally, this means each agent is assigned some set of variables that measure various traits or statuses such as stress, personality, or different goals. This results in more realistic crowd behavior though may be more computationally intensive than simpler techniques.

基于 ai 的群体模拟技术之一是通过对个体动机和决策的高级模拟来建立群体行为模型。一般来说,这意味着每个代理都被分配了一组变量来衡量不同的特征或状态,比如压力、性格或不同的目标。这导致更现实的群体行为,虽然可能是更密集的计算比简单的技术。



==== Personality-based models ====

One method of creating individualistic behavior for crowd agents is through the use of personality traits.<ref>{{cite book |doi=10.1145/2019406.2019413 |chapter=Simulating heterogeneous crowd behaviors using personality trait theory |title=Proceedings of the 2011 ACM SIGGRAPH/Eurographics Symposium on Computer Animation – SCA '11 |pages=43–52 |year=2011 |last1=Guy |first1=Stephen J. |last2=Kim |first2=Sujeong |last3=Lin |first3=Ming C. |last4=Manocha |first4=Dinesh |isbn=978-1-4503-0923-3 }}</ref> Each agent may have certain aspects of their personality tuned based on a formula that associates aspects such as aggressiveness or impulsiveness with variables that govern the agents' behavior. One way this association can be found is through a subjective study in which agents are randomly assigned values for these variables and participants are asked to describe each agent in terms of these personality traits. A regression may then be done to determine a correlation between these traits and the agent variables. The personality traits can then be tuned and have an appropriate effect on agent behavior.

One method of creating individualistic behavior for crowd agents is through the use of personality traits. Each agent may have certain aspects of their personality tuned based on a formula that associates aspects such as aggressiveness or impulsiveness with variables that govern the agents' behavior. One way this association can be found is through a subjective study in which agents are randomly assigned values for these variables and participants are asked to describe each agent in terms of these personality traits. A regression may then be done to determine a correlation between these traits and the agent variables. The personality traits can then be tuned and have an appropriate effect on agent behavior.

为群体行动者创造个人主义行为的一种方法是通过使用人格特质。每个代理人可能会根据一个公式调整他们个性的某些方面,这个公式将侵略性或冲动性等方面与控制代理人行为的变量联系起来。发现这种联系的一个方法是通过一个主观的研究,在这个研究中代理人被随机分配这些变量的值,参与者被要求描述每个代理人的这些性格特征。然后可以进行回归,以确定这些特征和代理变量之间的相关性。然后,人格特征可以被调整,并对主体行为产生适当的影响。



The [[Big Five personality traits|OCEAN personality model]] has been used to define a mapping between personality traits and crowd simulation parameters. Automating crowd parameter tuning with personality traits provides easy authoring of scenarios with heterogeneous crowds.<ref>{{cite journal|last1=Durupinar|first1=Funda|last2=Pelechano|first2=Nuria|last3=Allbeck|first3=Jan|last4=Gudukbay|first4=Ugur|last5=Badler|first5=Norman I.|title=How the Ocean Personality Model Affects the Perception of Crowds|journal=IEEE Computer Graphics and Applications|date=2011|volume=31|issue=3|pages=22–31|doi=10.1109/MCG.2009.105|pmid=24808089|hdl=11693/11800|hdl-access=free}}</ref>

The OCEAN personality model has been used to define a mapping between personality traits and crowd simulation parameters. Automating crowd parameter tuning with personality traits provides easy authoring of scenarios with heterogeneous crowds.

采用 OCEAN 人格模型定义了人格特质与人群模拟参数之间的映射关系。自动调整人群参数与个性特征提供了方便的场景创作与异质性的人群。



==== Stress-based model ====

The behavior of crowds in high-stress situations can be modeled using [[General adaptation syndrome|General Adaptation Syndrome]] theory.l<ref>{{cite book |doi=10.1145/2159616.2159626 |chapter=Interactive simulation of dynamic crowd behaviors using general adaptation syndrome theory |title=Proceedings of the ACM SIGGRAPH Symposium on Interactive 3D Graphics and Games – I3D '12 |pages=55–62 |year=2012 |last1=Kim |first1=Sujeong |last2=Guy |first2=Stephen J. |last3=Manocha |first3=Dinesh |last4=Lin |first4=Ming C. |isbn=978-1-4503-1194-6 |citeseerx=10.1.1.673.3693 }}</ref> Agent behavior is affected by various stressors from their environment categorized into four prototypes: time pressure, area pressure, positional stressors, and interpersonal stressors, each with associated mathematical models.

The behavior of crowds in high-stress situations can be modeled using General Adaptation Syndrome theory.l Agent behavior is affected by various stressors from their environment categorized into four prototypes: time pressure, area pressure, positional stressors, and interpersonal stressors, each with associated mathematical models.

高应激状态下的人群行为可以用一般适应综合征理论来模拟。主体行为受到来自其所处环境的各种压力源的影响,分为时间压力、面积压力、位置压力和人际压力四个原型,每个原型都有相关的数学模型。



''Time pressure'' refers to stressors related to a time limit in reaching a particular goal. An example would be a street crossing with a timed walk signal or boarding a train before the doors are closed. This prototype is modeled by the following formula:

Time pressure refers to stressors related to a time limit in reaching a particular goal. An example would be a street crossing with a timed walk signal or boarding a train before the doors are closed. This prototype is modeled by the following formula:

时间压力是指与达到一个特定目标的时间限制有关的压力源。例如,设有限时步行信号的十字路口或在车门关闭前登上火车。这个原型是按照以下公式建模的:



<math>I_t = max(t_e - t_a, 0)</math>

<math>I_t = max(t_e - t_a, 0)</math>

数学 i t max (t e-t a,0) / 数学



where <math display="inline">I_t</math> is the intensity of the time pressure as a function of the estimated time to reach the goal <math display="inline">t_e</math> and a time constraint <math>t_a</math>.

where <math display="inline">I_t</math> is the intensity of the time pressure as a function of the estimated time to reach the goal <math display="inline">t_e</math> and a time constraint <math>t_a</math>.

其中 math display"inline"i t / math 是时间压力的强度,作为达到目标数学显示的估计时间的函数"inline"t e / math 和一个时间限制的数学 t a / math。



''Area pressure'' refers to stessors as a result of an environmental condition. Examples would be noise or heat in an area. The intensity of this stressor is constant over a particular area and is modeled by the following formula:

Area pressure refers to stessors as a result of an environmental condition. Examples would be noise or heat in an area. The intensity of this stressor is constant over a particular area and is modeled by the following formula:

面积压力是指由于环境条件而产生的压力。例如某个地区的噪音或热量。这种应激源的强度在某一特定地区是恒定的,其模型如下:



<math>I_a = \begin{cases} c & \text{if }p_a\in A \\ 0 & \text{if }p_a\not\in A \end{cases}</math>

<math>I_a = \begin{cases} c & \text{if }p_a\in A \\ 0 & \text{if }p_a\not\in A \end{cases}</math>

数学 i a 开始{ cases } c & text { if } p a in a 0 & text { if } p a not in a end { cases } / math



where <math display="inline">I_a</math> is the intensity of the area pressure, <math display="inline">p_a</math> is the position of the agent in an area <math>A</math>, and <math>c</math> is a constant.

where <math display="inline">I_a</math> is the intensity of the area pressure, <math display="inline">p_a</math> is the position of the agent in an area <math>A</math>, and <math>c</math> is a constant.

数学显示"inline"i a / math 是面积压力的强度,数学显示"inline"p a / math 是代理在面积数学 a / math 中的位置,而数学 c / math 是一个常量。



''Positional stressors'' refer to stressors associated with a local source of stress. The intensity of this stressor increases as an agent approaches the source of the stress. An example would be a fire or a dynamic object such as an assailant. It can be modeled by the following formula:

Positional stressors refer to stressors associated with a local source of stress. The intensity of this stressor increases as an agent approaches the source of the stress. An example would be a fire or a dynamic object such as an assailant. It can be modeled by the following formula:

位置压力源是指与当地压力源相关的压力源。这种应激源的强度随着应激源的接近而增加。一个例子就是火灾或者动态物体,比如攻击者。它可以用下面的公式来模拟:



<math>I_p = \lVert p_a - p_s \rVert</math>

<math>I_p = \lVert p_a - p_s \rVert</math>

数学 i lVert p a-p s rVert / math



where <math>I_p</math> is the intensity of the positional stressor, <math>p_a</math> is the position of the agent and <math>p_s</math> is the position of the stressor. Alternatively, stressors that generate high stress over a large area (such as a fire) can be modeled using a Gaussian distribution with standard deviation <math>\sigma</math>:

where <math>I_p</math> is the intensity of the positional stressor, <math>p_a</math> is the position of the agent and <math>p_s</math> is the position of the stressor. Alternatively, stressors that generate high stress over a large area (such as a fire) can be modeled using a Gaussian distribution with standard deviation <math>\sigma</math>:

数学 i / 数学是压力源的强度,数学 p / 数学是代理人的位置,数学 p / 数学是压力源的位置。或者,在一个大的区域(比如火灾)产生高压力的压力源可以用正态分布 / 标准差 / 数学模型来模拟:



<math>I_p = \mathcal{N}(p_a - p_s, \sigma)</math>

<math>I_p = \mathcal{N}(p_a - p_s, \sigma)</math>

数学 i p / 数学 n }(p a-p s,σ) / 数学



''Interpersonal stressors'' are stressors as a result of crowding by nearby agents. It can be modeled by the following formula:

Interpersonal stressors are stressors as a result of crowding by nearby agents. It can be modeled by the following formula:

人际压力源是由于邻近施压者拥挤而产生的压力源。它可以用下面的公式来模拟:



<math>I_i = max(n_c - n_p, 0)</math>

<math>I_i = max(n_c - n_p, 0)</math>

数学 i max (n c-n p,0) / 数学



where <math>I_i</math> is the intensity of the interpersonal stressor, <math>n_c</math> is the current number of neighbors within a unit space and <math>n_p</math> is the preferred number of neighbors within a unit space for that particular agent.

where <math>I_i</math> is the intensity of the interpersonal stressor, <math>n_c</math> is the current number of neighbors within a unit space and <math>n_p</math> is the preferred number of neighbors within a unit space for that particular agent.

数学 i / math 是人际压力源的强度,math n c / math 是单位空间内当前邻居的数量,math n p / math 是特定代理人单位空间内邻居的优先数字。



The ''perceived stress'' follows [[Stevens' law|Steven's Law]] and is modeled by the formula:

The perceived stress follows Steven's Law and is modeled by the formula:

感知到的压力遵循史蒂芬定律,并以下面的公式为模型:



<math>\psi(I) = kI^n</math>

<math>\psi(I) = kI^n</math>

数学(i) i ^ n / math



where <math>\psi(I)</math> is the perceived stress for a stress level <math>I</math>, <math>k</math> is a scale factor, and <math>n</math> is an exponent depending on the stressor type.

where <math>\psi(I)</math> is the perceived stress for a stress level <math>I</math>, <math>k</math> is a scale factor, and <math>n</math> is an exponent depending on the stressor type.

其中 math psi (i) / math 是压力级别数学 i / math 的感知压力,math k / math 是刻度因子,math n / math 是根据压力类型的指数。



An agent's ''stress response'' can be found with the following formula:

An agent's stress response can be found with the following formula:

一个代理人的压力反应可以通过以下公式找到:



<math>{dS \over dt} = \begin{cases} \alpha & \text{if } \psi > S \\ (-\alpha \leq {d\psi \over dt} \leq \alpha) & \text{if } \psi = S\\ -\alpha & \text{if } \psi < S\end{cases}</math>

<math>{dS \over dt} = \begin{cases} \alpha & \text{if } \psi > S \\ (-\alpha \leq {d\psi \over dt} \leq \alpha) & \text{if } \psi = S\\ -\alpha & \text{if } \psi < S\end{cases}</math>

数学{ dS over dt } begin { cases } alpha & text { if } psi s (- alpha leq { d psi dt } leq alpha) & text { if } psi s end { cases } / math



where <math>S</math> is the stress response capped at a maximum value of <math>\beta</math> and <math>\alpha</math> is the maximum rate at which an agent's stress response can change.

where <math>S</math> is the stress response capped at a maximum value of <math>\beta</math> and <math>\alpha</math> is the maximum rate at which an agent's stress response can change.

其中,数学 s / math 是压力反应的上限,其最大值为 math beta / math,而 math alpha / math 是代理人的压力反应可能发生变化的最大速率。



Examples of notable crowd AI simulation can be seen in [[New Line Cinema]]'s ''[[The Lord of the Rings (film series)|The Lord of the Rings]]'' films, where AI armies of thousands of characters battle each other. This crowd simulation was done using [[Weta Digital]]'s [[Massive (software)|Massive software]].

Examples of notable crowd AI simulation can be seen in New Line Cinema's The Lord of the Rings films, where AI armies of thousands of characters battle each other. This crowd simulation was done using Weta Digital's Massive software.

值得注意的人工智能模拟例子可以在新线电影公司的《指环王》电影中看到,在这部电影中,成千上万的人工智能角色互相争斗。这个人群模拟是用 Weta Digital 的 Massive 软件完成的。



=== Sociology ===

''Crowd simulation'' can also refer to simulations based on [[group dynamics]] and [[crowd psychology]], often in public safety planning. In this case, the focus is just the behavior of the crowd, and not the visual realism of the simulation. Crowds have been studied as a scientific interest since the end of the 19th Century. A lot of research has focused on the collective social behavior of people at social gatherings, assemblies, protests, rebellions, concerts, sporting events and religious ceremonies. Gaining insight into natural human behavior under varying types of stressful situations will allow better models to be created which can be used to develop crowd controlling strategies.

Crowd simulation can also refer to simulations based on group dynamics and crowd psychology, often in public safety planning. In this case, the focus is just the behavior of the crowd, and not the visual realism of the simulation. Crowds have been studied as a scientific interest since the end of the 19th Century. A lot of research has focused on the collective social behavior of people at social gatherings, assemblies, protests, rebellions, concerts, sporting events and religious ceremonies. Gaining insight into natural human behavior under varying types of stressful situations will allow better models to be created which can be used to develop crowd controlling strategies.

人群模拟也可以指基于群体动力学和人群心理学的模拟,通常用于公共安全规划。在这种情况下,焦点只是人群的行为,而不是模拟的视觉真实性。自19世纪末以来,人群一直被作为一种科学兴趣来研究。许多研究都集中在人们在社会集会、集会、抗议、叛乱、音乐会、体育赛事和宗教仪式上的集体社会行为上。在不同类型的压力情况下获得人类自然行为的洞察力将允许创建更好的模型,可用于发展人群控制策略。



''Emergency response teams'' such as policemen, the National Guard, military and even volunteers must undergo some type of crowd control training. Using researched principles of human behavior in crowds can give disaster training designers more elements to incorporate to create realistic simulated disasters. Crowd behavior can be observed during panic and non-panic conditions. When natural and unnatural events toss social ideals into a twisting chaotic bind, such as the events of 9/11 and hurricane Katrina, humanity's social capabilities are truly put to the test. Military programs are looking more towards simulated training, involving emergency responses, due to their cost-effective technology as well as how effective the learning can be transferred to the real world.{{Citation needed|date=October 2012}} Many events that may start out controlled can have a twisting event that turns them into catastrophic situations, where decisions need to be made on the spot. It is these situations in which crowd dynamical understanding would play a vital role in reducing the potential for anarchy.

Emergency response teams such as policemen, the National Guard, military and even volunteers must undergo some type of crowd control training. Using researched principles of human behavior in crowds can give disaster training designers more elements to incorporate to create realistic simulated disasters. Crowd behavior can be observed during panic and non-panic conditions. When natural and unnatural events toss social ideals into a twisting chaotic bind, such as the events of 9/11 and hurricane Katrina, humanity's social capabilities are truly put to the test. Military programs are looking more towards simulated training, involving emergency responses, due to their cost-effective technology as well as how effective the learning can be transferred to the real world. Many events that may start out controlled can have a twisting event that turns them into catastrophic situations, where decisions need to be made on the spot. It is these situations in which crowd dynamical understanding would play a vital role in reducing the potential for anarchy.

警察、国民警卫队、军队甚至志愿者等应急小组都必须接受某种形式的人群控制培训。运用研究过的人类在群体中的行为原则,可以给灾难训练设计者提供更多的元素来创造真实的模拟灾难。在恐慌和非恐慌情况下可以观察到群体行为。当自然和非自然的事件将社会理想抛入扭曲的混乱局面,比如9 / 11和飓风卡特里娜事件,人类的社会能力就真正接受了考验。军事项目更倾向于模拟训练,包括应急反应,因为他们的成本效益高的技术,以及如何有效的学习可以转移到现实世界。许多事件一开始可能受到控制,但后来发展成为灾难性的情况,需要当场做出决定。正是在这些情况下,人群的动态理解将发挥重要作用,以减少潜在的无政府状态。



''Modeling'' techniques of crowds vary from holistic or network approaches to understanding individualistic or behavioral aspects of each agent. For example, the Social Force Model describes a need for individuals to find a balance between social interaction and physical interaction. An approach that incorporates both aspects, and is able to adapt depending on the situation, would better describe natural human behavior, always incorporating some measure of unpredictability. With the use of multi-agent models understanding these complex behaviors has become a much more comprehensible task. With the use of this type of software, systems can now be tested under extreme conditions, and simulate conditions over long periods of time in the matter of seconds.

Modeling techniques of crowds vary from holistic or network approaches to understanding individualistic or behavioral aspects of each agent. For example, the Social Force Model describes a need for individuals to find a balance between social interaction and physical interaction. An approach that incorporates both aspects, and is able to adapt depending on the situation, would better describe natural human behavior, always incorporating some measure of unpredictability. With the use of multi-agent models understanding these complex behaviors has become a much more comprehensible task. With the use of this type of software, systems can now be tested under extreme conditions, and simulate conditions over long periods of time in the matter of seconds.

群体的建模技术从整体或网络的方法,以了解个人或行为方面的每个代理人不同。例如,社会力量模型描述了个体在社会互动和身体互动之间寻求平衡的需求。一种结合了这两个方面,并且能够根据情况进行调整的方法,将更好地描述自然的人类行为,总是包含一些不可预测性的措施。随着多智能体模型的使用,理解这些复杂的行为已经成为一个更容易理解的任务。使用这种类型的软件,系统现在可以在极端条件下进行测试,并在几秒钟内模拟长时间的条件。



In some situations, the behavior of swarms of non-human animals can be used as an experimental model of crowd behavior. The panic behavior of ants when exposed to a [[Insect repellent|repellent]] chemical in a confined space with limited exit routes has been found to have both similarities and differences to equivalent human behavior.<ref>N. Shiwakoti et al., "Animal dynamics based approach for modeling pedestrian crowd egress under panic conditions", Transportation Research Part B 45 (2011) 1433-1449.</ref><ref>S. Wang et al., "Behavior of Ants Escaping from a Single-Exit Room", PLoS One. 2015; 10(6): e0131784.</ref>

In some situations, the behavior of swarms of non-human animals can be used as an experimental model of crowd behavior. The panic behavior of ants when exposed to a repellent chemical in a confined space with limited exit routes has been found to have both similarities and differences to equivalent human behavior.

在某些情况下,非人类动物群体的行为可以作为群体行为的实验模型。人们发现,在有限的出口通道的密闭空间里,蚂蚁暴露在令人反感的化学物质中时的惊慌行为,与同等的人类行为既有相似之处,也有不同之处。



=== Modeling individual behaviors ===

Helbing proposed a model based on physics using a particle system and socio-psychological forces in order to describe human crowd behavior in panic situation, this is now called the Helbing Model. His work is based on how the average person would react in a certain situation. Although this is a good model, there are always different types of people present in the crowd and they each have their own individual characteristics as well as how they act in a group structure. For instance, one person may not react to a panic situation, while another may stops walking and interfere in the crowd dynamics as a whole. Furthermore, depending on the group structure, the individual action can change because the agent is part of a group, for example, returning to a dangerous place in order to rescue a member of that group. Helbing's model can be generalized incorporating individualism, as proposed by Braun, Musse, Oliveira and Bodmann.<ref name=":0" />

Helbing proposed a model based on physics using a particle system and socio-psychological forces in order to describe human crowd behavior in panic situation, this is now called the Helbing Model. His work is based on how the average person would react in a certain situation. Although this is a good model, there are always different types of people present in the crowd and they each have their own individual characteristics as well as how they act in a group structure. For instance, one person may not react to a panic situation, while another may stops walking and interfere in the crowd dynamics as a whole. Furthermore, depending on the group structure, the individual action can change because the agent is part of a group, for example, returning to a dangerous place in order to rescue a member of that group. Helbing's model can be generalized incorporating individualism, as proposed by Braun, Musse, Oliveira and Bodmann.

Helbing 提出了一个基于物理学的模型,使用粒子系统和社会心理力量来描述人群在恐慌情况下的行为,这个模型现在被称为 Helbing 模型。他的工作基于普通人在特定情况下的反应。虽然这是一个很好的模式,但是在人群中总是有不同类型的人,他们每个人都有自己的个性以及他们在群体结构中的行为方式。例如,一个人可能不会对恐慌情况做出反应,而另一个人可能会停下脚步,干扰整个人群的动态。此外,取决于群体结构,个体行为可能会发生变化,因为代理人是群体的一部分,例如,为了拯救该群体的一个成员而返回到一个危险的地方。海尔宾的模式可以是由布劳恩、缪斯、奥利维拉和博德曼提出的广义合并个人主义。



In order to tackle this problem, individuality should be assigned to each agent, allowing to deal with different types of behaviors. Another aspect to tackle this problem is the possibility to group people, forming these group causes people to change their behavior as a function of part of the group structure. Each agent (individual) can be defined according to the following parameters:

In order to tackle this problem, individuality should be assigned to each agent, allowing to deal with different types of behaviors. Another aspect to tackle this problem is the possibility to group people, forming these group causes people to change their behavior as a function of part of the group structure. Each agent (individual) can be defined according to the following parameters:

为了解决这个问题,应该给每个代理分配个性,允许处理不同类型的行为。解决这个问题的另一个方面是把人们分组的可能性,形成这样的群体会使人们作为群体结构的一部分而改变他们的行为。每个代理(个体)可以根据以下参数定义:



# Id – Agent identifier

Id – Agent identifier

身份代理标识符

# IdFamily – Identifier of the family. A family is a predefined group formed by agents who know each other

IdFamily – Identifier of the family. A family is a predefined group formed by agents who know each other

Idfamily-家族标识符。家族是由相互认识的代理人组成的一个预定义的组

# DE – Dependence level of the agent which mimics the need for help. Values [0,1]

DE – Dependence level of the agent which mimics the need for help. Values [0,1]

De-代理的依赖级别,模拟对帮助的需求。值[0,1]

# AL – Altruism level representing the tendency to help other agents. Values [0,1]

AL – Altruism level representing the tendency to help other agents. Values [0,1]

Al-利他主义水平代表了帮助他人的倾向。值[0,1]

# v<sub>i</sub> – Speed of the agent

v<sub>i</sub> – Speed of the agent

代理人的速度



To model the effect of the dependence parameter with ''individual agents'', the equation is defined as:

To model the effect of the dependence parameter with individual agents, the equation is defined as:

为了用单个代理人模拟相关参数的影响,方程定义为:



: <math>v_i = (1-DE)v_{max}</math>

<math>v_i = (1-DE)v_{max}</math>

Math v i (1-DE) v { max } / math



When evaluating the speed of the agent, it is clear that if the value of the dependence factor, DE, is equal to one, then the person would be fully disabled making him unable to move. If the dependence factor is equal to zero, then the person is able to run at his max speed.

When evaluating the speed of the agent, it is clear that if the value of the dependence factor, DE, is equal to one, then the person would be fully disabled making him unable to move. If the dependence factor is equal to zero, then the person is able to run at his max speed.

在评估代理程序的速度时,很明显,如果依赖因子 DE 的值等于1,那么该代理程序员将完全丧失行动能力。如果依赖因子等于零,那么人就能够以他的最大速度跑步。



Group formation is related to the Altruism force which is implemented as an interaction force between two or more agents who are part of the same family. Mathematically, it is described as the following:

Group formation is related to the Altruism force which is implemented as an interaction force between two or more agents who are part of the same family. Mathematically, it is described as the following:

群体形成与利他主义力量有关,利他主义力量是同一家庭中两个或两个以上成员之间的互动力量。从数学上来说,它被描述为:



: <math>F\overline{a}_i = K\sum \left ( AL_iDE_j \times \left | d_{ij}-d_{ip} \right | \times e_{ij} \right ) </math>

<math>F\overline{a}_i = K\sum \left ( AL_iDE_j \times \left | d_{ij}-d_{ip} \right | \times e_{ij} \right ) </math>

(AL ide j 乘以左 | d { ij }-d { ip }右 | 乘以 e { ij }右) / math



where:

where:

在哪里:

: {{math|''d<sub>ij</sub>''}} represents the distance between two agents with the origin at the position of the agent;

represents the distance between two agents with the origin at the position of the agent;

表示两个代理之间的距离,原点位于代理的位置;

: {{math|''d<sub>ip</sub>''}} is the distance vector point from the agents to the door's position {{math|''p''}} of the simulation environment;

is the distance vector point from the agents to the door's position of the simulation environment;

是模拟环境中从代理到门的位置的距离矢量点;

: {{math|''K''}} is a constant;

is a constant;

是一个常数

: {{math|''e<sub>ij</sub>''}} is the unitary vector with the origin at position i.

is the unitary vector with the origin at position i.

是位于 i 处原点的幺正向量。



Consequently, the greater the parameter {{math|''AL<sub>i</sub>''}} of agent {{math|''i''}}, the bigger will be {{math|''Fā<sub>i</sub>''}} which points to the agent {{math|''j''}} and has the high level of {{math|''DE<sub>j</sub>''}}. When both agents are close enough to each other, the one with high {{math|''DE''}} (agent {{math|''j''}} in this example) adopts the value of agent {{math|''i''}} (<math>DE_j = DE_i</math>). This means that the evacuation ability of agent {{math|''i''}} is shared with agent {{math|''j''}} and both start moving together.

Consequently, the greater the parameter of agent , the bigger will be which points to the agent and has the high level of . When both agents are close enough to each other, the one with high (agent in this example) adopts the value of agent (<math>DE_j = DE_i</math>). This means that the evacuation ability of agent is shared with agent and both start moving together.

因此,智能体的参数越大,指向智能体的参数就越大,具有较高的智能体水平。当两个代理彼此足够接近时,具有较高值的代理(本例中的代理)采用代理的值(math DE j DE i / math)。这意味着代理人的撤离能力是与代理人共享的,两者一起开始移动。



By using these applying these equations in model testing using a normally distributed population, the results are fairly similar to the Helbing Model.

By using these applying these equations in model testing using a normally distributed population, the results are fairly similar to the Helbing Model.

通过将这些方程应用于正态分布总体的模型试验,结果与 Helbing 模型非常相似。



The places where this would be helpful would be in an evacuation scenario. Take for example, an evacuation of a building in the case of a fire. Taking into account the characteristics of individual agents and their group performances, determining the outcome of how the crowd would exit the building is critically important in creating the layout of the building.<ref name=":0">{{cite book |doi=10.1109/CASA.2003.1199317 |chapter=Modeling individual behaviors in crowd simulation |title=Proceedings 11th IEEE International Workshop on Program Comprehension |pages=143–8 |year=2003 |last1=Braun |first1=A. |last2=Musse |first2=S.R. |last3=De Oliveira |first3=L.P.L. |last4=Bodmann |first4=B.E.J. |isbn=978-0-7695-1934-0 }}</ref>

The places where this would be helpful would be in an evacuation scenario. Take for example, an evacuation of a building in the case of a fire. Taking into account the characteristics of individual agents and their group performances, determining the outcome of how the crowd would exit the building is critically important in creating the layout of the building.

在疏散场景中,这样做会有所帮助。以发生火灾时建筑物的疏散为例。考虑到个别代理人的特点和他们的团队表现,决定人群如何离开建筑的结果对于建筑的布局至关重要。



=== Leader behavior during evacuation simulations ===

As described earlier, the '''Helbing Model''' is used as the basics for crowd behavior. This same type of behavior model is used for evacuation simulations.

As described earlier, the Helbing Model is used as the basics for crowd behavior. This same type of behavior model is used for evacuation simulations.

如前所述,Helbing 模型用作群体行为的基础。同样类型的行为模型也被用于疏散模拟。



In general, the first thing that has to be assumed is that not everyone has knowledge about the environment or where there are and aren't hazards. From this assumption we can create three types of agents. The first type is a trained leader, this agent knows about the environment and is able to spread knowledge to other agents so they know how to exit from an environment. The next type of agent is an untrained leader, this agent does not know about the environment, however, as the agent explores the environment and gets information from other types of leaders, the agent is able to spread the knowledge about the environment. The last type of agent is a follower, this type of agent can only take information from other leaders and not be able to share the information with other agents.

In general, the first thing that has to be assumed is that not everyone has knowledge about the environment or where there are and aren't hazards. From this assumption we can create three types of agents. The first type is a trained leader, this agent knows about the environment and is able to spread knowledge to other agents so they know how to exit from an environment. The next type of agent is an untrained leader, this agent does not know about the environment, however, as the agent explores the environment and gets information from other types of leaders, the agent is able to spread the knowledge about the environment. The last type of agent is a follower, this type of agent can only take information from other leaders and not be able to share the information with other agents.

一般来说,首先需要假定的是,并不是每个人都了解环境,或者哪里有危险,哪里没有危险。根据这个假设,我们可以创建三种类型的代理。第一种类型是训练有素的领导者,这种代理人了解环境,能够将知识传播给其他代理人,这样他们就知道如何从环境中退出。下一种类型的代理是未经训练的领导者---- 这种代理者不了解环境,然而,当代理者探索环境并从其他类型的领导者那里获得信息时,代理者能够传播有关环境的知识。最后一种类型的代理是跟随者,这种类型的代理只能从其他领导者那里获取信息,不能与其他代理共享信息。



The implementation of these types of agents is fairly straightforward. The leaders in the environment have a map of the environment saved as one of their attributes. An untrained leader and followers will start out with an empty map as their attribute. Untrained leaders and followers will start exploring an environment by themselves and create a map of walkable and unwalkable locations. Leaders and untrained leaders (once they have the knowledge), will share information with other agents depending on their proximity. They will share information about which points on the grid are blocked, the local sub-graphs and the dangers in the area.

The implementation of these types of agents is fairly straightforward. The leaders in the environment have a map of the environment saved as one of their attributes. An untrained leader and followers will start out with an empty map as their attribute. Untrained leaders and followers will start exploring an environment by themselves and create a map of walkable and unwalkable locations. Leaders and untrained leaders (once they have the knowledge), will share information with other agents depending on their proximity. They will share information about which points on the grid are blocked, the local sub-graphs and the dangers in the area.

这些类型代理的实现相当简单。环境中的领导者将环境地图保存为他们的属性之一。一个未经训练的领导者和追随者会以一张空地图作为他们的属性。未经训练的领导者和追随者将开始探索自己的环境,并创建一个适合步行和不适合步行的地点地图。领导者和未受过训练的领导者(一旦他们掌握了知识) ,会根据他们的接近程度与其他代理分享信息。他们将分享关于网格上哪些点被阻塞,本地子图和该地区的危险的信息。



There were two types of searching algorithms tried out for this implementation. There was the random search and the depth first search. A random search is where each of the agents go in any direction through the environment and try to find a pathway out. The depth first search is where agents follow one path as far as it can go then return and try another path if the path they traversed does not contain an exit. If was found that depth first search gave a speed up of 15 times versus a random search.<ref>{{cite journal |doi=10.1109/MCG.2006.133 |pmid=17120916 |title=Modeling Crowd and Trained Leader Behavior during Building Evacuation |journal=IEEE Computer Graphics and Applications |volume=26 |issue=6 |pages=80–6 |year=2006 |last1=Pelechano |first1=Nuria |last2=Badler |first2=Norman |hdl=2117/10047 |hdl-access=free }}</ref>

There were two types of searching algorithms tried out for this implementation. There was the random search and the depth first search. A random search is where each of the agents go in any direction through the environment and try to find a pathway out. The depth first search is where agents follow one path as far as it can go then return and try another path if the path they traversed does not contain an exit. If was found that depth first search gave a speed up of 15 times versus a random search.

有两种类型的搜索算法试验了这种实现。有随机搜索和深度优先搜索。随机搜索是指每个代理人在环境中朝任何方向前进,并试图找到一条出路。深度优先搜索是指代理程序尽可能沿着一条路径搜索,然后返回,如果它们所经过的路径不包含退出,则尝试另一条路径。如果发现深度优先搜索比随机搜索的速度快15倍。



=== Scalable simulations ===

There are many different case situations that come into play in crowd simulations.<ref>{{cite book |doi=10.1109/ICPP.2008.20 |chapter=A Scalable Architecture for Crowd Simulation: Implementing a Parallel Action Server |title=2008 37th International Conference on Parallel Processing |pages=430–7 |year=2008 |last1=Vigueras |first1=G. |last2=Lozano |first2=M. |last3=Pérez |first3=C. |last4=Orduña |first4=J.M. }}</ref> Recently, crowd simulation has been essential for the many virtual environment applications such as education, training, and entertainment. Many situations are based on the environment of the simulation or the behavior of the group of local agents. In virtual reality applications, every agent interacts with many other agents in the environment, calling for complex real-time interactions. Agents must have continuous changes in the environment since agent behaviors allow complex interactions. Scalable architecture can manage large crowds through the behavior and interactive rates. These situations will indicate how the crowds will act in multiple complex scenarios while several different situations are being applied. A situation can be any circumstance that has typical local behaviors. We can categorize all situations into two different kinds.

There are many different case situations that come into play in crowd simulations. Recently, crowd simulation has been essential for the many virtual environment applications such as education, training, and entertainment. Many situations are based on the environment of the simulation or the behavior of the group of local agents. In virtual reality applications, every agent interacts with many other agents in the environment, calling for complex real-time interactions. Agents must have continuous changes in the environment since agent behaviors allow complex interactions. Scalable architecture can manage large crowds through the behavior and interactive rates. These situations will indicate how the crowds will act in multiple complex scenarios while several different situations are being applied. A situation can be any circumstance that has typical local behaviors. We can categorize all situations into two different kinds.

在人群模拟中有许多不同的情况出现。近年来,人群模拟已经成为教育、训练、娱乐等虚拟环境应用中不可缺少的一部分。许多情况是基于环境的模拟或行为的一组本地代理。在虚拟现实应用程序中,每个代理与环境中的许多其他代理进行交互,需要复杂的实时交互。由于代理行为允许复杂的交互,因此代理必须在环境中具有连续的变化。可伸缩的架构可以通过行为和交互速率来管理大量的人群。这些情况将表明如何人群将采取行动,在多个复杂的情况下,而几个不同的情况正在适用。情况可以是任何具有典型局部行为的环境。我们可以把所有的情况分为两种不同的类型。



''Spatial situation'' is a situation that has a region where the environment affects the local agents. For instance, a crowd waiting in line for a ticket booth would be displaying a spatial situation. Other examples may be a bus stop or an ATM where characters act upon their environment. Therefore, we would consider 'bus stop' as the situation if the behavior of the agents are to be getting on or off a bus.

Spatial situation is a situation that has a region where the environment affects the local agents. For instance, a crowd waiting in line for a ticket booth would be displaying a spatial situation. Other examples may be a bus stop or an ATM where characters act upon their environment. Therefore, we would consider 'bus stop' as the situation if the behavior of the agents are to be getting on or off a bus.

空间情境是指环境影响局部行为者的区域情境。例如,一个排队等候售票亭的人群将展示一个空间的情况。其他的例子可能是一个总线站或者一个 ATM,在那里字符作用于他们的环境。因此,如果代理人的行为是上车或下车,我们可以把“公交车站”看作是一种情况。



''Non-Spatial situation'' has no region in the environment because this only involves the behavior of the crowd. The relationship of the local agents is an important factor to consider when determining behavior. An example would be a group of friends walking together. Typical behavior of characters that are friends would all move along with each other. This means that 'friendship' would be the situation among the typical behavior of walking together.

Non-Spatial situation has no region in the environment because this only involves the behavior of the crowd. The relationship of the local agents is an important factor to consider when determining behavior. An example would be a group of friends walking together. Typical behavior of characters that are friends would all move along with each other. This means that 'friendship' would be the situation among the typical behavior of walking together.

Non-Spatial 的情况没有区域的环境,因为这只涉及到人群的行为。在决定行为时,局部代理人之间的关系是一个重要的因素。一个例子是一群朋友一起散步。作为朋友的角色的典型行为都会互相影响。这意味着“友谊”是一起散步的典型行为之一。



The structure of any situation is built upon four components, Behavior functions, Sensors, States, and Event Rules. Behavior functions represent what the characters behaviors are specific to the situation. Sensors are the sensing capability for agents to see and respond to events. States are the different motions and state transitions used only for the local behaviors. Event rule is the way to connect different events to their specific behaviors. While a character is being put into a situation, these four components are considered at the same time. For spatial situations, the components are added when the individual initially enters the environment that influences the character. For non-spatial situations, the character is affected only once the user assigns the situation to the character. The four components are removed when the agent is taken away from its situations region or the situation itself is removed. The dynamic adding and removing of the situations lets us achieve scalable agents.

The structure of any situation is built upon four components, Behavior functions, Sensors, States, and Event Rules. Behavior functions represent what the characters behaviors are specific to the situation. Sensors are the sensing capability for agents to see and respond to events. States are the different motions and state transitions used only for the local behaviors. Event rule is the way to connect different events to their specific behaviors. While a character is being put into a situation, these four components are considered at the same time. For spatial situations, the components are added when the individual initially enters the environment that influences the character. For non-spatial situations, the character is affected only once the user assigns the situation to the character. The four components are removed when the agent is taken away from its situations region or the situation itself is removed. The dynamic adding and removing of the situations lets us achieve scalable agents.

任何情况的结构都建立在四个组件之上: 行为函数、传感器、状态和事件规则。行为函数表示特定情况下的特定行为。传感器是一种感知能力,可以让代理人看到并对事件做出反应。状态是仅用于局部行为的不同运动和状态转移。事件规则是将不同的事件与其特定的行为联系起来的方法。当一个角色被置于一个情境中时,这四个部分同时被考虑。对于空间情景,当个体最初进入影响角色的环境时,添加组件。对于非空间情境,只有当用户将情境赋值给角色时,角色才会受到影响。当代理人被带离其情况区域或情况本身被移除时,这四个组件被移除。动态地添加和删除这些情况使我们能够实现可伸缩的代理。



== Human-like behaviors and crowd AI ==

[[File:Crowd simulation, Covent Garden.jpg|thumb|A crowd simulation of [[Covent Garden square]], London, showing a crowd of pedestrian agents reacting to a street performer]]

A crowd simulation of [[Covent Garden square, London, showing a crowd of pedestrian agents reacting to a street performer]]

一个人群模拟[[ Covent Garden,伦敦,显示了一群行人代理人对街头艺人的反应]]

{{Main|Swarm intelligence}}

To simulate more aspects of human activities in a crowd, more is needed than path and motion planning. Complex social interactions, smart object manipulation, and hybrid models are challenges in this area.Simulated crowd behavior is inspired by the flow of real-world crowds. Behavioral patterns, movement speeds and densities, and anomalies are [[crowd analysis|analyzed]] across many environments and building types. Individuals are [[crowd tracking|tracked]] and their movements are documented such that algorithms can be derived and implemented into crowd simulations.

To simulate more aspects of human activities in a crowd, more is needed than path and motion planning. Complex social interactions, smart object manipulation, and hybrid models are challenges in this area.Simulated crowd behavior is inspired by the flow of real-world crowds. Behavioral patterns, movement speeds and densities, and anomalies are analyzed across many environments and building types. Individuals are tracked and their movements are documented such that algorithms can be derived and implemented into crowd simulations.

为了在人群中模拟人类活动的更多方面,需要的不仅仅是路径和运动规划。复杂的社会交互、聪明的对象操作和混合模型是这一领域的挑战。 模拟人群行为的灵感来自于现实世界中的人群流动。行为模式,运动速度和密度,以及异常分析在许多环境和建筑类型。个人被跟踪,他们的行动被记录下来,这样算法就可以派生出来并应用到人群模拟中。



Individual entities in a crowd are also called [[Software agent|agents]]. In order for a crowd to behave realistically each agent should act autonomously (be capable of acting independently of the other agents). This idea is referred to as an ''agent-based model.'' Moreover, it is usually desired that the agents act with some degree of intelligence (i.e. the agents should not perform actions that would cause them to harm themselves). For agents to make intelligent and realistic decisions, they should act in accordance with their surrounding environment, react to its changes, and react to the other agents.

Individual entities in a crowd are also called agents. In order for a crowd to behave realistically each agent should act autonomously (be capable of acting independently of the other agents). This idea is referred to as an agent-based model. Moreover, it is usually desired that the agents act with some degree of intelligence (i.e. the agents should not perform actions that would cause them to harm themselves). For agents to make intelligent and realistic decisions, they should act in accordance with their surrounding environment, react to its changes, and react to the other agents.

群体中的个体也称为代理人。为了让一个群体的行为实际,每个代理应该自主行动(能够独立于其他代理)。这个想法被称为个体为本模型。此外,人们通常希望代理人的行为具有一定程度的智慧(即:。代理人不应采取会导致他们伤害自己的行动)。为了使代理人做出明智和现实的决定,他们应该根据他们周围的环境采取行动,对其变化作出反应,并对其他代理人作出反应。



=== Rule-based AI ===

[[File:MaslowsHierarchyOfNeeds.svg|alt=Maslow's Hierarchy of Needs|thumb|Maslow's Hierarchy of Needs]]

Maslow's Hierarchy of Needs

马斯洛的需求层次理论

In rule-based AI, virtual agents follow scripts: "if this happens, do that". This is a good approach to take if agents with different roles are required, such as a main character and several background characters. This type of AI is usually implemented with a hierarchy, such as in [[Maslow's hierarchy of needs]], where the lower the need lies in the hierarchy, the stronger it is.

In rule-based AI, virtual agents follow scripts: "if this happens, do that". This is a good approach to take if agents with different roles are required, such as a main character and several background characters. This type of AI is usually implemented with a hierarchy, such as in Maslow's hierarchy of needs, where the lower the need lies in the hierarchy, the stronger it is.

在基于规则的人工智能中,虚拟代理遵循以下脚本: “如果发生了这种情况,就这样做”。如果需要具有不同角色的代理,比如一个主角和几个背景角色,那么这是一个很好的方法。这种类型的人工智能通常是用层次结构来实现的,例如在马斯洛的需求层次结构中,需求越低,需求就越强。



For example, consider a student walking to class who encounters an explosion and runs away. The theory behind this is initially the first four levels of his needs are met, and the student is acting according to his need for self-actualization. When the explosion happens his safety is threatened which is a much stronger need, causing him to act according to that need.

For example, consider a student walking to class who encounters an explosion and runs away. The theory behind this is initially the first four levels of his needs are met, and the student is acting according to his need for self-actualization. When the explosion happens his safety is threatened which is a much stronger need, causing him to act according to that need.

例如,假设一个学生在走向教室的路上遭遇了爆炸并逃跑了。这背后的理论最初是他的前4个层次的需求得到了满足,而学生是根据他对自我实现的需求来行动的。当爆炸发生时,他的安全受到威胁,这是一个更强烈的需要,使他按照这种需要行事。



This approach is scalable, and can be applied to crowds with a large number of agents. Rule-based AI, however, does have some drawbacks. Most notably the behavior of the agents can become very predictable, which may cause a crowd to behave unrealistically.

This approach is scalable, and can be applied to crowds with a large number of agents. Rule-based AI, however, does have some drawbacks. Most notably the behavior of the agents can become very predictable, which may cause a crowd to behave unrealistically.

这种方法是可扩展的,可以应用于拥有大量代理的人群。然而,基于规则的人工智能确实有一些缺点。最值得注意的是,代理人的行为可以变得非常可预测,这可能导致群体的行为不现实。



=== Learning AI ===

In learning AI, virtual characters behave in ways that have been tested to help them achieve their goals. Agents experiment with their environment or a sample environment which is similar to their real one.

In learning AI, virtual characters behave in ways that have been tested to help them achieve their goals. Agents experiment with their environment or a sample environment which is similar to their real one.

在学习人工智能时,虚拟角色的行为方式都经过了测试,以帮助他们实现自己的目标。代理用他们的环境或者一个类似于他们真实环境的样本环境进行实验。



Agents perform a variety of actions and learn from their mistakes. Each agent alters its behavior in response to rewards and punishments it receives from the environment. Over time, each agent would develop behaviors that are consistently more likely to earn high rewards.

Agents perform a variety of actions and learn from their mistakes. Each agent alters its behavior in response to rewards and punishments it receives from the environment. Over time, each agent would develop behaviors that are consistently more likely to earn high rewards.

代理执行各种各样的行动,并从错误中吸取教训。每个代理根据从环境中得到的奖励和惩罚改变其行为。随着时间的推移,每个代理人都会发展出更有可能获得高回报的行为。



If this approach is used, along with a large number of possible behaviors and a complex environment agents will act in a realistic and unpredictable fashion.

If this approach is used, along with a large number of possible behaviors and a complex environment agents will act in a realistic and unpredictable fashion.

如果使用这种方法,加上大量可能的行为和复杂的环境代理将以一种现实的和不可预测的方式行事。



==== Algorithms ====

There are a wide variety of machine learning algorithms that can be applied to crowd simulations.

There are a wide variety of machine learning algorithms that can be applied to crowd simulations.

有各种各样的机器学习算法,可以应用于人群模拟。



Q-Learning is an algorithm residing under machine learning's sub field known as reinforcement learning. A basic overview of the algorithm is that each action is assigned a Q value and each agent is given the directive to always perform the action with the highest Q value. In this case learning applies to the way in which Q values are assigned, which is entirely reward based. When an agent comes in contact with a state, s, and action, a, the algorithm then estimates the total reward value that an agent would receive for performing that state action pair. After calculating this data, it is then stored in the agent's knowledge and the agent proceeds to act from there.

Q-Learning is an algorithm residing under machine learning's sub field known as reinforcement learning. A basic overview of the algorithm is that each action is assigned a Q value and each agent is given the directive to always perform the action with the highest Q value. In this case learning applies to the way in which Q values are assigned, which is entirely reward based. When an agent comes in contact with a state, s, and action, a, the algorithm then estimates the total reward value that an agent would receive for performing that state action pair. After calculating this data, it is then stored in the agent's knowledge and the agent proceeds to act from there.

Q 学习是机器学习的一个子领域,被称为强化学习学习。算法的一个基本概述是,每个动作都被分配了一个 q 值,每个代理都被赋予一个指令,总是执行 q 值最高的动作。在这种情况下,学习应用于分配 q 值的方式,这完全是基于奖励的。当一个代理接触到一个状态 s 和一个动作 a 时,算法就会估计一个代理执行这个状态动作对所能得到的总回报值。在计算这些数据之后,它们被存储在代理人的知识中,代理人从那里开始行动。



The agent will constantly alter its behavior depending on the best Q value available to it. And as it explores more and more of the environment, it will eventually learn the most optimal state action pairs to perform in almost every situation.

The agent will constantly alter its behavior depending on the best Q value available to it. And as it explores more and more of the environment, it will eventually learn the most optimal state action pairs to perform in almost every situation.

代理将不断地改变其行为取决于最佳 q 值可用于它。随着它对环境的探索越来越多,它最终将学习在几乎每种情况下执行的最佳状态动作对。



The following function outlines the bulk of the algorithm:

The following function outlines the bulk of the algorithm:

下面的函数概括了算法的大部分内容:



:''Q(s, a) ←− r + maxaQ(s', a')''

Q(s, a) ←− r + maxaQ(s', a')

Q(s, a) ←− r + maxaQ(s', a')



Given a state s and action a, r and s are the reward and state after performing (s,a), and a' is the range over all the actions.<ref>Torrey, L. Crowd Simulation Via Multi-agent Reinforcement Learning. In: ''Proceedings of the Sixth AAAI Conference On Artificial Intelligence and Interactive Digital Entertainment''. AAAI Press, Menlo Park (2010)</ref>

Given a state s and action a, r and s are the reward and state after performing (s,a), and a' is the range over all the actions.

给定一个状态 s 和动作 a,r 和 s 是执行(s,a)后的奖励和状态,a’是所有动作的范围。



== Crowd rendering and animation ==

Rendering and animating a large number of agents realistically, especially in real time, is challenging. To reduce the complexity of 3D rendering of large-scale crowds, techniques like culling (discarding unimportant objects), impostors(image-based rendering) and decreasing levels of detail have been used.<ref>{{cite journal |doi=10.1109/76.825720 |title=Real-time display of virtual humans: Levels of details and impostors |journal=IEEE Transactions on Circuits and Systems for Video Technology |volume=10 |issue=2 |pages=207–17 |year=2000 |last1=Aubel |first1=A. |last2=Boulic |first2=R. |last3=Thalmann |first3=D. }}</ref>

Rendering and animating a large number of agents realistically, especially in real time, is challenging. To reduce the complexity of 3D rendering of large-scale crowds, techniques like culling (discarding unimportant objects), impostors(image-based rendering) and decreasing levels of detail have been used.

渲染和动画大量的代理真实地,特别是在实时,是具有挑战性的。为了降低大规模人群3D 渲染的复杂性,人们使用了剔除(丢弃不重要的物体)、视点替用者(基于图像的渲染)和降低细节级别等技术。

Variations in appearance, body shape and size, accessories and behavior(social or cultural) exist in real crowds, and lack of variety affects the realism of visual simulations. Existing systems can create virtual crowds with varying texture,<ref name="Maim et al 2009"/> color,<ref>{{cite book |last1=Gosselin |first1=David R. |last2=Sander |first2=Pedro V. |last3=Mitchell |first3=Jason L. |chapter=Drawing a Crowd |editor1-first=Wolfgang |editor1-last=Engel |title=ShaderX3: Advanced Rendering Techniques in DirectX and OpenGL |publisher=Charles River Media |location=Cambridge, MA |year=2004 |pages=505–17 }}</ref> size, shape and animation.<ref name="Thalmann et al 2009"/>

Variations in appearance, body shape and size, accessories and behavior(social or cultural) exist in real crowds, and lack of variety affects the realism of visual simulations. Existing systems can create virtual crowds with varying texture, size, shape and animation.

在真实的人群中存在着外貌、体型和大小、附件和行为(社会或文化)的差异,缺乏多样性影响了视觉模拟的真实性。现有的系统可以创建具有不同纹理、大小、形状和动画的虚拟人群。



== Real world applications ==



=== Virtual cinematography ===

Crowd simulations have been used widely across films as a cost-effective and realistic alternative from hiring actors and capturing shots that would otherwise be unrealistic. A significant example of its use lies in [[The Lord of the Rings (film series)]]. One of the most glaring problems for the production team in the initial stages were large-scale battles, as the author of the novels, J. R. R. Tolkien, envisioned them to have at least 50,000 participants. Such a number was unrealistic had they decided to only attempt to hire real actors and actresses. Instead they decided to use CG to simulate these scenes through the use of the Multiple Agent Simulation System in a Virtual Environment, otherwise known as MASSIVE. The Human Logic Engine based [[Autodesk Maya|Maya]] plugin for crowd simulation, [[Miarmy]], was used for the development of these sequences. The software allowed the filmmakers to provide each character model an agent based A.I. that could utilize a library of 350 animations. Based on sight, hearing, and touch parameters generated from the simulation, agents would react uniquely to each situation. Thus each simulation of the scene was unpredictable. The final product clearly displayed the advantages to using crowd simulation software.

Crowd simulations have been used widely across films as a cost-effective and realistic alternative from hiring actors and capturing shots that would otherwise be unrealistic. A significant example of its use lies in The Lord of the Rings (film series). One of the most glaring problems for the production team in the initial stages were large-scale battles, as the author of the novels, J. R. R. Tolkien, envisioned them to have at least 50,000 participants. Such a number was unrealistic had they decided to only attempt to hire real actors and actresses. Instead they decided to use CG to simulate these scenes through the use of the Multiple Agent Simulation System in a Virtual Environment, otherwise known as MASSIVE. The Human Logic Engine based Maya plugin for crowd simulation, Miarmy, was used for the development of these sequences. The software allowed the filmmakers to provide each character model an agent based A.I. that could utilize a library of 350 animations. Based on sight, hearing, and touch parameters generated from the simulation, agents would react uniquely to each situation. Thus each simulation of the scene was unpredictable. The final product clearly displayed the advantages to using crowd simulation software.

人群模拟已经被广泛应用于电影中,作为一种具有成本效益和现实的替代方式,从雇佣演员和捕捉镜头,否则将是不现实的。一个重要的例子就是《指环王》(电影系列)。在最初阶段,制作团队面临的最突出的问题之一是大规模的战斗,因为小说的作者---- J·R·R·托尔金---- 设想这些战斗至少有50,000名参与者。如果他们决定只雇佣真正的男女演员,这个数字是不现实的。相反,他们决定使用 CG 来模拟这些场景,通过使用虚拟环境中的多 Agent 仿真系统,也就是众所周知的 MASSIVE。基于人类逻辑引擎的人群模拟 Maya 插件 Miarmy 用于开发这些序列。该软件允许制片人为每个角色模型提供一个基于代理的人工智能。可以利用350个动画库。基于模拟产生的视觉、听觉和触觉参数,代理将对每种情况做出唯一的反应。因此,每个场景的模拟都是不可预知的。最终的产品清楚地展示了使用人群模拟软体的优势。

<ref>http://people.ucalgary.ca/~far/Lectures/SENG697/PDF/tutorials/2002/Multiple_Agent_Simulation_System_in_a_Virtual_Environment.pdf Davis Guy. Multiple Agent Simulation System in a Virtual Environment.</ref>



=== Urban planning ===

The development of crowd simulation software has become a modern and useful tool in designing urban environments. Whereas the traditional method of urban planning relies on maps and abstract sketches, a digital simulation is more capable of conveying both form and intent of design from architect to pedestrian. For example, street signs and traffic lights are localized visual cues that influence pedestrians to move and behave accordingly. Following this logic, a person is able to move from point A to point B in a way that is efficient and that a collective group of people can operate more effectively as a result. In a broader sense, bus systems and roadside restaurants serve a spatial purpose in their locations through an understanding of human movement patterns.<ref>http://papers.cumincad.org/data/works/att/ecaade2008_160.content.pdf Aschwanden, Gideon. Halatsch, Jan. Schmitt, Gerhard. Crowd Simulation for Urban Planning.</ref> The [[SimCity]] video game series exemplifies this concept in a more simplistic manner. In this series, the player assigns city development in designated zones while maintaining a healthy budget. The progression from empty land to a bustling city is fully controlled by the player's choices and the digital citizens behave as according to the city's design and events.

The development of crowd simulation software has become a modern and useful tool in designing urban environments. Whereas the traditional method of urban planning relies on maps and abstract sketches, a digital simulation is more capable of conveying both form and intent of design from architect to pedestrian. For example, street signs and traffic lights are localized visual cues that influence pedestrians to move and behave accordingly. Following this logic, a person is able to move from point A to point B in a way that is efficient and that a collective group of people can operate more effectively as a result. In a broader sense, bus systems and roadside restaurants serve a spatial purpose in their locations through an understanding of human movement patterns. The SimCity video game series exemplifies this concept in a more simplistic manner. In this series, the player assigns city development in designated zones while maintaining a healthy budget. The progression from empty land to a bustling city is fully controlled by the player's choices and the digital citizens behave as according to the city's design and events.

人群模拟软体的发展已经成为现代城市环境设计中一个有用的工具。传统的城市规划方法依赖于地图和抽象的草图,而数字仿真更能将设计的形式和意图从建筑师传达给行人。例如,街道标志和交通灯是局部的视觉线索,影响行人移动和行为相应。按照这个逻辑,一个人能够以一种高效的方式从 a 点移动到 b 点,这样一个集体群体就能够更有效地运作。在更广泛的意义上,公交系统和路边餐馆通过对人类运动模式的理解,在其位置服务于一个空间目的。模拟城市视频游戏系列以一种更简单的方式举例说明了这个概念。在这个系列中,玩家分配城市发展在指定的区域,同时保持健康的预算。从空地到繁华城市的过程完全由玩家的选择控制,而数字市民的行为则根据城市的设计和事件而定。



=== Evacuation and riot handling ===

Simulated realistic crowds can be used in training for riots handling, architecture, safety science (evacuation planning).

Simulated realistic crowds can be used in training for riots handling, architecture, safety science (evacuation planning).

模拟真实的人群可用于暴乱处理、建筑、安全科学(疏散计划)的训练。



=== Military ===

Being that crowd simulations are so prevalent in use for public planning and general order with regards to chaotic situations, many applications can be drawn for governmental and military simulations. Crowd modeling is essential in police and military simulation in order to train officers and soldiers to deal with mass gatherings of people. Not only do offensive combatants prove to be difficult for these individuals to handle, but noncombatant crowds play significant roles in making these aggressive situations more out of control. Game technology is used in order to simulate these situations for soldiers and technicians to practice their skills.<ref>{{cite journal |doi=10.1177/1046878107308092 |title=Integrating crowd-behavior modeling into military simulation using game technology |journal=Simulation & Gaming |volume=39 |pages=10–38 |year=2007 |last1=McKenzie |first1=F. D. |last2=Petty |first2=M. D. |last3=Kruszewski |first3=P. A. |last4=Gaskins |first4=R. C. |last5=Nguyen |first5=Q.-A. H. |last6=Seevinck |first6=J. |last7=Weisel |first7=E. W. }}</ref>

Being that crowd simulations are so prevalent in use for public planning and general order with regards to chaotic situations, many applications can be drawn for governmental and military simulations. Crowd modeling is essential in police and military simulation in order to train officers and soldiers to deal with mass gatherings of people. Not only do offensive combatants prove to be difficult for these individuals to handle, but noncombatant crowds play significant roles in making these aggressive situations more out of control. Game technology is used in order to simulate these situations for soldiers and technicians to practice their skills.

由于人群模拟是如此普遍地应用于公共规划和一般秩序关于混乱的情况,许多应用程序可以绘制政府和军事模拟。为了训练官兵应对群众集会,人群模型在警察和兵棋推演中是必不可少的。不仅进攻性的战斗人员对这些人来说很难处理,而且非战斗人员群体在使这些进攻性的情况更加失控方面扮演了重要的角色。游戏技术是用来模拟这些情况的士兵和技术人员实践他们的技能。



=== Sociology ===

The behavior of a modeled crowd plays a prominent role in analytical matters. These dynamics rely on the physical behaviors of individual agents within a crowd rather than the visual reality of the model itself. The social behaviors of people within these constructs have been of interest for many years, and the sociological concepts which underpin these interactions are constantly studied. The simulation of crowds in different situations allows for sociological study of real life gatherings in a variety of arrangements and locations. The variations in human behavior in situations varying in stress-levels allows for the further development and creation of crowd control strategies which can be more specifically applied to situations rather than generalized.

The behavior of a modeled crowd plays a prominent role in analytical matters. These dynamics rely on the physical behaviors of individual agents within a crowd rather than the visual reality of the model itself. The social behaviors of people within these constructs have been of interest for many years, and the sociological concepts which underpin these interactions are constantly studied. The simulation of crowds in different situations allows for sociological study of real life gatherings in a variety of arrangements and locations. The variations in human behavior in situations varying in stress-levels allows for the further development and creation of crowd control strategies which can be more specifically applied to situations rather than generalized.

模范群体的行为在分析问题时扮演着重要的角色。这些动态依赖于群体中个体行为者的物理行为,而不是模型本身的视觉现实。这些结构中的人们的社会行为多年来一直是人们感兴趣的问题,支撑这些互动的社会学概念也在不断地被研究。模拟不同情况下的人群,可以对现实生活中不同安排和地点的集会进行社会学研究。人类在压力水平不同的情况下行为的差异使得可以进一步发展和创造人群控制战略,这种战略可以更具体地适用于各种情况,而不是泛泛而谈。



== See also ==



* [[3D computer graphics]]

* [[Artificial intelligence]]

* [[Crowd analysis]]

* [[Emergent behavior]]

* [[Multi-agent system]]

* [[Particle system]]



== Crowd simulation software ==

* Alice Software by the [[Moving Picture Company]]

* [[Golaem Crowd]]

* [[Massive (software)]]

* [[Miarmy]]

* [[Quadstone Paramics]]

* [[VISSIM]]



== References ==

{{Reflist|30em}}



== External links ==

<!-- wikipedia is not a directory of external links for companies or products -->

<!-- wikipedia is not a directory of external links for companies or products -->

! ——维基百科不是公司或产品的外部链接目录——

* [https://web.archive.org/web/20130627102118/http://steersuite.cse.yorku.ca/ SteerSuite], An open-source framework for developing and evaluating crowd simulation algorithms

* {{cite journal |doi=10.1111/j.1467-8659.2004.00783.x |title=Scalable behaviors for crowd simulation |journal=Computer Graphics Forum |volume=23 |issue=3 |pages=519–28 |year=2004 |last1=Sung |first1=Mankyu |last2=Gleicher |first2=Michael |last3=Chenney |first3=Stephen |citeseerx=10.1.1.10.2516 }}



{{Animation}}

{{collective animal behaviour}}



[[Category:Crowds]]

Category:Crowds

类别: Crowds

[[Category:Computer animation]]

Category:Computer animation

类别: 电脑动画

[[Category:3D computer graphics]]

Category:3D computer graphics

类别: 三维计算机图形

[[Category:Social physics]]

Category:Social physics

类别: 社会物理学

<noinclude>

<small>This page was moved from [[wikipedia:en:Crowd simulation]]. Its edit history can be viewed at [[人群模拟/edithistory]]</small></noinclude>

[[Category:待整理页面]]
1,592

个编辑