Inspeccionar el circuito - 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.

Inspeccionar el circuito

Los circuitos cuánticos deAmazon Braket tienen un concepto de pseudotiempo llamadoMoments. Cada unoqubit puede experimentar una sola puerta porMoment. El propósito deMoments es facilitar el direccionamiento de los circuitos y sus puertas y proporcionar una estructura temporal.

nota

Los momentos generalmente no se corresponden con el tiempo real en el que se ejecutan las puertas en una QPU.

La profundidad de un circuito viene dada por el número total de momentos en ese circuito. Puede ver la profundidad del circuito llamando con el método,circuit.depth tal como se muestra en el siguiente ejemplo.

# define a circuit with parametrized gates circ = Circuit().rx(0, 0.15).ry(1, 0.2).cnot(0,2).zz(1, 3, 0.15).x(0) print(circ) print('Total circuit depth:', circ.depth)
T : | 0 | 1 |2| q0 : -Rx(0.15)-C----------X- | q1 : -Ry(0.2)--|-ZZ(0.15)--- | | q2 : ----------X-|---------- | q3 : ------------ZZ(0.15)--- T : | 0 | 1 |2| Total circuit depth: 3

La profundidad total del circuito anterior es 3 (se muestra como momentos01, y2). Puede comprobar el funcionamiento de la puerta en cada momento.

Momentsfunciona como un diccionario de pares clave-valor.

  • La clave esMomentsKey() que contiene pseudotiempo equbit información.

  • El valor se asigna en el tipo deInstructions().

moments = circ.moments for key, value in moments.items(): print(key) print(value, "\n")
MomentsKey(time=0, qubits=QubitSet([Qubit(0)])) Instruction('operator': Rx('angle': 0.15, 'qubit_count': 1), 'target': QubitSet([Qubit(0)])) MomentsKey(time=0, qubits=QubitSet([Qubit(1)])) Instruction('operator': Ry('angle': 0.2, 'qubit_count': 1), 'target': QubitSet([Qubit(1)])) MomentsKey(time=1, qubits=QubitSet([Qubit(0), Qubit(2)])) Instruction('operator': CNot('qubit_count': 2), 'target': QubitSet([Qubit(0), Qubit(2)])) MomentsKey(time=1, qubits=QubitSet([Qubit(1), Qubit(3)])) Instruction('operator': ZZ('angle': 0.15, 'qubit_count': 2), 'target': QubitSet([Qubit(1), Qubit(3)])) MomentsKey(time=2, qubits=QubitSet([Qubit(0)])) Instruction('operator': X('qubit_count': 1), 'target': QubitSet([Qubit(0)]))

También puede añadir compuertas a un recorrido por un circuitoMoments.

new_circ = Circuit() instructions = [Instruction(Gate.S(), 0), Instruction(Gate.CZ(), [1,0]), Instruction(Gate.H(), 1) ] new_circ.moments.add(instructions) print(new_circ)
T : |0|1|2| q0 : -S-Z--- | q1 : ---C-H- T : |0|1|2|