【人工智能】怎么教人工智能去玩一个游戏
首先思考一个比较基础的算法题,如何走出一个迷宫?首先想到,使用栈存储迷宫的信息,然后不断使用这个栈进行迷宫的探索,最终找到出路,或是发现迷宫无法走通。
进一步想到A*之类的寻路算法。
确实这是一个简单高效的设计,能让电脑以最短最快地完成迷宫游戏。
但如果迷宫有怪物呢?是不是设计一个躲避怪物的机制?
那如果是个FPS游戏呢?要设计出如何瞄准,如何扔雷的算法吗,那是不是还需要加上一个配合小队一起进攻的算法?
这里有一个魔性的QWOP游戏,玩家要控制跑步选手的大腿小腿进行配合,最终到达终点,大家可以去体验下,非常难
如果为这个游戏写一个算法,又该怎么写,判断大小腿的位置和速度吗? 面对这些难以判断的游戏,有一种比较投机的做法。
随机。
是的,随机。回到迷宫的问题来。我们的角色实际上有上下左右四种操作,那我们随机一百次操作,然后角色就会进行随机的移动。只要随机模拟够多次,角色一定能走出迷宫。不过一直重复模拟并不是个好办法。
我们使用遗传算法对随机结果进行筛选,具体这么操作
1.模拟一百组操作。
2.记录每组走出的长度。
3.找到最接近出口的20%操作序列。
4.对这些操作序列随机进行交换,并且引入突变。
5.进行新的一轮模拟。
经过几百到上万次的模拟之后,这些操作序列就开始呈现出一定的智能了。
依据这种方式最终就能收敛出一个局部最优解,这种方式不仅仅在走迷宫上有效,同样可以应用到QWOP游戏或者FPS游戏中。
至于神经网络,实际上是对模拟出的操作序列进行了深化,并非输入直接对应输出,而是有一些中间层,让操作更容易适应不同情况。
附上几个相关视频
https://www.bilibili.com/video/av18814471/?from=search&seid=16786458565465316288
使用人工智能通过关超级玛丽
https://www.bilibili.com/video/av15926284/
使用人工智能进行行走,抓握等高难度动作
嗯,其实神经网络大概不能算人工智能的一个子集。
页:
[1]