0

我正在尝试使用 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 = power( x, y, '^' );

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

那么,谁能说出我的代码中有什么问题?

4

1 回答 1

0

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

于 2016-05-02T16:24:19.087 回答