这是一种称为epsilon-greedy策略的技术,即以一定的概率选择当前最优动作,以(1-epsilon)的概率选择随机动作。代码示例:
# 定义epsilon和概率分布
epsilon = 0.2
probs = [epsilon/num_actions for _ in range(num_actions)] # num_actions是动作的数量
# 选择智能体的下一个动作
if np.random.uniform() < epsilon:
# 以epsilon的概率随机选择一个动作
action = np.random.choice(range(num_actions))
else:
# 以(1-epsilon)的概率选择最优动作
action = np.argmax(q_table[state])
其中,q_table是Q值表,state表示智能体当前所处状态,num_actions表示动作数量。在训练过程中,随着智能体的经验积累,epsilon值可以逐渐减小,减少随机选择动作的概率,从而逐渐趋于选择最优动作。