Inspection du circuit - Amazon Braket

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 01, et2). Vous pouvez vérifier le fonctionnement du portail à chaque instant.

Momentsfonctionne comme un dictionnaire de paires clé-valeur.

  • La clé estMomentsKey(), qui contient du pseudo-temps et des qubit informations.

  • La valeur est attribuée dans le type 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)]))

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|