当前位置: 代码迷 >> 综合 >> 人工智能 (学习笔记)
  详细解决方案

人工智能 (学习笔记)

热度:28   发布时间:2023-11-26 10:33:41.0

人工智能(有限状态机的基本认识)

  • 游戏中除了有玩家操控的坦克,还有电脑操控的坦克,这便涉及了人工智能。有人认为人 工智能是高深莫测的领域,因为涉及的技术非常多,常用的算法就有好多种,包括有限状态机、模糊逻辑、决策树、专家系统、神经网络和遗传等,更涉及大数据、机器学习等领域。这技术虽然高深但也并非遥不可及,游戏中的人工智能设计其实遵循着一定的规律。

1有限状态机

有限状态机是指有限个状态以及在这些状态之间转移和动作的数学模型。

  • 1坦克会在场景中巡逻。
  • 2若坦克发现敌人,则靠近敌人并向敌人射击。
  • 3若hp降低到一定程度,则设法逃跑。
    根据上述行为,可以设计如图4-1所示的状态转换图。坦克有巡逻、进攻和逃跑三种状态,巡逻状态下,如果发现了敌人(敌人出现在坦克的视角范围内)则会变成进攻状态;在进攻状态下,如果丢失
    了目标(目标被摧毁或离开视角范围)则会回到巡逻状态;交战过程中,如果坦克的hp值小于指定值,则逃跑,直到远离目标继续巡逻。
    在这里插入图片描述

2分层有限状态机

上述状态机定义了坦克巡逻、进攻和逃跑三项策略,并规定了切换策略的条件。然而状态机并没有告诉坦克在各种状态下应该做什么事情,比如:巡逻状态下怎样走到指定的位置,进攻状态下又该怎样靠近敌人,炮塔如何瞄准对手等,这便涉及了第二层状态机。以进攻状态为例,坦克要处理移动和开炮两件事情。

  • 1移动到敌人面前。
  • 2炮塔对准敌人并适时开炮。

单看“移动”这一项,至少会涉及“未到达目的地”和“到达目的地”两种状态。若坦克处于“未到达”状态,它将继续前行,直到靠近目的地切换为“到达目的地”状态为止。“开炮”一项也至少会涉及“未对准”和“对准”两种状态,如果坦克处于“未对准”状态,炮塔将朝着敌人方向旋转,直到对准敌人切换为“对准”状态为止;若坦克处于“对准”状态,它将不断发射炮弹。当敌人的位置发生变化时,坦克将再次切换成“未对准”状态。图4-2展现了进攻状态下的第二层状态机。
在这里插入图片描述
如同进攻状态,巡逻和逃跑也对应着“炮塔状态机”和“移动状态机”两种情形(如图4-3所示)。每一层状态机相互独立,负责
自己的功能。例如,当坦克处于进攻状态时,“处理进攻状态的方法”只需告知“移动状态机”目的地的坐标即可,至于怎样移动到
目的地则由“移动状态机”全权负责。
在这里插入图片描述
基于上述的两层状态机,就可以实现简单的敌人AI了。

  相关解决方案