Comment construire des modèles de bruit pour les simulations de dispositifs à atomes neutres dans le QDK

Le Microsoft Quantum Development Kit (QDK) inclut un ensemble d’API de simulation d’appareil atom neutre que vous pouvez utiliser pour modéliser la façon dont votre programme s’exécute sur un ordinateur quantique atom neutre. Ces API modélisent les types de bruit qui se produisent spécifiquement sur le matériel atomique neutre. Le package QDKPython vous permet de créer des modèles de bruit pour les simulations avec la classe NoiseConfig.

Pour plus d’informations sur les modèles de bruit dans QDK les simulations, consultez Comment créer des modèles de bruit pour les simulations quantiques dans le QDK.

Pour obtenir des instructions sur l’installation et l’utilisation QDK des simulateurs, consultez Comment installer et exécuter les QDK simulateurs quantiques.

Les API de simulation de dispositif à atomes neutres

Le QDK inclut deux API de simulation de dispositifs à atomes neutres, NeutralAtomDevice et NeutralAtomBackend. Ces API modélisent le bruit qui se produit spécifiquement sur les ordinateurs quantiques atom neutres. Pour plus d’informations, consultez Simuler des programmes quantiques sur du matériel d’appareil atom neutre.

Types de bruit dans les simulateurs d’appareils atom neutres

Dans les appareils atomiques neutres, les lasers déplacent physiquement les qubits entre différentes zones de l’appareil. Le bruit peut se produire dans les dispositifs atomiques neutres dans les situations suivantes :

  • Mouvements de qubits entre les zones
  • Opérations de porte quantique sur des qubits dans la zone d’interaction
  • Mesures de qubit dans la zone de détection

Les dispositifs à atomes neutres disposent d’un nombre limité de portes quantiques. Les simulations de dispositifs à atomes neutres dans le QDK prennent en charge le bruit provenant des sources suivantes.

Source de bruit Paramètre de modèle de bruit Description de la source
porte quantique $S_X$ sx Porte à un qubit, demi-renversement de bit
porte quantique $R_Z$ rz Porte à qubit unique, rotation de phase générale
porte quantique $CZ$ cz Porte à deux qubits, bascule de phase contrôlée-$Z$
Mesure et réinitialisation du qubit mresetz Mesure à qubit unique et réinitialisation à 0 état
Le mouvement du qubit mov Le mouvement du qubit entre les zones de l’appareil

Pour ces sources de bruit, vous pouvez configurer tous les types de bruit pris en charge par les QDK simulateurs.

Votre programme quantique peut contenir n’importe quel type de porte prise en charge par le profil cible QIR. Les API de simulation sur atomes neutres compilent le QIR en entrée et décomposent les portes de votre programme en un ensemble de portes disponibles sur les dispositifs à atomes neutres : $S_X$, $R_Z$ et $CZ$. Lorsque vous utilisez NeutralAtomDevice et NeutralAtomBackend pour vos simulations, ne configurez pas le bruit sur d’autres portes, car ce bruit n’affecte pas la simulation. Par exemple, si votre programme contient des portes Hadamard et que vous configurez le bruit pour les portes Hadamard, ce bruit ne s’affiche pas dans la simulation, car les portes Hadamard sont décomposées en portes d’appareil atomique neutre.

Les API de simulation d’atomes neutres convertissent l’ensemble des opérations de mesure de votre programme en instructions de mesure suivie de réinitialisation. Pour inclure le bruit de mesure, configurez le bruit sur mresetz. Le bruit sur mz n’est pas inclus dans la simulation.

Créer un modèle de bruit pour la simulation d’un dispositif à atomes neutres

Pour créer un modèle de bruit pour une simulation d’appareil atom neutre, procédez comme suit.

  1. Dans VS Code, ouvrez le menu Affichage et choisissez Palette de commandes.

  2. Entrez Créer : Nouveau Jupyter Notebook. Un fichier vide Jupyter Notebook s’ouvre dans un nouvel onglet.

  3. Dans la première cellule du notebook, importez les objets requis Python .

    from qdk import init, TargetProfile
    from qdk.openqasm import compile
    from qdk.simulation import NeutralAtomDevice, NoiseConfig
    from qdk.widgets import Histogram
    
  4. Dans une nouvelle cellule, définissez le profil cible QIR de l’appareil et compilez un programme OpenQASM en QIR.

    init(target_profile=TargetProfile.Base)
    
    qasm_src = """
    include "stdgates.inc";
    qubit[2] qs;
    bit[2] r;
    
    h qs[0];
    cx qs[0], qs[1];
    r = measure qs;
    """
    
    qir = compile(qasm_src)
    
  5. Créez un NoiseConfig objet et générez votre modèle de bruit. Par exemple, exécutez le code suivant dans une nouvelle cellule.

    noise = NoiseConfig()
    
    noise.sx.x = 0.01
    noise.rz.z = 0.01
    noise.cz.iy = 0.02
    noise.mov.loss = 0.005
    

    Ce code produit le modèle de bruit suivant, où le taux de bruit est la probabilité que la source provoque le type de bruit correspondant.

    Source de bruit Type de bruit Taux de bruit
    porte $S_X$ Retournement de bit 1 %
    porte $R_Z$ Inversion de phase 1 %
    porte $CZ$ Retournement de bit et retournement de phase sur le qubit cible 2 %
    Le mouvement du qubit Perte de qubit 0.5%
  6. Exécutez le simulateur avec le modèle de bruit et affichez un histogramme des résultats de mesure. Par exemple, exécutez le code suivant dans une nouvelle cellule pour exécuter 1 000 captures de votre programme sur le simulateur Clifford.

    device = NeutralAtomDevice()
    
    results = device.simulate(qir, shots=1000, noise=noise, type="clifford")
    Histogram(results, labels="kets")