游戏AI--决策(1)

机器学习的引入

机器学习最近由于AlphaGo数据挖掘的大热而变得流行起来,然而我们可以让它变得更加cool,在接下来的模块中,我将讲述我对游戏中应用机器学习的理解以及我的现有成果。

应用机器学习的意义

游戏进行中,尤其是网络游戏,会积累大量的数据,数据赋予了计算机行为意识,而我们如果能“告诉”计算机数据归纳总结的方法,那计算机可能会产生惊人的思维能力,而机器学习就是这样的一种神奇的工具。

前景

目前的游戏由于同质化严重,所以一个高度智能的游戏体验会带给玩家难以想象的快感,而且笔者以为,很有可能在某一天,我们能在游戏中建立真正的人工智能,因为游戏世界高度抽象化,数据的提取难度大大降低,当然,这有点跑题了。

应用机器学习的决策逻辑

游戏的进行,决策和事件无疑是最重要的两个条件,传统的游戏中,我们使用大量的条件判断来进行决策,不仅在逻辑上很繁琐,而且有一个重大的问题,它是“死的”,比如玩家经过一个怪物,怪物必定会攻击玩家,如果要改善这一决策,那需要添加许多条件,比如针对怪物的“攻击性”,重写判断逻辑。
机器学习则不然,我们可以根据以前的记录进行训练,每个怪物都是独特的,即使他们隶属于同一个类,“个性”将使AI十分丰富。

目标–鱼类的遗传

由于机器学习的数学模型非常复杂(对笔者来说是这样的,花了很多功夫才看懂),我们先讲一个应用,然后我们根据其需求来应用机器学习。

在之前的游戏底层逻辑中,笔者曾说过想要实现一款海洋模拟的游戏,之前的只言片语可能已经能描述大概的框架了,不知道也没关系,此处我们有一个问题:捕食行为
捕食行为基本上是动物最重要的行为了,此处有三个需要决策的问题,在进入捕食状态前的判断中,我们需要知道:
1、是否需要捕食
2、捕食什么鱼类(前提是在食物链上的)
3、哪个地方适合捕食

是否捕食

在传统游戏中,设定一个饥饿值,这个值随着时间递减,减少到一定程度就去捕食。
而这种状态是不合理的:

  • 首先,我们吃东西并不一定是饥饿,其他的因素都有可能使其变化。
  • 其次,这种if(1)else(0)的变化在空间上表现出来的是跳跃性的曲线,不符合我们越饥饿越想吃东西这样的特性。
  • 然后,我们的决策没有随机性,很容易预测,很“无聊”。
解决方案

我们设定一个合理的初始函数:

H(x)=x1θ1+x2θ2+...+xnθn

矩阵(向量)表达:
H(x)=XTθ

其实就是多元一次方程,H函数得到一个值,然后我们根据值进行决策。

此处提及几个概念:
θ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值