强化学习第一课 Q-Learning

解决问题:从任何位置到6

视频课程地址:

强化学习算法系列教程及代码实现-Q-Learning_哔哩哔哩_bilibili

相应代码:

import numpy as np
import random

q = np.zeros((7, 7))
q = np.matrix(q)

r = np.array([[-1, -1, -1, 0, -1, -1, -1],
              [-1, -1, 0, -1, -1, -1, -1],
              [-1, 0, -1, 0, -1, 0, -1],
              [0, -1, 0, -1, 0, -1, -1],
              [-1, -1, -1, 0, -1, 0, 100],
              [-1, -1, 0, -1, 0, -1, 100],
              [-1, -1, -1, -1, 0, 0, 100]])
r = np.matrix(r)

gamma = 0.8
for i in range(1000):
    state = random.randint(0, 6)
    while state != 6:
        r_pos_action = []
        for action in range(7):
            if r[state, action] >= 0:
                r_pos_action.append(action)
        next_state = r_pos_action[random.randint(0, len(r_pos_action) - 1)]
        q[state, next_state] = r[state, next_state] + gamma * q[next_state].max()
        state = next_state


print(q)

state = random.randint(0, 6)
print("机器人处于{}".format(state))
count = 0
while state != 6:
    if count > 20:
        print("fail")
        break
    q_max = q[state].max()

    q_max_action = []
    for action in range(7):
        if q[state, action] == q_max:
            q_max_action.append(action)
    next_state = q_max_action[random.randint(0, len(q_max_action) - 1)]
    print('机器人 goes to {} 。'.format(next_state))
    state = next_state
    count += 1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/279581.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 日志打印

一. 自定义打印日志 开发者自定义打印日志实现步骤: • 在程序中得到日志对象 • 使用日志对象的相关语法输出要打印的内容. 得到日志对象: //日志工厂需要将需要打印的类的类型传递进去,这样我们才知道日志的归属类,才能更方便的定位到文体类 private static Logger logger …

Vue模板编译

