当前位置: 首页 > news >正文

基于应用值迭代的马尔可夫决策过程(MDP)的策略的机器人研究(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

  • MDP(Markov Decision Process)是一种用于建模决策问题的数学框架,而机器人网格是一种常见的环境模型,用于描述机器人在离散的网格世界中移动和执行动作的问题。

    在机器人网格中,通常将环境表示为一个二维网格,每个网格单元可以是机器人可以到达的位置。机器人可以根据当前所处的网格位置和执行的动作来决定下一步的移动方向。常见的动作包括向上、向下、向左、向右等。

    MDP可以用来描述机器人在网格世界中的决策问题。具体来说,MDP包括以下要素:

    1. 状态(State):在机器人网格中,状态可以表示机器人所处的网格位置。

    2. 动作(Action):机器人可以执行的动作,如向上、向下、向左、向右等。

    3. 转移概率(Transition Probability):给定当前状态和执行的动作,机器人转移到下一个状态的概率。

    4. 奖励(Reward):在每个状态执行每个动作时,机器人可以获得的奖励。

    5. 值函数(Value Function):用于评估每个状态的价值,表示从该状态开始,机器人能够获得的期望累积奖励。

    6. 策略(Policy):决定机器人在每个状态下选择哪个动作的策略。

    通过建立MDP模型,可以使用强化学习算法(如值迭代、策略迭代、Q-learning等)来求解最优策略,使机器人在网格世界中能够做出最优的决策。

应用值迭代来学习马尔可夫决策过程 (MDP) 的策略 -- 网格世界中的机器人。
世界是自由空间(0)或障碍物(1)。每转一圈,机器人可以向8个方向移动,或保持在原地。奖励函数为一个自由空间,即目标位置提供高奖励。所有其他自由空间都有很小的惩罚,障碍物有很大的负奖励。值迭代用于学习最佳“策略”,该函数将
控制输入分配给每个可能的位置。本文将始终完美执行运动的确定性机器人与随机机器人进行比较,后者与命令移动的概率很小+/-45度。随机机器人的最佳策略是避开狭窄的通道并尝试移动到走廊的中心。

📚2 运行结果

 

 部分代码:

%  DRAW THE WORLD, REWARD, ANIMATE VALUE ITERATION, DISPLAY POLICY
subplot(2,2,1)
imagesc(~World);
set(gca,'Xtick',[], 'Ytick',[])
axis equal
axis tight
text(25,-1,'World','HorizontalAlignment','center','FontSize',18)
drawnow
if pauseOn; pause(); end %#ok<*UNRCH>

subplot(2,2,2)
imagesc(R);
axis equal
axis tight
set(gca, 'Xtick',[], 'Ytick',[])
text(25,-1,'Reward function','HorizontalAlignment','center','FontSize',18)
drawnow
if pauseOn; pause(); end


V_hat = MDP_discrete_value_iteration(R,World,false);
if pauseOn; pause(); end

DrawPolicy(V_hat,World,false);
if pauseOn; pause(); end

figure(f1)
V_hat_prob = MDP_discrete_value_iteration(R,World,true);
if pauseOn; pause(); end

DrawPolicy(V_hat_prob,World,true);
if pauseOn; pause(); end

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Sutton, R. S., & Barto, A. G. (2018). Reinforcement Learning: An Introduction. MIT Press.

[2]Chapter 14 in 'Probabilistic Robotics', ISBN-13: 978-0262201629,

🌈4 Matlab代码实现

http://www.lryc.cn/news/106132.html

相关文章:

  • 控件旋转90度,并跟随大小缩放
  • 软件外包开发的PHP开发框架
  • D2L学习记录-10-词嵌入word2vec
  • 海外独立站怎么搭建?7个海外独立站搭建指南
  • flask中实现restful-api
  • Centos7 安装man中文版手册
  • untiy代码打压缩包,可设置密码
  • 【iOS】—— UIKit相关问题
  • Linux系统防火墙Firewalld
  • STM3232 GPIO的配置寄存器(为了移植IIC)
  • K8s的详细介绍
  • JavaWeb(8)——前端综合案例2(节流和防抖)
  • Spring优雅的在事务提交/回滚前后插入业务逻辑
  • day48-ajax+SSM分页
  • 如何在本地环境使用 CodeQL 扫描出代码中的安全漏洞?
  • 关于领导要求logback日志时间格式要求为“年-月-日 时:分:秒,毫秒”
  • 软件测试--一些生命周期
  • Mr. Cappuccino的第57杯咖啡——简单手写Mybatis大致原理
  • 机房环境、动力、网络、安防,帮您提高运维效率,确保机房安全
  • 大数据课程E1——Flume的概述
  • 01.Redis实现发送验证码
  • Vue中对组件的调用
  • SpringCloud Gateway获取请求响应body大小
  • 二叉树的层序遍历
  • Spring Boot 集成 Thymeleaf 模板引擎
  • 如何快速找到合适的工作?
  • Elasticsearch入门用例
  • python制作超炫流星雨表白,python好看的流星雨代码
  • iOS数字转为图片
  • mac cli文件管理器