Commit a1ddd588 authored by Nicolas Ollinger's avatar Nicolas Ollinger

qorleans

parent 4a069c83
=== Environnement Qiskit pour slides avec jupyter ===
<nicolas.ollinger@univ-orleans.fr>
** LOGICIELS REQUIS
Avant d'installer cet environnemennt, il est nécessaire de disposer :
- de jupyter notebook
- d'une installation de python avec virtualenv et pip
** INSTALLATION
Le script [genenv] crée un environnement virtuel dans le répertoire [qisenv] :
$ ./genenv
Ce script ajoute un noyau [qiskitenv] à jupyter et installe l'extension RISE.
** UTILISATION
Le script [gojupyter] exécute jupyter dans l'environnement virtuel.
......@@ -8,10 +8,11 @@
}
},
"source": [
"# Informatique quantique : \n",
"## programmation 101\n",
"# Qubits et portes quantiques : \n",
"## premiers pas en informatique quantique\n",
"\n",
"### Nicolas Ollinger, LIFO, U. Orléans"
"### Nicolas Ollinger, LIFO, U. Orléans\n",
"<img style=\"width:15%; height: auto;\" src=\"img/lifo.png\">"
]
},
{
......@@ -22,16 +23,105 @@
}
},
"source": [
"### Mesdames et messieurs 🦊\n",
"## Mesdames et messieurs 🦊\n",
"\n",
"Tout ce que vous avez *toujours* voulu **savoir** sur les **_circuits_** quantiques 💾 sans _jamais_ oser le demander.\n",
"\n",
"Et aussi $x=y+\\sqrt{z}$ !"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"## Lapin\n",
"\n",
"Write content using inline or external Markdown.\n",
" Instructions and more info available in the [readme](https://github.com/hakimel/reveal.js#markdown).\n",
" \n",
" $$\n",
" x \\otimes y = \\alpha \\left|001\\right> + \\beta \\left|10\\right> \\otimes \\left( \\frac{1}{\\sqrt{2}}\\left|0\\right> + \\frac{1}{\\sqrt{2}}i\\left|0\\right>\\right)\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## porte TOTO\n",
"$$\n",
"\\operatorname{TOTO}(x \\otimes y) = \\begin{pmatrix}\n",
"0 & 0 & 0 & \\color{red}{e^{i\\theta}} \\\\\n",
"1 & 0 & 0 & 0 \\\\\n",
"0 & 0 & 1 & 0 \\\\\n",
"0 & 1 & 0 & 0\n",
"\\end{pmatrix}\n",
"\\begin{pmatrix}\n",
"x_0 y_0 \\\\\n",
"x_0 y_1 \\\\\n",
"x_1 y_0 \\\\\n",
"x_1 y_1\n",
"\\end{pmatrix}\n",
"$$"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"## Mesure quantique (observation)\n",
"\n",
"<img style=\"width=100%; height=auto; margin: auto\" src=\"img/mesure.png\" />"
]
},
{
"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": "slide"
}
},
"source": [
"<img style=\"width: 85%; height: auto; margin: auto;\" src=\"img/qproc.jpg\" />"
]
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 11,
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -43,7 +133,7 @@
"output_type": "stream",
"text": [
"\n",
"Total count are: {'00': 4902, '11': 5098}\n"
"Total count are: {'00': 4935, '11': 5065}\n"
]
},
{
......@@ -53,17 +143,14 @@
"<Figure size 911.6x292.4 with 1 Axes>"
]
},
"execution_count": 1,
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import numpy as np\n",
"from qiskit import(\n",
" QuantumCircuit,\n",
" execute,\n",
" Aer)\n",
"from qiskit import QuantumCircuit, execute, Aer\n",
"from qiskit.visualization import plot_histogram\n",
"\n",
"# Use Aer's qasm_simulator\n",
......@@ -99,7 +186,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 12,
"metadata": {
"slideshow": {
"slide_type": "slide"
......@@ -108,18 +195,18 @@
"outputs": [
{
"data": {
"image/png": "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\n",
"image/png": "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\n",
"text/plain": [
"<Figure size 504x360 with 1 Axes>"
]
},
"execution_count": 2,
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Plot a histogram\n",
" # Plot a histogram\n",
"\n",
"plot_histogram(counts)"
]
......@@ -132,40 +219,31 @@
}
},
"source": [
"## Algorithme de Bernstein-Vazirani "
"# Algorithme de Bernstein-Vazirani "
]
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 6,
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Total count are: {'1101': 1}\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1599.6x894.4 with 1 Axes>"
"<qiskit.circuit.instructionset.InstructionSet at 0x12144b9e8>"
]
},
"execution_count": 3,
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s = '1011'\n",
"s = '101101110000110'\n",
"k = len(s)\n",
"\n",
"circuit = QuantumCircuit(2*k+1,k)\n",
......@@ -193,17 +271,123 @@
"circuit.measure(list(range(k)), list(range(k)))\n",
"\n",
"# Execute the circuit on the qasm simulator\n",
"job = execute(circuit, simulator, shots=1)\n",
"#job = execute(circuit, simulator, shots=1)\n",
"\n",
"# Grab results from the job\n",
"result = job.result()\n",
"#result = job.result()\n",
"\n",
"# Returns counts\n",
"counts = result.get_counts(circuit)\n",
"print(\"\\nTotal count are:\",counts)\n",
"#counts = result.get_counts(circuit)\n",
"#print(\"\\nTotal count are:\",counts)\n",
"\n",
"# Draw the circuit\n",
"circuit.draw(output='mpl',scale=1)"
"# circuit.draw(output='mpl',scale=1)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'qiskit-terra': '0.10.0',\n",
" 'qiskit-aer': '0.3.2',\n",
" 'qiskit-ignis': '0.2.0',\n",
" 'qiskit-ibmq-provider': '0.3.3',\n",
" 'qiskit-aqua': '0.6.1',\n",
" 'qiskit': '0.13.0'}"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import qiskit\n",
"qiskit.__qiskit_version__"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ibmq_burlington 8\n"
]
}
],
"source": [
"from qiskit import IBMQ\n",
"from qiskit.providers.ibmq import least_busy\n",
"\n",
"# Load local account information\n",
"provider = IBMQ.load_account()\n",
"\n",
"# Get the least busy real quantum system\n",
"backend = least_busy(provider.backends(n_qubits=5, operational=True, simulator=False))\n",
"print(backend, backend.status().pending_jobs)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"realjob = execute(circuit, backend, shots=1024)\n",
"rresult = realjob.result()\n",
"\n",
"# Returns counts\n",
"counts = rresult.get_counts(circuit)\n",
"print(\"\\nTotal count are:\",counts)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ibmq_qasm_simulator 1\n"
]
}
],
"source": [
"simback = provider.get_backend('ibmq_qasm_simulator')\n",
"print(simback, simback.status().pending_jobs)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"Total count are: {'011000011101101': 1}\n"
]
}
],
"source": [
"simjob = execute(circuit, simback, shots=1)\n",
"sresult = simjob.result()\n",
"\n",
"# Returns counts\n",
"counts = sresult.get_counts(circuit)\n",
"print(\"\\nTotal count are:\",counts)"
]
},
{
......
@font-face {
font-family: "FiraSans";
src: url("fonts/FiraSans-Light.woff2") format('woff2');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: "FiraSans";
src: url("fonts/FiraSans-SemiBold.woff2") format('woff2');
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: "FiraSans";
src: url("fonts/FiraSans-SemiBoldItalic.woff2") format('woff2');
font-weight: bold;
font-style: italic;
}
@font-face {
font-family: "FiraSans";
src: url("fonts/FiraSans-LightItalic.woff2") format('woff2');
font-weight: normal;
font-style: italic;
}
.reveal {
font-family: FiraSans;
font-weight: normal;
font-style: normal;
}
.reveal h1 {
font-family: FiraSans;
font-weight: bold;
color: #e07;
}
.cool {
color: #e07;
}
.reveal h2, h3, h4, h5, h6 {
font-family: FiraSans;
}
.reveal p {
font-weight: normal;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment