Q-Learning项目实战
一. 概述
上一篇概念文章讲解了算法的概念和原理:Q-Learning 原理干货讲解
本文将进行项目实战讲解,分别为:
- 单路径吃宝箱问题
- 棋盘格吃宝箱问题
- 拓扑节点较优路径问题
Q-Learning
算法的本质还是下面这个公式,需要牢牢记住
二. 实战
2.1 单路径吃宝箱问题
场景描述
小人吃宝箱,小人可以通过左右移动来吃到宝箱,初始状态下小人是无法往左侧移动的。
项目代码
项目代码:GitHub:单路径吃宝箱问题
部分运行结果截图
2.2 棋盘格吃宝箱问题
场景描述
这个案例是上个一条路吃宝箱案例的升级版。在本项目案例中,最终目的还是小人吃到宝箱,但是增加了几个场景:红色方块表示障碍,无法被穿越;黄色剪刀表示陷阱,走入陷阱直接失败。小人可以通过上下左右进行移动,但是不能创越周围的墙体。
项目代码
项目代码:GitHub:棋盘格吃宝箱问题
部分运行结果截图
2.3 拓扑节点较优路径问题
场景描述
经典的拓扑路径问题,在有向图中从源节点到目的节点找到一条较优路径,其中有向连线上的值可以依据实际情况理解为奖励或者代价
说明
注意:这里为什么是较优路径而不是最优路径,因为Q-Learning
算法本身就是一个探索性的强化学习算法,以探索及状态为主,所以找出的路径和最终的Q
表与学习率、迭代次数以及算法本事的随机性有关
项目代码
项目代码:GitHub:拓扑节点较优路径问题
部分运行结果截图
三. 参考文献
本次学习参考了部分文章,较原始代码进行了部分改良或全部改良,添加了大量注释方便初学者学习,原参考文章链接:
Q-Learning解决最短路径问题