Saltar al contenido principal

Medir qubits

Versiones de paquetes

El código de esta página fue desarrollado con los siguientes requisitos. Recomendamos usar estas versiones o versiones más recientes.

qiskit[all]~=2.4.0

Para obtener información sobre el estado de un qubit, puedes medirlo en un bit clásico. En Qiskit, las mediciones se realizan en la base computacional, es decir, la base de Pauli-ZZ de un solo qubit. Por lo tanto, una medición produce 0 o 1, dependiendo del solapamiento con los estados propios de Pauli-ZZ 0|0\rangle y 1|1\rangle:

qmeasure{0(outcome+1),with probability p0=q02,1(outcome1),with probability p1=q12.|q\rangle \xrightarrow{measure}\begin{cases} 0 (\text{outcome}+1), \text{with probability } p_0=|\langle q|0\rangle|^{2}\text{,} \\ 1 (\text{outcome}-1), \text{with probability } p_1=|\langle q|1\rangle|^{2}\text{.} \end{cases}

Aplicar una medición a un circuito

Hay varias formas de aplicar mediciones a un circuito:

Método QuantumCircuit.measure

Usa el método measure para medir un QuantumCircuit.

Ejemplos:

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit
from qiskit import QuantumCircuit

qc = QuantumCircuit(5, 5)
qc.x(0)
qc.x(1)
qc.x(4)
qc.measure(
range(5), range(5)
) # Measures all qubits into the corresponding clbit.
<qiskit.circuit.instructionset.InstructionSet at 0x7eff8c636c20>
from qiskit import QuantumCircuit

qc = QuantumCircuit(3, 1)
qc.x([0, 2])
qc.measure(1, 0) # Measure qubit 1 into the classical bit 0.
<qiskit.circuit.instructionset.InstructionSet at 0x7eff8c636830>

Clase Measure

La clase Measure de Qiskit mide los qubits especificados.

from qiskit.circuit import Measure

qc = QuantumCircuit(3, 1)
qc.x([0, 1])
qc.append(Measure(), [0], [0]) # measure qubit 0 into clbit 0
<qiskit.circuit.instructionset.InstructionSet at 0x7eff8c6369e0>

Método QuantumCircuit.measure_all

Para medir todos los qubits en los bits clásicos correspondientes, usa el método measure_all. Por defecto, este método agrega nuevos bits clásicos en un ClassicalRegister para almacenar estas mediciones.

from qiskit import QuantumCircuit

qc = QuantumCircuit(3, 1)
qc.x([0, 2])
qc.measure_all() # Measure all qubits.

Método QuantumCircuit.measure_active

Para medir todos los qubits que no están inactivos, usa el método measure_active. Este método crea un nuevo ClassicalRegister con un tamaño igual al número de qubits no inactivos que se están midiendo.

from qiskit import QuantumCircuit

qc = QuantumCircuit(3, 1)
qc.x([0, 2])
qc.measure_active() # Measure qubits that are not idle, that is, qubits 0 and 2.

Siguientes pasos

Recomendaciones