关于CVX优化的错误

时间:2016-05-02 11:46:39

标签: matlab optimization cvx

我正在尝试使用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是可变的,其他已经设定。错误消息是:

  

未定义的功能或变量&#39; op&#39;。

     

cvx / power中的错误&gt; 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 = power(x,y,&#39; ^&#39;);

     

test_1中的错误(第75行)   F(ETH)= 3 *(总和(U))^ 3;

那么,任何人都可以告诉我代码中的问题是什么?

1 个答案:

答案 0 :(得分:0)

CVX试图告诉你目标函数出了问题,但由于某种原因它在这个过程中失败了 在任何情况下,问题是你的目标函数是非凸的。 CVX仅适用于凸编程,3*(sum(u))^3不是凸的。有关详细信息,请查看here