Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie maakt u een schatting van de fysieke resources die nodig zijn voor het berekenen van de energie van een Hamiltoniaan naar chemische nauwkeurigheid van 1 mHa met behulp van de Azure Quantum Resource Estimator.
In deze zelfstudie leert u het volgende:
- Kloon een voorbeeldopslagplaats vanuit GitHub.
- Gebruik FCIDUMP-bestanden als argumentparameters voor chemische modellering en simulatietoepassingen.
- Voer een schatting van resources uit voor een grootschalig probleem. Dit is een dubbelgefactoriseerde scheikundige steekproef.
Vereisten
Een Python-omgeving waarop Python en Pip zijn geïnstalleerd.
De nieuwste versie van Visual Studio Code (VS Code) met de Azure Quantum Development Kit (QDK) en Python-extensies geïnstalleerd.
De nieuwste
qdkPython-bibliotheek en denumpyenscipypakketten.python -m pip install --upgrade qdk numpy scipy
Tip
U hoeft geen Azure-account te hebben om de resource-estimator uit te voeren.
Beschrijf het probleem
In deze zelfstudie evalueert u de schattingen van de fysieke hulpbronnen van het qubitisatiealgoritme dat wordt beschreven in Phys. Rev. Research 3, 033055 (2021) om de energie van een gebruikersgegeven Hamiltoniaan tot chemische nauwkeurigheid van 1 mHa te berekenen.
Het kwantumalgoritmen waarmee de energie van de Hamiltonian wordt berekend, zijn gebaseerd op dubbelgefactoriseerde qubitisatie. De Hamiltonian wordt beschreven in termen van een- en twee-elektronen integralen in de meegeleverde FCIDUMP-bestanden (volledige configuratie-interactie) die beschikbaar zijn via een HTTPS-URI.
De qubitisatiemethode is gebaseerd op de schatting van de kwantumfase, maar in plaats van de standaard-$U = \exp{(-i H/\alpha)}$ uit de Hamiltoniaanse matrix $H$, neemt één $U = \exp{(-i \sin^{-1} (H/\alpha)}$, die doorgaans met minder resources kan worden geïmplementeerd. Met behulp van dubbele factorisatie wordt $H$ compact weergegeven door een combinatie van een verstandige keuze van orbitalen en compressie.
Het voorbeeld laden in Visual Studio Code
De code voor deze zelfstudie vindt u in de QDK-voorbeeldopslagplaats, onder schatting/df-chemie. U wordt aangeraden de opslagplaats op uw lokale computer te klonen om het voorbeeld uit te voeren.
Voer de volgende opdracht uit vanuit de terminal om de opslagplaats te klonen:
git clone https://github.com/microsoft/qdk.git
Een FCIDUMP-bestand selecteren en doorgeven
In dit voorbeeld wordt de Hamiltoniaan beschreven aan de hand van een- en twee-elektronenintegralen in de FCIDUMP-indeling. U kunt een van de FCIDUMP-bestanden uit de volgende tabel kiezen of uw eigen FCIDUMP-bestand selecteren dat beschikbaar is op uw computer of online via een openbaar toegankelijke HTTPS-URI.
| URI | Exemplaarnaam | Beschrijving |
|---|---|---|
| https://aka.ms/fcidump/XVIII-cas4-fb-64e-56o | XVIII-cas4-fb-64e56o | 64 elektronen, 56 orbitale actieve ruimte van een van de stabiele tussenliggende tussenproducten in de ruthenium-katalyseerde koolstoffixatiecyclus. |
| https://aka.ms/fcidump/nitrogenase-54e-54o | nitrogenase_54orbital | 54 elektronen, 54 orbitale actieve ruimte van de actieve kern van de stikstofase. |
| https://aka.ms/fcidump/fe2s2-10e-40o | fe2s2-10e-40o | 10 elektronen, 40 actieve orbitaalruimte van [2Fe, 2S] cluster. |
| https://aka.ms/fcidump/polyyne-24e-24o | polyyne-24e-24o | 24 elektronen, 24 orbitale actieve ruimte van het polyyne molecuul. |
| https://aka.ms/fcidump/n2-10e-8o | n2-10e-8o | 10 elektron, 8 orbitale actieve ruimte van het gedissocieerde stikstof op een afstand van 3 Angstrom. |
Als u het FCIDUMP-bestand wilt doorgeven, moet u het chemistry.py bestand uitvoeren en de FCIDUMP-bestandsnaam of -URI doorgeven als argument met behulp van -f of --fcidumpfile.
usage: chemistry.py [-h] [-f FCIDUMPFILE]
options:
-h, --help
-f FCIDUMPFILE, --fcidumpfile FCIDUMPFILE
Het scheikundige voorbeeld uitvoeren
Open in Visual Studio Code de map waarin u de QDK-voorbeeldopslagplaats hebt gekloond.
Open een nieuwe terminal, Terminal -> New Terminal en navigeer naar de map waar het kwantumchemievoorbeeld zich bevindt. Als u bijvoorbeeld de QDK-voorbeeldopslagplaats op uw lokale computer kloont, is het pad
qdk/samples/estimation/df-chemistry.Voer het chemistry.py-bestand uit en geef het FCIDUMP-bestand door. Met de volgende opdracht wordt bijvoorbeeld het FCIDUMP-bestand
n2-10e-8ogedownload naar de werkmap en wordt de resourceraming voor het bestand uitgevoerd.python chemistry.py -f https://aka.ms/fcidump/n2-10e-8oDaarna kunt u het pad naar het gedownloade bestand doorgeven aan het script.
python chemistry.py -f n2-10e-8oHet resultaat van de resourceraming wordt weergegeven in de terminal. In de volgende uitvoer ziet u bijvoorbeeld de resourceraming voor het
n2-10e-8oFCIDUMP-bestand.Algorithm runtime: 19 mins Number of physical qubits required: 207.60k For more detailed resource counts, see file resource_estimate.json
Notitie
Nadat u het chemistry.py bestand hebt uitgevoerd, wordt er een resource_estimation.json bestand gemaakt in de werkmap. Het resource_estimation.json bestand bevat de gedetailleerde uitvoer van de resource-estimator, zoals de taakparameters, fysieke aantallen, T-factory-eigenschappen, logische tellingen en logische qubiteigenschappen.
Parameters wijzigen target
Open het bestand
chemistry.py.De target parameters van de schatting van de resource zijn te vinden in de aanroep van
qsharp.estimatein hetchemistry.py-bestand. In het volgende codefragment ziet u de parameters die in deze zelfstudie worden gebruikt.# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.01, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})Als u de target parameters wilt wijzigen, wijzigt u het vorige codefragment. In het volgende codefragment ziet u bijvoorbeeld hoe u het foutbudget wijzigt in 0,333. Zie De target parameters van de resource-estimator aanpassen voor meer informatie.
# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.333, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})
Waarom scheikundige toepassingen van kwantumcomputing belangrijk zijn
Deze handleiding vertegenwoordigt een eerste stap voor de integratie van schattingen van hulpbronnen van quantumoplossingen voor elektronische-structuurproblemen. Een van de belangrijkste toepassingen van geschaalde kwantumcomputers is het oplossen van kwantumchemieproblemen. De simulatie van complexe kwantummechanische systemen biedt de mogelijkheid om doorbraaks te ontsluiten op gebieden zoals koolstofopname, voedselonzekerheid en het ontwerpen van betere brandstoffen en materialen.
Een van de FCIDUMP-bestanden in deze steekproef nitrogenase_54orbitalbeschrijft bijvoorbeeld het stikstofase-enzym. Als u nauwkeurig kunt simuleren hoe dit enzym op kwantumniveau werkt, kan het ons helpen om te begrijpen hoe u het op schaal kunt produceren. U kunt het zeer energie-intensieve proces vervangen dat wordt gebruikt om voldoende kunstmest te produceren om de planeet te voeden. Dit heeft het potentieel om de wereldwijde koolstofvoetafdruk te verminderen en ook om problemen met betrekking tot voedselonzekerheid in een groeiende bevolking aan te pakken.
Als u uw kennis wilt verdiepen, kunt u het volgende proberen:
- Maak een schatting van enkele aangepaste FCIDUMP-bestanden.
- Wijzig de veronderstellingen op de target kwantumcomputer door aangepaste qubitparameters op te geven.
Gerelateerde inhoud
- In de zelfstudie implementeer het zoekalgoritme van Grover ziet u hoe u een Q#-programma schrijft dat gebruikmaakt van het zoekalgoritme van Grover om een probleem met het kleuren van grafieken op te lossen.
- In de zelfstudie Programma's op qubitniveau schrijven en simuleren in Q# wordt beschreven hoe u een Q#-programma schrijft dat rechtstreeks specifieke qubits aanpakt.
- In de zelfstudie Kwantumverstrengeling verkennen met Q# ziet u hoe u kunt werken met qubits met Q# om hun status te wijzigen en de effecten van superpositie en verstrengeling demonstreert.
- De Quantum Katas zijn op Jupyter Notebook gebaseerde zelfstudies en programmeeroefeningen die zijn gericht op het tegelijkertijd onderwijzen van de elementen van kwantumcomputing en Q#-programmering.