El formalismo del operador de densidad

En post pasados del curso hemos introducido el formalismo inicial de la computación cuántica en el que los estados son estados puros y se representan con vectores y sus transformaciones se representan con matrices unitarias.

Sin embargo, en ocasiones podemos tener un estado que sea una distribución de probabilidades de estados puros (estado mixto) o describir la interacción de un estado con el entorno como en el proceso de medida o en procesos de pérdida de la coherencia. En estos casos, las transformaciones no son unitarias y es mejor describir el estado con un operador o matriz de densidad.

La matriz de densidad \rho, que es el operador de densidad representado en unas bases concretas, es una matriz Hermitiana, positiva-definida con una traza igual a la unidad.

Para un estado puro, la matriz de densidad es \rho = |\psi\rangle\langle\psi|, donde |\psi\rangle es el vector de estado.

Para un estado mixto, \rho = \sum_i p_i |\psi_i\rangle\langle\psi_i|, \quad con 0 \leq p_i \leq 1 las probabilidades de estar en cada estado puro y \quad \sum_i p_i = 1.

Las principales propiedades son:

  • Puridad: \mathrm{Tr}(\rho^2) = 1 para estados puros y \mathrm{Tr}(\rho^2) < 1 para estados mixtos.
  • Coherencia: Los elementos de fuera de la diagonal indican coherencia o superposición.
  • Elementos de la diagonal: Representan las probabilidades de medir en un base concreta.

A continuación, vamos a ver algunos ejemplos en Qiskit. En el primero creamos un estado puro en superposición y calculamos su matriz de densidad y la traza de la matriz de densidad al cuadrado para ver la puridad.

from qiskit import QuantumCircuit
from qiskit.quantum_info import Statevector, DensityMatrix

# Crear un estado puro |+> = (|0> + |1>)/sqrt(2)
qc_pure = QuantumCircuit(1)
qc_pure.h(0)  # Hadamard gate

# Obtener el estado y la matriz de densidad
state = Statevector.from_instruction(qc_pure)
rho_pure = DensityMatrix(state)

print("Matriz de densidad del estado puro:")
print(rho_pure)
print("Puridad:", rho_pure.purity())
Matriz de densidad del estado puro:
DensityMatrix([[0.5+0.j, 0.5+0.j],
               [0.5+0.j, 0.5+0.j]],
              dims=(2,))
Puridad: (0.9999999999999996+0j)

En el siguiente, creamos dos estados puros y creamos un estado mixto con la mitad de probabilidad de estar en cada uno de los estados puros, calculamos la matriz de densidad y la traza del cuadrado de la matriz de densidad para ver su puridad.

from qiskit.quantum_info import partial_trace

# Crear dos estados puros |0> and |1>
rho_0 = DensityMatrix.from_label('0')
rho_1 = DensityMatrix.from_label('1')

# Crear un estado mixto: 50% |0>, 50% |1>
rho_mixed = 0.5 * rho_0 + 0.5 * rho_1

print("\nMatriz de densidad del estado mixto:")
print(rho_mixed)
print("Puridad:", rho_mixed.purity())
Matriz de densidad del estado mixto:
DensityMatrix([[0.5+0.j, 0. +0.j],
               [0. +0.j, 0.5+0.j]],
              dims=(2,))
Puridad: (0.5+0j)

Por lo tanto, hemos visto la utilidad del formalismo del operador (matriz) de densidad para describir y analizar estados mixtos.

Deja una respuesta

Orgullosamente ofrecido por WordPress | Tema: Baskerville 2 por Anders Noren.

Subir ↑