How to define a rank-1 matrix as SDP variable?

288 views
Skip to first unread message

Muhammad Usman

unread,
Sep 17, 2018, 12:56:04 PM9/17/18
to YALMIP
Hi,

I am solving an optimal power flow problem where I have to define my optimization variable V which is the product of following

V = vv^H (H is Hermitian),  v = [v_1,...,v_n]^T is the vector of voltage variables at each node. 

Since I am formulating my problem in SDP form, I am defining V as sdpvar(n,n,'hermitian','complex') in order to keep my constraint as LMI constraint. Otherwise, if I define v first as sdpvar, then V will become a quadratic variable and problem no longer can be solved by Sedumi. 

The problem is solver solves the problem but rank(V) is not 1 and it has to be 1 as by def  V = vv^H is a rank-1 matrix. I have taken a very simple power system for which rank-1 one condition is already established in the published literature. 

My question is that is it the right way to define a rank-1 matrix V variable??

And can anyone tell me why the sol matrix does not have rank=1?


YALMIP_OPF.m

Johan Löfberg

unread,
Sep 17, 2018, 1:04:48 PM9/17/18
to YALMIP
You don't.

The whole idea in most  SDP-driven research is that you want stuff to be low-rank, but that's an horribly hard structure so you realx that, possible using some heuristic to drive the solution towards low-rank (nuclear norm and all similar variants, relaxing V = v*v' to V>=v*v' etc)

If you want to go the non convex route, there is no reason to complicates matter with some matrix V which you define and try to constraint as positive semidefinite while at the same time trying to impose it is v*v'. You would simply introduce the decisions variable v, and use v*v' (which is trivially psd) where ever you need V. That leads to an extremely hard problem though.

Muhammad Usman

unread,
Sep 17, 2018, 2:42:28 PM9/17/18
to YALMIP
Thanks Dr. For the prompt reply. The thing is that in majority of published work, researchers have developed the problem in the same as i have in the m file and have implemented it using Yalmip with Sedumi as a solver.
By defining V as psd, the problem becomes convex as all other constraints and OF are convex. But, I am unable to find the rank 1 sol.
If i have understood your ans, you are suggesting that even though the problem is convex, it can become a hard problem for the solver to solve?

Johan Löfberg

unread,
Sep 17, 2018, 3:24:32 PM9/17/18
to YALMIP
You seem to fail to understand what the central idea is in all these approaches

If the solution happens to be non-rank-1, well then the method simply didn't work. That is the whole idea with these semidefinite relaxations. You solve an outer approximation (rank-1 constraint removed) and hope for the best. Finding a rank-1 solution is not a convex problem, is is intractably hard. Trying to solve the nonconvex SDP problem would be very strange, as then you would have taken an initially hard problem (quadratic/polynomial/bilinear  I guess is the underlying problem here) and lifted it to an even harder/less researched nonconvex problem (semidefinite + rank-1).
Reply all
Reply to author
Forward
0 new messages