cart pole
import gym
GAME = 'Pendulum-v0'
env = gym.make(GAME)
N_S = env.observation_space.shape[0]
print("状态空间的维数:", N_S) # 3
N_A = env.action_space.shape[0]
print("动作空间的维数:", N_A) # 1
A_BOUND = [env.action_space.low, env.action_space.high]
print("动作的下限:", env.action_space.low) # [-2]
print("动作的上限:", env.action_space.high) # [2]
目标(连续控制)
摆以随机位置开始,目标是将其向上摆动,使其保持直立。
目标是保持零角度(垂直),旋转速度最小,力度最小
状态空间(State) & 观察(Observation)
θ==theta ,θ在【− π,π】之间
状态空间 : 三维
cos(theta) :【-1,1】
sin(theta):【-1,1】
theta angular acceleration :【-8,8】 ,即theta dot
杆的 角度 和 角速度
动作空间(Action)
动作空间 : 1维
动作的物理含义:电机的控制力矩,且有最大值和最小值的限制
Action :【-2,2】
奖励(Reward)
costs = angle_normalize(th) ** 2 + .1 * thdot ** 2 + .001 * (u ** 2)
Reward=−cost
−cost:
(1)角度越小越好,最理想的情况是垂直(角度为0)
(2)角加速度越小越好
(3)动作越少越小越好
是一个各回合震荡上升的曲线
截图