

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Zugreifen auf native Gates mithilfe von Impulsen
<a name="braket-native-gate-pulse"></a>

Forscher müssen oft genau wissen, wie die *nativen* Gates, die von einer bestimmten QPU unterstützt werden, als Impulse implementiert werden. Impulssequenzen werden von Hardwareanbietern sorgfältig kalibriert, aber der Zugriff auf sie bietet Forschern die Möglichkeit, bessere Gates zu entwerfen oder Protokolle zur Fehlerminimierung zu erforschen, wie z. B. eine rauschfreie Extrapolation durch Dehnen der Impulse bestimmter Gatter.

Amazon Braket unterstützt den programmatischen Zugriff auf native Gates von Rigetti.

```
import math
from braket.aws import AwsDevice
from braket.circuits import Circuit, GateCalibrations, QubitSet
from braket.circuits.gates import Rx

device = AwsDevice("arn:aws:braket:us-west-1::device/qpu/rigetti/Ankaa-3")

calibrations = device.gate_calibrations
print(f"Downloaded {len(calibrations)} calibrations.")
```

**Anmerkung**  
Hardwareanbieter kalibrieren die QPU regelmäßig, oft mehr als einmal täglich. Das Braket SDK ermöglicht es Ihnen, die neuesten Gate-Kalibrierungen zu erhalten.

```
device.refresh_gate_calibrations()
```

Um ein bestimmtes natives Gate, wie z. B. das RX- oder XY-Gate, abzurufen, müssen Sie das `Gate` Objekt und die gewünschten Qubits übergeben. Sie können zum Beispiel die Impulsimplementierung des auf 0 angewendeten RX (π /2) überprüfen. qubit

```
rx_pi_2_q0 = (Rx(math.pi/2), QubitSet(0))

pulse_sequence_rx_pi_2_q0 = calibrations.pulse_sequences[rx_pi_2_q0]
```

Mit der Funktion können Sie einen gefilterten Satz von Kalibrierungen erstellen. `filter` Sie bestehen an einer Liste von Toren oder einer Liste von`QubitSet`. Der folgende Code erstellt zwei Sätze, die alle Kalibrierungen für RX (π /2) und für 0 enthalten. qubit

```
rx_calibrations = calibrations.filter(gates=[Rx(math.pi/2)])
q0_calibrations = calibrations.filter(qubits=QubitSet([0]))
```

Jetzt können Sie die Aktion nativer Gates angeben oder ändern, indem Sie einen benutzerdefinierten Kalibrierungssatz anhängen. Stellen Sie sich zum Beispiel die folgende Schaltung vor.

```
bell_circuit = (
    Circuit()
    .rx(0, math.pi/2)
    .rx(1, math.pi/2)
    .iswap(0, 1)
    .rx(1, -math.pi/2)
)
```

Sie können es mit einer benutzerdefinierten Gate-Kalibrierung für das eingeschaltete `rx` Gate ausführen, `qubit 0` indem Sie ein Wörterbuch mit `PulseSequence` Objekten an das `gate_definitions` Schlüsselwort-Argument übergeben. Sie können aus dem Attribut `pulse_sequences` des `GateCalibrations` Objekts ein Wörterbuch erstellen. Alle nicht spezifizierten Gatter werden durch die Pulskalibrierung des Quantenhardwareanbieters ersetzt.

```
nb_shots = 50
custom_calibration = GateCalibrations({rx_pi_2_q0: pulse_sequence_rx_pi_2_q0})
task = device.run(bell_circuit, gate_definitions=custom_calibration.pulse_sequences, shots=nb_shots)
```