游戏开发中的人工智能-第9章-有限状态机

游戏开发中的人工智能-第9章-有限状态机

1. 简要说明

我记得在面向对象编程课上,我学习了有限状态机。 后来学习编译原理的时候,就继续研究有限状态机。 直到研究生一年级的正式语言自动机,它仍然是有限状态机。 看来ERP中有一个非常糟糕的核心解决方案,它也是一个状态机。 但给我印象最深的是在我本科生做过的数百个项目中使用有限状态机实现无线模块的自动组网和通信。 状态机很简单,确实相当简单,尤其是在实际使用中,但我想用好它。 嗯,这也不容易。 状态机的实现非常简单,但是状态机的设计需要一些思考。

本章主要通过两个例子来说明状态机在游戏中的使用。 让我们简单谈谈下面的一个例子。 第二个例子主要是代码较多,没有太大区别。 当你想要实现状态机时参考它更有价值。

2.有限状态机计算机控制幽灵。 它具有三种可能的状态:漫游、躲避和追逐。 初始状态是“漫游”。 三种变身行为:当玩家服用大理丹时游戏图片,触发“我变蓝了”; 当鬼魂看到玩家时,触发“我看到玩家”; 当鬼魂看不到玩家时,会触发“我看不到”。 状态转换如图:

相关程序代码:

switch(currentState) {
  case kRoam:
    if (imBlue==true) currentState=kEvade;
    else if(canSeePlayer==true) currentState=kChase;
    else if(canSeePlayer==false) currentState=kRoam;
  case kChase:
    if(imBlue==true) currentState=kEvade;
    else if(canSeePlayer==false) currentState=kRoam;
    else if(canSeePlayer==true) currentState=kChase;
  case kEvade:
    if(imBlue==true) currentState=kEvade;
    else if(canSeePlayer==true) currentState=kChase;
    else if(canSeePlayer==false) currentState=kRoam;
}

事实上,三种情况的代码是相同的。 只要确保先判断imBlue,再判断canSeePlayer即可。 当然这段代码并不是最高效的,但是它更直观像素游戏素材,更容易展示。

个人认为一般优先级状态机主要把握两部分。 第一部分是根据状态机循环执行某些操作。 第二部分是在做事情的过程中游戏开发中的人工智能游戏开发中的人工智能,由于某些情况,状态发生了变化,从而影响了之前的循环过程。

3. 人工神经网络

人工神经网络(Artificial Neural Network,ANN),简称神经网络(NN),是模仿生物神经网络结构和功能的数学模型或计算模型。 神经网络由大量的人工神经元连接起来进行计算。 大多数情况下,人工神经网络可以根据外部信息改变内部结构,是一个自适应系统。 现代神经网络是非线性统计数据建模工具,通常用于对输入和输出之间的复杂关系进行建模或探索数据模式。

维基百科解释:

神经元图:

Ncell.png

数学表示

t = f(\vec{W}\vec{A'}+b)

可见,神经元的功能是在得到输入向量和权向量的内积后,通过非线性传递函数得到标量结果。

单个神经元的作用:用一个超平面(称为判断边界)将一个n维向量空间分割成两部分。 给定一个输入向量,神经元可以确定该向量位于超平面的哪一侧。

该超平面的方程:

\vec{W}\vec{p}+b=0

人工神经网络的优点:

(1)不需要了解实际问题的内部结构,甚至不需要针对不同的问题采用不同的方法。 只需要关心系统外部的输入输出关系; 它可以观察和学习实际问题的输入和输出关系。 (训练调整优化权重,使神经网络的输入输出行为与实际问题实例一致);

(2)神经网络形成的行为系统往往是不死的。 可以通过不断的学习和训练进行动态调整,以适应新的情况; 他们有学习和适应能力。 FSM(有限状态机)和FuSM(模糊状态机)无能为力。

人工神经网络的缺点:

(1)选择合适的输入输出变量非常困难;

(2)培训过程。 神经网络的训练过程需要游戏高手,通常是游戏设计师来扮演高手的角色,费时费力(监督学习); 虽然神经网络实际上不需要老师教,可以自己学习,但效果普遍不好。 确保。

(3)无论神经网络训练得多么好,都可能会出现莫名其妙、不合理的行为。 因为毕竟是遇到以前没有遇到过的新情况。 由于神经网络是一个黑匣子,无法分析其内部逻辑关系,很难找到问题的原因。 但 FSM 和 FuSM 可以。

文章来源:https://blog.csdn.net/ybhou/article/details/9985389