{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Programmation Quantique (suite)\n", "\n", "### Nicolas Ollinger et Ioan Todinca\n", "\n", "\n", "#### M2 info, S9 2024/2025" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "## Circuits quantiques ?\n", "\n", "Les ordinateurs quantiques d'aujourd'hui (ou plutôt de demain ?) s'utilisent comme des _coprocesseurs_ : on y fait subir une transformation unitaire à un registre de qubits initialement tous à zéro avant d'effectuer des mesures sur son état.\n", "\n", "Les transformations unitaires sont codées sous forme de circuits et la programmation quantique ressemble à de la programmation assembleur.\n", "\n", "La programmation quantique propose une nouvelle forme de parallélisme." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "\n", "### Hello qiskit" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from qiskit import QuantumCircuit, transpile\n", "from qiskit.providers.basic_provider import BasicProvider\n", "from qiskit_aer import UnitarySimulator\n", "from qiskit.visualization import plot_histogram\n", "import qiskit.quantum_info as qi\n", "from math import sqrt\n", "import numpy as np\n", "\n", "# Un simulateur de circuit complet\n", "sim = BasicProvider().get_backend('basic_simulator')\n", "\n", "# Un simulateur calculant la matrice de transformation\n", "usim = UnitarySimulator()\n", "\n", "# Afficher un circuit\n", "def draw_circ(circ): display(circ.draw(output='mpl'))\n", " \n", "# Calculer la matrice d'un circuit\n", "def mat_circ(circ): return usim.run(circ).result().get_unitary()\n", "\n", "def show(circ):\n", " draw_circ(circ)\n", " display(mat_circ(circ).draw('latex'))" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Circuits quantiques" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Circuits quantiques\n", "\n", "Un circuit quantique est composé d'un nombre constant de **fils** qui représentent des états quantiques d'un système discret fini. Les **fils** sont les **qubits**.\n", "\n", "Des **portes quantiques** permettent d'effectuer des opérations sur ces états jusqu'à obtenir un état final.\n", "\n", "Seules des **mesures** de ces états permettent d'obtenir une information (partielle) en sortie.\n", "\n", "Les **qubits** sont tous initialisés à la valeur $\\left|0\\right>$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Représentations et calculs\n", "\n", "Pour raisonner sur ces objets circuits et les **transformations unitaires** qu'ils réalisent, plusieurs outils sont à notre disposition :\n", " - la représentation matricielle des circuits (de dimension $2^n$ pour $n$ qubits !) ;\n", " - le calcul avec la notation de Dirac $\\left<\\phi\\middle|\\psi\\right>$ ;\n", " - les outils graphiques du ZX-calcul !" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Un qubit\n", "\n", "Un registre de mémoire quantique est un système quantique discret fini constitué de qubits.\n", "\n", "Un bit quantique est une superposition de $0$ et de $1$ :\n", "$$\n", "\\alpha \\left|0\\right> + \\beta \\left|1\\right> \\quad\\mbox{avec}\\quad \\alpha, \\beta \\in \\mathbb{C}\n", "\\quad\\mbox{tels que}\\quad |\\alpha|^2+|\\beta|^2 = 1\n", "$$\n", "\n", "Par exemple $\\left|0\\right>$ ou encore $\\frac{1}{\\sqrt{2}}\\left(\\left|0\\right>+\\left|1\\right>\\right)$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Des qubits\n", "\n", "Un registre de $n$ qubits est une superposition de chacun des vecteurs de bits possibles, chacun muni d'une amplitude.\n", "\n", "$$\n", "\\left|\\varphi\\right> = \\sum_{x\\in\\{0,1\\}^n} \\alpha_x\\left|x\\right> \\quad\\mbox{tels que}\\quad \\sqrt{\\sum_{x\\in\\{0,1\\}^n} |\\alpha_x|^2} = 1\n", "$$\n", "\n", "Par exemple $\\frac12\\left|1000\\right>+\\frac12\\left|0100\\right>+\\frac12\\left|0010\\right>+\\frac12\\left|0001\\right>$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Produit tensoriel\n", "\n", "La composition de deux registres quantiques s'obtient par l'opérateur bilinéaire de produit tensoriel $\\otimes$ qui satisfait $\\left|x\\right> \\otimes \\left|y\\right> = \\left|xy\\right>$.\n", "\n", "$$\n", "\\left|1\\right> \\otimes \\frac{1}{\\sqrt{2}}\\left(\\left|0\\right>+\\left|1\\right>\\right) =\n", "\\frac{1}{\\sqrt{2}}\\left(\\left|10\\right>+\\left|11\\right>\\right)\n", "$$\n", "\n", "Contrairement au cas classique, tout registre n'est pas décomposable en sous-registres ! \n", "\n", "Exemple d'état intriqué : $\\frac{1}{\\sqrt{2}}\\left(\\left|00\\right>+\\left|11\\right>\\right)$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Mesure quantique (observation)\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Mesure quantique d'un qubit particulier\n", "\n", "Partant d'un état $\\left|\\varphi\\right> = \\sum_x \\alpha_x\\left|x\\right>$, si on mesure le qubit numéro $i$, on observe la valeur $r$ avec la probabilité $p_r$ et le système change d'état :\n", "\n", "$$\n", "\\sum_{x\\in\\left\\{0,1\\right\\}^n} \\alpha_x\\left|x\\right> \\underset{\\phantom{blop}p_r\\phantom{blop}}{\\longrightarrow}\n", "\\frac{1}{\\sqrt{p_r}} \\sum_{x\\in\\left\\{0,1\\right\\}^n | x_i = r} \\alpha_x\\left|x\\right>\n", "$$\n", " \n", "$$\n", "\\mbox{avec}\\quad p_r = \\sum_{x\\in\\left\\{0,1\\right\\}^n | x_i = r}|\\alpha_x|^2\n", "$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Évolution unitaire\n", "\n", "En l'absence de mesure, lorsqu'il est isolé, l'état d'un système quantique évolue de manière unitaire.\n", "\n", "$$\n", "U : \\mathbb{C}^{\\{0,1\\}^n} \\rightarrow \\mathbb{C}^{\\{0,1\\}^n}\n", "$$\n", "\n", "1. $U$ est linéaire : $$\n", "U\\left(\\alpha\\left|\\varphi\\right>+\\beta\\left|\\psi\\right>\\right) = \\alpha U\\left|\\varphi\\right>+\\beta U\\left|\\psi\\right>\\quad;\n", "$$\n", "2. $U$ préserve la norme : $\\left\\| U\\left|\\varphi\\right> \\right\\| = \\left\\| \\left|\\varphi\\right> \\right\\|$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Porte quantique\n", "\n", "Un circuit quantique code une transformation unitaire obtenue par composition de portes quantiques elles aussi unitaires, donc réversibles, avec autant de qubits en entrée qu'en sortie.\n", "- composition séquentielle : produit de matrices ;\n", "- composition parallèle : produit tensoriel." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Portes sur 1 qubit\n", "\n", "$$\n", "\\begin{array}{clclcl}\n", "X :& \\left|0\\right> \\mapsto \\left|1\\right> & H :& \\left|0\\right> \\mapsto \\frac{\\left|0\\right>+\\left|1\\right>}{\\sqrt2} & R_\\theta :& \\left|0\\right> \\mapsto \\left|0\\right>\\\\\n", " & \\left|1\\right> \\mapsto \\left|0\\right> & & \\left|1\\right> \\mapsto \\frac{\\left|0\\right>-\\left|1\\right>}{\\sqrt2} & & \\left|1\\right> \\mapsto e^{i\\theta}\\left|1\\right> \\\\\n", "\\end{array}\n", "$$" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAKIAAABuCAYAAACk2MjUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAEgElEQVR4nO3dz0vbdxzH8VfSssYf8VBdl4mu1dmw2poIisPDGDo9uOJp0EspPbijWJiYP6CXLtBT6cXjTpKeBjNXWRHZIBIEcVJBiGj1y/iiF611RL87bbA27TRav+98eT6Ofj/x8z48+X4S9Yshz/M8AT4L+z0AIBEijCBEmECIMIEQYQIhwgRChAmECBMIESYQIkwgRJhAiDCBEGECIcIEQoQJhAgTCBEmECJMIESYQIgwgRBhAiHCBEKECYQIEwgRJhAiTCBEmECIMIEQYQIhwgRChAmECBMIESYQIkwgRJhAiDCBEGHCRb8HCDLP86SDA7/HOJlLlxQKhc59W0L8kA4OVLxz3+8pTuTis5+kSOTc9+VohgmECBMIESYQIkwgRJhAiDCBEGECIcIEQoQJhAgTCBEmECJMIESYELgQXddVKpVSW1ubIpGImpub9eDBA+3t7WlkZEShUEhPnz71e0y8IVB/BrawsKChoSE5jqOamhq1t7drc3NTT5480erqqra3tyVJnZ2d/g56Qs/dPzX426/6sT2hHz7/ouSaj355pm+vfKqfv/zqnKc7G4G5I7quq+HhYTmOo/HxcW1tbSmfz8txHKXTaWWzWeVyOYVCISUSCb/HxRsCE+LY2Jg2NjY0Ojqqx48fKxqN/nstlUopmUyqWCzq2rVrqqur83FSlBKIEJeXl5XJZNTQ0KBHjx6VXNPV1SVJSiaT5zkajikQ7xGnpqZ0dHSku3fvqra2tuSaqqoqSZUd4qvDQ7mV9gzMMQUixJmZGUlSX1/fO9dsbGxIquwQH75Y0sMXS36P8UEEIsS1tTVJ0tWrV0teLxaLmpubk3S6ELu7u+U4zrHXV4XD+qOzt+z93vT9Z636rrG55LWh35+fyR7xeFz7R0dlvTYWi2l+fr6s1wYixL29PUnS/v5+yeuZTEau6yoajaqlpaXsfRzH0cuXL4+9vvrCBamz7O3e0lZbq28+/uTsvmEJm5ubenV4+EH3KCUQIcZiMe3s7Cifz6u39793oK2tLU1MTEiSEonEqZ7ZjcViJ1pfFa68z4KNjY2nuiOWKxAhDgwMaHl5Wel0WoODg4rH45KkXC6ne/fuyXVdSaf/QfZJjx3v9euKe655ZWVFIZ5rLk8qlVJ9fb3W19d18+ZNdXR06Pr16+rp6VFra6v6+/slVfYHlaALRIhNTU2anZ3V7du3FYlEVCgUdPnyZU1OTiqbzWplZUUSIVoWiKNZkm7cuKHp6em3vr67u6tCoaBwOKxbt275MBmOIzAhvsvS0pI8z1M8Hld1dbXf45Tl64Yr+mv4znvX/N916wJxNL/P4uKiJI5l6wgRJhAiTAj8e8R/fg8N2wJ/R0RlIESYQIgwgRBhAiHCBEKECYQIEwgRJhAiTCBEmECIMCHkeZ7n9xBBxT+FPD5ChAkczTCBEGECIcIEQoQJhAgTCBEmECJMIESYQIgwgRBhAiHCBEKECYQIEwgRJhAiTCBEmECIMIEQYQIhwgRChAmECBMIESYQIkwgRJhAiDDhb1+BCUFmootuAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$$\n", "\n", "\\begin{bmatrix}\n", "\\frac{\\sqrt{2}}{2} & \\frac{\\sqrt{2}}{2} \\\\\n", " \\frac{\\sqrt{2}}{2} & - \\frac{\\sqrt{2}}{2} \\\\\n", " \\end{bmatrix}\n", "$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from math import pi\n", "circuit = QuantumCircuit(1)\n", "# remplacer ici le x par h ou t (=r(pi/4)) ou sx (sqrt(x))\n", "circuit.h(0)\n", "show(circuit)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Portes contrôlées\n", "\n", "$$\n", "\\begin{array}{cl}\n", "CX :& \\left|00\\right> \\mapsto \\left|00\\right> \\\\\n", " & \\left|01\\right> \\mapsto \\left|01\\right> \\\\\n", " & \\left|10\\right> \\mapsto \\left|11\\right> \\\\\n", " & \\left|11\\right> \\mapsto \\left|10\\right> \\\\\n", "\\end{array}\n", "$$" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$$\n", "\n", "\\begin{bmatrix}\n", "1 & 0 & 0 & 0 \\\\\n", " 0 & 0 & 0 & 1 \\\\\n", " 0 & 0 & 1 & 0 \\\\\n", " 0 & 1 & 0 & 0 \\\\\n", " \\end{bmatrix}\n", "$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit = QuantumCircuit(2)\n", "circuit.cx(0,1)\n", "show(circuit)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Échauffement" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Que calcule ce circuit ?" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "scrolled": true, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit = QuantumCircuit(2)\n", "circuit.cx(0,1)\n", "circuit.cx(1,0)\n", "circuit.cx(0,1)\n", "draw_circ(circuit)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Routage\n", "\n", "Le processeur Quito peut effectuer des portes sur 1 qubit et des portes CX sur 2 qubits. Cette famille de portes est universelle.\n", "\n", "
\n", "\n", "\n", "
\n", "\n", "Comment modifier un circuit complexe qui a besoin d'effectuer un CX entre les qubits 0 et 4 ? Quel en est le coût ?" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "\n", "# Porte de Hadamard" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Porte de Hadamard\n", "\n", "La porte de Hadamard (H), sur 1 qubit, est une porte de changement de base.\n", "\n", "$$\n", "\\begin{array}{clllll}\n", "H :& \\left|0\\right> &\\mapsto &\\left|+\\right> & = &\\frac{\\left|0\\right>+\\left|1\\right>}{\\sqrt2} \\\\\n", " & \\left|1\\right> &\\mapsto &\\left|-\\right> & = &\\frac{\\left|0\\right>-\\left|1\\right>}{\\sqrt2} \\\\\n", "\\end{array}\n", "$$\n", "\n", "En théorie, il suffit d'ajouter cette porte à la porte de Toffoli pour simuler polynomialement toute transformation unitaire (donc tout circuit quantique).\n", "\n", "_En pratique ce n'est pas très efficace, on procède autrement._" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Exercice\n", "\n", "Étudier ce circuit sur l'entrée $\\left|00\\right>$." ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "scrolled": true, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit = QuantumCircuit(2)\n", "circuit.h(0)\n", "circuit.cx(0,1)\n", "draw_circ(circuit)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Propriétés\n", "\n", "$$\n", "\\begin{array}{rl}\n", "H \\cdot H &= \\text{Id}\\\\\n", "H : \\quad\\left|x\\right> &\\mapsto \\frac1{\\sqrt 2}\\sum_{y\\in\\{0,1\\}} (-1)^{xy} \\left|y\\right>\\\\\n", "H^{\\otimes n} : \\quad\\left|x\\right> &\\mapsto \\frac1{\\sqrt {2^n}}\\sum_{y\\in\\{0,1\\}^n} (-1)^{x\\bullet y} \\left|y\\right> \\qquad\\text{avec}\\; x\\bullet y = \\bigoplus_i x_i y_i\n", "\\end{array}\n", "$$" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Exercice\n", "\n", "1. Calculer $H^{\\otimes n} \\left( \\left|0\\right>^{\\otimes n}\\right)$\n", "\n", "2. Étudier ce circuit" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "scrolled": false, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit = QuantumCircuit(2)\n", "circuit.h(0)\n", "circuit.h(1)\n", "circuit.cx(0,1)\n", "circuit.h(0)\n", "circuit.h(1)\n", "draw_circ(circuit)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Vérification assistée par ordinateur" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "scrolled": true, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAATEAAACuCAYAAABeIjpKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAQPklEQVR4nO3dfVBU570H8O8ubwuyRF7UFXkTcRWQFwMSsTEtiuYaxWvSGM11iHOrY5Jbo/fW605v7+1ETTuW0aa9jkmLmelo05ZgNEl1ySR1SquEa+katKOyQCWu4WVP9QhGXF50Ye8fjo6ERXdh357D9/OP457nnOfH8PDd55x99hyVw+FwgIhIUGp/F0BENBYMMSISGkOMiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGgMMSISGkOMiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGgMMSISGkOMiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGjB/i6AhnM4HEB/v7/LcE9YGFQqlb+rUAyOAdcxxAJRfz/sL6z3dxVuCT58CNBo/F2GcnAMuIynk0QkNIYYEQmNIUZEQmOIEZHQGGJEJDSGGBEJjSFGREJjiBGR0BhiRCQ0hhgRCY0hRkRCY4gRkdAYYkQkNMWHmCzLMBgMSEtLg0ajQWJiIrZu3QqbzYYNGzZApVJh//79/i6TvOz2nQHUfC7ho2oLPvmsDa3SLX+XRB6i6FvxnDt3DsuWLYMkSZgwYQIyMjLQ0dGBffv2oaWlBZ2dnQCA3Nxc/xbqJSflq1hy+s/4SUY2vjdjttM2occP45nJU/HREwt9XJ1vWK/14O1KM9452oR/XO+9/7pKBSxfmIjX/iUDSxck+LFC7xoPY0CxMzFZllFSUgJJkrBt2zZYrVbU19dDkiSUlZWhqqoKJpMJKpUK2dnZ/i6XvOCsWcbjaz7Cjw6cGxJgAOBwAMZTrXj6lU9hePOvd29CSEJSbIht2bIFbW1t2Lx5M/bu3QutVnt/m8FgQE5ODux2O1JSUhAVFeXHSskbLn15E0tf+RSS3PvItnsOnseOt8/6oCryBkWGmNlsRmVlJeLi4rB7926nbfLy8gAAOTk5Q16/fPkyVq5cCa1Wi+joaLz00ku4fv2612smz/qv/zVB7upzuf0bB87C0t7txYrIWxR5TayiogKDg4NYt24dIiMjnbYJDw8HMDTEuru7UVRUhJiYGFRUVKC3txcGgwErVqxAbW0t1GoxM79nYACyaPdrH4OOqzZ8WH3FrX0cDqD8SCN2b53npar8S8ljQJEhVl1dDQAoKioasU1bWxuAoSF24MABtLe349SpU0hKSgIAJCQkYMGCBTh27BhWrVrlvaK9aFfTRexquujvMnzmdx9/gYEB969xHfz93xUbYkoeA4oMsStX7r4LJycnO91ut9tRW1sLYGiIGY1GPPnkk/cDDAAKCwuRmpqK48ePjzrE8vPzIUmSy+3D1Wo05BaOqi9nNial4tvxiU63LfvLSY/0odfr0Ts46JFjjdWNiGWAZr7b+0lyL6YlJEEF//8c420M6HQ6nDlzZlT7KjLEbDYbAKC31/lF3crKSsiyDK1Wi+nTp99/vaGhAatXrx7WPjMzEw0NDaOuR5IktLe3u9w+IigIyB11d8OkRUZi8aQpnjugEx0dHegZGPBqHy6b2g2M8qE7He3tQACEGMeA6xQZYjqdDl1dXaivr0dh4dB3M6vViu3btwMAsrOzhzwnr6urCxMnThx2vJiYGDQ1NY2pHneEC3jtLT4+PmBmYt2aQdwcxX7qwZuYOm2qx+sZjfE2Btz9G3mQIkOsuLgYZrMZZWVlWLJkCfR6PQDAZDKhtLQUsiwD8N0iV3enyY6+PuGeOdjc3AxVgDx30nqtB0lL34Pdzeti39+0ED/e8h9eqso9HAOuEy/uXWAwGBAbG4vW1lZkZmYiKysLM2fOREFBAVJTU7Fo0SIAw5dXREdH48aNG8OO19nZiZiYGF+UTh4wdVIEnitOcWsftVqFTc/P8k5B5FWKDLGEhATU1NRg+fLl0Gg0sFgsiImJQXl5OaqqqtDc3AxgeIilp6c7vfbV0NCA9PR0n9ROnvGTrfMwOcb1WcGOV+ciOV776IYUcBQZYsDdQDIajeju7kZ3dzfq6uqwadMm2Gw2WCwWqNVqzJkzZ8g+K1aswGeffXZ/+QUA1NXVoaWlBSUlJb7+EWgMpidoceLAMsRPjnhk2x9szMH/bMr1flHkFSrHOPvSWF1dHebPn49Zs2ahsbFxyLabN28iKysLcXFx2LlzJ/r6+mAwGDBp0iScPn3aZ4tdRbweEnz4UMBcE3vQ1eu9KD/SiPL3G9F+tWfItucWp2Dzi+koKoj3U3Uj4xhwnWJnYiM5f/48gOGnkgAQFRWF6upqTJ06FWvXrsXGjRuxYMECGI1GYVfrj3eTY8Pxw5fnwvLJGvzfuysQ+1gYAEAXq8HRny0OyAAj9yjy08mHeViIAcCMGTNgNBp9WRL5QHCwGoU5U6AJCwIABAXxTUkpxt1v8lEhRkRiGXczsXvfqyQiZRh3MzEiUhaGGBEJjSFGREJjiBGR0BhiRCQ0hhgRCY0hRkRCY4gRkdAYYkQkNIYYEQmNIUZEQht3350UQlgYgg8f8ncV7gkL83cFysIx4DKGWABSqVRAAN5gkHyHY8B1PJ0kIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGgMMSISGkOMiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKh8c6uAcjhcAD9/f4uwz1hYXfvRkoewTHgOoZYIOrvh/2F9f6uwi3Bhw/xdsqexDHgMp5OEpHQGGJEJDSGGBEJjSFGREJjiBGR0PjpJCmaJPfg8wYZnzdcxxdt3ej86u6yhRvdt/GrD5uRlxGLjNRohITw/VxUDDFSnL5+O46csODtSjNO/+2q0za2Xjs2vF4DAIiOCsV3Vunx6pp0zEiM8mWp5AF8+yHFcDgcePf435G0tBKlPzg5YoB9XdfN2/jpry8gbfn7eNHwJ1zr7PVypeRJDDFSBOu1Hqx87QRe+u9TuNbVN+rjvPfJF8h89gMc+cNlD1ZH3sQQI+GZv7iBeS/+HsZTrR453rWuPqz+z2rseLv+7td/KKDxmhgJrdnyFb71nSpc7Rz97GskO395Fg4HsPO7j3v82OQ5nImRsG713MEz3/3UKwF2z67ys/ht1SWvHZ/GjiFGwvr+z01oae12ax9TxUq0nlgLU8VKl/d5bfdpWK/1uFse+ci4CDFZlmEwGJCWlgaNRoPExERs3boVNpsNGzZsgEqlwv79+/1dJrnh5Bkr3nrP7PZ+urgIJEyZAF1chMv7dN28jVfeqHW7L/INxYfYuXPnkJWVhT179kCSJGRkZODOnTvYt28f1qxZA7P57h9Cbm6ufwv1gpPyVYQeP4w3WxpHbBN6/DBW1dX4sCrP2PXLsz7t79ifv8S5xus+7dMTlDwG7lF0iMmyjJKSEkiShG3btsFqtaK+vh6SJKGsrAxVVVUwmUxQqVTIzs72d7nkosbLN1D9V6vP+/3FYfdnfuR9ig6xLVu2oK2tDZs3b8bevXuh1WrvbzMYDMjJyYHdbkdKSgqiorhSWxQHjow8q/Cm3xhb0G277Ze+aWSKDTGz2YzKykrExcVh9+7dTtvk5eUBAHJycu6/di/0CgoKEMZbLgekP5l8PwsDgJ4+O0wXZL/0TSNT7DqxiooKDA4OYt26dYiMjHTaJjw8HMDQELt06RKOHj2KefPmITQ0FLW14l/Q7RkYgCza/dpH0Ndvx4VLXX7r//MGGYueiPdb/6OlpDHwdYoNserqagBAUVHRiG3a2toADA2xp556Clbr3Xf6HTt2KCLEdjVdxK6mi/4uwyMuXOqC3e6/VfT1ZvEu7gPKGgNfp9gQu3LlCgAgOTnZ6Xa73X4/oB4MMbXa82fY+fn5kCTJ5fbhajUacgs91v/GpFR8Oz7R6bZlfznpkT70ej16Bwc9cqyH6QtJA7SlTreZKlY+cumELi78/r+tJ9aO2E6SezDvxWPDXv/w+Akk/M55/5403saATqfDmTNnRrWvYkPMZrMBAHp7nd+RoLKyErIsQ6vVYvr06V6tRZIktLe3u9w+IigIyPVc/2mRkVg8aYrnDuhER0cHegYGvNoHAEAbB2idb7q3BswVwUFql9s+qL/f7tbvcrQ4Blyn2BDT6XTo6upCfX09CguHvqNZrVZs374dAJCdne31i/c6nc6t9uFemA16W3x8vI9mYo9hpBM6SX70qnpdXDiCg9SwDwxCkke+5c5IxwoLC0LctGmulDom420MuPs38iDFhlhxcTHMZjPKysqwZMkS6PV6AIDJZEJpaSlk+e6nTL5Y5OruNNnR1yfcMwebm5uh8sEzBxsv30D6Px91us3Z6d/XtZ5Yi4QpEyDJvUhc8p7b/ZeueQbv7HD+abcncQy4Try4d5HBYEBsbCxaW1uRmZmJrKwszJw5EwUFBUhNTcWiRYsADL0eRoFPn/wYIiNC/NZ/Xkac3/om5xQbYgkJCaipqcHy5cuh0WhgsVgQExOD8vJyVFVVobm5GQBDTDRqtQpzZ8f4rX+GWOBR7OkkAKSnp8NoNA57/datW7BYLFCr1ZgzZ44fKqOxKPlmEmrq/+HzfuMnRyB3VqzP+6WHU3SIjeTixYtwOBzQ6/WIiBj+kfyRI0cAAA0NDUP+n5KSgvz8fN8VOkbfjJuM2yUvPLTNo7YHon9dpccP36pH/23ffhL28vOzhXsqklLHwIPGZYidP38ewMinkqtXr3b6//Xr1+PgwYNerY0eLS5agxeWTse7Rt/drDA4WIWNz+l91h+5jiHmBO+rHvh2/tvj+OCPFth67T7pb/v6bMRPdn9dGXmfWHNjD3lUiFHgm56gxZ7vFfikr4wZE/H6q3N90he5b1zOxO59r5LE9vLq2TCe+hIf17S5vM+9RayuLIwFAE1YEA796CmEhQaNqkbyvnEZYqQMarUKh/cswtOvforas659WunKgth7QkPUOPrmYuRnThptieQD4/J0kpRjQkQIPvnF01i6wLNfBYqMCEHVW0vxzELnX5qmwMEQI+FFRoTg47eW4mfbn0C4ZuynfcXz43Hhg2dRPN/735GksWOIkSIEBanx76Vz8Lf3n8WqRclQq93/Un9qghbvvP4k/lD+T0iOH+FWGRRweE2MFGVm8mP48OfFaJVu4cCRJnzwRwsaL3+FwUHny2ZiJ4Zh4eM6vPz8bCxdMG1U4Uf+xRAjRUrUReKNzXl4Y3MebD13cK6pEy2tN9F3ewAhwWpER4Vi7uxYJE2N5HMUBMcQI8WbEBGCb8ydgm/M9e5NAck/eE2MiITGECMioTHEiEhoDDEiEprKwVs2BByHwwGI9qBTPi3dozgGXMcQIyKh8XSSiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGgMMSISGkOMiITGECMioTHEiEhoDDEiEhpDjIiExhAjIqExxIhIaAwxIhIaQ4yIhMYQIyKhMcSISGgMMSISGkOMiIT2/+9O4Ssb9IYHAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$$\n", "\n", "\\begin{bmatrix}\n", "1 & 0 & 0 & 0 \\\\\n", " 0 & 1 & 0 & 0 \\\\\n", " 0 & 0 & 0 & 1 \\\\\n", " 0 & 0 & 1 & 0 \\\\\n", " \\end{bmatrix}\n", "$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit = QuantumCircuit(2)\n", "circuit.h(0)\n", "circuit.h(1)\n", "circuit.cx(0,1)\n", "circuit.h(0)\n", "circuit.h(1)\n", "show(circuit)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "scrolled": true, "slideshow": { "slide_type": "-" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAALAAAACuCAYAAACWa4e1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAANLklEQVR4nO3df1CU953A8TcLleXHEvnRuiSgQoQGUMCCZPSsFYO9WlHTm4s/4hjvTuUSh8bmrGQmzp29pB0Hx7m5Id61GNN6nemRbUjvjlumk7TFqZjkHJBoHdhqRfFY2PXukSXigj9guT+ceKH8XNxnl+/D5/WfPL8+wptnH559lLDh4eFhhFCUKdQDCPEoJGChNAlYKE0CFkqTgIXSJGChNAlYKE0CFkqTgIXSJGChNAlYKE0CFkqTgIXSJGChNAlYKE0CFkqTgIXSJGChNAlYKE0CFkqTgIXSJGChNAlYKE0CFkqTgIXSJGChNAlYKE0CFkqTgIXSJGChNAlYKE0CFkqTgIXSJGChNAlYKE0CFkqTgIXSJGChNAlYKE0CFkqTgIXSJGChNAlYKE0CniWGh4e5d38Ib/99hoZ8oR4nYCJCPYDQx+Cgj1+ecfLbZhfNbRqf/P4mt27ff7g8ZV4MBdmJFGQnsXH1fPK+nBjCaacvTH5bvbFonjv86F0H1e9ewnnDO+XtVuR/ib1bstj6jXTCw9V5YZaADeTdD66x9wcfoXnuTHsfTy/5Iie/v4qn0uYGbjAdScAG4O2/z18dauTn718LyP4i54RzdH8R5duyA7I/PUnAivu07x7r9r7Pxxf+J+D7PrgnjzfKCwgLCwv4vgNFnYsdMcrAnUE2fPsDXeIF+MFbFzh84oIu+w4UCVhhf3vsHI0tN3Q9xsE3z3G62aXrMR6FXEIo6qPzN1i5044/X72mmo1Yk6Jxa/0s21Y35e3SUyz8rvZbxER/YRqT6svwZ2BN06ioqGDRokWYzWZSU1PZt28fXq+XXbt2ERYWxrFjx0I9pl98vmH2/P0Zv+IFsCZFkzIvBmtStF/bXXX28f23zvt3sCAx9BsZ58+fZ926dbjdbmJiYsjOzqa7u5uqqira29vp6ekBID8/P7SD+unX/9VFW3tvUI9Z/e7v+bu/XkqUeWYlY9gzsKZpbNiwAbfbzf79+3G5XLS0tOB2u6msrKS+vp6mpibCwsLIzc0N9bh++ad3HEE/pufWPWzvXw36cSdj2IBffvllnE4n5eXlHD16FIvF8nBZRUUFeXl5DA4OsnDhQuLi4kI4qX88t+5iP90ZkmP/tO5KSI47EUMG7HA4sNlsJCUlcfjw4THXKSgoACAvL2/Ex69du8bGjRuxWCzEx8fzwgsvcPPmTd1nnqpzbRo+X2h+7m4O4bHHY8iAa2pq8Pl8bN++ndjY2DHXiYqKAkYG3NfXR3FxMU6nk5qaGo4fP05jYyOlpaX4fDPjCa5zbVrIjt3nvc8frn8asuOPZWZdkQdIQ0MDAMXFxeOu43Q6gZEBHz9+nK6uLk6fPs38+fMBSElJYcWKFdTV1fHss8/qN/QUtV7pDe3x23v58gx6TsKQ94FTU1NxOp188sknY95hGBwcJDk5GU3TaG9vJz09Hfj/4E+dOjVi/SeffJLVq1fz9ttvT2uewsJC3G73tLb9Yzdjt3BnztjPKHx2n3c81qQoIsJNDA75cGsDEx5nvHvF8bd/QfS9wL47Z7VaaW5unta2hjwDe70PHiMcGBj7i2Sz2dA0DYvFQlpa2sOPt7W18dxzz41aPycnh7a2tmnP43a76erqmvb2I8wfgDljL/rsPu9kIsJNU1pvLB5PD57eAP1dAsCQAVutVjweDy0tLSxfvnzEMpfLxYEDBwDIzc0d8aCKx+Nh7ty5o/aXkJDApUuXHmmeQOkxhzPeudOt9U88h59n4LEkzI0lKuaJqYw6ZY/y+TFkwCUlJTgcDiorK1m7di2ZmZkANDU1sWPHDjTtwQ9CwXoDY7ovj2M58uPf8eo/No25bLK3hzt/tZWUeTG4tQFS174zreN/fKqWzIWPTWtbPRjyLkRFRQWJiYl0dnaSk5PDkiVLyMjIoKioiPT0dNasWQOMvoUWHx9Pb2/vqP319PSQkJAQjNEnVZCdFLJjW2K+wKL5M+ueuSEDTklJobGxkfXr12M2m+no6CAhIYHq6mrq6+u5fPkyMDrgrKysMa9129rayMrKCsrsk/lKdiImU2iez12WkxSyY4/HkAHDgxjtdjt9fX309fVx9uxZysrK8Hq9dHR0YDKZWLx48YhtSktLOXPmzMNbbABnz56lvb2dDRs2BPuvMKb4uEg2rp4fkmPv3JgRkuNOxLABj6e1tZXh4WEyMjKIjh55y6msrIzk5GQ2bdqE3W6ntraWbdu2UVRUxKZNm0I08Wh7twT/1SDhsUg2/2na5CsG2awL+OLFi8DoyweAuLg4GhoaSE5OZuvWrezevZsVK1Zgt9sxmWbOp+qZpx9n8aL4oB7zpc1PYY6ceT/zz7yJdDZRwPDgTQu73R7MkfxmMoVx4nsrWfGCPSjPJmQsiOO13fm6H2c6Zs5pJUgmC1gVT+d+ie/uXDz5ip/j1vpx3vBOer/488LC4CevryI6amae6wz5VvJscefuIN/c+wGnmvT7N2tHXlnGgb+cuc9Lz7ozsJGYIyP4j6oSVi6dp8v+v/fS0hkdL8gZ2BD6BwYpe/0MP6tvD8j+oszh/MN3n+bFzTPj3vdEJGAD+feGDl584yNu3Jz4OYeJ/MnSefzk9a+SsWDmvF08EQnYYDy37vJW7SV++HMHHd23p7zd6mXJ7N2SxZ89s0D+cz8RekNDPn71cTe/PefiXJtGi+MmN3vvPlyenmKhIDuJguxESlfNJyfI95UDRQKeRZ545l/p/t8BHv9iFF2/eT7U4wSEOq8V4pF99uzzTP7P+vwlAQulScBCaRKwUJoELJQmAQulScBCaRKwUJoELJQmAQulScBCaRKwUJoELJQmAQulScBCaRKwUJoELJQmAQulScBCaRKwUJoELJQmAQulScBCaRKwUJoELJQmAQulScBCaRKwUJoELJQmAQulScBCaRKwUJoELJQmAQulScBCaRKwUJoELJQmAQulScBCabMiYE3TqKioYNGiRZjNZlJTU9m3bx9er5ddu3YRFhbGsWPHQj2mmIaIUA+gt/Pnz7Nu3TrcbjcxMTFkZ2fT3d1NVVUV7e3t9PT0AJCfnx/aQXUyNOTj/Y+6+KHNgUt78DuU3doA3z78MS9tforsJ9X8DZ2fMfRv6tQ0jaVLl+J0Otm/fz+HDh3CYrEAcOTIEV599VUiIiIYGhqit7eXuLi4EE8cWG3tHr71nd9w+fqn467z3NfTOPnGKqKj1DyXGTrg559/npqaGsrLy3nzzTdHLc/Pz+fChQukpaVx9erVEEyon9YrHlbutNPbd2/Sdb/6lXl8UP0NzJHqRWzYa2CHw4HNZiMpKYnDhw+PuU5BQQEAeXl5Dz/mdDopLy+nqKiIyMhIJX8t69CQj2e/8+spxQvQ2HKD16qadZ5KH4YNuKamBp/Px/bt24mNjR1znaioKGBkwFeuXOG9997DarWybNmyoMwaaPWnO7ny37f82ubELy5zu/++ThPpx7ABNzQ0AFBcXDzuOk6nExgZ8KpVq3C5XNTV1VFSUqLvkDr5Z5vD7236vPf5WX27DtPoS72Lnim6fv06AAsWLBhz+eDgIB9++CEwMmCTKfDf04WFhbjd7oDvdzyuuRVgivF7u785WMUbr9TpMNHErFYrzc3Tu4QxbMBerxeAgYGBMZfbbDY0TcNisZCWlqbrLG63m66uLl2PMcLc6X1Z++8M0h/MOQPAsAFbrVY8Hg8tLS0sX758xDKXy8WBAwcAyM3N1f0HNavVquv+/5iLe/iI9Hu7GHMYc594QoeJJvYonx/DBlxSUoLD4aCyspK1a9eSmZkJQFNTEzt27EDTNCA4b2BM9+VxunYdauTH/3bZ7+3eeesgpV+r1mEi/Rj2h7iKigoSExPp7OwkJyeHJUuWkJGRQVFREenp6axZswYYef1rFHu3ZPm9zYLHY1m3MkWHafRl2IBTUlJobGxk/fr1mM1mOjo6SEhIoLq6mvr6ei5ffnCGMmLABdlJfsf42u48wsPVy8GwlxAAWVlZ2O32UR+/ffs2HR0dmEwmFi9eHILJ9FdTWUxJ2S9pbtUmXffAXyyh7M+fCsJUgWfogMfT2trK8PAwmZmZREdHj1peW1sLQFtb24g/L1y4kMLCwuAN+gges8zh1NvfZP/Rs/z0P69w5+7QqHVS5sVwcE8eL272/5JjpjD0sxDjOXHiBHv27GHz5s3YbLZRy8e7K7Fz505Onjyp83SB1/PpXf6l7g+0ODT6B4aIj5tD6ddSKV01n4gI9S4bPm9WnoEvXrwIjH/9a7Tv6YTHInllhzEvldT+9pumyQIW6piVlxDCOGblGVgYhwQslCYBC6VJwEJpErBQmgQslCYBC6VJwEJpErBQmgQslCYBC6VJwEJpErBQmgQslCYBC6VJwEJpErBQmgQslCYBC6VJwEJpErBQmgQslCYBC6VJwEJpErBQmgQslCYBC6VJwEJpErBQmgQslCYBC6VJwEJpErBQmgQslCYBC6VJwEJpErBQmgQslPZ//fXyW3qcgQAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$$\n", "\n", "\\begin{bmatrix}\n", "1 & 0 & 0 & 0 \\\\\n", " 0 & 1 & 0 & 0 \\\\\n", " 0 & 0 & 0 & 1 \\\\\n", " 0 & 0 & 1 & 0 \\\\\n", " \\end{bmatrix}\n", "$$" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "circuit = QuantumCircuit(2)\n", "circuit.cx(1,0)\n", "show(circuit)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Oracle\n", "\n", "Pour toute fonction $f : \\{0,1\\}^n\\rightarrow \\{0,1\\}$, nous avons vu qu'il existe un circuit quantique à $n+1$ qubits utiles (+ des qubits auxiliares) qui sur l'entrée $\\left|x\\right>\\otimes\\left|y\\right>$ calcule $\\left|x\\right>\\otimes\\left|y \\oplus f(x)\\right>$.\n", "\n", "Montrer qu'en ajoutant une porte $X$ et une porte $H$ de part et d'autre du circuit sur le fil de $\\left|y\\right>$, on obtient un circuit qui sur l'entrée $\\left|x\\right>$ calcule $(-1)^{f(x)} \\left|x\\right>$ à l'aide d'un qubit auxiliaire à $\\left|0\\right>$." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "\n", "# Algorithme de Bernstein-Vazirani " ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Faire mieux en quantique ?\n", "\n", "Les algorithmes quantiques dépassent les algorithmes classiques non pas sur ce qu'ils peuvent calculer mais par leur capacité à effectuer certains calculs asymptotiquement plus vite que les meilleurs algorithmes classiques connus :\n", "- factorisation d'entiers (Shor) ;\n", "- recherche d'un élément dans une liste non triée (Grover) ;\n", "- ...\n", "\n", "Regardons un exemple simple ensemble." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Bernstein-Vazirani\n", "\n", "Cet algorithme est de type boîte noire.\n", "\n", "On suppose disposer d'un circuit classique qui, sur l'entrée $x \\in \\{0,1\\}^{n}$, calcule la valeur $f(x) = x\\odot s$ où $s$ est un vecteur caché de $n$ bits et $x\\odot s = x_1 s_1 \\oplus x_2 s_2 \\oplus \\cdots \\oplus x_n s_n$.\n", "\n", "L'objectif est de retrouver $s$ en le moins d'appels possible à $f$.\n", "\n", "Un rapide raisonnement de théorie de l'information montre qu'un algorithme classique a besoin d'appeler $f$ au moins $n$ fois pour retrouver $s$ (et y arrive toujours)." ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Bernstein-Vazirani (suite)\n", "\n", "L'algorithme quantique proposé par Bernstein et Vazirani retrouve $s$ en un unique appel à $f$ !\n", "\n", "On suppose disposer d'un circuit quantique qui, sur l'entrée $(x\\otimes y)\\in \\{\\left|0\\right>,\\left|1\\right>\\}^{n+1}$, calcule la valeur $x \\otimes (y \\oplus x\\odot s)$.\n", "\n", "Construisons un circuit qui illustre cet algorithme !" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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zTffNF2GRyZMmKCICCIWAovD7wEAAAAACFGEegAAAAAAQhTHhgA20rNnT3355ZemywAAGEQvAABrYU89AAAAAAAhilAP2EhBQYFuueUWFRQUmC4FAGAIvQAArIVQD9hIdXW1Nm/erOrqatOlAAAMoRcAgLUQ6gEAAAAACFGEegAAAAAAQhShHgAAAACAEEWoB2wkOTlZs2fPVnJysulSAACG0AsAwFq4Tz1gI61atdLYsWNNlwEAMIheAHjP7XbL4XCYLgM4BqEesJGysjKtXLlSo0aNUps2bUyXAwAwgF4AO6qsrFR+fr727Nmjuro6hYWFqWXLlkpLS9MZZ5zRrKCel5enN954Q7/4xS8UFxcXgKqB5iHUAzayZ88ezZ8/X/369WNFDgBsil4AuyguLtbKlSu1du1a7d2794TjxcXFqVevXrr44os1cOBAhYU1PkM5Ly9Pc+fO1aFDh/TII4/o/vvvJ9gjaNjinHqn06mZM2cqIyNDMTEx6tSpk6ZNm6aqqirdeuutcjgcevrpp02XCQAAAOA0FRQU6JFHHtG9996rd99996SBXpIOHjyodevW6fHHH9e0adP0z3/+U263u2H4jwO9JMXHxysign2jCB6W/zRu3LhRY8eOVWlpqeLj49W7d28VFxdrwYIF2rlzp/bt2ydJGjhwoNlC/eQT516N/uxjPda7v+7t1rPJcaLeeU0/6ZCst4eeH+DqAATC9/uq9eLft+vlf+zQd6WVcrul1DPiNeWKDP3v1T2U1J49DQCsi3Uh+6irq9M//vEPvfXWW6qvr294PjIyUunp6eratatSU1MVHR2t+vp6OZ1O5efn65tvvlF5ebkk6fvvv9fzzz+vzz//XFOnTtW+ffuOCfT9+/fXL3/5S0VFRRlZRqAplg71TqdT48aNU2lpqaZPn64HH3xQCQkJkqTHH39c9913nyIiIuRwONS/f3/D1QKA7y18dYt++fsvdbjWdczz33xXod88vV6z/7hBj9w9WDNu7seFfwAAIauyslKPP/64tm/f3vBchw4dNHr0aF100UUNGaApLpdLGzZs0AcffKCvvvpKkrRp0yZNnz5dknT48GFJBHoEL0uH+nvuuUdFRUW666679MQTTxwzbObMmXr11Vf11VdfKT09XS1btjRUJRA4cXFxGjp0KOeA2cTjL32t+57KOek4dfVu3fdU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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "{'0110': 1}\n" ] } ], "source": [ "s = '0110'\n", "k = len(s)\n", "\n", "circuit = QuantumCircuit(2*k+1,k)\n", " \n", "# superposition\n", "circuit.x(k)\n", "for i in range(k+1):\n", " circuit.h(i)\n", "circuit.barrier()\n", "# calcul parallèle\n", "for i in range(k):\n", " if s[i] == '1':\n", " circuit.x(k+1+i)\n", "\n", "for i in range(k):\n", " circuit.ccx(i,k+1+i,k)\n", "\n", "for i in range(k):\n", " if s[i] == '1':\n", " circuit.x(k+1+i)\n", "circuit.barrier()\n", "# transformation quantique\n", "for i in range(k):\n", " circuit.h(i)\n", "# mesure\n", "circuit.measure(list(range(k)), list(range(k)))\n", "\n", "display(circuit.draw(output='mpl',scale=1))\n", "res = sim.run(circuit, shots=1).result()\n", "print(res.get_counts(circuit))\n" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "## Exécuter à distance" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "### Exécuter le code sur un processeur quantique\n", "\n", "Quelle différence entre notre simulateur et la vraie vie ?\n", "\n", "Modifions l'exemple en un circuit équivalent pour le faire tenir sur moins de bits et le rendre un peu plus résistant au bruit.\n", "\n", "Observons le résultat obtenu et le circuit exécuté." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "{'0110': 1}\n" ] } ], "source": [ "s = '0110'\n", "k = len(s)\n", "\n", "circuit = QuantumCircuit(k+1,k)\n", "\n", "circuit.x(k)\n", "for i in range(k+1):\n", " circuit.h(i)\n", "circuit.barrier()\n", "\n", "for i in range(k):\n", " if s[i] == '1':\n", " circuit.cx(i,k)\n", "circuit.barrier()\n", "\n", "for i in range(k):\n", " circuit.h(i)\n", " \n", "circuit.measure(list(range(k)), list(range(k)))\n", "\n", "display(circuit.draw(output='mpl',scale=1))\n", "res = sim.run(circuit, shots=1).result()\n", "print(res.get_counts(circuit))\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " 20\n" ] } ], "source": [ "from qiskit_ibm_runtime import QiskitRuntimeService\n", " \n", "service = QiskitRuntimeService()\n", "backend = service.least_busy(operational=True, simulator=False, min_num_qubits=5)\n", "\n", "# Get the least busy real quantum system\n", "print(backend, backend.status().pending_jobs)" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "subslide" } }, "source": [ "" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABv4AAAG8CAYAAAAWxNLBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACsu0lEQVR4nOzdeVxVdf7H8fe97CCoLArigrii4r6VmlJaatuo2eKSTk3TVKY1lTM1TWlNWmmrjk27UzZmaZZplmUbaibuaCoqoCKgobigiMC9vz/4cRUB5eKFA/e8no8HD71nu5/L+fC93+/5nMVit9vtAgAAAAAAAAAAAFCrWY0OAAAAAAAAAAAAAMDlo/AHAAAAAAAAAAAAuAEKfwAAAAAAAAAAAIAboPAHAAAAAAAAAAAAuAEKfwAAAAAAAAAAAIAboPAHAAAAAAAAAAAAuAEKfwAAAAAAAAAAAIAboPAHAAAAAAAAAAAAuAEKfwAAAAAAAAAAAIAboPAHAAAAAAAAAAAAuAEKfwAAAAAAAAAAAIAbqLLC34ABA/TQQw9V+To1dRsAAAAAAAAAAABAdapU4S8zM1OTJk1Sy5Yt5evrq4YNG6pPnz564403dPr0aVfH6FLjx4+XxWKRxWKRt7e3WrZsqWeeeUYFBQVGh+a0KVOmOD5L8U/btm0rta0//vGPevLJJ0tNf/7552WxWCiEAgAAAAAAAAAA1HCezq6QnJysPn36qF69epo2bZpiY2Pl4+OjxMREvfXWW4qMjNRNN91UFbG6zODBg/X+++8rLy9PX331lR544AF5eXnp8ccfNzo0p7Vv317fffed47Wnp9O7VIWFhVq6dKmWLVtWYnpCQoLefPNNdezY8bLjBAAAAAAAAAAAQNVy+oq/+++/X56enlq/fr1uvfVWxcTEKDo6WjfffLOWLVumG2+8scz18vLyNHHiRDVo0EC+vr7q27evEhISSi1XUFCgCRMmqG7dugoNDdU///lP2e12SdLXX3+tvn37ql69egoJCdENN9ygvXv3OvsR5OPjo/DwcDVr1kz33XefBg4cqCVLlpRYxmazafLkyQoODlZ4eLimTJnimFeROBYuXKjY2Fj5+fkpJCREAwcO1KlTpxzbnj59upo3by4/Pz916tRJCxcudPpzSEWFvvDwcMdPaGhoifkxMTGlrgos/pk9e7Ykac2aNfLy8lKPHj0c6+Xk5Gj06NF6++23Vb9+/UrFBgAAAAAAAAAAgOrjVOHvyJEjWrFihR544AEFBASUuYzFYilz+uTJk7Vo0SL997//1caNG9WyZUtdd911Onr0aInl/vvf/8rT01Pr1q3Ta6+9ppdfflnvvPOOJOnUqVP661//qvXr12vlypWyWq0aNmyYbDabMx+jFD8/P509e7ZUHAEBAfr111/14osv6plnntG3335boTgyMjJ0xx136K677tKOHTv0448/avjw4Y4C5vTp0/XBBx/oP//5j7Zv366HH35YY8aM0U8//eR4/7lz55b7uzzf7t271ahRI0VHR2v06NHav39/ifmLFi2SJK1cuVIZGRlKTU2V1WrVp59+qnvuuUeStGTJEt14440l3u+BBx7Q9ddfr4EDBzr76wQAAAAAAAAAAIABnLov5J49e2S329WmTZsS00NDQ3XmzBlJRQWjF154ocT8U6dO6Y033tDcuXM1ZMgQSdLbb7+tb7/9Vu+++64ee+wxx7JNmjTRK6+8IovFojZt2igxMVGvvPKK7rnnHo0YMaLEdt977z2FhYXpt99+U4cOHZz5KJIku92ulStX6ptvvtGDDz5YYl7Hjh319NNPS5JatWql2bNna+XKlRo0aNAl48jIyFBBQYGGDx+uZs2aSZJiY2MlFV35OG3aNH333Xe64oorJEnR0dFatWqV3nzzTfXv31+SVLdu3VK/5wv16tVLc+fOVZs2bZSRkaGpU6eqX79+2rZtmwIDAyVJhw4dkqenp/r06SMfHx9t2LBBNptN/fr1k4+PjyTpiy++0CuvvOLY7scff6yNGzeWeUUmAAAAAAAAAAAAaianb/VZlnXr1mnz5s1q37698vLySs3fu3ev8vPz1adPH8c0Ly8v9ezZUzt27CixbO/evUtceXbFFVdo9+7dKiws1O7du3XHHXcoOjpaQUFBioqKkqRSV7ldytKlS1WnTh35+vpqyJAhuu2220rcylNSqefaRURE6PDhw5J0yTg6deqka665RrGxsRo5cqTefvttZWdnSyoqnp4+fVqDBg1SnTp1HD8ffPBBiduFDhs2TDt37rzo5xgyZIhGjhypjh076rrrrtNXX32lY8eO6ZNPPnEsk5iYqNatWzuKfFu2bFGDBg3UsGFDSdKOHTuUnp6ua665RpJ04MABTZo0SR999JF8fX2d+bUCAAAAAAAAAADAQE5d8deyZUtZLBbt2rWrxPTo6GhJRbfMrEo33nijmjVrprfffluNGjWSzWZThw4dSt2m81Li4uL0xhtvyNvbW40aNZKnZ+lfg5eXV4nXFovFcSvPS8Xh4eGhb7/9VmvWrNGKFSs0a9Ys/eMf/9Cvv/6qnJwcSdKyZcsUGRlZ4j2Ki3OVVa9ePbVu3Vp79uxxTNu6davjakOpqPB3/uslS5Zo0KBBjiLfhg0bdPjwYXXt2tWxTGFhoX7++WfNnj1beXl58vDwuKw4AQAAAAAAAAAA4HpOXfEXEhKiQYMGafbs2Tp16lSF12vRooW8vb21evVqx7T8/HwlJCSoXbt2JZb99ddfS7xeu3atWrVqpWPHjmnXrl168skndc011ygmJsZxFZ2zAgIC1LJlSzVt2rTMot/FHDlypEJxWCwW9enTR1OnTtWmTZvk7e2txYsXq127dvLx8dH+/fvVsmXLEj9NmjSp1OcplpOTo7179yoiIsIxbevWrSWuXtyyZUuJ11988YVuvvlmx+trrrlGiYmJ2rx5s+One/fuGj16tDZv3kzRDwAAAAAAAAAAoIZyruolac6cOerTp4+6d++uKVOmqGPHjrJarUpISNDOnTvVrVu3UusEBATovvvu02OPPabg4GA1bdpUL774ok6fPq277767xLL79+/XX//6V917773auHGjZs2apZdeekn169dXSEiI3nrrLUVERGj//v36+9//XvlPXkkViePXX3/VypUrde2116pBgwb69ddf9fvvvysmJkaBgYF69NFH9fDDD8tms6lv3746fvy4Vq9eraCgII0bN06StHjxYj3++OMXvd3no48+6rj6MD09XU8//bQ8PDx0xx13SJJsNpu2b9+up556yrHO3r17NXz4cEnS4cOHtX79ei1ZssQxPzAwsNTzEgMCAhQSElKp5ygCAAAAAAAAAACgejhd+GvRooU2bdqkadOm6fHHH1daWpp8fHzUrl07Pfroo7r//vvLXO/555+XzWbT2LFjdfLkSXXv3l3ffPON6tevX2K5O++8U7m5uerZs6c8PDw0adIk/fnPf5bFYtHHH3+siRMnqkOHDmrTpo1ef/11DRgwoFIfvLKsVusl4wgKCtLPP/+sV199VSdOnFCzZs300ksvaciQIZKkZ599VmFhYZo+fbqSk5NV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", "text/plain": [ "
" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n", "\n", "target = backend.target\n", "pm = generate_preset_pass_manager(target=target, optimization_level=3)\n", "\n", "circuit_isa = pm.run(circuit)\n", "circuit_isa.draw(output=\"mpl\", idle_wires=False, style=\"iqp\")" ] }, { "cell_type": "code", "execution_count": 44, "metadata": { "slideshow": { "slide_type": "subslide" } }, "outputs": [], "source": [ "from qiskit_ibm_runtime import SamplerV2 as Sampler\n", "\n", "sampler = Sampler(backend)\n", "sampler.options.default_shots = 10_000\n", "result = sampler.run([circuit_isa]).result()" ] }, { "cell_type": "code", "execution_count": 45, "metadata": { "scrolled": false, "slideshow": { "slide_type": "subslide" } }, "outputs": [ { "data": { "image/png": "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19cXn332mbL8+PHjaNKkCY4fP47GjRubfK7aniRvb2+kpaUpu+vY1DknzqlszKnB1K0oCWdmhVrNnIDy9zpxTpxTacwpPT0dLi4uZfPttgkTJmDSpEkYOHAgAKBZs2a4cOEC5syZgyFDhsDDwwMAkJqaalKSUlNTERAQAADw8PDA1atXTR63sLAQ6enpyud7eHggNTXVZB3jx8Z17mZvbw97e/si47a2trC1tTUZ0+l00Ol0RdY1frE86vi9j1ucca1WC6226PH59xu/X3bOiXN63PGyMqd/wvhc1jan8vg6cU6cU2nPSY3Vnd2Wk5NTZOPodDqlJfr6+sLDwwPbt29XlmdlZeHAgQMIDg4GcGd3YEZGBg4fPqyss2PHDhgMBgQFBSnrxMTEmLThbdu2oVGjRkXeaiMiIqKKx+pK0tNPP43Zs2dj48aNOH/+PNasWYOFCxfi3//+N4A7u90iIyMxa9YsrFu3DgkJCRg8eDC8vLzQt29fAEDjxo3Ro0cPjBgxAgcPHsTevXsxZswYDBw4EF5eXgCAF198EXZ2dhg2bBiOHTuG1atX44MPPkBUVJSlpk5ERERWxOrebvvoo48wdepUvPbaa7h69Sq8vLzw6quvYtq0aco6b731FrKzszFy5EhkZGSgY8eO2Lx5MypVqqSs8+2332LMmDHo1q0btFot+vXrhw8//FBZ7uzsjK1btyIiIgKtWrVCzZo1MW3aNJNrKREREVHFZXUHbpcVvE4SUdnF6yQRVVyP8/vb6t5uIyIiIrIGLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGS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/ZN8RERERBbxWCUpMTERwJ3jkerVq4fIyEiMGzeuyHo6nQ7Vq1dHlSpVSiYlERERkZk9Vkny8fFR/r98+XIEBgaajBERERGVF49Vku42ZMiQksxBREREZFWKXZKMDh48iLi4OGRkZECv1xdZrtFoMHXq1H/6NERERERmVeySlJ6ejr59+2Lv3r0PvGYSSxIRERGVRcUuSVFRUdizZw+eeuopDBkyBLVr14aNzT/eMUVERERkFYrdajZs2IC2bdti+/btvKo2ERERlTvFvuL27du30blzZxYkIiIiKpeKXZICAgJUr7ZNREREVB4UuyRNnz4d69atw/79+0syDxEREZFVKPYxSSkpKQgLC8OTTz6J8PBwtGzZEk5OTqrrDh48uNgBiYiIiCxBIw86f/8BtFotNBqNyen/9x6fJCLQaDSq108q67KysuDs7IzMzMz7lkMisk51J20skcc5/35YiTwOEZnP4/z+LvaepOXLlxf3U4mIiIisHm9LQkRERKSi2AduExEREZVnxd6TdPHixUdet06dOsV9GiIiIiKLKHZJqlu37iNdSFKj0aCwsLC4T0NERERkEcUuSYMHD1YtSZmZmfjrr7+QmJiIJ598EnXr1v0n+YiIiIgsotglKTo6+r7LRAQLFizAvHnzsGzZsuI+BREREZHFlMqB2xqNBm+++SaaNGmCCRMmlMZTEBEREZWqUj27rXXr1tixY0dpPgURERFRqSjVknT27FketE1ERERlUrGPSbofg8GAy5cvIzo6Gr/88gu6detW0k9BREREVOqKXZKM9267HxFB9erVsWDBguI+BREREZHFFLskde7cWbUkabVaVK9eHW3atMHQoUPh5ub2jwISERERWUKxS9KuXbtKMAYRERGRdeG924iIiIhUlMiB23v37kV8fDyysrLg5OSEgIAAdOjQoSQemoiIiMgi/lFJ2rdvH4YOHYozZ84AuHOwtvE4pQYNGmD58uUIDg7+5ymJiIiIzKzYJenYsWPo3r07cnJy8K9//QtdunSBp6cnUlJSsHPnTmzduhWhoaHYv38//P39SzIzERERUakrdkmaOXMm8vPzsWnTJvTo0cNk2cSJE7F582Y888wzmDlzJr777rt/HJSIiIjInIp94PauXbvQv3//IgXJqEePHujfvz927txZ7HBEREREllLskpSZmQlfX98HruPr64vMzMziPgURERGRxRS7JHl5eWH//v0PXOfAgQPw8vIq7lMQERERWUyxS9IzzzyDXbt2YerUqcjNzTVZlpubi+nTp2Pnzp3o06fPPw5JREREZG4aEZHifOL169cRFBSExMREuLi4oG3btnB3d0dqairi4uJw7do11KtXDwcPHkSNGjVKOrfFZWVlwdnZGZmZmXBycrJ0HCJ6DHUnbSyRxzn/fliJPA4Rmc/j/P4u9tltLi4u2L9/P9566y1899132LRpk7KsUqVKGDp0KObOnVsuCxIRERGVf//oYpI1a9bEl19+ic8++wwnT55Urrjt5+cHW1vbkspIREREZHaPXZJmz56N7OxszJgxQylCtra2aNasmbJOfn4+3n77bTg6OmLSpEkll5aIiIjITB7rwO3ffvsN06ZNg4uLywP3FNnZ2cHFxQVvv/02r5NEREREZdJjlaSvv/4a1atXx5gxYx66bkREBGrUqIHly5cXOxwRERGRpTxWSdq3bx9CQkJgb2//0HXt7e0REhKCvXv3FjscERERkaU8VklKTk5GvXr1Hnl9X19fXLly5bFDEREREVnaY5UkrVaLgoKCR16/oKAAWm2xr1dJREREZDGP1WC8vLxw9OjRR17/6NGjqFWr1mOHIiIiIrK0xypJnTp1wo4dO3D+/PmHrnv+/Hns2LEDnTt3Lm42IiIiIot5rJIUERGBgoIC9O/fH2lpafdd7/r16xgwYAAKCwsxevTofxySiIiIyNwe62KSLVu2RGRkJBYvXgx/f3+MGjUKXbp0Qe3atQEAly9fxvbt2/H555/j2rVriIqKQsuWLUslOBEREVFpeuwrbi9YsACVKlXC/PnzMXv2bMyePdtkuYhAp9Nh8uTJmDVrVokFJSIiIjKnxy5JGo0G7733HoYNG4bly5dj3759SElJAQB4eHigQ4cOePnll1G/fv0SD0tERERkLsW+wW39+vW5p4iIiIjKLV7EiIiIiEiFVZek999/HxqNBpGRkcpYbm4uIiIi4OLigqpVq6Jfv35ITU01+byLFy8iLCwMlStXhpubGyZMmIDCwkKTdXbt2oWWLVvC3t4eTzzxBKKjo80wIyIiIiorrLYkxcXF4bPPPkPz5s1NxsePH4/169fjhx9+wO7du5GcnIxnn31WWa7X6xEWFob8/Hzs27cPX331FaKjozFt2jRlncTERISFhaFLly6Ij49HZGQkhg8fji1btphtfkRERGTdrLIk3bp1C+Hh4fjiiy9QvXp1ZTwzMxPLli3DwoUL0bVrV7Rq1Uo5eHz//v0AgK1bt+L48eNYsWIFAgIC0LNnT7z77rv45JNPkJ+fDwBYunQpfH19sWDBAjRu3BhjxoxB//79sWjRIovMl4iIiKxPsQ/cLk0REREICwtDSEiIycHhhw8fRkFBAUJCQpQxPz8/1KlTB7GxsWjXrh1iY2PRrFkzuLu7K+uEhoZi9OjROHbsGAIDAxEbG2vyGMZ17n5b7155eXnIy8tTPs7KygJw5/50xvvZabVa6HQ66PV6GAwGZV3jeGFhIUREGdfpdNBqtfcdv/c+eTY2d16ue986vN+4ra0tDAYD9Hq9MqbRaGBjY3Pf8ftl55w4p/I2p5JQWFhoVXMqj68T58Q5lcacHpXVlaTvvvsOf/zxB+Li4oosS0lJgZ2dHapVq2Yy7u7urlyGICUlxaQgGZcblz1onaysLNy+fRsODg5FnnvOnDmYMWNGkfGtW7eicuXKAIA6deogMDAQR44cwcWLF5V1GjVqBD8/Pxw8eBDXrl1TxgMCAuDj44OYmBjcvHlTGQ8ODoabmxu2bt1q8mJ26dIFDg4O2LRpk0mGXr164fbt29i5c6cyZmNjg7CwMKSlpSE2NlYZd3R0RNeuXZGUlIT4+Hhl3NXVFe3bt8fp06dx6tQpZZxz4pzK55xK5kdfTEyMFc2pPL5OnBPnVPJz2rt3Lx6VRu6uWRaWlJSE1q1bY9u2bcqxSE899RQCAgKwePFirFy5EkOHDjXZowMAbdu2RZcuXTB37lyMHDkSFy5cMDm+KCcnB1WqVMGmTZvQs2dPNGzYEEOHDsXkyZOVdTZt2oSwsDDk5OSoliS1PUne3t5IS0uDk5MTADZ1zolzKitzajB1K0rCmVmhVjMnoPy9TpwT51Qac0pPT4eLiwsyMzOV39/3Y1V7kg4fPoyrV6+a3MpEr9cjJiYGH3/8MbZs2YL8/HxkZGSY7E1KTU2Fh4cHgDsXtDx48KDJ4xrPfrt7nXvPiEtNTYWTk5NqQQIAe3t72NvbFxm3tbWFra2tyZhOp4NOpyuyrvGL5VHH733c4oxrtVpotUUPPbvf+P2yc06c0+OOl5U5/RPG57K2OZXH14lz4pxKe05qrOrA7W7duiEhIQHx8fHKv9atWyM8PFz5v62tLbZv3658zqlTp3Dx4kUEBwcDuLMrMCEhAVevXlXW2bZtG5ycnODv76+sc/djGNcxPgYRERGRVe1JcnR0RNOmTU3GqlSpAhcXF2V82LBhiIqKQo0aNeDk5ITXX38dwcHBaNeuHQCge/fu8Pf3x6BBgzBv3jykpKRgypQpiIiIUPYEjRo1Ch9//DHeeustvPLKK9ixYwe+//57bNy40bwTJiIiIqtlVSXpUSxatAharRb9+vVDXl4eQkND8emnnyrLdTodNmzYgNGjRyM4OBhVqlTBkCFDMHPmTGUdX19fbNy4EePHj8cHH3yA2rVr43//+x9CQ0MtMSUiIiKyQlZ14HZZkpWVBWdn50c68IuIrEvdSSWz1/j8+2El8jhEZD6P8/vbqo5JIiIiIrIWLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIBUsSERERkQqWJCIiIiIVLElEREREKliSiIiIiFSwJBERERGpYEkiIiIiUsGSRERERKSCJYmIiIhIhdWVpDlz5qBNmzZwdHSEm5sb+vbti1OnTpmsk5ubi4iICLi4uKBq1aro168fUlNTTda5ePEiwsLCULlyZbi5uWHChAkoLCw0WWfXrl1o2bIl7O3t8cQTTyA6Orq0p0dERERlhNWVpN27dyMiIgL79+/Htm3bUFBQgO7duyM7O1tZZ/z48Vi/fj1++OEH7N69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", "text/plain": [ "
" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "plot_histogram(result[0].data.c.get_counts())" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Démonstration\n", "\n", "## par le calcul et combinatoirement" ] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.9.20" }, "rise": { "autolaunch": true, "chalkboard": { "readOnly": false }, "enable_chalkboard": true, "reveal_shortcuts": { "chalkboard": { "colorNext": "s", "colorPrev": "q", "toggleChalkboard": "a", "toggleNotesCanvas": "z" } }, "scroll": true, "theme": "white" } }, "nbformat": 4, "nbformat_minor": 2 }