【强化学习算法与动态规划】【强化学习算法在优化和控制问题中的应用】根据性能和效率对强化学习控制器进行了比较,并与经典线性二次调节器(LQR)控制器进行了单独比较(Matlab代码实现)

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

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

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

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

目录

 ⛳️赠与读者

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、文献


 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

强化学习算法,如SARSA、Q学习、演员-评论者策略梯度和价值函数近似,已应用于稳定反向摆系统并实现最优控制。因此,强化学习控制器的概念已经建立。根据性能和效率对强化学习控制器进行了比较,并与经典线性二次调节器(LQR)控制器进行了单独比较。每个强化学习控制器都与一个摆动上升控制器集成在一起。一个虚拟开关根据相对于垂直平面的角偏差θ的值自动切换摆动上升控制器和强化学习控制器。

文献1:

强化学习算法在摆车问题中的比较

摘要——随着系统变得复杂和固有非线性,设计最优控制器仍然具有挑战性。强化学习(RL)的主要优点在于其能够通过与环境的互动学习并提供最优控制策略。本文探讨了在没有先验动力学知识的情况下,利用强化学习控制基准摆车动态系统的应用。在此背景下,比较了时间差分、策略梯度演员-评论者和价值函数近似等强化学习算法与标准线性二次调节(LQR)解的表现。此外,我们提出了一种新的方法,将强化学习与摆动上升控制器相结合。  
关键词——摆车;时间差分;策略梯度演员-评论者;价值函数近似;LQR;摆动上升
文献2:

强化学习算法在优化和控制问题中的应用

**摘要**  
强化学习是机器学习的一个分支,受到行为主义心理学的启发,采用系统的方法研究人类和动物行为。它涉及代理在环境中应如何行为以及采取何种行动,以最大化某种累积奖励的概念。学习可以基于几种形式的评估反馈。标准的监督学习方法需要一个由输入向量和相应期望输出向量组成的训练数据集,换句话说,它们需要一个监督系统。这些方法无法应用于期望输出未知的任务。可以使用各种强化学习算法来解决这些任务。如果期望输出不可用,则必须通过考虑系统输出对其交互环境的影响来间接评估系统的性能。强化学习方法可以在这种影响通过评估信号或强化的变化来测量时应用。此外,这些算法专注于在线性能,涉及在探索(未知领域)和利用(当前知识)之间找到平衡。

在机器学习中,环境通常被表述为马尔可夫决策过程(MDP)。MDP可以是离散时间或连续时间的随机过程,包括当前状态、策略(要采取的行动)、下一个状态、奖励和转移概率。MDP为建模决策提供了数学框架,适用于结果部分随机且部分受决策者控制的情况。MDP的核心问题是根据当前状态为代理(决策者)找到一个策略。MDP对于研究通过强化学习解决的广泛优化和控制问题非常有用。动态规划(DP)是强化学习的一个分支,指一组算法,这些算法可以在环境的完美模型作为MDP的情况下计算最优策略。动态规划算法最适合优化问题,因为这些算法的设计是为了检查先前解决的子问题,并结合它们的解决方案,以提供给定问题的最佳解决方案。然而,经典的DP算法在强化学习中的实用性有限,因为它们假设存在完美模型,并且计算成本很高。因此,动态规划算法不适合控制问题。

在复杂的非线性系统中,获得准确的植物模型是困难的。在这种情况下,可以应用无模型强化学习算法来实现最优控制。蒙特卡罗学习、时间差分学习、演员-评论者策略梯度方法是一些无模型强化学习算法的例子。虽然这些算法处理的是离散状态空间,但价值函数近似被应用于将强化学习算法扩展到连续状态空间。

在本报告中,我们通过解决一个优化问题和一个控制问题来探索各种强化学习算法。选择杰克的汽车租赁问题作为优化问题,并使用动态规划进行求解;选择摆杆平衡问题作为具有固有不稳定性的非线性控制问题,并使用上述所有离散时间和连续时间的无模型强化学习算法进行求解。我们比较了各种强化学习算法在控制问题上的结果和性能,并与经典控制技术进行了对比。
 

📚2 运行结果

部分代码:

ALPHA = 0.4;             % Learning rate parameter
GAMMA = 0.999;           % Discount factor for future reinf
Q = zeros(NUM_BOXES,2);  % State-Action Values
action = [30 -30];
MAX_FAILURES = 1000;
MAX_STEPS = 150000;
epsilon = 0;
steps = 0;
failures = 0;
thetaPlot = 0;
xPlot = 0;
%Pendulum state initialization
theta = 0;
thetaDot = 0;
x = 0;
xDot = 0;
box = getBox4(theta,thetaDot,x,xDot);

while(steps<=MAX_STEPS && failures<+MAX_FAILURES)
    steps = steps + 1;
    
    % choose either explore or exploit
    if(rand>epsilon)       % exploit
        [~,actionMax] = max(Q(box,:));
        currentAction = action(actionMax);
    else                   % explore
        currentAction = datasample(action,1);
    end
    
    actionIndex = find(action == currentAction); % index of chosen action
    %Apply action to the simulated cart pole
    [thetaNext,thetaDotNext,thetaacc,xNext,xDotNext] = cart_pole2(currentAction,theta,thetaDot,x,xDot);
    %Get box of state space containing the resulting state
    thetaPlot(end + 1) = thetaNext;

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、文献

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值