群体动画行为自动控制的微粒群优化算法
2020-10-13杨亮张颖姚奕洋
杨亮 张颖 姚奕洋
摘 要: 为提升群体动画行为的自主性以及智能性,研究群体动画行为自动控制的微粒群优化算法。用户输入群体动画行为构建目标后,依据固定行为规则规划个体路径,采用微粒群优化算法依据自上而下的控制过程为群体动画内个体选择最优动作。其中,微粒群算法步骤如下:初始化微粒群算法参数、评价微粒初始适应值、更新微粒群内个体速度和位置、评价微粒适应值、判定历史最优位置以及适应值,适应值误差符合设定限制时输出全局最优搜索结果,并选取Eberhart方法依据外部环境变化优化微粒群算法,利用最优动作实现行为自动控制后通过3ds max软件渲染功能将最终结果输出。通过实例分析验证该算法可有效实现群体动画行为的自动控制,且收敛速度快,具有较高的自主性。
关键词: 群体动画行为; 自动控制; 微粒群算法优化; 动作选择; 行为控制; 实例分析
中图分类号: TN911.1?34; TP181 文献标识码: A 文章编号: 1004?373X(2020)19?0106?05
Abstract: In order to improve the autonomy and intelligence of the group animation behavior, the particle swarm optimization algorithm for the automatic control of group animation behavior is studied. After a user inputs the group animation behavior to construct the goal, the individual path is planned according to the fixed routine behavior rules, and the particle swarm optimization algorithm is used to select the optimal action for the individual in the group animation according to the top?down control process. The steps of particle swarm algorithm are as follows: initialize the parameters of particle swarm algorithm, evaluate the initial particle adaptive value, update the speed and position of individuals in the particle swarm, evaluate the particle adaptation value, determine the historical optimal position and adaptive value, output the global optimal search results when the adaptive value error meets the set limit, select the Eberhart method to optimize the particle swarm algorithm according to changes of external environment, use the optimal action to achieve automatic control of behavior, and output the final result by the rendering function of 3ds max software. It is verified by example analysis that the algorithm can effectively realize automatic control of group animation behavior, and has fast convergence speed and high autonomy.
Keywords: group animation behavior; automatic control; particle swarm algorithm optimization; action selection; behavior control; example analysis
0 引 言
以往群体动画通常采用手绘方式控制个体行为,采用手绘方式令群体依据个体路径轨迹移动具有较高的复杂性以及繁琐性[1]。群体动画是目前计算机动画领域的重点研究方向,群体动画依据动物成群结队的移动形式令大量个体通过相同行为聚集于一体,利用有效算法可令群体产生存在某种目的而行进的错觉。群体动画的诞生推进了计算机动画的发展速度[2],群体动画需要群体具有整体运动协调一致性,但群体内个体具有独特性,因此群体动画自动控制具有一定难度。
微粒群算法是一种有效的群体演化算法,该算法将控制目标比作鸟群或鱼群,依据鸟群或鱼群捕食过程的社会行为令动画内个体依据群体行为行动[3]。微粒群算法兼具反馈与信息共享机制,具有鲁棒性好、简单易行的优势。微粒群算法已广泛应用于静态优化问题中,并取得良好成效,將微粒群算法应用于动态问题中,往往容易陷入局部最优导致较难获取动态目标最优解[4]。传统的微粒群算法内全部粒子选取最优个体作为全局极值,容易陷入局部最优。针对以上缺陷对微粒群算法优化,改进微粒群算法中粒子的运动方式[5],获取最优的自动控制效果。微粒群算法具有群体智能性,将微粒群算法应用于群体动画行为自动控制中,需要实时检测粒子周围环境变化,并以最短时间寻取最优解[6]。研究群体动画行为自动控制的微粒群优化算法,可令群体内动画角色具有自主性,实现行为控制简单化以及角色运动自然逼真化,并具有良好的全局寻优性能,可快速实现群体动画自动控制。
1 微粒群优化算法构建
1.1 群体动画
群体动画是依据人类以及动物群体行为构建三维群体动画的方式[7],群体动画已广泛应用于影视作品、公共安全以及各类大型游戏中。群体以及个体在群体动画中的运动行为控制是群体动画研究的重要方向,群体动画构建体系结构图如图1所示。
群体动画需要遵循固定原则,群体动画模拟过程中赋予群体内个体最基本的行动能力。群体动画内全部个体可依据其余个体的运动情况决定运动路径。从图1可以看出,用户输入群体动画构建目标后,依据固定行为规则规划个体路径[8],确定群体动画内个体行动路径后,采用微粒群优化算法依据自上而下的控制过程为群体动画内个体选择最优动作,个体动作完成后通过3ds max软件的渲染功能将最终结果输出。
采用3ds max软件建立群体动画模型,建立过程需要依据如下原则:
1) 群体动画内全部个体需要有自身个体空间,为避免个体空间受到侵占,个体在其他个体进入安全空间时需要远离;
2) 群体动画内全部个体需要与其他个体运动方向保持一致,群体动画内全部个体运动方向大致相同;
3) 群体动画内小群体在周围无障碍物时可与周围群体融为一体,群体动画设计过程中应尽量避免碰撞产生。
群体动画行为自动控制策略主要分为自下而上控制以及自下而上控制两部分。
群体动画中的个体依据自身判断决定行为的过程称之为自下而上的控制过程[9]。自下而上的自动控制方法可依据周围环境感知令个体与周围环境以及周围个体实现自主交互,通过自主交互展示群体特征。
用户意识决定群体动画中个体行为的控制过程称之为自上而下的控制过程,用户通过控制群体动画中个体令全部个体依据用户意识实现自主控制。
选取微粒群优化算法采用自上而下的控制过程实现群体动画行为自动控制。用户输入群体动画行为的控制参数后,利用控制参数指定群体动画内个体初始状态,群体动画内个体依据用户控制参数实现自主控制。
1.2 微粒群算法
微粒群算法将所需寻优的全部个体视作无质量、无体积的微粒存储于[B]维搜索空间内,设全部粒子飞行速度固定,依据全部粒子以及个体粒子的飞行经验动态调整各粒子的飞行速度[10],通过个体对环境的适应度,令群体内全部个体向完成设定区域移动。
设微粒群存在于[B]维搜索空间中,其中含有微粒数量为[m],第[i]个微粒于该搜索空间的位置用[Yi=yi1,yi2,…,yiB]表示,且[i=1,2,…,m],该位置即为优化问题的潜在解,利用该位置可获取微粒适应值,空间位置的优劣情况可依据所获取适应值评估。用[Qi=qi1,qi2,…,qiB]表示第[i]个微粒移动过程中最优位置,即个体历史最优位置[11],则该位置对应适应值即为该微粒个体历史最优适应值,用[Hi]表示,全部微粒移动过程中经历的位置中最优位置即为该微粒群全局历史最优位置,用[Qg=qg1,qg2,…,qgB]表示,该位置对应的适应值即为全局历史最优适应值,用[Hg]表示。
微粒群内微粒个体的移动速度用[Ui=ui1,ui2,…,uiB]表示,微粒[i]于[b]维[1≤b≤B]空间的运动在每次迭代过程中均需依据以下公式移动:
式中:[w]与[e1],[e2]分别表示惯性权值以及加速系数;[r1],[r2]表示[0,1]范围内变化的随机数。式(2)为微粒求解空间内,微粒互相影响造成的运动位置调整。
微粒群算法步骤如下:
1) 初始化微粒群算法的规模、惯性权值、最大允许迭代次数、适应值误差限制、加速系数、微粒初始速度、初始位置、位置限制和飞行速度限制等参数;
2) 评价微粒初始适应值,设置微粒群内的个体历史最优值以及全局历史最优值[12];
3) 更新微粒群内个体速度和位置,并通过限幅处理微粒群更新后速度以及位置;
4) 评价微粒适应值;
5) 比较各微粒的个体历史最优适应值以及当前适应值,将最优的适应值保存设置为历史最优适应值,将该位置更新为个体历史最优位置;
6) 将微粒群内全部个体的全局最优适应值与此时适应值对比[13],保留最优的适应值作为全部历史最优适应值,此时位置为全局历史最优位置;
7) 当适应值误差符合设定的适应值误差限制时,符合停止条件,算法结束,输出全局最优搜索结果;否则,返回至步骤3)。
1.3 微粒群优化算法
为令微粒群算法不易受到外部环境影响,令环境变化时该算法仍具有较强的适应性,可准确感应环境变换,并在环境出现变化时可准确跟踪最优解,基于微粒群算法改进全局极值表示方法,优化的微粒群算法将全局极值采用所获取的局部最优平均值替代[14],计算每个微粒在微粒群进化一代时当前局部最优适應度值,并获取微粒群内个体局部最差适应度值以及局部最优适应度值,计算局部最差适应度值与局部最优适应度值的和与差,获取和与差的比值,利用该比值获取微粒群内全部个体最优适应度值平均值,微粒群全局最优适应度值选取平均值与比值相差获取的积,其计算公式如下:
将式(3)获取的[Qm]代替微粒群优化算法的[Qg]更新微粒速度。
微粒群需要具备快速感应外部环境变化的能力,才可令其快速跟踪动态机制,微粒群算法感受环境变化后需要及时采用响应机制。选取Eberhart方法应用于微粒群优化算法中,感应微粒群算法随外部环境变化情况。当微粒群全局极值存在变化时,表明该微粒群环境出现变化导致微粒群全局极值发生变化[15]。微粒群环境存在变化时,需要及时获取微粒群算法内全部微粒的全局极值以及局部极值,并将局部极值与全局极值比较后依据存在的最优适应度值微粒距离排序,将与全局极值距离较小的6%微粒重新初始化,扩大搜索范围继续搜索,令微粒群具有较高多样性,继续进化寻找环境变化后全局最优值。
2 实例分析
在上述研究的基础上,对本文所研究群体动画行为自动控制的微粒群优化算法进行模拟实验,采用Microsoft Visual Studio .NET平台为Autodesk Maya 2016软件开发的群体动画编程本文算法。
Autodesk Maya 2016软件开发的群体动画原始图如图2所示。
采用本文算法自动控制群体动画内个体移动至圈内行为结果如图3所示。
采用本文算法自动控制群体动画内个体移动至看台行为结果如图4所示。
通过图3,图4实验结果可以看出,采用本文算法可实现群体动画内个体行为自动控制,且群体动画真实感强,验证了本文算法自主控制的有效性,说明本文算法可行,采用本文算法控制动画群体具有人工智能性,可有效再现群体觅食行为。
采用本文算法自动控制群体动画内个体移动至圈内行为的进化过程如图5所示,为直观展示本文算法的控制性能,将本文算法与Q?学习算法以及目标跟踪算法对比。
采用本文算法控制群体动画内个体移动至看台行为进化过程如图6所示,将Q?学习算法以及目标跟踪算法作为对比算法。
通过图5,图6自动控制群体动画内个体移动至圈内以及移动至看台行为进化过程可以看出:最优解动态变化时,三种算法获取的最优值均出现明显波动,主要原因是原有最优解经过动态变化后变成次优解,本文算法可在最快时间内寻找最优解。随着进化次数的增加,适应度值呈下降趋势,说明本文算法可有效利用前期优化结果,加快获取最优解速度。本文算法自动控制群体动画行为通过较少进化次数即可实现有效的自动控制,验证本文算法控制群体动画行为的有效性,本文算法控制过程中可有效跟踪群体动画内动态环境变化,收敛速度明显优于另外两种算法,说明本文算法具有较好的自适应能力,且获取的适应度值与全局最小值较为接近。
统计本文算法收敛至全局最优解后,周围环境发生10次变化时,本文算法重新收敛至全局最优解进化次数,并将本文算法与Q?学习算法以及目标跟踪算法对比,结果如表1所示。
由表1实验结果可以看出,本文算法在自动控制群体动画内个体移动至圈内以及移动至看台行为的进化次数均明显小于Q?学习算法以及目标跟踪算法,说明本文算法可较快收敛至全局极值,有效验证了本文算法具有优秀的寻优性能。
微粒群算法内种群多样性可令环境发生改变时算法内粒子仍可覆盖搜索大空间面积,为微粒群算法寻找新的全局最优值提供支持,可改善粒子过度收敛令算法陷入局部最优值情况。采用本文算法自动控制群体动画内个体移动至圈内行为时寻找全局最优解过程中群体多样性如图7所示,将本文算法与Q?学习算法以及目标跟踪算法对比。
本文算法在自动控制群体动画内个体移动至看台行为时寻找全局最优解过程中群体多样性如图8所示,将本文算法与Q?学习算法以及目标跟踪算法对比。
通过图7,图8实验结果可以看出,本文算法在自动控制群体动画内个体移动至圈内以及移动至看台行为过程中种群多样性明显优于另两种算法,说明本文算法具有较高全局搜索性能,本文算法应用于群体动画自动控制中控制性能较高。
3 结 语
本文算法将微粒群优化算法应用于群体动画行为自动控制中,依据全局极值情况判定个体周围是否存在变化,当存在环境变化时,需要将部分微粒重新初始化,令种群搜索范围扩大,提升微粒种群多样性,通过微粒具有的记忆功能,避免微粒群陷入局部最优情况,令群体动画行为自动控制效果更高。通过实验验证该算法自动控制群体动画行为有效性,该算法可依据用户意愿自动控制群体动画内个体依据运动轨迹运动,实现运动目标跟随效果,采用该算法自动控制的群体动画行为具有真实感强、控制性能良好的优势。
参考文献
[1] 许奇,王华彬,周健,等.用于目标跟踪的智能群体优化滤波算法[J].智能系统学报,2019,14(4):697?707.
[2] 张峰,刘凌云,郭欣欣.基于改进Q?学习算法的多阶段群体决策模型[J].控制与决策,2019,34(9):1917?1922.
[3] 徐选华,杨玉珊,陈晓红.基于决策者风险偏好大数据分析的大群体应急决策方法[J].运筹与管理,2019,28(7):1?10.
[4] 那赟,栗继祖,冯国瑞.群体认知对个体不安全行为意向的跨层次影响[J].中国安全科学学报,2019,29(2):13?19.
[5] 孙剑,张磊,董建军,等.隧道工人群体心理资本对群体行为的影响[J].土木工程与管理学报,2019,36(5):19?24.
[6] 赵越,蒙毅,李仁义.基于粒子群优化算法分析约束条件对配煤最优价格的影响[J].热力发电,2017,46(12):99?104.
[7] 徐利锋,黄祖胜,杨中柱,等.引入多级扰动的混合型粒子群优化算法[J].软件学报,2019,30(6):1835?1852.
[8] 戴翠琴,唐煌,郭林峰.卫星网络中基于双向寻优粒子群优化算法的连接计划设计[J].通信学报,2019,40(8):189?199.
[9] 张鹏威.采用正弦映射与扩张算子的二进制粒子群优化算法[J].小型微型计算機系统,2019,40(6):1160?1164.
[10] 王硕禾,郑俊观,陈祖成,等.基于改进粒子群优化算法光伏阵列多峰值MPPT的研究[J].可再生能源,2019,37(6):879?885.
[11] 孙辉,邓志诚,赵嘉,等.混合均值中心反向学习粒子群优化算法[J].电子学报,2019,47(9):1809?1818.
[12] 王沿朝,陈清军.基于粒子群优化算法的软土场地Davidenkov模型参数拟合与应用[J].振动与冲击,2019,38(17):8?16.
[13] 徐偲喆,查晓锐.基于改进粒子群优化模糊控制的MPPT算法研究[J].电机与控制应用,2019,46(10):35?39.
[14] 张煜培,赵知劲,郑仕链.融合学习差分进化和粒子群优化算法的认知决策引擎[J].计算机科学,2019,46(6):95?101.
[15] 黄文雅.基于改进版粒子群优化算法的最优双层规划模型及其求解[J].统计与决策,2018,34(1):88?91.