{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "255dc213-977b-46de-86f4-3bab0a005340",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"量子ビットの初期化\"\n",
        "description: \"動的繰り返し率の実行に関する説明内容\"\n",
        "---\n",
        "\n",
        "<span id=\"qubit-initialization\" />\n",
        "\n",
        "# 量子ビットの初期化\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=\"パッケージ・バージョン\">\n",
        "    このページのコードは、以下の要件に基づいて開発された。\n",
        "    これらのバージョンまたは新しいバージョンの使用をお勧めします。\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": [
        "IBM® 量子処理ユニット（QPU）で回路を実行する場合、量子ビットがゼロに初期化されるように、回路の最初に暗黙のリセットが挿入されるのが一般的である。 これは、 [プリミティブ実行オプションとして](/docs/api/qiskit-ibm-runtime/options-execution-options-v2)設定される `init_qubits` フラグによって制御される。\n",
        "\n",
        "しかしながら、リセットプロセスの不備は状態準備エラーを引き起こす可能性がある。 このエラーを軽減するため、QPUは回路間に繰り返し遅延時間（または `rep_delay`）を挿入する。 各バックエンドには異なるデフォルト値がありますが `rep_delay`、通常は忠実度のリセットと総実行時間のバランスを取るように設定されています。 特定のQPUの `rep_delay` デフォルト設定を確認するために `backend.default_rep_delay` 実行する。\n",
        "\n",
        "すべての IBM QPUは動的繰り返しレート実行を採用しているため、ジョブごとに `rep_delay` 設定を変更できます。 プリミティブジョブで提出した回路は、QPU上で一括処理されます。 これらの回路は、要求された各ショットの回路を反復処理することで実行される。実行は、回路とショットの行列に対して列単位で行われ、次の図に示す通りである。\n",
        "\n",
        "![最初の列はショット0を表す。  回路は0から3まで順番に走る。  列目はショット1。  回路は0から3まで順番に走る。  残りの列も同じパターンに従う。](https://quantum.cloud.ibm.com/docs/images/guides/repetition-rate-execution/circuits_shots_matrix1.avif \"列ごとの実行行列\")\n",
        "\n",
        "回路間に挿入 `rep_delay` されるため、実行の各ショットでこの遅延が発生する。 したがって、を下げると `rep_delay`、状態準備エラー率の増加を代償として、QPUの総実行時間は減少します。次の図が示す通りです：\n",
        "\n",
        "![この画像は、repetition\\_delayの値が低くなるにつれて、状態準備エラー率が増加することを示している。](https://quantum.cloud.ibm.com/docs/images/guides/repetition-rate-execution/rep_delay.avif \"Repetition delay versus error rate\")\n",
        "\n",
        "と の `rep_delay=0` 両方を設定すると、 `init_qubits=False`回路は「結合」します。これは、量子ビットが前回のショットの最終状態から開始するためです。\n",
        "\n",
        "プリミティブジョブ内の回路はQPU実行のためにバッチ処理されますが、PUBからの回路の実行順序は保証されません。 例えば、を提出した場合 `pubs=[pub1, pub2]`、からの回路はからの回路よりも `pub1` 先に実行されない `pub2`可能性がある。 同じジョブからの回路がQPU上で単一のバッチとして実行される保証もありません。\n",
        "\n",
        "<span id=\"specify-rep_delay-for-a-primitive-job\" />\n",
        "\n",
        "## プリミティブジョブに対して `rep_delay` 指定する\n",
        "\n",
        "<Admonition type=\"note\" title=\"QPUのrep_delay値を確認する\">\n",
        "  使用している特定のQPUのサポート `rep_delay` 範囲を常に確認してください。 これらの値はすべてのQPUで同じではなく、時間の経過とともに変化する可能性もあります。\n",
        "\n",
        "  ご注意ください：の増加は、実行時間と容量 `rep_delay` 消費に直接的な影響を与えます。\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",
        "\n",
        "<Admonition type=\"tip\" title=\"推奨事項\">\n",
        "  * [量子近似最適化アルゴリズム(QAOA)の](/docs/tutorials/quantum-approximate-optimization-algorithm)チュートリアルの例を試してみてください。\n",
        "  * [Estimatorの](/docs/guides/get-started-with-estimator)始め方について確認しましょう。\n",
        "  * [Samplerの](/docs/guides/get-started-with-sampler)始め方について確認しましょう。\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
}