我对python或任何编程语言都是新手。几个月来,我一直致力于稳定倒立摆。我已经让所有的东西都正常工作了,但却很难得到正确的奖励函数。到目前为止,经过研究和试验,失败了,我能想到的最好的是
R=(x_dot**2)+0.001*(x**2)+0.1*(theta**2)
但我没有达到稳定,这是足够长的theta=0。
有没有人知道理想的奖励函数背后的逻辑?
谢谢。
发布于 2018-08-04 16:52:41
对于平衡问题(不是摆动),即使是二元奖励也足够了。就像这样
使用哪一种取决于所使用的算法、折扣因子和情节水平。无论如何,这项任务很简单,两个人都会做好自己的工作。
对于向上摆动的任务(比平衡更难,因为杆子开始颠倒,你需要通过移动手推车将其向上摆动),最好根据状态进行奖励。通常,简单的cos(theta)就可以了。您还可以为角速度和动作添加惩罚,以便更喜欢缓慢变化的平滑轨迹。如果购物车超出了x坐标的边界,还可以添加惩罚。
包含所有这些术语的成本将如下所示
reward = cos(theta) - 0.001*theta_d.^2 - 0.0001*action.^2 - 100*out_of_bound(x)发布于 2018-08-02 23:04:35
我也在研究倒立摆。我找到了我正在尝试的以下奖励函数。
costs = angle_normalise((th)**2 +.1*thdot**2 + .001*(action**2))
# normalize between -pi and pi
reward=-costs但是在选择行动上仍然有问题,也许我们可以讨论一下。
https://stackoverflow.com/questions/51486959
复制相似问题