在Q-Learning中采用的动作选择方法一般为贪婪策略,其原理为以一定的概率在随机选择与当前最大值中选择策略来决定需采取的动作,具体代码如下。
% 贪婪策略选取动作
function action_t=act_rand_select(EPSILON,state, Q, action )
% 读可选行为的个数
if (rand > EPSILON) %若大于ε,则随机选择一个动作
action_t = action(randsrc(1,1,randperm(3)));
else %否则,选择值最大的动作
index = max(Q(state,:));
action_t=action(Q(state,:)==index);
[~,w]=size(action_t);
if w>1%若有多个可选动作,则随机选择一个
action_t=action_t(randi(w));
end
end
end