Cvičení – začínáme s estimátorem prostředků Azure Quantum
Pojďme se seznámit s estimátorem prostředků Azure Quantum. V následujícím příkladu odhadnete fyzické prostředky vzorku Shorova algoritmu.
Instalace widgetů qsharp a qsharp
Nejprve nainstalujte nejnovější azure Quantum qsharp
a qsharp-widgets
balíčky.
python -m pip install --upgrade qsharp qsharp-widgets
Vytvoření kvantového algoritmu
V editoru Visual Studio Code vyberte paletu Zobrazit > příkaz a vyberte Vytvořit: Nový poznámkový blok Jupyter.
V první buňce poznámkového bloku naimportujte
qsharp
balíček:import qsharp from qsharp_widgets import EstimateDetails
Přidejte novou buňku a zkopírujte následující kód:
%%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; }
Odhad kvantového algoritmu
Nyní pomocí výchozích předpokladů odhadněte fyzické prostředky pro
RandomBit
operaci. Přidejte novou buňku a zkopírujte následující kód:result = qsharp.estimate("RandomBit()") result
Funkce
qsharp.estimate
vytvoří výsledný objekt, který lze použít k zobrazení tabulky s celkovými počty fyzických prostředků. První tabulka ukazuje hlavní odhady fyzických prostředků. OperaceRandomBit
vyžaduje 300 qubitů a ke spuštění na kvantovém počítači trvá dvě mikrosekundy.Odhady fyzických prostředků Hodnota Šablona běhového prostředí 2 mikrosekuny rQOPS 3.00M Fyzické qubity 300 Podrobnosti o nákladech můžete zkontrolovat sbalením skupin, které obsahují další informace. Například sbalením skupiny parametrů logického qubitu zjistíte, že vzdálenost kódu je 5 a počet fyzických qubitů na logický qubit je 50.
Parametr logického qubitu Hodnota Schéma QEC surface_code Vzdálenost kódu 5 Fyzické qubity 50 Logická doba cyklu 2 mikrosekuny Míra chyb logického qubitu 3.00E-5 Přechod předfaktorem 0.03 Prahová hodnota opravy chyb 0,01 Vzorec času logického cyklu (4 * twoQubitGateTime
+ 2 *oneQubitMeasurementTime
) *codeDistance
Vzorec fyzických qubitů 2 * codeDistance
*codeDistance
Pole můžete použít
jobParams
pro přístup ke všem cílovým parametrům, které se dají předat do provádění úlohy, a zjistit, které výchozí hodnoty se předpokládaly: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'}}
Můžete vidět, že estimátor prostředků vezme
qubit_gate_ns_e3
qubitový model,surface_code
kód opravy chyb a rozpočet chyb 0.001 jako výchozí hodnoty odhadu.
Změna výchozích hodnot a odhad algoritmu
Při odesílání žádosti o odhad prostředků pro váš program můžete zadat některé volitelné parametry. Toto jsou cílové parametry, které můžete přizpůsobit:
errorBudget
: Celkový povolený rozpočet chyb pro algoritmusqecScheme
: Schéma opravy kvantových chyb (QEC)qubitParams
: Parametry fyzického qubituconstraints
: Omezení na úrovni součástidistillationUnitSpecifications
: Specifikace pro algoritmy pro destilační algoritmy t továrenestimateType
: Jednoduchá nebo hraniční
Změna modelu qubitu
Náklady na stejný algoritmus můžete odhadnout pomocí parametru qubitu založeného na Majorana, qubitParams
, qubit_maj_ns_e6
.
result_maj = qsharp.estimate("RandomBit()", params={
"qubitParams": {
"name": "qubit_maj_ns_e6"
}})
EstimateDetails(result_maj)
Změna schématu oprav kvantových chyb
Úlohu odhadu prostředků můžete znovu spustit pro stejný příklad na parametrech qubitu založeného na majoraně se schématem QEC s floquedem. qecScheme
result_maj = qsharp.estimate("RandomBit()", params={
"qubitParams": {
"name": "qubit_maj_ns_e6"
},
"qecScheme": {
"name": "floquet_code"
}})
EstimateDetails(result_maj)
Změna rozpočtu chyb
V dalším kroku znovu spusťte stejný kvantový obvod s errorBudget
10 %.
result_maj = qsharp.estimate("RandomBit()", params={
"qubitParams": {
"name": "qubit_maj_ns_e6"
},
"qecScheme": {
"name": "floquet_code"
},
"errorBudget": 0.1})
EstimateDetails(result_maj)