首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在matlab中找到cvx块中的argmax?

如何在matlab中找到cvx块中的argmax?
EN

Stack Overflow用户
提问于 2013-09-10 00:46:57
回答 1查看 489关注 0票数 0

我正在尝试在matlab中找到cvx块中的argmax。这只是为了使用线性规划找到Bellman方程的最优策略。在下面的代码中,如果我这样做:

代码语言:javascript
复制
k = max(Q)

它会找到列表Q的最大值,并且运行得很好,但只要我这样做:

代码语言:javascript
复制
[k y] = max(Q)

为了找到列表Q的argmax,它会报错:

代码语言:javascript
复制
??? Error using ==> cvx.max
Too many output arguments.

在cvx中有没有不同的方法来找到argmax?

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2013-09-10 02:08:08

因此,我最终使用对偶变量来找到最优策略。我仍然不确定是否有一种方法可以在cvx中找到argmax。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18703088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档