Q-Learning 单路径吃宝箱问题--棋盘格吃宝箱问题--拓扑节点较优路径问题

news/2024/5/19 0:53:10 标签: python, Q-Learning, 强化学习

Q-Learning项目实战


一. 概述


上一篇概念文章讲解了算法的概念和原理:Q-Learning 原理干货讲解
本文将进行项目实战讲解,分别为:

  1. 单路径吃宝箱问题
  2. 棋盘格吃宝箱问题
  3. 拓扑节点较优路径问题

Q-Learning算法的本质还是下面这个公式,需要牢牢记住

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1Pwj5DXE-1687940124443)(C:\Users\29973\AppData\Roaming\Typora\typora-user-images\image-20230625093857183.png)]

二. 实战


2.1 单路径吃宝箱问题


场景描述

小人吃宝箱,小人可以通过左右移动来吃到宝箱,初始状态下小人是无法往左侧移动的。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cNXYEsQA-1687940192835)(C:\Users\29973\AppData\Roaming\Typora\typora-user-images\image-20230628154110816.png)]

项目代码

项目代码:GitHub:单路径吃宝箱问题

部分运行结果截图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-te3LeL40-1687940192836)(C:\Users\29973\AppData\Roaming\Typora\typora-user-images\image-20230628152433529.png)]

2.2 棋盘格吃宝箱问题


场景描述

这个案例是上个一条路吃宝箱案例的升级版。在本项目案例中,最终目的还是小人吃到宝箱,但是增加了几个场景:红色方块表示障碍,无法被穿越;黄色剪刀表示陷阱,走入陷阱直接失败。小人可以通过上下左右进行移动,但是不能创越周围的墙体。

项目代码

项目代码:GitHub:棋盘格吃宝箱问题

部分运行结果截图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R97t0p4Q-1687940192838)(C:\Users\29973\AppData\Roaming\Typora\typora-user-images\image-20230628152249873.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MDfogI9x-1687940192839)(C:\Users\29973\AppData\Roaming\Typora\typora-user-images\image-20230628152218439.png)]

2.3 拓扑节点较优路径问题


场景描述

经典的拓扑路径问题,在有向图中从源节点到目的节点找到一条较优路径,其中有向连线上的值可以依据实际情况理解为奖励或者代价

说明

注意:这里为什么是较优路径而不是最优路径,因为Q-Learning算法本身就是一个探索性的强化学习算法,以探索及状态为主,所以找出的路径和最终的Q表与学习率、迭代次数以及算法本事的随机性有关

项目代码

项目代码:GitHub:拓扑节点较优路径问题

部分运行结果截图

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t6OdSXhk-1687940192840)(C:\Users\29973\AppData\Roaming\Typora\typora-user-images\image-20230628153929993.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jbmaNuIP-1687940192841)(C:\Users\29973\AppData\Roaming\Typora\typora-user-images\image-20230628153940994.png)]

三. 参考文献

本次学习参考了部分文章,较原始代码进行了部分改良或全部改良,添加了大量注释方便初学者学习,原参考文章链接:

Q-Learning问题

Q-Learning解决最短路径问题


http://www.niftyadmin.cn/n/480136.html

相关文章

一个大于6的偶数,能被两个质数相加得到

一个大于6的偶数,能被两个质数相加得到 1.描述 证明:一个大于6的偶数,能被两个质数相加得到 2.代码 先判断输入的数据是不是大于6的偶数 编写判断某个数是不是质数的方法 从中间两侧把数相加看看能不能得到对应的偶数两个奇数相加能够得到的值 public class Main…

Java微服务金融项目智牛股-基础知识二(Sentinel简介)

Sentinel 背景 微服务架构设计由众多为服务组成,为保障高可用,通常会采用集群方式部署。由于服务自身原因或网络等其他问题,并不能保证100%可用性, 若单个服务出现问题, 会导致进入该服务的线程阻塞, 如果…

PostgreSQL 会话管理

文章目录 说明1. 查询会话2. 视图介绍2.1 datid2.2 datname2.3 pid2.4 usesysid2.5 usename2.6 application_name2.7 client_addr2.8 client_hostname2.9 client_port2.10 backend_start2.11 xact_start2.12 query_start2.13 state_change2.14 wait_event_type2.15 wait_event2…

需要买apple pencil吗?苹果平板触控笔推荐

随着科技的进步,各种类型的电容笔相继问世。一支好的电容笔,不仅能大大提高我们的工作效率,而且能大大提高我们的学习效率。平替电容笔,无论从技术上,还是从产品品质上来看,都有很大的发展空间,…

《TCP IP网络编程》

2023.6.28 正式开始学习网络编程。 每一章每一节的笔记都会记录在博客中以便复习。 第1章 1.1理解网络编程和套接字 网络编程又叫套接字编程。所谓网络编程,就是编写程序使两台连网的计算机相互交换数据。 为什么叫套接字编程? 我们平常将插头插入插座上…

多元回归预测 | Matlab鲸鱼算法(WOA)优化极限学习机ELM回归预测,WOA-ELM回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab鲸鱼算法(WOA)优化极限学习机ELM回归预测,WOA-ELM回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环…

计算机组成原理存储系统及大题解构(下)

只有奄奄一息过,那个真正的我,他才能诞生。 文章目录 前言前言 在大题中若是遇到Cache的时候,首先需要注意以下六个条件,根据这六个条件推出一个Cache的完整构成, 2和3可以计算出Cache数据区总大小,但是同时要注意区别Cache的总大小/容量,之前我们说过一个Cache包括一…

哈工大计算机网络课程网络层协议详解之:互联网控制报文协议(ICMP)

哈工大计算机网络课程网络层协议详解之:互联网控制报文协议(ICMP) 在互联网中,IP数据报的传输很容易出现差错,当出现差错时,最简单的处理办法就是对该IP数据报进行丢弃。但是,并不是直接丢弃就…