Minimize the number of non-zero elements of a matrix

248 Views Asked by At

I have a matrix A, which is huge, and all its elements are non-zero. I want to perform the operation: $ U_1\otimes U_2 \otimes U_3...\cdot A \cdot U_1^{\dagger}\otimes U_2^{\dagger}\otimes U_3^{\dagger}... = \tilde{A}$ so essentially apply a unitary rotation to my matrix such that I increase the number of zero elements as much as possible. It is important that the $U_i$ matrices are 2x2 unitary matrices. Does anyone have an idea of how this is doable (in Python or Mathematica for example). I do not want the code, just the idea, for example by minimizing a trace or hadamard product. Just the way to pose the problem. (Looks like a conical optimization problem to me).