Simulera kvantprogram på neutral atomenhetsmaskinvara

Microsoft Quantum Development Kit (QDK) innehåller en uppsättning simuleringsverktyg som gör att du kan utvärdera och iterera på dina kvantprogram innan du kör dem på verklig kvantmaskinvara. Api:erna för simulering av neutrala atomenheter modellerar de typer av brus- och kvantbitsbearbetning som inträffar när program körs på neutrala atom-kvantdatorer, till exempel kvantbitsförlust och kvantbitsrörelse. Om du planerar att köra dina kvantprogram på neutral atommaskinvara använder du API:erna för simulering av neutrala atomenheter för att testa och förfina koden.

Så här fungerar neutrala atom-kvantdatorer

Neutrala atomenheter är en av många aktuella maskinvarutekniker för kvantdatorer. Andra tekniker är superledande kvantbitar, kvantbitar med fångade joner och topologiska kvantbitar. Varje teknik har sina egna styrkor och nackdelar. Kvantdatorer med neutrala atomer erbjuder god skalbarhet, flexibla kopplingar mellan kvantbitar och långa koherenstider, men står inför utmaningar med grindfidelitet och komplexiteten i laserstyrningen.

Den exakta kvantbitstekniken i en neutral atomenhet beror på den specifika arkitekturen. Men i allmänhet är varje kvantbit en enda elektriskt neutral atom. Qubit 0- och 1-tillstånden motsvarar olika energitillstånd för atomerna. Atomerna är ordnade i 2D- eller 3D-matriser på enheten. Laserstrålar håller atomerna på plats och flyttar dem mellan olika zoner på enheten för lagring, mätning och interaktioner som realiserar kvantgrindar.

Simuleringsverktyg för neutrala atomenheter i QDK

Simulering av neutrala atomenheter i QDK modelleras följande egenskaper hos kvantmaskinvara baserad på neutrala atomer:

  • Enheterna innehåller endast portarna $S_X$, $R_Z$ och $CZ$ .
  • Kvantbitar flyttas fysiskt mellan lagrings-, interaktions- och måttzoner på enheten.

Paketet QDKPython har två API:er för neutral atomenhetssimulering, beroende på programmets format:

API QDK modul Indataformat Simulatorer som stöds
NeutralAtomDevice qdk.simulation QIR Clifford, GPU och CPU
NeutralAtomBackend qdk.qiskit Qiskit Clifford, GPU och CPU

Båda API:erna kompilerar ditt program till QIR som har instruktioner för qubitförflyttning och endast innehåller de portar som neutrala atomenheter stöder.

Mer information om kvantsimulering i finns i QDKÖversikt över kvantsimulatorer i QDK.

Visualiserare för neutrala atomenheter

NeutralAtomDevice API innehåller en neutral atomenhetsvisualiserare för Jupyter Notebook via metoden show_trace. Visualiseraren skapar ett interaktivt diagram som visar hur kvantbitar rör sig genom en grundläggande neutral atomenhet när programmet körs. Visualiseraren innehåller inte effekterna av qubitförlust eller annat brus.

Skärmbild av den neutrala atomenhetens visualiserare i Jupyter Notebook.

Mer information om den neutrala atomenhetens visualiserare finns i Så här använder du den neutrala atomenhetens visualiserare.

Brusmodeller för neutrala atomenhetssimuleringar

Kvantsimulatorerna i QDKPython paketet använder NoiseConfig klassen från modulen qdk.simulation för att lägga till brusmodeller i simuleringar. När du utför simuleringar med API:erna NeutralAtomDevice eller NeutralAtomBackend innehåller brusmodellerna endast brus från neutrala atomenhetsgrindar, qubitförflyttning och mätning.

Mer information om neutrala atomenhetsbrusmodeller i finns i QDKSkapa brusmodeller för neutrala atomenhetssimuleringar i QDK.

Kom igång med simulering av neutrala atomenheter

Information om hur du kommer igång med kvantsimulering i finns i QDKInstallera och köra QDK kvantsimulatorerna.

Information om hur du använder den neutrala atomenhetens visualiserare finns i Använda den neutrala atomenhetens visualiserare.