我试图使用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)}( vu(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的误差;
那么,有人能分辨出我代码中的问题是什么吗?
发布于 2016-05-02 16:24:19
CVX试图告诉您目标函数有问题,但由于某种原因,它在过程中失败了。
无论如何,问题是你的目标函数是非凸的.CVX只适用于凸规划,3*(sum(u))^3不是凸的。有关更多信息,请看一下这里。
https://stackoverflow.com/questions/36981673
复制相似问题