我正在尝试使用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;
那么,任何人都可以告诉我代码中的问题是什么?
答案 0 :(得分:0)
CVX试图告诉你目标函数出了问题,但由于某种原因它在这个过程中失败了
在任何情况下,问题是你的目标函数是非凸的。 CVX仅适用于凸编程,3*(sum(u))^3
不是凸的。有关详细信息,请查看here。