【问题标题】:Error about CVX optimization关于 CVX 优化的错误
【发布时间】:2016-05-03 00:24:19
【问题描述】:

我正在尝试使用 cvx 模型来解决优化问题;这是我的代码:

    cvx_begin
    variable R(total_v,2)
    for eth=1:total_e
        i=1;
        for vth=1:total_v
            for lth=1:2
                u(i)=R(vth,lth)*lamda(vth)*bm*p_miss(x(vth))*I_lve(vth,lth,eth)/de(eth);
                i=i+1;
            end
        end
        f(eth)=3*(sum(u))^3;
    end
    F=sum(f);
    minimize(F)
    subject to
        for i=1:total_v
            for j=1:2
                R(i,j)>=0&&R(i,j)<=1
            end
        end
        for i=1:total_v
            sum(R(i,:))==1
        end
cvx_end  

R 是可变的,其他的已经设置好了。错误消息是:

未定义的函数或变量'op'。

cvx/power 中的错误>power_p(第 104 行) cvx_dcp_error(errs, op);

cvx_binary_op 中的错误(第 107 行) z = p.funcs{vu(1)}(vec(x), vec(y), varargin{:});

cvx/power 错误(第 31 行) z = cvx_binary_op(BP, x, y);

cvx/mpower 中的错误(第 11 行) z = 幂(x, y, '^');

test_1 中的错误(第 75 行) f(eth)=3*(sum(u))^3;

那么,谁能告诉我的代码有什么问题?

【问题讨论】:

    标签: matlab optimization cvx


    【解决方案1】:

    CVX 试图告诉您您的目标函数有问题,但由于某种原因它在此过程中失败了。
    无论如何,问题在于您的目标函数是非凸的。 CVX 仅适用于凸编程,3*(sum(u))^3 不是凸的。欲了解更多信息,请查看here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-26
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多