Is there a way to calculate two-time correlators in Cirq directly? For example, suppose we have an initial mixed state described by a density matrix $\rho_0$, and we want to obtain in our quantum circuit: \begin{eqnarray} \langle \sigma_i^z(t)\sigma_j(t=0)\rangle=\text{tr}\left(\sigma_i(t)\sigma_j\rho_0\right), \end{eqnarray} where the time-dependent $\sigma_i(t)$ is in the Heisenberg picture. Then we can relabel $\rho_0\to\sigma_j\rho_0$, and run a simulator with this new, initial mixed state as initial condition, and calculate $\langle\sigma_i^z(t)\rangle$ now respect to that initial density matrix(?). The problem of doing that is of course that one needs to initialize the system every time, once for each $\sigma_j$, in order to perform the calculations, so I was wondering if there is a better way to do this already implemented in Cirq?

EDIT: For further clarification, this is at the level of computing exact expectation values during the simulation. For sampling, an approach is easier to do.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.