{
  "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)에서 회로가 실행될 때 일반적으로 회로의 시작 부분에 암시적 리셋이 삽입되어 큐비트가 0으로 초기화되도록 합니다. 이는 [기본 실행 옵션으로](/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",
        "![이 이미지는 rep\\_delay 값이 낮아질수록 상태 준비 오류율이 증가하는 것을 보여줍니다.](https://quantum.cloud.ibm.com/docs/images/guides/repetition-rate-execution/rep_delay.avif \"반복 지연과 오류율 비교\")\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
}