Oktatóanyag: Kvantumkémiai probléma erőforrásainak becslése
Ez az oktatóanyag bemutatja, hogyan becsülheti meg a hamiltoniak energiájának 1 mHa kémiai pontosságú kiszámításához szükséges fizikai erőforrásokat az Azure Quantum Resource Estimator használatával.
Megjegyzés
A Microsoft Quantum Development Kit (klasszikus QDK) 2024. június 30. után már nem támogatott. Ha Ön meglévő QDK-fejlesztő, javasoljuk, hogy váltson az új Azure Quantum Development Kitre (Modern QDK) a kvantummegoldások fejlesztésének folytatásához. További információ: A Q#-kód migrálása a modern QDK-ba.
Az oktatóanyagban a következőket végezheti el:
- Mintaadattár klónozása a GitHubról.
- FCIDUMP-fájlokat használjon argumentumparaméterként kémiai modellezési és szimulációs alkalmazásokhoz.
- Nagy léptékű probléma esetén futtassa az erőforrás-becslést, amely egy kettőstényezős kémiai minta.
Előfeltételek
Python-környezet, amelyen telepítve van a Python és a Pip .
A Visual Studio Code legújabb verziója, amelyen telepítve van az Azure Quantum Development Kit és a Python-bővítmények .
A legújabb Azure Quantum-csomag
qsharp
ésnumpy
-scipy
csomagok.python -m pip install --upgrade qsharp numpy scipy
Tipp
A helyi erőforrásbecslő futtatásához nincs szükség Azure-fiókra.
A probléma leírása
Ebben az oktatóanyagban kiértékeli a Phys. Rev. Research 3, 033055 (2021) című cikkben leírt qubitizációs algoritmus fizikai erőforrás-becsléseit egy felhasználó 1 mHa kémiai pontosságú hamiltoni energiájának kiszámításához.
A Hamiltonian energiáját kiszámító kvantum-algoritmus a kettőstényezős qubitizáción alapul. A Hamiltoniant egy- és kételektroin-integrálként írják le a megadott FCIDUMP -fájlokban (teljes konfigurációs interakció), amelyek HTTPS URI-n keresztül érhetők el.
A qubitizációs megközelítés kvantumfázis-becslésen alapul, de a hamiltoni mátrixból $H$ standard $U = \exp{(-i H/\alpha)}$ helyett $U = \exp{(-i \sin^{-1} (H/\alpha)}$, amely általában kevesebb erőforrással valósítható meg. A kettős faktorizáció használatával a $H$ kompakt módon jelenik meg, a pályák és tömörítések megfontolt választásának kombinációjával.
A minta betöltése a Visual Studio Code-ban
Az oktatóanyag kódja megtalálható a Q#-mintaadattárban, becslés/df-kémia alatt. Javasoljuk, hogy klónozza az adattárat a helyi gépen a minta futtatásához.
Az adattár klónozásához futtassa a következő parancsot a terminálról:
git clone https://github.com/microsoft/qsharp.git
FCIDUMP-fájl kiválasztása és átadása
Ebben a példában a Hamilton-et egy- és kételektroin-integrálként írják le FCIDUMP formátumban. Az alábbi táblázatból kiválaszthatja az FCIDUMP-fájlok egyikét, vagy kiválaszthatja a számítógépén vagy online elérhető saját FCIDUMP-fájlját egy nyilvánosan elérhető HTTPS URI-n keresztül.
URI | Példány neve | Description |
---|---|---|
https://aka.ms/fcidump/XVIII-cas4-fb-64e-56o | XVIII-cas4-fb-64e56o | 64 elektron, 56 orbitális aktív tér az egyik stabil köztes a ruténium-katalizált szén-rögzítési ciklusban. |
https://aka.ms/fcidump/nitrogenase-54e-54o | nitrogenase_54orbital | 54 elektron, a nitrogénáz aktív magjának 54 orbitális aktív területe. |
https://aka.ms/fcidump/fe2s2-10e-40o | fe2s2-10e-40o | 10 elektron, [ 2Fe, 2S] fürt 40 orbitális aktív területe. |
https://aka.ms/fcidump/polyyne-24e-24o | polyyne-24e-24o | 24 elektron, 24 orbitális aktív tér a poliyne molekula. |
https://aka.ms/fcidump/n2-10e-8o | n2-10e-8o | 10 elektron, 8 orbitális aktív tér, amely a nitrogént 3 Angstrom távolságban leválasztotta. |
Az FCIDUMP fájl átadásához futtassa a chemistry.py fájlt, és adja meg az FCIDUMP fájlnevet vagy az URI-t argumentumként a vagy --fcidumpfile
a használatával-f
.
usage: chemistry.py [-h] [-f FCIDUMPFILE]
options:
-h, --help
-f FCIDUMPFILE, --fcidumpfile FCIDUMPFILE
A kémiai minta futtatása
Nyissa meg azt a mappát a Visual Studio Code-ban, ahol klónozta a Q#-mintaadattárat.
Nyisson meg egy új terminált, a Terminál –> Új terminált, és lépjen arra a könyvtárra, ahol a kvantumkémiai minta található. Ha például klónozza a Q#-mintaadattárat a helyi gépen, az elérési út a következő
qsharp/samples/estimation/df-chemistry
: .Futtassa a chemistry.py fájlt, és adja át az FCIDUMP fájlt. A következő parancs például letölti az n2-10e-8o FCIDUMP fájlt a munkamappába, és lefuttatja az erőforrás-becslést.
python chemistry.py -f https://aka.ms/fcidump/n2-10e-8o
Ezután átadhatja a letöltött fájl elérési útját a szkriptnek.
python chemistry.py -f n2-10e-8o
Az erőforrás-becslés eredménye megjelenik a terminálban. Az alábbi kimenet például az n2-10e-8o FCIDUMP fájl erőforrás-becslését mutatja.
Algorithm runtime: 19 mins Number of physical qubits required: 207.60k For more detailed resource counts, see file resource_estimate.json
Megjegyzés
A chemistry.py fájl futtatása után létrejön egy resource_estimation.json fájl a munkamappában. A resource_estimation.json fájl tartalmazza az Erőforrás-becslő részletes kimenetét. Ezek a feladatparaméterek, a fizikai számok, a T-gyár tulajdonságai, a logikai számok és a logikai qubit tulajdonságai.
Paraméterek módosítása target
Nyissa meg a chemistry.py fájlt.
Az target erőforrás-becslés paraméterei a chemistry.py fájl hívásában
qsharp.estimate
találhatók. Az alábbi kódrészlet az oktatóanyagban használt paramétereket mutatja be.# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.01, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})
Ha módosítani szeretné a target paramétereket, ezt az előző kódrészlet módosításával teheti meg. Az alábbi kódrészlet például bemutatja, hogyan módosíthatja a hibakeretet 0,333-ra. További információ: Az erőforrásbecslő paramétereinek testreszabásatarget.
# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.333, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})
Miért fontosak a kvantum-számítástechnika kémiai alkalmazásai?
Ez az oktatóanyag az első lépés, amely a kvantummegoldások erőforrás-becslését integrálja az elektronikus struktúra problémáiba. A skálázott kvantumszámítógépek egyik legfontosabb alkalmazása a kvantumkémiai problémák megoldása. Az összetett kvantummechanikai rendszerek szimulációja lehetővé teszi az áttörések feloldását olyan területeken, mint a szén-dioxid-rögzítés, az élelmiszer-biztonság, valamint a jobb üzemanyagok és anyagok tervezése.
Az ebben a mintában található FCIDUMP-fájlok egyike például nitrogenase_54orbital ismerteti a nitrogénáz enzimet. Ha pontosan szimulálni tudná, hogyan működik ez az enzim kvantumszinten, az segíthet nekünk megérteni, hogyan lehet nagy léptékben előállítani. Lecserélhetné a nagy energiaigényű folyamatot, amely elegendő műtrágya előállítására szolgál a bolygó táplálásához. Ez csökkentheti a globális szénlábnyomot, és segíthet kezelni a növekvő népesség élelmiszer-bizonytalanságával kapcsolatos aggályokat.
Következő lépések
Ha szeretné elmélyíteni tudását, próbálkozzon az alábbi kísérletekkel:
- Becsülje meg az egyéni FCIDUMP-fájlokat.
- Módosítsa a kvantumszámítógép feltételezéseit target egyéni qubitparaméterek megadásával.
- Tekintse meg a többi erőforrás-becslési mintajegyzetfüzetet az Azure Quantum mintagyűjteményében.
Folytassa az egyéb kvantum-algoritmusok és technikák megismerését:
- A Grover keresési algoritmusának implementálása című oktatóanyag bemutatja, hogyan írhat olyan Q#-programot, amely a Grover keresési algoritmusát használja a gráfszínezési probléma megoldásához.
- A Q# qubitszintű programjainak írása és szimulálása című oktatóanyag bemutatja, hogyan írhat olyan Q#-programokat, amelyek közvetlenül kezelik az adott qubiteket.
- A Kvantum-összefonódás vizsgálata A Q# használatával című oktatóanyag bemutatja, hogyan lehet qubiteket használni a Q# használatával az állapotuk módosításához, és bemutatja a szuperpozíció és az összefonódás hatásait.
- A Quantum Katas Jupyter Notebook-alapú, öngyorsított oktatóanyagok és programozási gyakorlatok, amelyek célja a kvantum-számítástechnika és a Q#-programozás elemeinek egyidejű tanítása.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: