View a markdown version of this page

Medición de qubits específicos con OpenQASM 3.0 - Amazon Braket

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Medición de qubits específicos con OpenQASM 3.0

El simulador de vector de estado local y el simulador de matriz de densidad local proporcionados por Amazon Braket admiten el envío de programas OpenQASM en los que se puede medir de forma selectiva un subconjunto de qubits del circuito. Esta capacidad, con frecuencia denominada «medición parcial», permite realizar cómputos cuánticos más específicos y eficientes. Por ejemplo, en el siguiente fragmento de código, puede crear un circuito de dos qubits y elegir medir solo el primer qubit y dejar el segundo qubit sin medir.

partial_measure_qasm = """ OPENQASM 3.0; bit[1] b; qubit[2] q; h q[0]; cnot q[0], q[1]; b[0] = measure q[0]; """

En este ejemplo, tenemos un circuito cuántico con dos qubits, q[0] y q[1], pero solo nos interesa medir el estado del primer qubit. Esto se consigue mediante la línea b[0] = measure q[0], que mide el estado del qubit[0] y almacena el resultado en el bit clásico b[0]. Para ejecutar este escenario de medición parcial, podemos ejecutar el siguiente código en el simulador de vector de estado local proporcionado por Amazon Braket.

from braket.devices import LocalSimulator local_sim = LocalSimulator() partial_measure_local_sim_task = local_sim.run(OpenQASMProgram(source=partial_measure_qasm), shots = 10) partial_measure_local_sim_result = partial_measure_local_sim_task.result() print(partial_measure_local_sim_result.measurement_counts) print("Measured qubits: ", partial_measure_local_sim_result.measured_qubits)

Puede comprobar si un dispositivo admite la medición parcial inspeccionando el campo requiresAllQubitsMeasurement en sus propiedades de acción; si es False, entonces se admite la medición parcial.

from braket.devices import Devices AwsDevice(Devices.Rigetti.Ankaa3).properties.action['braket.ir.openqasm.program'].requiresAllQubitsMeasurement

Aquí, requiresAllQubitsMeasurement es False, lo que indica que no se deben medir todos los qubits.