我正在尝试在matlab中找到cvx块中的argmax。这只是为了使用线性规划找到Bellman方程的最优策略。在下面的代码中,如果我这样做:
k = max(Q)它会找到列表Q的最大值,并且运行得很好,但只要我这样做:
[k y] = max(Q)为了找到列表Q的argmax,它会报错:
??? Error using ==> cvx.max
Too many output arguments.在cvx中有没有不同的方法来找到argmax?
cvx_begin
variable V(N)
minimize(sum(V))
subject to
for s=1:N
for a=1:A
for s_next=1:N
tmp(s_next) = mdp.T{a}(s,s_next)*(mdp.R{a}(s,s_next) + mdp.gamma*V(s_next));
end
Q(a) = sum(tmp);
V(s) >= sum(tmp);
end
[k y]=max(Q)
end
cvx_end发布于 2013-09-10 02:08:08
因此,我最终使用对偶变量来找到最优策略。我仍然不确定是否有一种方法可以在cvx中找到argmax。
https://stackoverflow.com/questions/18703088
复制相似问题