  We present an algorithm for projecting superoperators onto the set of
completely positive, trace-preserving maps. When combined with gradient descent
of a cost function, the procedure results in an algorithm for quantum process
tomography: finding the quantum process that best fits a set of sufficient
observations. We compare the performance of our algorithm to the diluted
iterative algorithm as well as second-order solvers interfaced with the popular
CVX package for MATLAB, and find it to be significantly faster and more
accurate while guaranteeing a physical estimate.
