Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Inspection du circuit
Les circuits quantiques de Amazon Braket ont un concept de pseudo-temps appelé. Moments
Chacun qubit peut bénéficier d'une seule porte parMoment
. L'objectif Moments
est de faciliter l'adressage des circuits et de leurs portes et de fournir une structure temporelle.
Note
Les moments ne correspondent généralement pas au temps réel auquel les portes sont exécutées sur un QPU.
La profondeur d'un circuit est donnée par le nombre total de moments qu'il contient. Vous pouvez visualiser la profondeur du circuit appelant la méthodecircuit.depth
, comme indiqué dans l'exemple suivant.
# 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 profondeur totale du circuit ci-dessus est de 3 (exprimée en moments 0
1
, et2
). Vous pouvez vérifier le fonctionnement du portail à chaque instant.
Moments
fonctionne comme un dictionnaire de paires clé-valeur.
-
La clé est qu'
MomentsKey()
il contient du pseudo-temps et des qubit informations. -
La valeur est attribuée dans le type de
Instructions()
.
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)]))
Vous pouvez également ajouter des portes à un circuitMoments
.
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|