{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "255dc213-977b-46de-86f4-3bab0a005340",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"Qubit-Initialisierung\"\n",
        "description: \"Erläuterungen zur Ausführung mit dynamischer Wiederholungsrate\"\n",
        "---\n",
        "\n",
        "<span id=\"qubit-initialization\" />\n",
        "\n",
        "# Qubit-Initialisierung\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "6e5f6e09-ed60-4b74-a2fd-72da40d8645e",
      "metadata": {
        "tags": [
          "version-info"
        ]
      },
      "source": [
        "{/*\n",
        "  DO NOT EDIT THIS CELL!!!\n",
        "  This cell's content is generated automatically by a script. Anything you add\n",
        "  here will be removed next time the notebook is run. To add new content, create\n",
        "  a new cell before or after this one.\n",
        "  */}\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"Paketversionen\">\n",
        "    Der Code auf dieser Seite wurde unter Berücksichtigung der folgenden Anforderungen entwickelt.\n",
        "    Wir empfehlen die Verwendung dieser oder neuerer Versionen.\n",
        "\n",
        "    ```\n",
        "    qiskit-ibm-runtime~=0.47.0\n",
        "    ```\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "abdfb100-5321-41d7-8aee-117062aed595",
      "metadata": {},
      "source": [
        "Wenn ein Schaltkreis auf einer Quantenverarbeitungseinheit (QPU) von IBM® ausgeführt wird, wird in der Regel am Anfang des Schaltkreises ein impliziter Reset eingefügt, um sicherzustellen, dass die Qubits auf Null initialisiert werden. Dies wird durch das Flag `init_qubits` gesteuert, das als [primitive Ausführungsoption](/docs/api/qiskit-ibm-runtime/options-models-execution-options) festgelegt wird.\n",
        "\n",
        "Allerdings können Unvollkommenheiten im Rücksetzungsprozess zu Fehlern bei der Zustandsvorbereitung führen. Um den Fehler zu mildern, fügt die QPU außerdem eine Wiederholungsverzögerungszeit (oder `rep_delay`) zwischen den Schaltkreisen ein. Jedes Backend hat eine andere Standardeinstellung `rep_delay`, aber in der Regel wird ein Gleichgewicht zwischen der Genauigkeit der Rücksetzung und der Gesamtlaufzeit angestrebt. Ausführen, `backend.default_rep_delay` um die Standardeinstellung `rep_delay` für eine bestimmte QPU zu finden.\n",
        "\n",
        "Da alle QPUs von „ IBM “ eine dynamische Wiederholungsrate verwenden, können Sie die `rep_delay` für jeden Auftrag ändern. Die Schaltungen, die Sie in einem primitiven Auftrag einreichen, werden für die Ausführung auf der QPU gebündelt. Diese Schaltungen werden durch Iteration über die Schaltungen für jeden angeforderten Schuss ausgeführt; die Ausführung erfolgt spaltenweise über eine Matrix aus Schaltungen und Schüssen, wie in der folgenden Abbildung dargestellt.\n",
        "\n",
        "![Die erste Spalte steht für Schuss 0.  Die Stromkreise werden in der Reihenfolge von 0 bis 3 durchlaufen.  Die zweite Spalte steht für Schuss 1.  Die Stromkreise werden in der Reihenfolge von 0 bis 3 durchlaufen.  Die übrigen Spalten folgen demselben Muster.](https://quantum.cloud.ibm.com/docs/images/guides/repetition-rate-execution/circuits_shots_matrix1.avif \"Spaltenweise Ausführungsmatrix\")\n",
        "\n",
        "Da zwischen den `rep_delay` Schaltkreisen eingefügt ist, tritt diese Verzögerung bei jedem Schuss der Ausführung auf. Wenn Sie also den Wert senken, verringert `rep_delay`sich die Gesamtlaufzeit der QPU, allerdings auf Kosten einer höheren Fehlerrate bei der Zustandsvorbereitung, wie die folgende Abbildung zeigt:\n",
        "\n",
        "![Diese Abbildung zeigt, dass die Fehlerquote bei der Vorbereitung des Zustands zunimmt, wenn der Wert für die Wiederholungsverzögerung gesenkt wird.](https://quantum.cloud.ibm.com/docs/images/guides/repetition-rate-execution/rep_delay.avif \"Wiederholungsverzögerung gegenüber Fehlerquote\")\n",
        "\n",
        "Wenn Sie sowohl `rep_delay=0` als `init_qubits=False`auch festlegen, „verschmelzen“ die Schaltkreise miteinander, da die Qubits im Endzustand des vorherigen Schusses beginnen.\n",
        "\n",
        "Beachten Sie, dass die Schaltungen in einem primitiven Job zwar für die QPU-Ausführung gebündelt werden, jedoch keine Garantie für die Reihenfolge besteht, in der die Schaltungen aus PUBs ausgeführt werden. Wenn Sie beispielsweise einreichen `pubs=[pub1, pub2]`, werden die Schaltkreise aus `pub1` möglicherweise nicht vor denen aus ausgeführt `pub2`. Es gibt auch keine Garantie dafür, dass Schaltungen aus demselben Auftrag als einzelner Stapel auf der QPU ausgeführt werden.\n",
        "\n",
        "<span id=\"specify-rep_delay-for-a-primitive-job\" />\n",
        "\n",
        "## Für einen `rep_delay` primitiven Job angeben\n",
        "\n",
        "<Admonition type=\"note\" title=\"Überprüfen Sie den Wert „rep_delay“ für eine QPU\">\n",
        "  Überprüfen Sie immer den unterstützten `rep_delay` Bereich für die von Ihnen verwendete QPU. Diese Werte sind nicht für jede QPU gleich und können sich auch im Laufe der Zeit ändern.\n",
        "\n",
        "  Bitte beachten Sie, dass eine Erhöhung von direkte Auswirkungen auf Ihre Ausführungszeit `rep_delay` und Ihren Kapazitätsverbrauch hat.\n",
        "</Admonition>\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "aca7f18c-ee37-4f6f-a6a2-fe389459bb9b",
      "metadata": {},
      "outputs": [],
      "source": [
        "from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler\n",
        "\n",
        "service = QiskitRuntimeService()\n",
        "\n",
        "# Make sure your backend supports it\n",
        "backend = service.least_busy(\n",
        "    operational=True, min_num_qubits=100, dynamic_reprate_enabled=True\n",
        ")\n",
        "\n",
        "# Determine the allowable range\n",
        "backend.rep_delay_range\n",
        "sampler = Sampler(mode=backend)\n",
        "\n",
        "# Specify a value in the supported range\n",
        "sampler.options.execution.rep_delay = 0.0005"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "53c33092-8d59-4422-b438-1331afbacf17",
      "metadata": {},
      "source": [
        "<span id=\"next-steps\" />\n",
        "\n",
        "## Nächste Schritte\n",
        "\n",
        "<Admonition type=\"tip\" title=\"Empfehlungen\">\n",
        "  * Probieren Sie ein Beispiel aus dem Lehrgang [Quantum approximate optimization algorithm (QAOA)](/docs/tutorials/quantum-approximate-optimization-algorithm).\n",
        "  * Lesen Sie nach, wie Sie [mit Estimator beginnen](/docs/guides/get-started-with-estimator) können.\n",
        "  * Erfahren Sie, wie Sie [mit Sampler beginnen](/docs/guides/get-started-with-sampler) können.\n",
        "</Admonition>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {},
      "id": "a1b8767d",
      "source": "© IBM Corp., 2017-2026"
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "language_info": {
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "file_extension": ".py",
      "mimetype": "text/x-python",
      "name": "python",
      "nbconvert_exporter": "python",
      "pygments_lexer": "ipython3",
      "version": "3"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 4
}