OUTIL DE CERTIFICATION DE PROGRAMMES QUANTIQUES.
Schématiquement, un algorithme quantique est la description d'une suite d'opérations
élémentaires à appliquer sur une mémoire composée de bits quantiques. Cette mémoire
possède des propriètés bien particulières :
un bit quantique est non-duplicable ;
les opérations de modifications de la mémoire sont réversibles ;
les opérations de lecture sont probabilistes et modifient l'état global de la mémoire.
Les opérations réversible sont regroupées dans un "circuit quantique", version quantique du
circuit booléen. Comme les bits quantiques ne sont pas duplicable, un circuit quantique est
composé de fils parallèles, et chaque opération élémentaire travaille sur le même nombre de
fils d'entrée que de fils de sortie.
est un langage fonctionel de description de circuits. Présentement implémenté
comme sous-langage de Haskell, il permet la manipulation de bits quantiques, de listes de bits
quantiques, mais aussi des circuits générés, pour par exemple les inverser, les répéter... Un
exemple de circuit généré est comme suit:
Dans ce circuit, les entrées et sorties sont numérotées en vert. On voit bien que tous les fils
sont complètement parallèles. On trouve sinon des initialisations de fils, et des désallocations
avec assertions de valeur (les zeros en noir). On trouve aussi des portes Hadamard ("H").
Finalement, de nombreuse boite sont en fait des sous-circuits: les portes "OC" et les carrés
De nombreuses questions sont ouvertes pour analyser les circuits générés par un programme
Spécification et certification de la taille des circuits en fonction des paramètres du
Contraintes sur certaines constructions. Par exemple, une primitive d'inversion de circuits
ne peut qu'inverser un circuit réversible. Ou encore: un bit quantique n'est pas
Proposition de Stage http://www.monoidal.net/stage-1-2014.xhtml
1 of 2 09/15/2016 09:28 PM