I'm looking for algorithms that take an arbitrary quantum state made up of a sum of weighted classical states made up of bits, like this:
|0000>/2 - |0011>/2 + |0100>/2 - |0111>/2
and factor it into a more compact form using tensor products, like this:
|0> x (|0> + |1>) x (|00> - |11>) / 2
I want to use the algorithm as a way of visualizing/simplifying the state of a (simulated) quantum circuit.
For individual qubits I know I can just pair all the states with the state where the bit is flipped and check that every pair has the same x:y relation between the states. In the example above, flipping the second bit always gives you a state with a 1:1 weighting, so the second bit factors out as (1|0> + 1|1>).
But extending that approach to detect entangled bits (like the third and fourth in the example) causes it to take at least Ω(n^c)
time (probably more, I haven't thought it all the way through), where n
is the number of states and c
is the number of entangled bits. Since n
is already growing exponentially with the number of bits that's... not ideal.
Are there better algorithms? Representations easier to factor from/to? How useful is changing the basis? Links to papers would be great.
n^c
, which is(2^b)^c
, was just a half-thought lower bound that was already bad and likely to be worse. – Buckeyen
is the number of qubits, not the number of classical states. – Prophet