zoukankan      html  css  js  c++  java
  • 游戏人工智能开发之人群的动态行为交互仿真

    博主把实验效果做成了视频,可以先看一下:

    youtube(清晰):https://youtu.be/S5wLx-zMrIE

    优酷:http://v.youku.com/v_show/id_XMTMxOTM3NTE1Ng==.html

    TX:TX:http://v.qq.com/page/q/m/x/q0163gorwmx.html

     

    动态人群交互模拟基于一般适应综合征理论General Adaptation Syndrome Theory


    先了解一下什么是  一般适应综合征(general adaptation syndrome)

    一般适应综合征(general adaptation syndrome)是由于持续的应急状态所引起的一种生理反应模式,其目的在于克服应急反应产生的影响,保证身体适应外界环境的能力。这种反应模式可分三个阶段:警觉阶段,抵御阶段,衰竭阶段。

    例:
        假如把尖锐的呼啸声作为一种老鼠生活的环境中,你就会发现下列情况:开始,老鼠的紧张状态明显加强,心率增快,警惕性增高,骨骼集中的血管收缩,而多竖 起,双目直视,这就是警觉阶段。而活,在肾上腺分泌出比平时多的肾上腺素的作用下,老鼠的行为好似处于相对的正常状态,这就是抵御阶段。最后,老鼠过早死 于心力衰竭,这就是衰竭阶段。将死亡的老鼠解剖,你会发现老鼠的肾上腺明显的肿大。这表明,老鼠在克服应激状态中,肾上腺分泌出大量的肾上腺素,等它把应 付困难环境的积蓄力量全部耗尽,身体衰竭。表面看来,老鼠死于心脏病,但是,经过仔细的研究,老鼠的真正的死因是由于持续不断的应急状态所造成的。
    词义关联

        一般适应综合征是由加拿大生理学家H.塞利首先提出来的,并且作了大量的动物实验来证明应激状态的影响。

    以上解释来自网络

    我们要模拟的就是,人物根据不同压力来做出不同行为。

     


    根据人类固有性格不同而不同的行为,行为根据人类性格变化而动态变化。
    使用著名心理学理论 --------  一般适应综合征理论General Adaptation Syndrome Theory
    模拟仿真各种变化和压力,压力变化,步行速度变量发生改变
    适用于游戏,虚拟现实等交互式应用程序
    行为的差异主要来自于人类特点,人类行为的多种差异是由不同因素产生的,如刺激的不同,遗传因素,生理状态,认知状态,社会环境,文化环境,以前的生活经历,和个人个性特征。尽管有这么多种因素,行为也可以分为几个基本类型
    归 因理论(Attribution theory):人力资源管理和社会心理学的激励理论之一,归因是指观察者为了预测和评价被观察者的行为,对环境加以控制和对行为加以激励或控制,而对被 观察者的行为过程所进行的因果解释和推论。因为归因理论(Attribution theory)把这些原因分为意向属性和情景属性。人模糊地意识到需要的心理状态。当人的需要以模糊的形式反映在意识之中时,所产生的不明确的需求意念就 是意向。简单来说就是个人的个性因素。情景属性是外部因素如现在的环境状态。我们将要模拟的人物代理需要人物个性,和环境情景来模拟。
    情境因素称为压力,应激源对人物代理产生的效果将被当做压力来测量,我们模拟一般适应综合征理论General Adaptation Syndrome Theory作为人类如何应对压力的模型。
    基于心理学模型进行人群仿真,动态模拟人群的行为模式,考虑各种类型的压力。模拟中人的行为受两个方面影响,是上面提到过的人的个性和情境因素。
    应 激源的函数在时间和空间上产生各种各样真实世界中的人群行为。包括好多基于时间约束的应激源如人物代理的位置和其他环境因素。这些应激源可以和目标导向 (goal-directed)结合,多人物代理模拟能产生多样行为。将意向属性作为内部权重,情景属性作为外部权重,人物代理从应激源(作为一个函数) 收到我们模拟压力的测量值,就是这两个权重。


    压力

    一些研究人员描述人类如何应对压力,包括生理性变化和外部行为变化,人在有压力的时候攻击性增加。而且压力的反应会随着时间改变。

    人群模拟技术

    人群模拟(crowd simulation)和多智能导航(multi-agent navigation)是一个活跃的研究领域,我们主要关注人群行为的交互式方法。

    行为模型

    我们对于模拟复杂的行为使用基于规则(Rule-based)的方法,包括:原动力、知觉、行为和认知成分等来模拟行人行为和模拟决策过程。知觉是客观事物直接作用于感官而在头脑中产生的对事物整体的认识。认知成分是态度的其余组成成分的基础。
    可你模拟行为如侵略、社会优先级、权威、保护和引导等。
    许多研究人员已经在人群种仿真方面上使用心理因素。
    这些行为模式的选择必须遵守给定的规则,比如一个人物代理,程序告诉他,饿了吃面包,结果那个人找不到面包店,饿死在了拉面馆门口。

    压力的心理模型

    广 义上讲,压力可以被定义为任何变化引起的环境和个体之间的交互。一般般来说,压力产生因为环境要求与个人能力之间的矛盾,当人们觉得他们需要应对挑战时他 们会觉得紧张。应激源产生压力,他可以是一种情况、一个对象、或者其他个体。有许多压力的来源,本文主要关注以下几点:

    1.个人的负荷(具有挑战性的情况下),如时间限制与每个人物代理的目标;
    2.感知到的威胁,如火灾危险的动物或对象;
    3.不愉快的事情,如热、噪音、空气污染(吸烟,恶臭)和过度拥挤。


    一般性适应综合征(general adaptation syndrome)

     
    一 般GAS模型作为应对任何压力源(毒素、寒冷、受伤、疲劳、恐惧等)反应的GAS模型有三个阶段:预警,抵抗,衰竭(如上图)。在感受到压力时,在预警阶 段,他们准备好了为“战斗”或“逃走”。左图是GAS模型模拟压力随着时间的变化,在预警阶段迅速提升,在抵抗阶段提升到峰值,在衰竭阶段随着时间压力减 弱,右图是近似模型α为压力达到峰值的速度也是压力产生速度,决定预警期长短,β是压力的峰值大小。


    我们首先设置一个任务代理正 在受到的压力ψ,我们的目标是计算一个任务代理的应激反应定义为S。压力的变化速率α,代表人物代理并不马上应对压力,有预警阶段作为一个缓冲。为了把任 务代理的应急反应强度限制,我们设置一个压力的峰值β,这是因为如果压力无限增强的话,就会限制人物代理的响应,行为也不自然。
    把这些值结合到一起得到如下公式:
     
    dS/dt为应激反应曲线的斜率也就是压力增长和衰减速度。
    S的上限为β,因为性能问题我们把α和β设为常量。

    每个人的α和β都不相同,我们可以自己设定,或者使用测得的真实值。

    所以,这个系统有三个步骤
    1.    应激源提供压力
    2.    基于GAS模型的压力积累函数
    3.    多代理模拟算法(multi-agent simulation algorithm),通过改变代理的攻击性和冲动可以改变代理的行为。

     

    压力感知

    感知到的压力ψ与先前自身带有的压力I有如下关系:
     
    k为比例因子,n为指数,这两个参数大小取决于应激源的种类。
    压力源的原型
    四种压力原型:

    时间压力

    在一个特定时间达到一个目标而产生时间压力,如:过马路、在大门关闭之前登上火车、在火灾中逃离建筑物。
    去模拟这种类型的压力,人物代理有一个目标位置和一个固定时间限制tallowed,我们模拟时间压力的强度It,根据时间限制与预计到达时间差,也就是剩余到达时间来模拟这个函数:
     
    testimated是到达目标预计时间,例如:testimated= distRemaing/avgSpeed.

    环境应激

    环境应激由环境状态产生,例如:噪音、高温、强光、烟雾。在区域中这种应激源的强度一般是常量:
     
    A是产生应激环境区域,pa是当前人物代理位置。

    位置应激

    这是应激源结合本地压力产生源。不同于环境应激,位置应激为压力随着人物代理与应激源的距离的减小而增加,包括静态的应激源如火焰,或者动态的应激源如一辆疾驰的车或者一个暴力分子。
     

    pa为人物代理位置ps为应激源位置

    pa为人物代理位置ps为应激源位置

    如果一个很大区域有着高强度的刺激,我们也可以用高斯分布:


    人际压力

    来自其他人物代理的压力,常见的例子如拥挤。我们通过一个密度阈值与当前密度的差距来定义压力函数:
     
    ncur是单位区域内在当前的周围人数,npref是相同区域内周围人数的阈值。

    压力模型

    以上四种压力每种都用强度I来定义,结合公式2,用来求出感知到的压力ψ。一个人物代理的应激反应S由公式1求得。
    α和β可变变量来控制代理的应激反应,人们基于自身的防御系统和个人性格产生压力的变化,α越大对压力产生的反应越快,β越大人能产生的反应越大。

    多应激源

    当面对多压力,我们计算出每个压力值在进行加权处理求得总压力,人们可选择自己对不同刺激的不同反应强度作为权重w。
     
    wi是每个应激源Si的权重,赋予人们压力的优先级。


    我们可观察到人物代理主要的响应是增加积极地和冲动行为,我们希望它能显示侵略性和冲动的变化

    加入行为变化

    以两个范围作为群体行为的原则,可以被视为高级参数。范围一,定义PC1,外向的性格有更多激烈的行为。第二范围,PC2的谨慎行为很多。根据这两个维度,我们可以选择仿真所需参数。我们用压力行为向量作为参数表示这个差异,Bstress作为人物代理感知到压力的能力


    例如PC1与PC2分别为积极的,和仔细的。

    结合人格特性

    一个矩阵Apc给予一个关于PC1&PC2之间的线性映射,矩阵Aadj映射了各种不同性格的描述。我们决定人物代理的最终行为是线性的结合这两个矩阵,第一个代表情景响应,第二个代表人物代理固有的性格个性。
    下面方程求出仿真参数,根据固有的个性特征和动态变化的压力反应来描述人物代理的行为,
     

    P是响应一个人物代理固有个性的向量。当一个人物代理感知到压力并且S值增加,Bstress效果增加因此压力性的行为也增多。当压力消失了,S将会减少,人物代理的行为也会回到初始人物个性行为P。


    实践结果

    请先观看视频:

    youtube(清晰):https://youtu.be/S5wLx-zMrIE

    优酷:http://v.youku.com/v_show/id_XMTMxOTM3NTE1Ng==.html

    TX:TX:http://v.qq.com/page/q/m/x/q0163gorwmx.html

    对立小组

    两组人物代理通过走廊向相互反向移动。

    受目标压力与人际压力。

    过马路

    一个人物代理过马路的十字路口,信号剩余时间作为压力源。

    在40s的时候压力较少,人物代理漫不经心的过道

    在剩余时间少的时候压力变大,人物变走为跑

    追逐

    一个怪物追赶人物代理。通过怪物与人物代理的位置来计算压力,是位置应激

    四散而逃

    距离由近及远,压力由大到小

    多个压力存在权重


    疏散

    一千人物代理撤离一个办公环境。压力来自于火灾。因为人数多,所以拥挤作为第二应激源(人际压力);

    人物性格不同行为不同

    参考:Interactive Simulation of Dynamic Crowd Behaviors using General Adaptation Syndrome Theory

                                                    ---------  by wolf96   wolf_crixus@sina.cn

     



  • 相关阅读:
    Javascript FP-ramdajs
    微信小程序开发
    SPA for HTML5
    One Liners to Impress Your Friends
    Sass (Syntactically Awesome StyleSheets)
    iOS App Icon Template 5.0
    React Native Life Cycle and Communication
    Meteor framework
    RESTful Mongodb
    Server-sent Events
  • 原文地址:https://www.cnblogs.com/zhanlang96/p/4759286.html
Copyright © 2011-2022 走看看