1. Supports de cours
  2. Informatique quantique - De la physique quantique à la programmation quantique en Q#

Informatique quantique De la physique quantique à la programmation quantique en Q#

  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande

Présentation

L'engouement pour l'informatique quantique est en pleine effervescence et ce sujet complexe fait de plus en plus l'objet de publications. Ce livre s'adresse à toute personne qui souhaite découvrir les concepts et fondements de l'informatique quantique et plus particulièrement aux étudiants en informatique ou aux développeurs qui souhaitent débuter avec Q#, le langage de Microsoft adapté à la programmation quantique.

Pour tirer le meilleur profit de la lecture de ce livre, des connaissances en mathématiques et en particulier sur les nombres complexes et le calcul matriciel sont un plus. 

Dans la première partie du livre, l'auteur présente les rudiments de la physique quantique qui permettront ensuite de saisir les bases constitutives de l'informatique quantique. Le modèle de Bohr et les notions d'état quantique, de superposition quantique ou d'intrication quantique sont ainsi détaillés.

Dans la deuxième partie du livre, l'auteur étudie ensuite les grands concepts de l'informatique quantique comme le bit quantique, la porte quantique, les circuits et algorithmes quantiques ou encore l'ordinateur quantique.

La troisième partie consacrée au développement quantique avec Q# est plus tournée vers la pratique. Le lecteur apprend ainsi à installer le kit de développement Quantum, qui regroupe les outils quantiques de Microsoft, et étudie le langage Q# pour ensuite simuler ses premiers programmes quantiques au sein de cet environnement.

Pour finir, l'auteur termine avec un glossaire ainsi qu'un récapitulatif historique de la physique et de l'informatique quantiques, qui peuvent être utiles au lecteur tout au long de sa lecture.


Les chapitres du livre :
Avant-propos – De la théorie classique à la physique quantique – Modèle de Bohr et quantification de l'énergie – L'état quantique – La superposition quantique – L'intrication quantique – Le bit quantique – La porte quantique – Définition des circuits quantiques – Construire un ordinateur quantique – Microsoft Quantum Development Kit et son installation – Le langage Q# et son utilisation – Simuler des programmes quantiques en Q# – Histoire de la physique quantique – Glossaire de la physique quantique



Quizinclus dans
la version en ligne !
  • Testez vos connaissances à l'issue de chaque chapitre
  • Validez vos acquis

