当你有基础物理的时候,你不需要强化学习

2020-10-16 11:25:36

车-杆平衡问题是强化学习的一个典型问题。一根杆子系在带有旋转接头的手推车上。代理人必须通过向左或向右移动手推车来平衡杆子。

互联网上的大多数解决方案似乎都采用强化学习结合复杂的Kera模型来解决这一问题。

在这篇文章中,我将向您展示,如果您足够了解您的系统,您不需要任何深度学习方案。在手摇平衡的情况下,你所需要的只是一些基本的力学知识。

系统在任何时候的状态$t$由$(x,v,\θ,\omega)$与。

有了这个,我们就可以计算出手推车和柱子的位置为$t&39;$。代理检查手推车的水平位置是否在杆的水平位置的左侧。如果是,把手推车移到右边,否则把手推车移到左边。

Def Make_Decision(x,v,θ,ω,L=1,dt=0.027):预计θ=θ+ω*dt预计x_x_Cart=x+v*dt预计x_尖端极=预计x_Cart+NP。如果预测_x_TIP_POLE<,则SIN(预测_θ)*L返回0;如果预测_x_Cart为1,则返回1。

你需要知道时间步长$\Δt$和极点长度$L$。通过试验和错误,我发现$\Δt\约为0.027,L=1$在我的计算机上运行良好。

MAX_SCORE=500 n_SPECTES=40 SCORES=[],适用于范围内的k(N_SPECTES):环境。当True:step+=1 env时,Reset()step=0。Render()state=env。状态操作=Make_Decision(*STATE)_,_,TERMINAL,_=env。如果终止或步骤&>=MAX_SCORE:中断分数,则步骤(操作)。附加(步骤)。

如果超过100集的移动平均超过195集,OpenAI认为一种策略是一种解决方案。

一旦得分超过500,我们就停止模拟。否则,它将永远保持平衡。