{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "c457f721-e66d-403e-84be-10b26863c86d",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"추정기 옵션 지정\"\n",
        "description: \"Estimator 프리미티브로 빌드할 때 옵션을 지정합니다.\"\n",
        "---\n",
        "\n",
        "<span id=\"specify-estimator-options\" />\n",
        "\n",
        "# 추정기 옵션 지정\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "1a97b5d6-3fb2-4c33-9b95-807bb6768a84",
      "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[all]~=2.5.2\n",
        "    qiskit-ibm-runtime~=0.47.0\n",
        "    ```\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "3c1e38b5-3f01-4818-943e-f52d877be6ad",
      "metadata": {},
      "source": [
        "옵션을 사용하여 Estimator 기본 요소를 사용자 지정할 수 있습니다. 프라이머리 `run()` 메서드의 인터페이스는 모든 구현체에서 공통적이지만, 해당 옵션들은 그렇지 않습니다. 및 [`qiskit_aer.BaseEstimatorV2`](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.primitives.EstimatorV2.html)[`qiskit.primitives.BaseEstimatorV2`](/docs/api/qiskit/qiskit.primitives.BaseEstimatorV2) 옵션에 대한 자세한 내용은 API 참조 문서를 확인하십시오.\n",
        "\n",
        "참고 사항 :\n",
        "\n",
        "<Admonition type=\"note\" title=\"Estimator 기본 요소에서 옵션을 지정하는 방법에 대한 참고 사항\">\n",
        "  * Estimator 초기화 중이나 초기화 후에 사용 가능한 옵션과 옵션 값을 확인할 수 있습니다.\n",
        "  * 메서드를 `update()` 사용하여 속성에 `options` 변경 사항을 적용합니다.\n",
        "  * 옵션에 값을 지정하지 않으면, 해당 옵션에는 라는 `Unset` 특수 값이 할당되며 서버의 기본값이 사용됩니다.\n",
        "  * 이 `options` 속성은 `Python` 유형입니다 `dataclass` .  내장 `asdict` 메서드를 사용하여 이를 딕셔너리로 변환할 수 있습니다.\n",
        "</Admonition>\n",
        "\n",
        "<span id=\"pass-options\" />\n",
        "\n",
        "<span id=\"set-estimator-options\" />\n",
        "\n",
        "## 추정기 옵션 설정\n",
        "\n",
        "옵션은 Estimator를 초기화할 때, 초기화 후, 또는 (해당 `precision` 경우에만) 메서드 `run()` 내에서 설정할 수 있습니다.\n",
        "\n",
        "<span id=\"primitive-initialization\" />\n",
        "\n",
        "### 기본 초기화\n",
        "\n",
        "Estimator를 초기화할 때 옵션 클래스의 인스턴스나 딕셔너리를 전달할 수 있으며, 이 경우 해당 옵션의 복사본이 생성됩니다. 따라서 원래의 사전이나 옵션 인스턴스를 변경하더라도, 해당 기본 객체가 소유한 옵션에는 영향을 미치지 않습니다.\n",
        "\n",
        "<span id=\"options-class\" />\n",
        "\n",
        "#### 옵션 수업\n",
        "\n",
        "클래스의 `EstimatorV2` 인스턴스를 생성할 때, 옵션 클래스의 인스턴스를 전달할 수 있습니다. `run()` 그런 다음 계산을 수행할 때 해당 옵션들이 적용됩니다.  옵션을 다음 형식으로 지정하십시오: `options.option.sub-option.sub-sub-option = choice`.  예: `options.dynamical_decoupling.enable = True`\n",
        "\n",
        "예:\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "a20ed38a-31b7-4f0a-aed1-bd11046ab10e",
      "metadata": {},
      "outputs": [],
      "source": [
        "from qiskit_ibm_runtime import QiskitRuntimeService\n",
        "from qiskit_ibm_runtime import EstimatorV2 as Estimator\n",
        "from qiskit_ibm_runtime.options import EstimatorOptions\n",
        "\n",
        "service = QiskitRuntimeService()\n",
        "backend = service.least_busy(operational=True, simulator=False)\n",
        "\n",
        "options = EstimatorOptions(\n",
        "    resilience_level=2,\n",
        "    resilience={\"zne_mitigation\": True, \"zne\": {\"noise_factors\": [1, 3, 5]}},\n",
        ")\n",
        "\n",
        "# or...\n",
        "options = EstimatorOptions()\n",
        "options.resilience_level = 2\n",
        "options.resilience.zne_mitigation = True\n",
        "options.resilience.zne.noise_factors = [1, 3, 5]\n",
        "\n",
        "estimator = Estimator(mode=backend, options=options)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "dc5ba623-45f2-4abf-9478-ff83490b480c",
      "metadata": {},
      "source": [
        "<span id=\"dictionary\" />\n",
        "\n",
        "#### 사전\n",
        "\n",
        "Estimator를 초기화할 때 옵션을 사전(dictionary) 형태로 지정할 수 있습니다.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "869e4bf1-a7f9-4a66-8876-f327dcb87811",
      "metadata": {},
      "outputs": [],
      "source": [
        "from qiskit_ibm_runtime import QiskitRuntimeService\n",
        "from qiskit_ibm_runtime import EstimatorV2 as Estimator\n",
        "\n",
        "service = QiskitRuntimeService()\n",
        "backend = service.least_busy(operational=True, simulator=False)\n",
        "\n",
        "# Setting options during initialization\n",
        "estimator = Estimator(\n",
        "    backend,\n",
        "    options={\n",
        "        \"resilience_level\": 2,\n",
        "        \"resilience\": {\n",
        "            \"zne_mitigation\": True,\n",
        "            \"zne\": {\"noise_factors\": [1, 3, 5]},\n",
        "        },\n",
        "    },\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "498899b6-3253-4348-9589-19dbbd6bc22b",
      "metadata": {},
      "source": [
        "<span id=\"update-options-after-initialization\" />\n",
        "\n",
        "### 초기화 후 옵션 업데이트\n",
        "\n",
        "자동 완성 기능을 이용하려면 옵션을 다음과 같은 형식으로 지정하거나, `estimator.options.option.sub-option.sub-sub-option = choice` 일괄 업데이트를 수행하려면 메서드를 `update()` 사용하세요.\n",
        "\n",
        "기본 객체를 초기화한 후 옵션을 설정하는 경우, options 클래스([`EstimatorOptions`](/docs/api/qiskit-ibm-runtime/options-estimator-options))를 `EstimatorV2` 인스턴스화할 필요가 없습니다.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "id": "1cd195bb-50a5-4c64-aa0b-effb1ea621ce",
      "metadata": {},
      "outputs": [],
      "source": [
        "from qiskit_ibm_runtime import QiskitRuntimeService\n",
        "from qiskit_ibm_runtime import EstimatorV2 as Estimator\n",
        "\n",
        "service = QiskitRuntimeService()\n",
        "backend = service.least_busy(operational=True, simulator=False)\n",
        "\n",
        "estimator = Estimator(mode=backend)\n",
        "\n",
        "# Setting options after initialization\n",
        "# This uses auto-complete.\n",
        "estimator.options.default_precision = 0.01\n",
        "# This does bulk update.\n",
        "estimator.options.update(\n",
        "    default_precision=0.02, resilience={\"zne_mitigation\": True}\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "7cde6f7f-278e-4170-afa3-2c3fb4ec4bfa",
      "metadata": {},
      "source": [
        "<span id=\"run-method\" />\n",
        "\n",
        "<span id=\"run-method\" />\n",
        "\n",
        "### Run() 메서드\n",
        "\n",
        "에 전달할 수 있는 값은 `run()` 인터페이스에 정의된 값들뿐입니다.  즉, `precision` Estimator에 대해. 이렇게 하면 현재 실행에 `default_precision` 대해 설정된 모든 값이 덮어쓰게 됩니다.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "id": "c0606f38-2bed-4b56-8202-708669e5ea66",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<RuntimeJobV2('dab7lhjvpcac73ddekcg', 'estimator')>"
            ]
          },
          "execution_count": 4,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from qiskit_ibm_runtime import QiskitRuntimeService\n",
        "from qiskit_ibm_runtime import EstimatorV2 as Estimator\n",
        "from qiskit.circuit.library import random_iqp\n",
        "from qiskit.transpiler import generate_preset_pass_manager\n",
        "from qiskit.quantum_info import SparsePauliOp\n",
        "\n",
        "service = QiskitRuntimeService()\n",
        "backend = service.least_busy(operational=True, simulator=False)\n",
        "\n",
        "circuit1 = random_iqp(3)\n",
        "circuit1.measure_all()\n",
        "circuit2 = random_iqp(3)\n",
        "circuit2.measure_all()\n",
        "\n",
        "observable = SparsePauliOp(\"Z\" * 3)\n",
        "\n",
        "pass_manager = generate_preset_pass_manager(\n",
        "    optimization_level=3, backend=backend\n",
        ")\n",
        "\n",
        "transpiled1 = pass_manager.run(circuit1)\n",
        "transpiled2 = pass_manager.run(circuit2)\n",
        "isa_observable1 = observable.apply_layout(transpiled1.layout)\n",
        "isa_observable2 = observable.apply_layout(transpiled2.layout)\n",
        "\n",
        "estimator = Estimator(mode=backend)\n",
        "# Default precision to use if not specified in run()\n",
        "estimator.options.default_precision = 0.01\n",
        "# Run two circuits, requiring a precision of .02 for both.\n",
        "estimator.run(\n",
        "    [(transpiled1, isa_observable1), (transpiled2, isa_observable2)],\n",
        "    precision=0.02,\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "effe450a-255f-4837-a276-c8c3ea6e2db0",
      "metadata": {},
      "source": [
        "<span id=\"special-case-precision\" />\n",
        "\n",
        "### 특수한 경우: 정밀도\n",
        "\n",
        "이 `EstimatorV2.run` 메서드는 두 개의 인수를 받습니다. 하나는 PUB 목록으로, 각 PUB는 정밀도(precision)에 대해 PUB 전용 값을 지정할 수 있으며, 다른 하나는 정밀도 키워드 인수입니다. 이러한 정밀도 값은 Estimator 실행 인터페이스의 일부이며, 런타임 Estimator의 옵션과는 별개입니다.  이는 Estimator 추상화를 준수하기 위해 옵션으로 지정된 모든 값보다 우선합니다.\n",
        "\n",
        "그러나 PUB 이나 run 키워드 인자에서 가 명시되지 않은 `precision` 경우(또는 모두 인 `None`경우), options에서 지정한 정밀도 값이 사용되며, 특히 가 `default_precision`적용됩니다.\n",
        "\n",
        "<Admonition type=\"note\">\n",
        "  이러한 정밀도 매개변수는 *목표* 정밀도를 지정하기 위한 것일 뿐이며, 결과가 지정된 정밀도에 도달할 것이라고 보장되지는 않습니다.\n",
        "</Admonition>\n",
        "\n",
        "추정기 옵션에는 와 가 `default_shots` 모두 포함되어 `default_precision`있음을 유의하십시오. 그러나 게이트 회전 기능이 기본적으로 활성화되어 있기 때문에, 와 `num_randomizations` 의 곱이 이 `shots_per_randomization` 두 옵션보다 우선합니다.\n",
        "\n",
        "구체적으로, 모든 Estimator PUB 에 대해:\n",
        "\n",
        "1. PUB 에 정밀도가 지정되어 있다면 해당 값을 사용하십시오.\n",
        "2. 에서 precision `run`키워드 인수가 지정된 경우, 해당 값을 사용합니다.\n",
        "3. [`twirling` 옵션](/docs/api/qiskit-ibm-runtime/options-twirling-options)`shots_per_randomization`이 활성화되어 있는 경우 `twirling` (기본값은 True), 로 지정된 와 의 `num_randomizations` 곱이 사용됩니다.\n",
        "4. 가 `estimator.options.default_shots` 지정된 경우, 해당 값을 사용하여 데이터의 양을 조절합니다.\n",
        "5. 가 지정된 `estimator.options.default_precision` 경우, 해당 값을 사용합니다.\n",
        "\n",
        "예를 들어, 네 곳 모두에 정밀도가 지정된 경우, 우선순위가 가장 높은 것( PUB 에 지정된 정밀도)이 사용됩니다.\n",
        "\n",
        "<Admonition type=\"note\">\n",
        "  PUB 와 에 명시된 정밀도가 우선 순위가 더 높지만, 가 `run` 활성화되어 있고 와 `shots_per_randomization` 의 `num_randomizations` 곱이 해당 정밀도를 달성하는 데 필요한 샷 수보다 작을 경우 `twirling` 작업이 실패합니다. `num_randomizations`이 시나리오에서는 지정된 대상들 사이에 발사량을 배분할 수 없습니다. `EstimatorV2`\n",
        "</Admonition>\n",
        "\n",
        "<Admonition type=\"note\">\n",
        "  정밀도는 사용 빈도와 반비례한다.  즉, 정밀도가 낮을수록 실행하는 데 더 많은 QPU 시간이 소요됩니다.\n",
        "</Admonition>\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "id": "bf02c107-226e-443a-ab4c-dfd3246ada2c",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<RuntimeJobV2('dab7ljjvpcac73ddekgg', 'estimator')>"
            ]
          },
          "execution_count": 5,
          "metadata": {},
          "output_type": "execute_result"
        }
      ],
      "source": [
        "from qiskit_ibm_runtime import QiskitRuntimeService\n",
        "from qiskit_ibm_runtime import EstimatorV2 as Estimator\n",
        "from qiskit.circuit.library import random_iqp\n",
        "from qiskit.transpiler import generate_preset_pass_manager\n",
        "from qiskit.quantum_info import SparsePauliOp\n",
        "\n",
        "service = QiskitRuntimeService()\n",
        "backend = service.least_busy(operational=True, simulator=False)\n",
        "\n",
        "observable = SparsePauliOp(\"Z\" * 3)\n",
        "\n",
        "circuit = random_iqp(3)\n",
        "circuit.measure_all()\n",
        "\n",
        "pass_manager = generate_preset_pass_manager(\n",
        "    optimization_level=3, backend=backend\n",
        ")\n",
        "\n",
        "isa_circuit = pass_manager.run(circuit)\n",
        "isa_observable = observable.apply_layout(isa_circuit.layout)\n",
        "\n",
        "# Setting precision during primitive initialization\n",
        "estimator = Estimator(mode=backend, options={\"default_precision\": 0.05})\n",
        "\n",
        "# Run with precision=0.02, overwriting the default.\n",
        "estimator.run(\n",
        "    [(isa_circuit, isa_observable1)],\n",
        "    precision=0.02,\n",
        ")"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "be2f096d-355a-4f5f-8729-4808a0c5791d",
      "metadata": {},
      "source": [
        "<span id=\"no-error-mitigation\" />\n",
        "\n",
        "<span id=\"turn-off-all-error-mitigation-and-error-suppression\" />\n",
        "\n",
        "## 모든 오류 완화 및 오류 숨기기 기능을 비활성화하십시오\n",
        "\n",
        "예를 들어, 자체적인 오류 완화 기법에 대한 연구를 진행 중이라면 모든 오류 완화 및 억제 기능을 비활성화할 수 있습니다. 이를 위해 다음을 설정하십시오 `resilience_level = 0`.\n",
        "\n",
        "예:\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "id": "0e357659-44c4-4332-80b9-c0a9080adfbd",
      "metadata": {},
      "outputs": [],
      "source": [
        "from qiskit_ibm_runtime import EstimatorV2 as Estimator, QiskitRuntimeService\n",
        "\n",
        "# Define the service.  This allows you to access an IBM QPU.\n",
        "service = QiskitRuntimeService()\n",
        "\n",
        "# Get a backend\n",
        "backend = service.least_busy(operational=True, simulator=False)\n",
        "\n",
        "# Define Estimator\n",
        "estimator = Estimator(backend)\n",
        "\n",
        "options = estimator.options\n",
        "\n",
        "# Turn off all error mitigation and suppression\n",
        "options.resilience_level = 0"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "e64d93fc-2a2c-4e6b-a94a-fd7142858c99",
      "metadata": {},
      "source": [
        "<span id=\"options-table\" />\n",
        "\n",
        "<span id=\"available-options\" />\n",
        "\n",
        "## 사용 가능 옵션\n",
        "\n",
        "다음 표는 최신 버전의 `qiskit-ibm-runtime`.에 포함된 옵션을 정리한 것입니다. 이전 버전의 옵션을 확인하려면 [API 참조 `qiskit-ibm-runtime`](/docs/api/qiskit-ibm-runtime) 문서를 방문하여 이전 버전을 선택하세요.\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"`default_shots`\">\n",
        "    구성당 회로별로 사용할 총 샷 수.\n",
        "\n",
        "    **선택 사항** : 0 이상인 정수\n",
        "\n",
        "    **기본값** : 없음\n",
        "\n",
        "    [`default_shots` API 문서](/docs/api/qiskit-ibm-runtime/options-estimator-options#default_shots)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`default_precision`\">\n",
        "    정밀도를 명시하지 않은 모든 `PUB` `run()` 호출에 대해 사용되는 기본 정밀도입니다.\n",
        "\n",
        "    **선택 사항** : Float > 0\n",
        "\n",
        "    **기본값** : 0.015625 (1 / sqrt(4096))\n",
        "\n",
        "    [`default_precision` API 문서](/docs/api/qiskit-ibm-runtime/options-estimator-options#default_precision)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`dynamical_decoupling`\">\n",
        "    동적 분리 오류 완화 설정을 제어합니다.\n",
        "\n",
        "    [`dynamical_decoupling` API 문서](/docs/api/qiskit-ibm-runtime/options-estimator-options#dynamical_decoupling)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`dynamical_decoupling.enable`\">\n",
        "        **선택 사항** : `True`, `False`\n",
        "\n",
        "        **기본값** : `False`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.extra_slack_distribution`\">\n",
        "        **선택 사항** : `middle`, `edges`\n",
        "\n",
        "        **기본값** : `middle`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.scheduling_method`\">\n",
        "        선택 사항: `asap`, `alap`\n",
        "        기본값: `alap`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.sequence_type`\">\n",
        "        선택 사항: `XX`, `XpXm`, `XY4`\n",
        "        기본값: `XX`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.skip_reset_qubits`\">\n",
        "        선택 사항: `True`, `False`\n",
        "        기본값: `False`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`environment`\">\n",
        "    [`environment` API 문서](/docs/api/qiskit-ibm-runtime/options-estimator-options#environment)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`environment.callback`\">\n",
        "        와 를 `Job ID` 인수로 받는 `Job result`호출 가능 함수.\n",
        "\n",
        "        **선택 사항** : 없음\n",
        "\n",
        "        **기본값** : 없음\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.job_tags`\">\n",
        "        태그 목록.\n",
        "\n",
        "        **선택 사항** : 없음\n",
        "\n",
        "        **기본값** : 없음\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.log_level`\">\n",
        "        **선택 항목** : DEBUG, INFO, WARNING, ERROR, CRITICAL\n",
        "\n",
        "        **기본값** : 경고\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.private`\">\n",
        "        **선택 사항** : `True`, `False`\n",
        "\n",
        "        **기본값** : `False`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`execution`\">\n",
        "    [`execution` API 문서](/docs/api/qiskit-ibm-runtime/options-estimator-options#execution)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`execution.init_qubits`\">\n",
        "        각 실행마다 큐비트를 기저 상태로 초기화할지 여부.\n",
        "\n",
        "        **선택 사항** : `True`, `False`\n",
        "\n",
        "        **기본값** : `True`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`execution.rep_delay`\">\n",
        "        측정과 그 이후의 양자 회로 사이의 시간 간격.\n",
        "\n",
        "        **선택 사항** : 다음 범위 내의 값 `backend.rep_delay_range`\n",
        "\n",
        "        **기본값** : 다음에서 지정됨 `backend.default_rep_delay`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`max_execution_time`\">\n",
        "    작업이 실행될 수 있는 최대 시간을 초 단위로 제한합니다. 자세한 내용은 [최대 실행 시간](/docs/guides/max-execution-time) 가이드를 참조하십시오.\n",
        "\n",
        "    **선택 사항** : \\[1] 에서 10800 사이의 초 단위 정수\n",
        "\n",
        "    **기본값** : 10800 (3시간)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`resilience`\">\n",
        "    복원력 전략을 세밀하게 조정할 수 있는 고급 복원력 옵션.\n",
        "\n",
        "    [`resilience` API 문서](/docs/api/qiskit-ibm-runtime/options-estimator-options#resilience)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning`\">\n",
        "        레이어 노이즈 학습 옵션.\n",
        "\n",
        "        [`resilience.layer_noise_learning` API 문서](/docs/api/qiskit-ibm-runtime/options-layer-noise-learning-options)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning.layer_pair_depths`\">\n",
        "        **선택 사항** : \\[0에서 200] 사이의 값 2\\~10개를 \\[나] 열\n",
        "\n",
        "        **기본값** : `(0, 1, 2, 4, 16, 32)`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning.max_layers_to_learn`\">\n",
        "        **선택 사항** : 없음, 정수(1 이상)\n",
        "\n",
        "        **기본값** : `4`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning.num_randomizations`\">\n",
        "        **선택 사항** : 1 이상인 정수\n",
        "\n",
        "        **기본값** : `32`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning.shots_per_randomization`\">\n",
        "        **선택 사항** : 1 이상인 정수\n",
        "\n",
        "        **기본값** : `128`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_model`\">\n",
        "        **선택 사항** : `NoiseLearnerResult`, `Sequence[LayerError]`\n",
        "\n",
        "        **기본값** : 없음\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_mitigation`\">\n",
        "        **선택 사항** : `True`, `False`\n",
        "\n",
        "        **기본값** : `True`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_noise_learning`\">\n",
        "        측정 잡음 학습을 위한 옵션.\n",
        "\n",
        "        [`resilience.measure_noise_learning` API 문서](/docs/api/qiskit-ibm-runtime/options-measure-noise-learning-options)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_noise_learning.num_randomizations`\">\n",
        "        **선택 사항** : 1 이상인 정수\n",
        "\n",
        "        **기본값** : `32`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_noise_learning.shots_per_randomization`\">\n",
        "        **선택 사항** : 정수, `auto`\n",
        "\n",
        "        **기본값** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec_mitigation`\">\n",
        "        **선택 사항** : `True`, `False`\n",
        "\n",
        "        **기본값** : `False`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec`\">\n",
        "        확률적 오차 상쇄 완화 방안.\n",
        "\n",
        "        [`resilience.pec` API 문서](/docs/api/qiskit-ibm-runtime/options-pec-options)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec.max_overhead`\">\n",
        "        **선택 사항** : `None`, 정수 >= 1\n",
        "\n",
        "        **기본값** : `100`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec.noise_gain`\">\n",
        "        **선택 사항** : `auto`, \\[0과 1] 사이의 실수\n",
        "\n",
        "        **기본값** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne_mitigation`\">\n",
        "        **선택 사항** : `True`, `False`\n",
        "\n",
        "        **기본값** : `False`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne`\">\n",
        "        [`resilience.zne` API 문서](/docs/api/qiskit-ibm-runtime/options-zne-options)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.amplifier`\">\n",
        "        **선택 사항** : `gate_folding`, `gate_folding_front`, `gate_folding_back`, `pea`\n",
        "\n",
        "        **기본값** : `gate_folding`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.extrapolated_noise_factors`\">\n",
        "        **선택 사항** : 플로트 목록\n",
        "\n",
        "        **기본값** : `[0, *noise_factors]`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.extrapolator`\">\n",
        "        **선택 사항** : 다음 중 하나 이상: `exponential`, `linear`, `double_exponential`, `polynomial_degree_(1 <= k <= 7)`, `fallback`\n",
        "\n",
        "        **기본값** : `(exponential, linear)`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.noise_factors`\">\n",
        "        **선택 사항** : 부동 소수점 숫자 목록; 각 부동 소수점 숫자는 1 이상이어야 함\n",
        "\n",
        "        **기본값** : `(1, 1.5, 2)` 인 경우 `PEA`, 그 `(1, 3, 5)` 외의 경우에는\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`resilience_level`\">\n",
        "    오류에 대비해 어느 정도의 복원력을 구축해야 하는가. 수준이 높을수록 처리 시간은 더 오래 걸리지만, 더 정확한 결과를 얻을 수 있습니다. 자세한 내용은 ‘소음 관리’ 항목의 [‘내성 수준’](/docs/guides/estimator-noise-management#resilience) 섹션을 참조하십시오.\n",
        "\n",
        "    **선택 사항** : `0`, `1`, `2`\n",
        "\n",
        "    **기본값** : `1`\n",
        "\n",
        "    [`resilience_level` API 문서](/docs/api/qiskit-ibm-runtime/options-estimator-options#resilience_level)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`seed_estimator`\">\n",
        "    **선택 항목** : 정수\n",
        "\n",
        "    **기본값** : 없음\n",
        "\n",
        "    [`seed_estimator`](/docs/api/qiskit-ibm-runtime/options-estimator-options#seed_estimator)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`simulator`\">\n",
        "    백엔드 시뮬레이션 시 전달할 옵션\n",
        "\n",
        "    [`simulator` API 문서](/docs/api/qiskit-ibm-runtime/options-simulator-options)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`simulator.basis_gates`\">\n",
        "        **선택 사항** : 언롤할 기본 게이트 이름 목록\n",
        "\n",
        "        **기본값** : [Qiskit Aer 시뮬레이터](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.AerSimulator.html) 에서 지원하는 모든 기본 게이트 집합\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`simulator.coupling_map`\">\n",
        "        **선택 사항** : 방향성 2-큐비트 상호작용 목록\n",
        "\n",
        "        **기본값** : 없음. 이는 연결성 제약 조건이 없음을 의미합니다(완전한 연결성).\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`simulator.noise_model`\">\n",
        "        **선택 사항** : [Qiskit Aer NoiseModel](/docs/guides/build-noise-models) 또는 이에 상응하는 모델\n",
        "\n",
        "        **기본값** : 없음\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`simulator.seed_simulator`\">\n",
        "        **선택 항목** : 정수\n",
        "\n",
        "        **기본값** : 없음\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`twirling`\">\n",
        "    회전 옵션\n",
        "\n",
        "    [`twirling` API 문서](/docs/api/qiskit-ibm-runtime/options-twirling-options)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`twirling.enable_gates`\">\n",
        "        **선택지** : 참, 거짓\n",
        "\n",
        "        **기본값** : False\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.enable_measure`\">\n",
        "        **선택지** : 참, 거짓\n",
        "\n",
        "        **기본값** : True\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.num_randomizations`\">\n",
        "        **선택 사항** : `auto`, 정수 >= 1\n",
        "\n",
        "        **기본값** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.shots_per_randomization`\">\n",
        "        **선택 사항** : `auto`, 정수 >= 1\n",
        "\n",
        "        **기본값** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.strategy`\">\n",
        "        **선택 사항** : `active`, `active-circuit`, `active-accum`, `all`\n",
        "\n",
        "        **기본값** : `active-accum`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`experimental`\">\n",
        "    가능한 경우 실험적 옵션.\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "83f4261c-fe8e-4993-ad7c-280350a970f3",
      "metadata": {},
      "source": [
        "<span id=\"options-compatibility-table\" />\n",
        "\n",
        "<span id=\"feature-compatibility\" />\n",
        "\n",
        "## 기능 호환성\n",
        "\n",
        "특정 런타임 기능은 하나의 작업 내에서 함께 사용할 수 없습니다. 선택한 기능과 호환되지 않는 기능 목록을 보려면 해당 탭을 클릭하세요:\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"분수 게이트\">\n",
        "    호환되지 않는 항목:\n",
        "\n",
        "    * 문 돌리기\n",
        "    * PEA\n",
        "    * PEC\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"게이트 폴딩 ZNE\">\n",
        "    사용자 정의 게이트를 사용할 경우 작동하지 않을 수 있습니다. 호환되지 않는 항목:\n",
        "\n",
        "    * PEA\n",
        "    * PEC\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"문 돌리기\">\n",
        "    호환되지 않는 항목:\n",
        "\n",
        "    * 분할 게이트\n",
        "    * 스트레칭\n",
        "\n",
        "    기타 참고 사항:\n",
        "\n",
        "    * 측정 회전 기능은 단자 측정에만 적용할 수 있습니다.\n",
        "    * 클리포드 얽힘이 아닌 얽힘에서는 작동하지 않습니다.\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"PEA\">\n",
        "    호환되지 않는 항목:\n",
        "\n",
        "    * 분할 게이트\n",
        "    * 게이트 폴딩 ZNE\n",
        "    * PEC\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"PEC\">\n",
        "    호환되지 않는 항목:\n",
        "\n",
        "    * 분할 게이트\n",
        "    * 게이트 폴딩 ZNE\n",
        "    * PEA\n",
        "  </AccordionItem>\n",
        "</Accordion>\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "5e795454-5b76-40d3-94c6-bb982be58239",
      "metadata": {},
      "source": [
        "<span id=\"next-steps\" />\n",
        "\n",
        "## 다음 단계\n",
        "\n",
        "<Admonition type=\"tip\" title=\"권장사항\">\n",
        "  * [Estimator API 참조](/docs/api/qiskit-ibm-runtime/estimator-v2) 문서에서 해당 `EstimatorV2` 메서드에 대한 자세한 내용을 확인하세요.\n",
        "  * 작업 [실행 모드를](/docs/guides/execution-modes) 결정하십시오.\n",
        "  * [Estimator를 통해 소음 관리](/docs/guides/estimator-noise-management) 에 대해 알아보세요.\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
}