Table des matières

  • De la théorie classique à la physique quantique
    • 1. Du classique au quantique
      • 1.1 Lumière et sauts d'énergie
      • 1.2 Lumière et matière, même combat
    • 2. L'atome
    • 3. La classification périodique des éléments
    • 4. La lumière
      • 4.1 Lumière, onde-corpuscule
      • 4.2 Le photon
  • Modèle de Bohr et quantification de l’énergie
    • 1. Pourquoi le modèle de Bohr ?
      • 1.1 Introduction
      • 1.2 Spectre électromagnétique et raies spectrales
      • 1.3 Postulat de Bohr
    • 2. Modèle de Bohr
      • 2.1 Précisions concernant les orbites
      • 2.2 Modèle de Bohr et nombres quantiques
        • 2.2.1 Premier nombre quantique n
        • 2.2.2 Second nombre quantique l
        • 2.2.3 Troisième nombre quantique m
        • 2.2.4 Quatrième nombre quantique s
      • 2.3 Nombres quantiques et représentation de l'état de l'électron
  • L’état quantique
    • 1. Vers une définition de l'état quantique
      • 1.1 Le principe d'incertitude d'Heisenberg
      • 1.2 La mesure quantique
      • 1.3 Un monde probabiliste
      • 1.4 L'approche systémique
    • 2. L'état quantique et les mathématiques
      • 2.1 Rapide retour sur les vecteurs
      • 2.2 Rapide retour sur le calcul matriciel
      • 2.3 La notation bra-ket
    • 3. Fonction d'onde
      • 3.1 La mise en évidence graphique
      • 3.2 La fonction d'onde continue
  • La superposition quantique
    • 1. Introduction à la superposition quantique
      • 1.1 En partant de l'état quantique
      • 1.2 Outils mathématiques
        • 1.2.1 Premier exemple avec le spin de l'électron
        • 1.2.2 Rapide retour sur les nombres complexes
        • 1.2.3 Calcul relatif à la probabilité
      • 1.3 Second exemple : le « dé quantique »
    • 2. Interprétation de la superposition quantique
      • 2.1 Interprétation du « dé quantique »
      • 2.2 Le paradoxe du chat de Schrödinger
        • 2.2.1 Mise en équation
      • 2.3 Le congrès Solvay de 1927
      • 2.4 Théorie d'Everett
    • 3. Vérification de la superposition quantique
  • L’intrication quantique
    • 1. Première approche de l'intrication quantique
      • 1.1 Propos introductif
      • 1.2 Mise en évidence
    • 2. Le paradoxe EPR
      • 2.1 Explications du paradoxe EPR
      • 2.2 Interprétations du paradoxe EPR
    • 3. La théorie de Bell
      • 3.1 Explications de la théorie de Bell
      • 3.2 Intérêt des inégalités de Bell dans le champ expérimental
      • 3.3 « Dieu joue aux dés » (?) ou l'expérience d'Aspect
  • Le bit quantique
    • 1. Vers le bit quantique
      • 1.1 Du bit au bit quantique
      • 1.2 Sphère de Bloch
      • 1.3 Résumé du cycle de vie d'un qubit
    • 2. Définition vectorielle du bit quantique
      • 2.1 Exemple à un qubit
      • 2.2 Exemple à deux qubits
  • La porte quantique
    • 1. Comparaison avec l'informatique quantique
      • 1.1 Introduction
      • 1.2 Exemple de la porte logique NOT
      • 1.3 Exemple de la porte logique XOR
    • 2. Les portes quantiques à un qubit en entrée
      • 2.1 Introduction
      • 2.2 Porte de Hadamard (H)
        • 2.2.1 Utilisation de la porte de Hadamard
      • 2.3 Porte de Pauli-X (NOT)
        • 2.3.1 Utilisation de la porte de Pauli-X
      • 2.4 Portes de Pauli-Y et de Pauli-Z
        • 2.4.1 Considérations sur la porte de Pauli-Y
        • 2.4.2 Considérations sur la porte de Pauli-Z
      • 2.5 Racine carrée de la porte NOT
      • 2.6 Porte de changement de phase
    • 3. Les portes quantiques à deux qubits en entrée
      • 3.1 Introduction
      • 3.2 Porte cNOT (cX)
      • 3.3 Porte SWAP (S)
        • 3.3.1 Présentation et description
        • 3.3.2 Conception de la porte SWAT à base de la porte cNOT
    • 4. Les portes quantiques à trois qubits en entrée
      • 4.1 Porte TOF (CCNOT)
      • 4.2 Porte Fredkin (CSWAP)
      • 4.3 La mesure dans les schémas quantiques
  • Définition des circuits quantiques
    • 1. Introduction
    • 2. Produit tensoriel
      • 2.1 Montage en série
      • 2.2 Produit de Kronecker
      • 2.3 Montage en parallèle
    • 3. Les états de Bell
      • 3.1 Explications
      • 3.2 Initialisation
      • 3.3 Application de la porte de Hadamard
      • 3.4 Application de la porte CNOT
      • 3.5 Résultat et interprétation
    • 4. Téléportation quantique
      • 4.1 Explications
      • 4.2 Scénario de téléportation
      • 4.3 Schéma quantique de téléportation
      • 4.4 Interprétation
    • 5. Classification des problèmes à résoudre et complexité
      • 5.1 L'informatique classique face à l'informatique quantique
        • 5.1.1 Complexité des problèmes à résoudre
        • 5.1.2 Parallélisation quantique ou la puissance du registre quantique
    • 6. Typologie des problèmes
      • 6.1 Contexte
      • 6.2 La complexité
        • 6.2.1 Première approche
        • 6.2.2 Complexité de l’algorithme par dichotomie
        • 6.2.3 Complexité d'un algorithme appliqué au problème du voyageur de commerce
      • 6.3 Catégorisation des problèmes
        • 6.3.1 Les classes P et NP
        • 6.3.2 Inclusions ?
        • 6.3.3 Les classes EXPTIME et NEXPTIME
        • 6.3.4 La classe NP-Complet
    • 7. Vers la suprématie quantique ?
      • 7.1 Introduction
      • 7.2 L'algorithme quantique de Shor
  • Construire un ordinateur quantique
    • 1. Introduction
    • 2. Architecture de l'ordinateur quantique
      • 2.1 Premiers éléments
      • 2.2 Bit quantique logique et bit quantique physique
    • 3. Le bit quantique physique en pratique
      • 3.1 Approche générale
      • 3.2 Pistes de réalisation
    • 4. Détails de quelques pistes de réalisation
      • 4.1 La piste de la résonance magnétique nucléaire
        • 4.1.1 Explication du phénomène
        • 4.1.2 RMN et ordinateur quantique
      • 4.2 La piste « Josephson »
        • 4.2.1 L'effet Josephson
        • 4.2.2 Bit quantique à supraconducteurs
    • 5. Un bref état des lieux
      • 5.1 Typologie des acteurs
      • 5.2 Un état des lieux, acteur par acteur
        • 5.2.1 D-Wave Systems
        • 5.2.2 Rigetti Computing
        • 5.2.3 Fujitsu
        • 5.2.4 Atos
        • 5.2.5 Google
        • 5.2.6 Intel
        • 5.2.7 IBM
        • 5.2.8 Microsoft
  • Quantum Development Kit et son installation
    • 1. Présentation générale
      • 1.1 Annonce de la sortie
      • 1.2 Composition du kit quantique de Microsoft
    • 2. Installation du Microsoft Quantum Development Kit
      • 2.1 Environnements de développements ciblés
      • 2.2 Installation avec Microsoft Visual Studio
        • 2.2.1 Installation de Microsoft Visual Studio
        • 2.2.2 Installation de Microsoft Quantum Development Kit
      • 2.3 Installation avec Visual Studio Code
        • 2.3.1 Installation de Visual Studio Code
        • 2.3.2 Installation du .NET Core SDK
        • 2.3.3 Installation annexe relative à C# (facultative)
        • 2.3.4 Installation de Microsoft Quantum Development Kit
        • 2.3.5 Configuration relative à la ligne de commande
      • 2.4 Test de la validité de l'installation
        • 2.4.1 Test avec Microsoft Visual Studio
        • 2.4.2 Test avec Visual Studio Code
      • 2.5 Examen du projet de test de téléportation
        • 2.5.1 Le projet de téléportation
        • 2.5.2 Le fichier TeleportationSample.qs
  • Le langage Q# et son utilisation
    • 1. Présentation du langage Q#
      • 1.1 Introduction
      • 1.2 Un langage évolutif
      • 1.3 Un langage multiparadigme
    • 2. Éléments relatifs aux signes de ponctuation
      • 2.1 Contexte
      • 2.2 Nomenclature relative aux signes de ponctuation
    • 3. Les types en Q#
      • 3.1 Les types primitifs du langage
    • 4. Les structures de données
      • 4.1 Introduction
      • 4.2 Le tableau
      • 4.3 Le tuple
        • 4.3.1 Le cas particulier du tuple singleton
    • 5. Considérations sur les types et les structures de données en Q#
      • 5.1 Définir ses propres types en Q#
      • 5.2 Les types encapsulés en Q#
        • 5.2.1 Introduction du mot-clé let
        • 5.2.2 Utiliser les types encapsulés
        • 5.2.3 Opérateur de désencapsulation
    • 6. Opérations et fonctions Q#
      • 6.1 Distinction entre opération et fonction en Q#
      • 6.2 Utiliser des « callables » dans des « callables »
      • 6.3 L'opération en Q#
        • 6.3.1 Première approche
        • 6.3.2 Un exemple avec tuple non vide en sortie
        • 6.3.3 Les mots-clés adjoint et controlled
      • 6.4 La fonction en Q#
      • 6.5 Conditions, boucles, etc.
        • 6.5.1 Condition if...elif
        • 6.5.2 Boucle for
        • 6.5.3 Boucle repeat...until
    • 7. Les variables en Q#
      • 7.1 Le mot-clé let et l'immutabilité
      • 7.2 Les mots-clés mutable et set
    • 8. Manipuler des bits quantiques en Q#
      • 8.1 Utiliser un registre de bits quantiques
      • 8.2 Première approche des portes quantiques en Q#
        • 8.2.1 Les primitives en Q#
        • 8.2.2 Une primitive particulière, la mesure
      • 8.3 Inventaire des primitives en Q#
        • 8.3.1 Opération Assert
        • 8.3.2 Opération AssertProb
        • 8.3.3 Opération CNOT
        • 8.3.4 Opération CCNOT
        • 8.3.5 Opération Exp
        • 8.3.6 Opération ExpFrac
        • 8.3.7 Opération H
        • 8.3.8 Opération I
        • 8.3.9 Opération M
        • 8.3.10 Opération Measure
        • 8.3.11 Opération MultiX
        • 8.3.12 Opération R
        • 8.3.13 Opération R1
        • 8.3.14 Opération R1Frac
        • 8.3.15 Opération RFrac
        • 8.3.16 Opération Rx
        • 8.3.17 Opération Ry
        • 8.3.18 Opération Rz
        • 8.3.19 Opération Random
        • 8.3.20 Opération Reset
        • 8.3.21 Opération ResetAll
        • 8.3.22 Opération S
        • 8.3.23 Opération SWAP
        • 8.3.24 Opération T
        • 8.3.25 Opération X
        • 8.3.26 Opération Y
        • 8.3.27 Opération Z
    • 9. Tester son code quantique et le déboguer
      • 9.1 Les tests unitaires en Q#
        • 9.1.1 Contexte
        • 9.1.2 Création d'un projet de tests avec Microsoft Visual Studio
        • 9.1.3 Création d'un projet de tests avec Visual Studio Code
        • 9.1.4 Écrire des tests unitaires
        • 9.1.5 Exécuter des tests unitaires
      • 9.2 Déboguer un code quantique Q#
        • 9.2.1 Les outils des environnements de développement
        • 9.2.2 Utiliser les messages
        • 9.2.3 Utiliser les logs
        • 9.2.4 Utiliser les assertions
        • 9.2.5 Les fonctions de dump
    • 10. Inventaire des espaces de noms quantiques
      • 10.1 Contexte
      • 10.2 L'espace de noms Microsoft.Quantum.Core
      • 10.3 Les espaces Microsoft.Extensions.*
        • 10.3.1 Microsoft.Extensions.Bitwise
        • 10.3.2 Microsoft.Extensions.Convert
        • 10.3.3 Microsoft.Extensions.Diagnostics
        • 10.3.4 Microsoft.Extensions.Math
        • 10.3.5 Microsoft.Extensions.Testing
      • 10.4 L'espace Microsoft.Quantum.Primitive
      • 10.5 L'espace Microsoft.Quantum.Canon
    • 11. C# en pilotage du simulateur quantique
  • Simuler des programmes quantiques en Q#
    • 1. Contexte
    • 2. Exemple appliqué : les états de Bell
      • 2.1 Contexte
      • 2.2 Les états de Bell
      • 2.3 Création d'un projet quantique
        • 2.3.1 Création d'un projet quantique avec Microsoft Visual Studio
        • 2.3.2 Création d'un projet quantique avec Visual Studio Code
      • 2.4 Programmation du fichier Q#
        • 2.4.1 Renommage du fichier
        • 2.4.2 Codage du fichier Q#
      • 2.5 Programmation du fichier de pilotage C#
        • 2.5.1 Code automatiquement généré
      • 2.6 Exécuter le programme quantique
        • 2.6.1 Exécuter le programme quantique avec Microsoft Visual Studio
        • 2.6.2 Exécuter le programme quantique avec Visual Studio Code
      • 2.7 Simuler la superposition quantique
      • 2.8 Simuler les états de Bell avec l'intrication quantique
    • 3. Plus loin dans le développement Q#
      • 3.1 Différentes situations de mesures en Q#
        • 3.1.1 Contexte
        • 3.1.2 Le projet quantique de mesure
        • 3.1.3 Le pilote C#
        • 3.1.4 Le code quantique Q# de la mesure d'un bit quantique
        • 3.1.5 Le code quantique Q# de la mesure d'un registre de bits quantiques
        • 3.1.6 Le code quantique Q# de la mesure dans la base de Bell
      • 3.2 Algorithme quantique de Deutsch-Jozsa
        • 3.2.1 Contexte
        • 3.2.2 L'algorithme quantique
        • 3.2.3 Le pilote C#
        • 3.2.4 Le code quantique Q#
    • 4. Simulateur quantique : en local ou dans le cloud ?
      • 4.1 Contexte
      • 4.2 Simulateur distant avec Azure
  • Histoire de la physique quantique
    • 1. Contexte
    • 2. Histoire chronologique : le XIXe siècle
      • 2.1 De 1800 aux années 1860
      • 2.2 Années 1870
      • 2.3 Années 1880
      • 2.4 Années 1890
    • 3. Histoire chronologique : le XXe siècle
      • 3.1 Années 1900
      • 3.2 Années 1910
      • 3.3 Années 1920
        • 3.3.1 Année 1922
        • 3.3.2 Année 1923
        • 3.3.3 Année 1925
        • 3.3.4 Année 1926
        • 3.3.5 Année 1927
        • 3.3.6 Année 1928
        • 3.3.7 Année 1929
      • 3.4 Années 1930
      • 3.5 Années 1940
      • 3.6 Années 1950
      • 3.7 Années 1960
      • 3.8 Années 1970
      • 3.9 Années 1980
      • 3.10 Années 1990
    • 4. Histoire chronologique : le XXIe siècle
      • 4.1 Années 2000
      • 4.2 Années 2010
  • Glossaire de la physique quantique
    • 1. Contexte
    • 2. Glossaire alphabétique
    • Index

Auteur

Benoît PRIEUREn savoir plus

Ingénieur en informatique diplômé de l'ISIMA de Clermont-Ferrand, Benoît PRIEUR conduit des missions de conseil pour le compte de sa société Soarthec. Spécialisé dans le développement en Python et en C#, il met quotidiennement en œuvre ses compétences de développement auprès de ses clients. Il est également formateur sur les technologies .NET et le développement Python.

Caractéristiques

  • Niveau Initié à Confirmé
  • Nombre de pages 244 pages
  • Parution février 2019
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-409-01741-4
    • EAN : 9782409017414
    • Ref. ENI : DPQINF