Yalmip returns NaN as dual vector of linear program

98 views
Skip to first unread message

Sajad A Sani

unread,
Mar 5, 2019, 4:25:09 PM3/5/19
to YALMIP
Hi; 

I have a linear model (not quadratic, not conic programming). and I solve it with Cplex. I ask YALMIP to return me dual values of one of my constraints through the code:

x = sdpvar(m,1,'full');
rho = sdpvar(num_sub,1,'full');
y =sdpvar(num_sub,max(k),'full');
Y = sdpvar(num_sub,max(k),max(d),'full');
theta = sdpvar(num_sub,max(l),'full');
psi = sdpvar(num_sub,max(n),max(l),'full');

objective = f'*x + sum(rho(:,1))+ offset;
constraint = [D*x <= e];
for sub=1:num_sub
    constraint = [constraint, theta(sub,1:l(sub))*v{sub} <= rho(sub,1) - y(sub,1:k(sub))*h{sub}];
    constraint = [constraint, W{sub}'*theta(sub,1:l(sub))' == (h{sub}'*reshape(Y(sub,1:k(sub),1:d(sub)),k(sub),d(sub))*P{sub})'];
    constraint = [constraint, theta(sub,1:l(sub)) >= 0];
    constraint = [constraint, (reshape(psi(sub,1:n(sub),1:l(sub)),n(sub),l(sub))*v{sub} <= b{sub} - A{sub}*x - B{sub}*y(sub,1:k(sub))'):['Ro_sub' num2str(sub)]];
    for i=1:n(sub)
        constraint = [constraint, W{sub}'*reshape(psi(sub,i,1:l(sub)),l(sub),1) == (B{sub}(i,:)*reshape(Y(sub, 1:k(sub),1:d(sub)),k(sub),d(sub))*P{sub} - C{sub}(i,:)*P{sub})'];
        constraint = [constraint, psi(sub,i,1:l(sub))' >= 0];   
    end
   dual{sub} = dual(constraint(['Ro_sub' num2str(sub)]));

end

Although my model is linear, it returns NaN as dual variable of my constraint. It would be appreciated if somebody gives me a hint on how I can fix the problem?

Johan Löfberg

unread,
Mar 6, 2019, 1:54:54 AM3/6/19
to YALMIP
You haven't solved any problem, so of course the dual has no value (i.e., NaN)
Reply all
Reply to author
Forward
0 new messages