Vue模板编译 Vue生命周期中,在初始化阶段各项工作做完之后调用了vm.$mount方法,该方法的调用标志着初始化阶段的结束和进入下一个阶段,从官方文档给出的生命周期流程图中可以看到,下一个阶段就进入了模板编译阶段(created和befor…

ssm基于web的马病管理系统设计与实现+jsp论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,马病信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大…

基于OpenAI的Whisper构建的高效语音识别模型:faster-whisper

1 faster-whisper介绍 faster-whisper是基于OpenAI的Whisper模型的高效实现,它利用CTranslate2,一个专为Transformer模型设计的快速推理引擎。这种实现不仅提高了语音识别的速度,还优化了内存使用效率。faster-whisper的核心优势在于其能够在…

【网络安全】upload靶场pass1-10思路

目录 Pass-1 Pass-2 Pass-3 Pass-4 Pass-5 Pass-6 Pass-7 Pass-8 Pass-9 Pass-10 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首发于CSDN&#x1…

【六袆 - Framework】vue3入门;vue框架的特点矩阵列举;Vue.js 工作原理

vue框架的特点 Vue.js的特点展开叙述Vue.js的工作原理展开叙述 官方文档: https://cn.vuejs.org/guide/introduction.html Vue.js的特点 ┌────────────────────┬────────────────────────────────────…

一款超酷的一体化网站测试工具:Web-Check

Web-Check 是一款功能强大的一体化工具,用于发现网站/主机的相关信息。用于检查网页的工具,用于确保网页的正确性和可访问性。它可以帮助开发人员和网站管理员检测网页中的错误和问题,并提供修复建议。 它只需要输入一个网站就可以查看一个网…

用友时空KSOA UploadImage存在任意文件上传漏洞

产品简介 用友时空KSOA是建立在SOA理念指导下研发的新一代产品,是根据流通企业最前沿的I需求推出的统一的IT基础架构,它可以让流通企业各个时期建立的IT系统之间彼此轻松对话,帮助流通企业保护原有的IT投资,简化IT管理&#xff0…

开放网络+私有云=?星融元的私有云承载网络解决方案实例

在全世界范围内的云服务市场上,开放网络一直是一个备受关注的话题。相比于传统供应商的网络设备,开放网络具备软硬件解耦、云原生、可选组件丰富等优势,对云服务商和超大型企业有足够的吸引力。 SONiC作为开源的网络操作系统,使得…

《A++ 敏捷开发》-2 改进从团队开始

上一章介绍了丰田方式水面下的七个习惯,但公司应如何有效开展与推行?有哪些误区要注意?我们先看美国东岸某家小印刷公司的故事。 美国费城Weisbord故事 60年代复印机还未普及,很昂贵,所以有不少公司专门为各类公司客…

python+django网上购物商城系统o9m4k

语言:Python 框架:django/flask可以定制 软件版本:python3.7.7 数据库:mysql 数据库工具:Navicat 开发工具pycharm/vscode都可以 前端框架:vue.js 系统使用过程主要涉及到管理员和用户两种角色,主要包含个…

什么是SSL证书?在哪里免费申请?

随着互联网蓬勃发展,人们在日常生活中越来越依赖网络。然而,网络攻击和数据泄露日益猖獗,保护网站和用户信息的安全变得尤为紧迫。在这一背景下,SSL证书成为至关重要的安全措施。 SSL证书的首要功能在于防范网络攻击。相较于不安全…

Factory Method工厂模式(对象创建)

Factory Method(对象创建) 链接:工厂模式实例代码 解析 目的 在软件系统中,经常面临着创建对象的工作;由于需求的变化,需要创建的对象的具体类型经常变化。 如何应对这种变化?如何绕过常规的…

【JavaEE进阶】 初识Spring Web MVC

文章目录 🌴什么是Spring Web MVC?🚩什么是Servlet呢? 🎋MVC 定义🚩再理解Spring MVC 🍀如何学习Spring MVC呢?⭕总结 🌴什么是Spring Web MVC? Spring Web MVC 是基于…

算法刷题:最大异或对(Trie树扩展)、食物链(并查集扩展)

目录 引言一、最大异或对(Trie树扩展)1.题目描述2.解题思路3.代码实现4.测试 二、食物链(并查集扩展)1.题目描述2.解题思路3.代码实现4.测试 引言 这两个扩展题能够让我们更加的熟悉Trie树和并查集的使用,这两道题可以…

Prim(普利姆)算法总结

知识概览 Prim算法分为朴素版Prim算法和堆优化版Prim算法。朴素版Prim算法时间复杂度为,适用于稠密图。堆优化版Prim算法时间复杂度为O(mlogn),适用于稀疏图,由于代码较Kruskal算法复杂,这里就不介绍了。 算法思想 例题展示 题目…

引领手游技术潮流:武汉灰京文化的卓越技术创新与市场推广支持

在数字娱乐领域,手游行业正蓬勃发展,为数以亿计的玩家提供了丰富的娱乐选择。武汉灰京文化,作为该领域的佼佼者,以其强大的技术创新和全面的市场推广支持,为合作伙伴的成功铺平了道路,不仅提升了游戏质量&a…

《深入理解JAVA虚拟机笔记》垃圾回收器

JVM 判定 Java 对象是否为垃圾的方法 引用计数算法 很多教科书判断对象是否存活的算法是这样的: 在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为…

用python画最简单的图案,用python画小猫简单代码

本篇文章给大家谈谈用python画小猫简单100行代码,以及用python画最简单的图案,希望对各位有所帮助,不要忘了收藏本站喔。 Source code download: 本文相关源码 from turtle import * #两个函数用于画心 defcurvemove():for i in range(200): …

Python学习 - 爬虫系统架构设计

主要业务流程 初始请求请求过滤器请求队列响应下载器数据解析器数据清洗器存储器 设计图 master slave:master控制队列,过滤,传递任务;slave负责执行 缺点:master和slave端交互数据频繁,slave的数据进出…