{
  "cells": [
    {
      "cell_type": "markdown",
      "id": "c457f721-e66d-403e-84be-10b26863c86d",
      "metadata": {},
      "source": [
        "---\n",
        "title: \"Définir les options de l'estimateur\"\n",
        "description: \"Spécifiez les options lors de la création à l'aide de la primitive Estimator.\"\n",
        "---\n",
        "\n",
        "<span id=\"specify-estimator-options\" />\n",
        "\n",
        "# Définir les options de l'estimateur\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=\"Versions de package\">\n",
        "    Le code présenté sur cette page a été développé en tenant compte des exigences suivantes.\n",
        "    Nous vous recommandons d'utiliser ces versions ou des versions plus récentes.\n",
        "\n",
        "    ```\n",
        "    qiskit[all]~=2.5.1\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": [
        "Vous pouvez utiliser les options pour personnaliser la primitive Estimator. Si l'interface de la méthode `run()` des primitives est commune à toutes les implémentations, leurs options, elles, ne le sont pas. Consultez la documentation de l'API pour plus d'informations sur les [`qiskit.primitives.BaseEstimatorV2`](/docs/api/qiskit/qiskit.primitives.BaseEstimatorV2) options [`qiskit_aer.BaseEstimatorV2`](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.primitives.EstimatorV2.html) et.\n",
        "\n",
        "Remarques :\n",
        "\n",
        "<Admonition type=\"note\" title=\"Remarques concernant la spécification des options dans les primitives de l'Estimator\">\n",
        "  * Vous pouvez consulter les options disponibles et modifier leurs valeurs pendant ou après l'initialisation d'Estimator.\n",
        "  * Utilisez la `update()` méthode pour appliquer les modifications à `options` l'attribut.\n",
        "  * `Unset` Si vous ne spécifiez pas de valeur pour une option, celle-ci se voit attribuer la valeur spéciale et les paramètres par défaut du serveur sont utilisés.\n",
        "  * `options` L'attribut est de `dataclass` type Python.  Vous pouvez utiliser la méthode intégrée `asdict` pour le convertir en dictionnaire.\n",
        "</Admonition>\n",
        "\n",
        "<span id=\"pass-options\" />\n",
        "\n",
        "<span id=\"set-estimator-options\" />\n",
        "\n",
        "## Définir les options de l'estimateur\n",
        "\n",
        "Vous pouvez définir des options lors de l'initialisation d'Estimator, après l'avoir initialisé, ou (uniquement pour `precision` ) dans la `run()` méthode.\n",
        "\n",
        "<span id=\"primitive-initialization\" />\n",
        "\n",
        "### Initialisation des types primitifs\n",
        "\n",
        "Lors de l'initialisation d'Estimator, vous pouvez lui passer une instance de la classe d'options ou un dictionnaire; il en fera alors une copie. Ainsi, la modification du dictionnaire d'origine ou de l'instance d'options n'a aucune incidence sur les options associées à la primitive.\n",
        "\n",
        "<span id=\"options-class\" />\n",
        "\n",
        "#### Cours sur les options\n",
        "\n",
        "Lors de la création d'une instance de la `EstimatorV2` classe, vous pouvez lui passer une instance de la classe d'options. Ces options seront alors prises en compte lorsque vous utiliserez `run()` pour effectuer le calcul.  Indiquez les options sous ce format : `options.option.sub-option.sub-sub-option = choice`.  Exemple : `options.dynamical_decoupling.enable = True`\n",
        "\n",
        "Exemple :\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",
        "#### Dictionnaire\n",
        "\n",
        "Vous pouvez définir les options sous forme de dictionnaire lors de l'initialisation d'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",
        "### Options de mise à jour après l'initialisation\n",
        "\n",
        "Vous pouvez définir les options sous ce format : `estimator.options.option.sub-option.sub-sub-option = choice` pour bénéficier de la saisie semi-automatique, ou utiliser la `update()` méthode pour effectuer des mises à jour en masse.\n",
        "\n",
        "Il n'est pas nécessaire d'instancier la `EstimatorV2` classe d'options ([`EstimatorOptions`](/docs/api/qiskit-ibm-runtime/options-estimator-options)) si vous définissez les options après avoir initialisé l'élément primitif.\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éthode Run()\n",
        "\n",
        "Les seules valeurs que vous pouvez transmettre à `run()` sont celles définies dans l'interface.  C'est-à-dire, `precision` pour Estimator. Cela remplace toute valeur définie pour `default_precision` lors de l'exécution en cours.\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "id": "c0606f38-2bed-4b56-8202-708669e5ea66",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<RuntimeJobV2('d9mqa0g8csec73fagtl0', '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",
        "### Cas particulier : la précision\n",
        "\n",
        "La `EstimatorV2.run` méthode accepte deux arguments : une liste de PUB, dont chacun peut spécifier une valeur de précision propre à l' PUB, et un argument de mot-clé « precision ». Ces valeurs de précision font partie de l'interface d'exécution de l'Estimator et sont indépendantes des options de l'Estimator d'exécution.  Elles ont priorité sur toutes les valeurs spécifiées en tant qu'options afin de respecter l'abstraction de l'Estimator.\n",
        "\n",
        "Cependant, si `precision` n'est spécifié par aucune PUB ni dans l'argument mot-clé run (ou s'ils sont tous `None` ), puis la valeur de précision des options est utilisée, notamment `default_precision`.\n",
        "\n",
        "<Admonition type=\"note\">\n",
        "  Ces paramètres de précision servent uniquement à définir la précision *souhaitée*; il n'est pas garanti que les résultats atteignent la précision spécifiée.\n",
        "</Admonition>\n",
        "\n",
        "Notez que les options de l'estimateur comprennent à la fois `default_shots` et `default_precision`. Cependant, comme la fonction « gate-twirling » est activée par défaut, le produit de `num_randomizations` et `shots_per_randomization` l'emporte sur ces deux options.\n",
        "\n",
        "Plus précisément, pour toute PUB d'Estimator :\n",
        "\n",
        "1. Si l' PUB e la précision, utilisez cette valeur.\n",
        "2. Si l'argument « precision » est spécifié dans `run`, utilisez cette valeur.\n",
        "3. Si `twirling` cette option est activée (valeur par défaut : True), le produit de `num_randomizations` et `shots_per_randomization`, tel que spécifié par [les `twirling` options](/docs/api/qiskit-ibm-runtime/options-twirling-options), est utilisé.\n",
        "4. Si `estimator.options.default_shots` est spécifié, utilisez cette valeur pour contrôler la quantité de données.\n",
        "5. Si `estimator.options.default_precision` est spécifié, utilisez cette valeur.\n",
        "\n",
        "Par exemple, si la précision est spécifiée aux quatre endroits, c'est celle qui a la priorité la plus élevée (la précision spécifiée dans l' PUB ) qui est utilisée.\n",
        "\n",
        "<Admonition type=\"note\">\n",
        "  Bien que la précision spécifiée dans l' PUB et dans `run` ait une priorité plus élevée, la tâche échoue si `twirling` est activé et que le produit de `num_randomizations` et `shots_per_randomization` est inférieur au nombre de tirs nécessaires pour atteindre cette précision. `num_randomizations`Dans ce scénario, `EstimatorV2` n'est pas en mesure de répartir les prises de vue entre les éléments spécifiés.\n",
        "</Admonition>\n",
        "\n",
        "<Admonition type=\"note\">\n",
        "  La précision est inversement proportionnelle à l'utilisation.  En d'autres termes, plus la précision est faible, plus l'exécution nécessite de temps de calcul sur le QPU.\n",
        "</Admonition>\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "id": "bf02c107-226e-443a-ab4c-dfd3246ada2c",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "text/plain": [
              "<RuntimeJobV2('d9mqa2o8csec73fagtpg', '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",
        "## Désactivez toutes les fonctions d'atténuation et de suppression des erreurs\n",
        "\n",
        "Vous pouvez désactiver toutes les fonctions d'atténuation et de suppression des erreurs si, par exemple, vous menez des recherches sur vos propres techniques d'atténuation. Pour ce faire, définissez `resilience_level = 0`.\n",
        "\n",
        "Exemple :\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",
        "## Options disponibles\n",
        "\n",
        "Le tableau suivant présente les options de la dernière version de `qiskit-ibm-runtime`. Pour consulter les versions antérieures de cette option, rendez-vous sur [la `qiskit-ibm-runtime` documentation de l'API](/docs/api/qiskit-ibm-runtime) et sélectionnez une version antérieure.\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"`default_shots`\">\n",
        "    Le nombre total de tirs à utiliser par circuit et par configuration.\n",
        "\n",
        "    **Valeurs possibles** : nombre entier >= 0\n",
        "\n",
        "    **Par défaut** : Aucun\n",
        "\n",
        "    [`default_shots` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-estimator-options#default_shots)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`default_precision`\">\n",
        "    La précision par défaut à utiliser pour tout appel de la fonction ` PUB`run()` ` qui n'en spécifie pas.\n",
        "\n",
        "    **Options** : Flottant > 0\n",
        "\n",
        "    **Valeur par défaut** : 0.015625 (1 / racine carrée de 4096)\n",
        "\n",
        "    [`default_precision` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-estimator-options#default_precision)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`dynamical_decoupling`\">\n",
        "    Gérer les paramètres de réduction des erreurs de découplage dynamique.\n",
        "\n",
        "    [`dynamical_decoupling` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-estimator-options#dynamical_decoupling)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`dynamical_decoupling.enable`\">\n",
        "        **Choix** : `True`, `False`\n",
        "\n",
        "        **Par défaut** : `False`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.extra_slack_distribution`\">\n",
        "        **Choix** : `middle`, `edges`\n",
        "\n",
        "        **Par défaut** : `middle`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.scheduling_method`\">\n",
        "        Options : `asap`, `alap`\n",
        "        Par défaut : `alap`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.sequence_type`\">\n",
        "        Options : `XX`, `XpXm`, `XY4`\n",
        "        Par défaut : `XX`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`dynamical_decoupling.skip_reset_qubits`\">\n",
        "        Options : `True`, `False`\n",
        "        Par défaut : `False`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`environment`\">\n",
        "    [`environment` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-estimator-options#environment)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`environment.callback`\">\n",
        "        Fonction appelable qui reçoit `Job ID` et `Job result`.\n",
        "\n",
        "        **Options** : Aucune\n",
        "\n",
        "        **Par défaut** : Aucun\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.job_tags`\">\n",
        "        Liste des balises.\n",
        "\n",
        "        **Options** : Aucune\n",
        "\n",
        "        **Par défaut** : Aucun\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.log_level`\">\n",
        "        **Options** : DEBUG, INFO, WARNING, ERROR, CRITICAL\n",
        "\n",
        "        **Par défaut** : AVERTISSEMENT\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`environment.private`\">\n",
        "        **Choix** : `True`, `False`\n",
        "\n",
        "        **Par défaut** : `False`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`execution`\">\n",
        "    [`execution` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-estimator-options#execution)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`execution.init_qubits`\">\n",
        "        Faut-il ramener les qubits à l'état fondamental à chaque impulsion?\n",
        "\n",
        "        **Choix** : `True`, `False`\n",
        "\n",
        "        **Par défaut** : `True`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`execution.rep_delay`\">\n",
        "        Le délai entre une mesure et le circuit quantique qui suit.\n",
        "\n",
        "        **Options** : Valeur comprise dans la plage fournie par `backend.rep_delay_range`\n",
        "\n",
        "        **Par défaut** : fourni par `backend.default_rep_delay`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`max_execution_time`\">\n",
        "    Définit la durée maximale d'exécution d'une tâche, en secondes. Pour plus de détails, consultez le guide [sur la durée maximale d'exécution](/docs/guides/max-execution-time).\n",
        "\n",
        "    **Valeurs possibles** : nombre entier exprimant le nombre de secondes\\[,] compris entre 1 et 10 800\n",
        "\n",
        "    **Valeur par défaut** : 10800 (3 heures)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`resilience`\">\n",
        "    Options avancées de résilience permettant d'affiner la stratégie de résilience.\n",
        "\n",
        "    [`resilience` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-estimator-options#resilience)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning`\">\n",
        "        Options pour l'apprentissage du bruit de couche.\n",
        "\n",
        "        [`resilience.layer_noise_learning` Documentation de l'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",
        "        **Options** : \\[liste] de 2 à 10 valeurs comprises entre \\[0 et 200]\n",
        "\n",
        "        **Par défaut** : `(0, 1, 2, 4, 16, 32)`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning.max_layers_to_learn`\">\n",
        "        **Options** : Aucune, nombre entier >= 1\n",
        "\n",
        "        **Par défaut** : `4`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning.num_randomizations`\">\n",
        "        **Valeurs possibles** : nombre entier >= 1\n",
        "\n",
        "        **Par défaut** : `32`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_learning.shots_per_randomization`\">\n",
        "        **Valeurs possibles** : nombre entier >= 1\n",
        "\n",
        "        **Par défaut** : `128`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.layer_noise_model`\">\n",
        "        **Choix** : `NoiseLearnerResult`, `Sequence[LayerError]`\n",
        "\n",
        "        **Par défaut** : Aucun\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_mitigation`\">\n",
        "        **Choix** : `True`, `False`\n",
        "\n",
        "        **Par défaut** : `True`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_noise_learning`\">\n",
        "        Options pour l'apprentissage du bruit de mesure.\n",
        "\n",
        "        [`resilience.measure_noise_learning` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-measure-noise-learning-options)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_noise_learning.num_randomizations`\">\n",
        "        **Valeurs possibles** : nombre entier >= 1\n",
        "\n",
        "        **Par défaut** : `32`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.measure_noise_learning.shots_per_randomization`\">\n",
        "        **Valeurs possibles** : nombre entier, `auto`\n",
        "\n",
        "        **Par défaut** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec_mitigation`\">\n",
        "        **Choix** : `True`, `False`\n",
        "\n",
        "        **Par défaut** : `False`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec`\">\n",
        "        Options probabilistes d'atténuation des erreurs.\n",
        "\n",
        "        [`resilience.pec` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-pec-options)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec.max_overhead`\">\n",
        "        **Valeurs possibles** : `None`, nombre entier >= 1\n",
        "\n",
        "        **Par défaut** : `100`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.pec.noise_gain`\">\n",
        "        **Valeurs possibles** : `auto`, nombre à virgule flottante compris entre \\[0 et 1]\n",
        "\n",
        "        **Par défaut** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne_mitigation`\">\n",
        "        **Choix** : `True`, `False`\n",
        "\n",
        "        **Par défaut** : `False`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne`\">\n",
        "        [`resilience.zne` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-zne-options)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.amplifier`\">\n",
        "        **Choix** : `gate_folding`, `gate_folding_front`, `gate_folding_back`, `pea`\n",
        "\n",
        "        **Par défaut** : `gate_folding`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.extrapolated_noise_factors`\">\n",
        "        **Options** : Liste des flottants\n",
        "\n",
        "        **Par défaut** : `[0, *noise_factors]`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.extrapolator`\">\n",
        "        **Choix** : un ou plusieurs des éléments suivants : `exponential`, `linear`, `double_exponential`, `polynomial_degree_(1 <= k <= 7)`, `fallback`\n",
        "\n",
        "        **Par défaut** : `(exponential, linear)`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`resilience.zne.noise_factors`\">\n",
        "        **Options** : liste de nombres à virgule flottante; chaque nombre doit être supérieur ou égal à 1\n",
        "\n",
        "        **Par défaut** : `(1, 1.5, 2)` pour `PEA`, et `(1, 3, 5)` sinon\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`resilience_level`\">\n",
        "    Quel niveau de résilience faut-il mettre en place pour faire face aux erreurs? Des niveaux plus élevés donnent des résultats plus précis, mais au prix d'un temps de traitement plus long. Pour en savoir plus, consultez la section [consacrée aux niveaux de résilience](/docs/guides/estimator-noise-management#resilience) dans la rubrique « Gestion du bruit ».\n",
        "\n",
        "    **Options** : `0`, `1`, `2`\n",
        "\n",
        "    **Par défaut** : `1`\n",
        "\n",
        "    [`resilience_level` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-estimator-options#resilience_level)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`seed_estimator`\">\n",
        "    **Valeurs possibles** : nombre entier\n",
        "\n",
        "    **Par défaut** : Aucun\n",
        "\n",
        "    [`seed_estimator`](/docs/api/qiskit-ibm-runtime/options-estimator-options#seed_estimator)\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`simulator`\">\n",
        "    Options à passer lors de la simulation d'un backend\n",
        "\n",
        "    [`simulator` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-simulator-options)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`simulator.basis_gates`\">\n",
        "        **Options** : liste des noms de portes de base vers lesquelles effectuer le dépliage\n",
        "\n",
        "        **Par défaut** : l'ensemble de toutes les portes de base prises en charge par [le simulateur Qiskit Aer](https://qiskit.github.io/qiskit-aer/stubs/qiskit_aer.AerSimulator.html)\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`simulator.coupling_map`\">\n",
        "        **Choix** : Liste des interactions dirigées entre deux qubits\n",
        "\n",
        "        **Par défaut** : Aucune, ce qui signifie qu'il n'y a aucune contrainte de connectivité (connectivité totale).\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`simulator.noise_model`\">\n",
        "        **Options** : [Qiskit Aer NoiseModel](/docs/guides/build-noise-models) ou sa représentation\n",
        "\n",
        "        **Par défaut** : Aucun\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`simulator.seed_simulator`\">\n",
        "        **Valeurs possibles** : nombre entier\n",
        "\n",
        "        **Par défaut** : Aucun\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`twirling`\">\n",
        "    Options de rotation\n",
        "\n",
        "    [`twirling` Documentation de l'API](/docs/api/qiskit-ibm-runtime/options-twirling-options)\n",
        "\n",
        "    <Accordion>\n",
        "      <AccordionItem title=\"`twirling.enable_gates`\">\n",
        "        **Réponses** : Vrai, Faux\n",
        "\n",
        "        **Par défaut** : False\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.enable_measure`\">\n",
        "        **Réponses** : Vrai, Faux\n",
        "\n",
        "        **Par défaut** : True\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.num_randomizations`\">\n",
        "        **Valeurs possibles** : `auto`, nombre entier >= 1\n",
        "\n",
        "        **Par défaut** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.shots_per_randomization`\">\n",
        "        **Valeurs possibles** : `auto`, nombre entier >= 1\n",
        "\n",
        "        **Par défaut** : `auto`\n",
        "      </AccordionItem>\n",
        "\n",
        "      <AccordionItem title=\"`twirling.strategy`\">\n",
        "        **Choix** : `active`, `active-circuit`, `active-accum`, `all`\n",
        "\n",
        "        **Par défaut** : `active-accum`\n",
        "      </AccordionItem>\n",
        "    </Accordion>\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"`experimental`\">\n",
        "    Options expérimentales, lorsqu'elles sont disponibles.\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",
        "## Compatibilité des fonctions\n",
        "\n",
        "Certaines fonctionnalités d'exécution ne peuvent pas être utilisées conjointement dans une même tâche. Cliquez sur l'onglet correspondant pour afficher la liste des fonctionnalités incompatibles avec celle que vous avez sélectionnée :\n",
        "\n",
        "<Accordion>\n",
        "  <AccordionItem title=\"Portes fractionnaires\">\n",
        "    Incompatible avec :\n",
        "\n",
        "    * Tourner la barrière\n",
        "    * PEA\n",
        "    * PEC\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"ZNE à rabat\">\n",
        "    Cela pourrait ne pas fonctionner si vous utilisez des portes personnalisées. Incompatible avec :\n",
        "\n",
        "    * PEA\n",
        "    * PEC\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"Tournoiement de la barrière\">\n",
        "    Incompatible avec :\n",
        "\n",
        "    * Portes fractionnaires\n",
        "    * Étirements\n",
        "\n",
        "    Remarques supplémentaires :\n",
        "\n",
        "    * La rotation des mesures ne peut s'appliquer qu'aux mesures de terminaison.\n",
        "    * Ne fonctionne pas avec les entangleurs autres que Clifford.\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"PEA\">\n",
        "    Incompatible avec :\n",
        "\n",
        "    * Portes fractionnaires\n",
        "    * ZNE à rabat\n",
        "    * PEC\n",
        "  </AccordionItem>\n",
        "\n",
        "  <AccordionItem title=\"PEC\">\n",
        "    Incompatible avec :\n",
        "\n",
        "    * Portes fractionnaires\n",
        "    * ZNE à rabat\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",
        "## Etapes suivantes\n",
        "\n",
        "<Admonition type=\"tip\" title=\"Recommandations\">\n",
        "  * Pour plus d'informations sur ces `EstimatorV2` méthodes, consultez [la documentation](/docs/api/qiskit-ibm-runtime/estimator-v2) de l'API Estimator.\n",
        "  * Choisissez [le mode d'exécution](/docs/guides/execution-modes) dans lequel vous souhaitez exécuter votre tâche.\n",
        "  * Découvrez [la gestion du](/docs/guides/estimator-noise-management) bruit avec Estimator.\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
}