{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "c457f721-e66d-403e-84be-10b26863c86d",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"Especificar opções do Estimador\"\n",
        "description: \"Especifique as opções ao criar com a primitiva Estimador.\"\n",
        "---\n",
        "\n",
        "<span id=\"specify-estimator-options\" />\n",
        "\n",
        "# Especificar opções do Estimador\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=\"Versões do pacote\">\n",
        "    O código desta página foi desenvolvido com base nos seguintes requisitos.\n",
        "    Recomendamos usar essas versões ou versões mais recentes.\n",
        "\n",
        "    ```\n",
        "    qiskit[all]~=2.5.0\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": [
        "Você pode usar as opções para personalizar a primitiva Estimador. Embora a interface do método `run()` das primitivas seja comum a todas as implementações, suas opções não o são. Consulte as referências da API para obter informações sobre as opções [`qiskit.primitives.BaseEstimatorV2`](/docs/api/qiskit/qiskit.primitives.BaseEstimatorV2) [`qiskit_aer.BaseEstimatorV2`](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.primitives.EstimatorV2.html) e.\n",
        "\n",
        "Notas:\n",
        "\n",
        "<Admonition type=\"note\" title=\"Notas sobre a especificação de opções nas primitivas do Estimador\">\n",
        "  * Você pode ver as opções disponíveis e atualizar os valores das opções durante ou após a inicialização do Estimador.\n",
        "  * Use o `update()` método para aplicar alterações ao `options` atributo.\n",
        "  * Se você não especificar um valor para uma opção, será atribuído a ela um valor especial de `Unset` e serão utilizados os valores padrão do servidor.\n",
        "  * O `options` atributo é do `dataclass` tipo Python.  Você pode usar o método integrado `asdict` para convertê-lo em um dicionário.\n",
        "</Admonition>\n",
        "\n",
        "<span id=\"pass-options\" />\n",
        "\n",
        "<span id=\"set-estimator-options\" />\n",
        "\n",
        "## Definir opções do Estimador\n",
        "\n",
        "Você pode definir opções ao inicializar o Estimator, após a inicialização do Estimator ou (apenas para `precision` ) no método `run()` .\n",
        "\n",
        "<span id=\"primitive-initialization\" />\n",
        "\n",
        "### Inicialização primitiva\n",
        "\n",
        "Você pode passar uma instância da classe de opções ou um dicionário ao inicializar o Estimator, que então cria uma cópia dessas opções. Portanto, alterar o dicionário original ou a instância de opções não afeta as opções associadas à primitiva.\n",
        "\n",
        "<span id=\"options-class\" />\n",
        "\n",
        "#### Classe de opções\n",
        "\n",
        "Ao criar uma instância da `EstimatorV2` classe, você pode passar uma instância da classe de opções. Essas opções serão aplicadas quando você usar `run()` para realizar o cálculo.  Especifique as opções neste formato: `options.option.sub-option.sub-sub-option = choice`.  Por exemplo: `options.dynamical_decoupling.enable = True`\n",
        "\n",
        "Exemplo:\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",
        "#### Dicionário\n",
        "\n",
        "Você pode especificar opções como um dicionário ao inicializar o Estimator.\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",
        "### Opções de atualização após a inicialização\n",
        "\n",
        "Você pode especificar as opções neste formato: `estimator.options.option.sub-option.sub-sub-option = choice` para aproveitar o preenchimento automático, ou usar o `update()` método para fazer atualizações em massa.\n",
        "\n",
        "A classe de `EstimatorV2` opções ([`EstimatorOptions`](/docs/api/qiskit-ibm-runtime/options-estimator-options)) não precisa ser instanciada se você estiver definindo opções após a inicialização do objeto primitivo.\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",
        "### Método Run()\n",
        "\n",
        "Os únicos valores que você `run()` pode passar são aqueles definidos na interface.  Ou seja, `precision` para o Estimador. Isso substitui qualquer valor definido para `default_precision` na execução atual.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "id": "c0606f38-2bed-4b56-8202-708669e5ea66",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<RuntimeJobV2('d9bjitvu62qs738pbiig', '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",
        "### Caso especial: precisão\n",
        "\n",
        "O `EstimatorV2.run` método aceita dois argumentos: uma lista de PUBs, cada um dos quais pode especificar um valor de precisão específico para o `PUB`, e um argumento de palavra-chave para a precisão. Esses valores de precisão fazem parte da interface de execução do Estimador e são independentes das opções do Estimador de Tempo de Execução.  Eles têm precedência sobre quaisquer valores especificados como opções, a fim de estar em conformidade com a abstração do Estimador.\n",
        "\n",
        "No entanto, se não `precision` for especificado por nenhuma opção `PUB` nem no argumento de palavra-chave `run` (ou se todos forem `None` ), então é utilizado o valor de precisão das opções, mais especificamente `default_precision`.\n",
        "\n",
        "<Admonition type=\"note\">\n",
        "  Esses parâmetros de precisão servem apenas para especificar a precisão *alvo*, e não há garantia de que os resultados atinjam a precisão especificada.\n",
        "</Admonition>\n",
        "\n",
        "Observe que as opções do Estimador incluem tanto `default_shots` quanto `default_precision`. No entanto, como a função \"gate-twirling\" está ativada por padrão, o produto de `num_randomizations` e `shots_per_randomization` tem precedência sobre essas duas opções.\n",
        "\n",
        "Especificamente, para qualquer Estimador PUB :\n",
        "\n",
        "1. Se o parâmetro `PUB` especificar a precisão, use esse valor.\n",
        "2. Se o argumento da palavra-chave precision for especificado em `run`, use esse valor.\n",
        "3. Se `twirling` estiver ativado (True por padrão), será utilizado o produto de `num_randomizations` e `shots_per_randomization`, conforme especificado nas [`twirling` opções](/docs/api/qiskit-ibm-runtime/options-twirling-options).\n",
        "4. Se `estimator.options.default_shots` for especificado, use esse valor para controlar a quantidade de dados.\n",
        "5. Se `estimator.options.default_precision` for especificado, use esse valor.\n",
        "\n",
        "Por exemplo, se a precisão for especificada nas quatro posições, será utilizada aquela com maior prioridade (a precisão especificada no campo \" PUB \").\n",
        "\n",
        "<Admonition type=\"note\">\n",
        "  Embora a precisão especificada no `PUB` e em `run` tenha maior prioridade, o trabalho falha se `twirling` estiver ativado e o produto de `num_randomizations` e `shots_per_randomization` for menor do que o número de iterações necessárias para atingir a precisão. `num_randomizations`Nesse cenário, `EstimatorV2` não é possível distribuir as tomadas entre os especificados.\n",
        "</Admonition>\n",
        "\n",
        "<Admonition type=\"note\">\n",
        "  A precisão é inversamente proporcional ao uso.  Ou seja, quanto menor for a precisão, mais tempo de processamento da QPU será necessário para a execução.\n",
        "</Admonition>\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "id": "bf02c107-226e-443a-ab4c-dfd3246ada2c",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<RuntimeJobV2('d9bjj03v6alc73ct56lg', '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",
        "## Desative todas as funções de mitigação e supressão de erros\n",
        "\n",
        "Você pode desativar todas as funções de mitigação e supressão de erros se, por exemplo, estiver pesquisando suas próprias técnicas de mitigação. Para fazer isso, defina `resilience_level = 0`.\n",
        "\n",
        "Exemplo:\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",
        "## Opções disponíveis\n",
        "\n",
        "A tabela a seguir apresenta as opções da versão mais recente do `qiskit-ibm-runtime`. Para ver versões anteriores das opções, acesse a [`qiskit-ibm-runtime` referência da API](/docs/api/qiskit-ibm-runtime) e selecione uma versão anterior.\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"`default_shots`\">\n",
        "    O número total de disparos a serem utilizados por circuito por configuração.\n",
        "\n",
        "    **Opções** : Número inteiro >= 0\n",
        "\n",
        "    **Padrão** : Nenhum\n",
        "\n",
        "    [`default_shots` Documentação da API](/docs/api/qiskit-ibm-runtime/options-estimator-options#default_shots)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`default_precision`\">\n",
        "    A precisão padrão a ser usada para qualquer chamada de ` PUB`run()` ` que não especifique uma.\n",
        "\n",
        "    **Opções** : Float > 0\n",
        "\n",
        "    **Padrão** : 0.015625 (1 / √4096)\n",
        "\n",
        "    [`default_precision` Documentação da API](/docs/api/qiskit-ibm-runtime/options-estimator-options#default_precision)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`dynamical_decoupling`\">\n",
        "    Controle as configurações de mitigação de erros de desacoplamento dinâmico.\n",
        "\n",
        "    [`dynamical_decoupling` Documentação da API](/docs/api/qiskit-ibm-runtime/options-estimator-options#dynamical_decoupling)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`dynamical_decoupling.enable`\">\n",
        "        **Opções** : `True`, `False`\n",
        "\n",
        "        **Padrão** : `False`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.extra_slack_distribution`\">\n",
        "        **Opções** : `middle`, `edges`\n",
        "\n",
        "        **Padrão** : `middle`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.scheduling_method`\">\n",
        "        Opções: `asap`, `alap`\n",
        "        Padrão: `alap`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.sequence_type`\">\n",
        "        Opções: `XX`, `XpXm`, `XY4`\n",
        "        Padrão: `XX`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.skip_reset_qubits`\">\n",
        "        Opções: `True`, `False`\n",
        "        Padrão: `False`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`environment`\">\n",
        "    [`environment` Documentação da API](/docs/api/qiskit-ibm-runtime/options-estimator-options#environment)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`environment.callback`\">\n",
        "        Função chamável que recebe `Job ID` e `Job result`.\n",
        "\n",
        "        **Opções** : Nenhuma\n",
        "\n",
        "        **Padrão** : Nenhum\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.job_tags`\">\n",
        "        Lista de tags.\n",
        "\n",
        "        **Opções** : Nenhuma\n",
        "\n",
        "        **Padrão** : Nenhum\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.log_level`\">\n",
        "        **Opções** : DEBUG, INFO, WARNING, ERROR, CRITICAL\n",
        "\n",
        "        **Padrão** : AVISO\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.private`\">\n",
        "        **Opções** : `True`, `False`\n",
        "\n",
        "        **Padrão** : `False`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`execution`\">\n",
        "    [`execution` Documentação da API](/docs/api/qiskit-ibm-runtime/options-estimator-options#execution)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`execution.init_qubits`\">\n",
        "        Se os qubits devem ser reinicializados para o estado fundamental a cada disparo.\n",
        "\n",
        "        **Opções** : `True`, `False`\n",
        "\n",
        "        **Padrão** : `True`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`execution.rep_delay`\">\n",
        "        O intervalo entre uma medição e o circuito quântico subsequente.\n",
        "\n",
        "        **Opções** : Valor na faixa fornecida por `backend.rep_delay_range`\n",
        "\n",
        "        **Padrão** : Definido por `backend.default_rep_delay`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`max_execution_time`\">\n",
        "    Limita o tempo de execução de uma tarefa, em segundos. Consulte o guia [sobre o tempo máximo de execução](/docs/guides/max-execution-time) para obter mais detalhes.\n",
        "\n",
        "    **Opções** : Número inteiro de segundos no intervalo \\[de] 1 a 10.800\n",
        "\n",
        "    **Padrão** : 10800 (3 horas)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`resilience`\">\n",
        "    Opções avançadas de resiliência para ajustar a estratégia de resiliência.\n",
        "\n",
        "    [`resilience` Documentação da API](/docs/api/qiskit-ibm-runtime/options-estimator-options#resilience)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning`\">\n",
        "        Opções para o ruído da camada de aprendizagem.\n",
        "\n",
        "        [`resilience.layer_noise_learning` Documentação da 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",
        "        **Opções** : \\[lista] de 2 a 10 valores no intervalo \\[de] 0 a 200\n",
        "\n",
        "        **Padrão** : `(0, 1, 2, 4, 16, 32)`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning.max_layers_to_learn`\">\n",
        "        **Opções** : Nenhuma, Número inteiro >= 1\n",
        "\n",
        "        **Padrão** : `4`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning.num_randomizations`\">\n",
        "        **Opções** : Número inteiro >= 1\n",
        "\n",
        "        **Padrão** : `32`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning.shots_per_randomization`\">\n",
        "        **Opções** : Número inteiro >= 1\n",
        "\n",
        "        **Padrão** : `128`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_model`\">\n",
        "        **Opções** : `NoiseLearnerResult`, `Sequence[LayerError]`\n",
        "\n",
        "        **Padrão** : Nenhum\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_mitigation`\">\n",
        "        **Opções** : `True`, `False`\n",
        "\n",
        "        **Padrão** : `True`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_noise_learning`\">\n",
        "        Opções para o aprendizado do ruído de medição.\n",
        "\n",
        "        [`resilience.measure_noise_learning` Documentação da API](/docs/api/qiskit-ibm-runtime/options-measure-noise-learning-options)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_noise_learning.num_randomizations`\">\n",
        "        **Opções** : Número inteiro >= 1\n",
        "\n",
        "        **Padrão** : `32`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_noise_learning.shots_per_randomization`\">\n",
        "        **Opções** : Inteiro, `auto`\n",
        "\n",
        "        **Padrão** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec_mitigation`\">\n",
        "        **Opções** : `True`, `False`\n",
        "\n",
        "        **Padrão** : `False`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec`\">\n",
        "        Opções de mitigação de erros por cancelamento probabilístico.\n",
        "\n",
        "        [`resilience.pec` Documentação da API](/docs/api/qiskit-ibm-runtime/options-pec-options)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec.max_overhead`\">\n",
        "        **Opções** : `None`, Número inteiro >= 1\n",
        "\n",
        "        **Padrão** : `100`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec.noise_gain`\">\n",
        "        **Opções** : `auto`, número real no intervalo \\[0, 1]\n",
        "\n",
        "        **Padrão** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne_mitigation`\">\n",
        "        **Opções** : `True`, `False`\n",
        "\n",
        "        **Padrão** : `False`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne`\">\n",
        "        [`resilience.zne` Documentação da API](/docs/api/qiskit-ibm-runtime/options-zne-options)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.amplifier`\">\n",
        "        **Opções** : `gate_folding`, `gate_folding_front`, `gate_folding_back`, `pea`\n",
        "\n",
        "        **Padrão** : `gate_folding`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.extrapolated_noise_factors`\">\n",
        "        **Opções** : Lista de flutuadores\n",
        "\n",
        "        **Padrão** : `[0, *noise_factors]`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.extrapolator`\">\n",
        "        **Opções** : Uma ou mais das seguintes opções: `exponential`, `linear`, `double_exponential`, `polynomial_degree_(1 <= k <= 7)`, `fallback`\n",
        "\n",
        "        **Padrão** : `(exponential, linear)`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.noise_factors`\">\n",
        "        **Opções** : Lista de números de tipo float; cada número deve ser maior ou igual a 1\n",
        "\n",
        "        **Padrão** : `(1, 1.5, 2)` para `PEA`, e `(1, 3, 5)` caso contrário\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`resilience_level`\">\n",
        "    Qual o nível de resiliência necessário para lidar com erros? Níveis mais altos geram resultados mais precisos, mas aumentam o tempo de processamento. Consulte a seção [sobre níveis de resiliência](/docs/guides/estimator-noise-management#resilience) no tópico “Gerenciamento de ruído” para saber mais.\n",
        "\n",
        "    **Opções** : `0`, `1`, `2`\n",
        "\n",
        "    **Padrão** : `1`\n",
        "\n",
        "    [`resilience_level` Documentação da API](/docs/api/qiskit-ibm-runtime/options-estimator-options#resilience_level)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`seed_estimator`\">\n",
        "    **Opções** : Inteiro\n",
        "\n",
        "    **Padrão** : Nenhum\n",
        "\n",
        "    [`seed_estimator`](/docs/api/qiskit-ibm-runtime/options-estimator-options#seed_estimator)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`simulator`\">\n",
        "    Opções a serem passadas ao simular um backend\n",
        "\n",
        "    [`simulator` Documentação da API](/docs/api/qiskit-ibm-runtime/options-simulator-options)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`simulator.basis_gates`\">\n",
        "        **Opções** : Lista de nomes de portas básicas para as quais se deve realizar o desenrolamento\n",
        "\n",
        "        **Padrão** : O conjunto de todas as portas básicas suportadas pelo [simulador Qiskit Aer](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.AerSimulator.html)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`simulator.coupling_map`\">\n",
        "        **Opções** : Lista de interações direcionadas entre dois qubits\n",
        "\n",
        "        **Padrão** : Nenhum, o que implica a ausência de restrições de conectividade (conectividade total).\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`simulator.noise_model`\">\n",
        "        **Opções** : [Qiskit Aer NoiseModel](/docs/guides/build-noise-models) ou sua representação\n",
        "\n",
        "        **Padrão** : Nenhum\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`simulator.seed_simulator`\">\n",
        "        **Opções** : Inteiro\n",
        "\n",
        "        **Padrão** : Nenhum\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`twirling`\">\n",
        "    Opções de rotação\n",
        "\n",
        "    [`twirling` Documentação da API](/docs/api/qiskit-ibm-runtime/options-twirling-options)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`twirling.enable_gates`\">\n",
        "        **Opções** : Verdadeiro, Falso\n",
        "\n",
        "        **Padrão** : Falso\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.enable_measure`\">\n",
        "        **Opções** : Verdadeiro, Falso\n",
        "\n",
        "        **Padrão** : True\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.num_randomizations`\">\n",
        "        **Opções** : `auto`, Número inteiro >= 1\n",
        "\n",
        "        **Padrão** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.shots_per_randomization`\">\n",
        "        **Opções** : `auto`, Número inteiro >= 1\n",
        "\n",
        "        **Padrão** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.strategy`\">\n",
        "        **Opções** : `active`, `active-circuit`, `active-accum`, `all`\n",
        "\n",
        "        **Padrão** : `active-accum`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`experimental`\">\n",
        "    Opções experimentais, quando disponíveis.\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",
        "## Compatibilidade de recurso\n",
        "\n",
        "Certas funcionalidades de tempo de execução não podem ser utilizadas em conjunto em um único trabalho. Clique na guia correspondente para ver uma lista de recursos incompatíveis com o recurso selecionado:\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"Portas fracionárias\">\n",
        "    Incompatível com:\n",
        "\n",
        "    * Giro do portão\n",
        "    * PEA\n",
        "    * PEC\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"ZNE com dobra em porta\">\n",
        "    Pode não funcionar ao usar portas personalizadas. Incompatível com:\n",
        "\n",
        "    * PEA\n",
        "    * PEC\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"Giro do portão\">\n",
        "    Incompatível com:\n",
        "\n",
        "    * Portas fracionárias\n",
        "    * Alongamentos\n",
        "\n",
        "    Outras observações:\n",
        "\n",
        "    * A rotação da medição só pode ser aplicada a medições em terminais.\n",
        "    * Não funciona com entanglers que não sejam Clifford.\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"PEA\">\n",
        "    Incompatível com:\n",
        "\n",
        "    * Portas fracionárias\n",
        "    * ZNE com dobra em porta\n",
        "    * PEC\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"PEC\">\n",
        "    Incompatível com:\n",
        "\n",
        "    * Portas fracionárias\n",
        "    * ZNE com dobra em porta\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",
        "## Próximas etapas\n",
        "\n",
        "<Admonition type=\"tip\" title=\"Recomendações\">\n",
        "  * Veja mais detalhes sobre os `EstimatorV2` métodos na documentação [de referência da API do Estimator](/docs/api/qiskit-ibm-runtime/estimator-v2).\n",
        "  * Decida em que [modo de execução](/docs/guides/execution-modes) deseja executar sua tarefa.\n",
        "  * Saiba mais sobre [o gerenciamento de ruídos com o 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
}