Status: Accepted
Owner: ----
Labels: Type-Enhancement Priority-Medium Quantum

New issue 3199 by [email protected]: Finish implementing density operator/matrix
http://code.google.com/p/sympy/issues/detail?id=3199

I have started a solid density matrix implementation in this branch:

https://github.com/ellisonbg/sympy/tree/densityop

This needs to be finished. I wanted to record some notes here about what needs to be done. This is based on some emails over the past month.

There are two directions for the density matrix:

1) General purpose density operator stuff for arbitrary quantum systems.
2) Special purpose density operator stuff for qubits/gates.

For case 1 here are some ideas:

* Representation of the density operator in different bases.  For the
general case this logic should use the representation logic on of
states in the density op itself.  Have a look at our representation
module for details on how that works.
* Implementation of a symbolic Trace sympy.Expr.  This may already exist
in sympy, but I don't know.
* Proper handling of partial trace operations when the states are
TensorProduct instances.
* The ability to apply operators to both the bra and ket in a density op.
* Time evolution equations.

For case 2:

* Probably want a special subclass for density operators w qubits.
* Have a look at the above commit for other ideas.
* Entropy/entanglement measures.
* Specialized partial trace (see above commit).
* Proper handling of states that are TensorProducts of multi qubit states.

And further:

I did notice that the qapply() does not expand on Density operators. I was
guessing any QExpr involving density operators, should result in the final
state vector represented as a density operator.

Yes, ideally that would be the case, but we have not implemented it.
There are a few ways of handling this that we have thought about.

1) We could expand the density matrix into its tensor product form and
then expand that further until it is a sum of terms that have the form
a|alpha><beta|.  Then qapply would work fine on each of those terms.
The difficulty with that approach is that the final results won't be a
density matrix object - it would be a sum of tensor products.
2) When applying operators to density matrices, the operators need to
act on both the L and R sides.  We could create a special method of
the density op class that applies an operator to the L and R sides.
We would need to think a bit about the best way of integrating that
with the qapply logic we have in place.


--
You received this message because you are subscribed to the Google Groups 
"sympy-issues" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy-issues?hl=en.

Reply via email to