技术宅的结界

 找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 246|回复: 1
收起左侧

【人工智能】怎么教人工智能去玩一个游戏

[复制链接]

2

主题

12

帖子

5128

积分

用户组: 技术宅的结界VIP成员

UID
94
精华
1
威望
3 点
宅币
5095 个
贡献
10 次
宅之契约
0 份
在线时间
12 小时
注册时间
2014-2-28
发表于 2018-2-6 00:36:49 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有帐号?立即注册→加入我们

x
首先思考一个比较基础的算法题,如何走出一个迷宫?

首先想到,使用栈存储迷宫的信息,然后不断使用这个栈进行迷宫的探索,最终找到出路,或是发现迷宫无法走通。

进一步想到A*之类的寻路算法。

确实这是一个简单高效的设计,能让电脑以最短最快地完成迷宫游戏。

但如果迷宫有怪物呢?是不是设计一个躲避怪物的机制?

那如果是个FPS游戏呢?要设计出如何瞄准,如何扔雷的算法吗,那是不是还需要加上一个配合小队一起进攻的算法?

这里有一个魔性的QWOP游戏,玩家要控制跑步选手的大腿小腿进行配合,最终到达终点,大家可以去体验下,非常难

QQ图片20180205232637.png

如果为这个游戏写一个算法,又该怎么写,判断大小腿的位置和速度吗? 面对这些难以判断的游戏,有一种比较投机的做法。

随机。

是的,随机。回到迷宫的问题来。我们的角色实际上有上下左右四种操作,那我们随机一百次操作,然后角色就会进行随机的移动。只要随机模拟够多次,角色一定能走出迷宫。不过一直重复模拟并不是个好办法。

我们使用遗传算法对随机结果进行筛选,具体这么操作

1.模拟一百组操作。
2.记录每组走出的长度。
3.找到最接近出口的20%操作序列。
4.对这些操作序列随机进行交换,并且引入突变。
5.进行新的一轮模拟。

经过几百到上万次的模拟之后,这些操作序列就开始呈现出一定的智能了。

依据这种方式最终就能收敛出一个局部最优解,这种方式不仅仅在走迷宫上有效,同样可以应用到QWOP游戏或者FPS游戏中。

至于神经网络,实际上是对模拟出的操作序列进行了深化,并非输入直接对应输出,而是有一些中间层,让操作更容易适应不同情况。

附上几个相关视频

https://www.bilibili.com/video/av18814471/?from=search&seid=16786458565465316288
使用人工智能通过关超级玛丽

https://www.bilibili.com/video/av15926284/

使用人工智能进行行走,抓握等高难度动作

995

主题

2207

帖子

5万

积分

用户组: 管理员

一只技术宅

UID
1
精华
197
威望
261 点
宅币
16461 个
贡献
32335 次
宅之契约
0 份
在线时间
1565 小时
注册时间
2014-1-26
发表于 2018-3-20 13:37:46 | 显示全部楼层
嗯,其实神经网络大概不能算人工智能的一个子集。

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|技术宅的结界 ( 滇ICP备16008837号|网站地图

GMT+8, 2018-9-20 08:44 , Processed in 0.105820 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表