Gyakorlat – Az Azure Quantum Resource Estimator használatának első lépései
Lássunk néhány gyakorlást az Azure Quantum Resource Estimator használatával. Az alábbi példában egy Shor algoritmusmintájának fizikai erőforrásait becsüli meg.
Qsharp és qsharp-widgetek telepítése
Először telepítse a legújabb Azure Quantumot qsharp
és qsharp-widgets
csomagokat.
python -m pip install --upgrade qsharp qsharp-widgets
A kvantum-algoritmus létrehozása
A VS Code-ban válassza a Parancspaletta megtekintése > lehetőséget, majd a Létrehozás: Új Jupyter-jegyzetfüzet lehetőséget.
Importálja
qsharp
a csomagot a jegyzetfüzet első cellájába.import qsharp from qsharp_widgets import EstimateDetails
Adjon hozzá egy új cellát, és másolja a következő kódot.
%%qsharp /// # Sample /// Random Bit /// /// # Description /// This Q# program generates a random bit by setting a qubit in a superposition /// of the computational basis states |0〉 and |1〉, and returning the measurement /// result. operation RandomBit() : Result { // Qubits are only accesible for the duration of the scope where they // are allocated and are automatically released at the end of the scope. use qubit = Qubit(); // Set the qubit in superposition by applying a Hadamard transformation. H(qubit); // Measure the qubit. There is a 50% probability of measuring either // `Zero` or `One`. let result = M(qubit); // Reset the qubit so it can be safely released. Reset(qubit); return result; }
A kvantum-algoritmus becslése
Most az alapértelmezett feltételezések alapján megbecsülheti a
RandomBit
művelet fizikai erőforrásait. Adjon hozzá egy új cellát, és másolja a következő kódot.result = qsharp.estimate("RandomBit()") result
A
qsharp.estimate
függvény létrehoz egy eredményobjektumot, amely a teljes fizikai erőforrásszámmal rendelkező táblázat megjelenítésére használható. Az első táblázat a fizikai erőforrások fő becsléseit mutatja. ARandomBit
művelethez 300 qubit szükséges, és 2 mikroszekundumot igényel a kvantumszámítógépen való futtatáshoz.Fizikai erőforrások becslése Value Futtatókörnyezet 2 mikrosec rQOPS 3,00 M Fizikai qubitek 300 A költségadatokat a csoportok összecsukásával vizsgálhatja meg, amelyek további információkkal rendelkeznek. Összecsukhatja például a Logikai qubit paraméterek csoportját, így láthatja, hogy a kód távolsága 5, a logikai qubitenkénti fizikai qubitek száma pedig 50.
Logikai qubitparaméter Value QEC-séma surface_code Kód távolsága 5 Fizikai qubitek 50 Logikai ciklus ideje 2 mikrosec Logikai qubit hibaaránya 3.00E-5 Keresztezés előtagja 0.03 Hibajavítási küszöbérték 0,01 Logikai ciklusidő képlete (4 * twoQubitGateTime
+ 2 *oneQubitMeasurementTime
) *codeDistance
Fizikai qubitek képlete 2 * codeDistance
*codeDistance
A mezővel
jobParams
elérheti a feladat végrehajtásának átadható összes célparamétert, és megtekintheti, hogy mely alapértelmezett értékeket feltételezték:result['jobParams']
{'errorBudget': 0.001, 'qecScheme': {'crossingPrefactor': 0.03, 'errorCorrectionThreshold': 0.01, 'logicalCycleTime': '(4 * twoQubitGateTime + 2 * oneQubitMeasurementTime) * codeDistance', 'name': 'surface_code', 'physicalQubitsPerLogicalQubit': '2 * codeDistance * codeDistance'}, 'qubitParams': {'instructionSet': 'GateBased', 'name': 'qubit_gate_ns_e3', 'oneQubitGateErrorRate': 0.001, 'oneQubitGateTime': '50 ns', 'oneQubitMeasurementErrorRate': 0.001, 'oneQubitMeasurementTime': '100 ns', 'tGateErrorRate': 0.001, 'tGateTime': '50 ns', 'twoQubitGateErrorRate': 0.001, 'twoQubitGateTime': '50 ns'}}
Láthatja, hogy az erőforrás-becslés a
qubit_gate_ns_e3
qubitmodellt, a hibajavítási kódot és asurface_code
0,001 hibakeretet veszi a becslés alapértelmezett értékeiként.
Az alapértelmezett értékek módosítása és az algoritmus becslése
Amikor erőforrás-becslési kérelmet küld a programnak, megadhat néhány választható paramétert. Ezek a testre szabható célparaméterek:
errorBudget
- az algoritmus általánosan engedélyezett hibakereteqecScheme
- a kvantumhiba-korrekciós (QEC) sémaqubitParams
- a fizikai qubit paramétereiconstraints
- az összetevő szintjén megkötésekdistillationUnitSpecifications
- a T-gyárak desztillációs algoritmusainak specifikációiestimateType
- egy- vagy határ
Qubitmodell módosítása
Ugyanannak az algoritmusnak a költségét a Majorana-alapú qubitparaméter , qubitParams
,qubit_maj_ns_e6" használatával becsülheti meg.
result_maj = qsharp.estimate("RandomBit()", params={
"qubitParams": {
"name": "qubit_maj_ns_e6"
}})
EstimateDetails(result_maj)
Kvantumhiba-korrekciós séma módosítása
Az erőforrás-becslési feladatot újrafuttathatja ugyanahhoz a példához a Majorana-alapú qubitparamétereken egy floqued QEC-sémával. qecScheme
result_maj = qsharp.estimate("RandomBit()", params={
"qubitParams": {
"name": "qubit_maj_ns_e6"
},
"qecScheme": {
"name": "floquet_code"
}})
EstimateDetails(result_maj)
Hibakeret módosítása
Ezután futtassa újra ugyanazt a kvantumköröket errorBudget
10%-os egységgel.
result_maj = qsharp.estimate("RandomBit()", params={
"qubitParams": {
"name": "qubit_maj_ns_e6"
},
"qecScheme": {
"name": "floquet_code"
},
"errorBudget": 0.1})
EstimateDetails(result_maj)