Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

Premiers pas avec l'informatique quantique, Azure Quantum et Q#

9 Juin 2020 , Rédigé par Hugues MEUNIER

Microsoft a publié, il y a quelques temps, un SDK  pour exécuter/simuler un ordinateur quantique. Ce SDK manipule des qbits, des états superposés et des mesures de propriétés.

SI vous ne connaissez rien à la physique quantique, c'est peut être mieux de suivre ce cours qui est abordable sans bagage mathématique : Quantum mechanics for everyone .

Un qbit est l'élément constituant d'un ordinateur quantique. Lorsqu'il est dans l'état superposé (avant la mesure), la propriété peut prendre la valeur 0 ou 1 (50% de chance d'obtenir 1 et 50% de chances d'obtenir 0).

Si je veux écrire une fonction qui retourne un nombre aléatoire, j'écris une fonction pour obtenir l'état superposé de la propriété. En Q# cela donne :

namespace Qrng {
    open Microsoft.Quantum.Convert;
    open Microsoft.Quantum.Math;
    open Microsoft.Quantum.Measurement;
    open Microsoft.Quantum.Canon;
    open Microsoft.Quantum.Intrinsic;
    

   //operation qui retourne l'état d'un qbit
    operation SampleQuantumRandomNumberGenerator() : Result {
        using (q = Qubit())  {  // Alloue un qubit.
            H(q);               // Positionne le qbit dans les états superposés. Il y a donc 50% de probabilité pour |0> et 50% pour |1>. Cette fonction H est une porte de Hadamard!
            return MResetZ(q);  // On réalise la mesure.
        }
    }

//Operation qui retourne un nombre aleatoire

operation SampleRandomNumberInRange(max : Int) : Int {
    mutable bits = new Result[0];
    for (idxBit in 1..BitSizeI(max)) {
        set bits += [SampleQuantumRandomNumberGenerator()];
    }
    let sample = ResultArrayAsInt(bits);
    return sample > max
           ? SampleRandomNumberInRange(max)
           | sample;
}

//Point d'entrée de programme quantique

@EntryPoint()
operation SampleRandomNumber() : Int {
    let max = 50;
    Message($"Sampling a random number between 0 and {max}: ");
    return SampleRandomNumberInRange(max);
}

}

Tout ceci peut être consulté sur le site de Microsoft et testé sur Azure Quantum !

https://docs.microsoft.com/en-us/quantum/

N'hésitez pas aussi à vous plonger dans la physique quantique qui est une merveilleuse théorie jamais mise à défaut pour le moment et à son formalisme mathématique qui vaut le détour (la Ket et Bra notation). 

 

Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article