Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
QDK (Python) obsahuje Microsoft Quantum Development Kit nástroje pro vývoj a testování protokolů oprav kvantových chyb (QEC). Pomocí modulu qdk.ec můžete analyzovat kódy oprav chyb, vytvářet spustitelné protokoly, ověřovat deklarace protokolů a studovat poruchy obvodů. Slouží qdk.simulation ke spouštění logických programů prostřednictvím těchto protokolů.
Pochopte nástroje pro QDK opravu chyb
Pracovní QDK postup opravy chyb používá tyto balíčky a moduly:
| Component | Použijte ho k |
|---|---|
qodec |
Definujte a uložte kódy, instrukční sady, miniaplikace, vrstvy a kompletní protokoly QEC. |
qdk.ec |
Analyzujte kódy a miniaplikace, sestavte základní qodecs, odvozujte rovnice a auditujte deklarace protokolu. |
qdk.simulation |
Spusťte Quantum Intermediate Representation programy (QIR) prostřednictvím qodec a použijte dekodér. |
qdk.simulation.decoders |
Vyberte předdefinovaný dekodér syndromu, sledujte snímky nebo se připojte k volitelnému deq dekodéru. |
qdk.qre |
Odhad nákladů na prostor, čas a chyby modelů QEC pro odhad prostředků pro toleranci chyb |
qodec je formální popis spustitelného protokolu QEC. Spojuje logické instrukce s fyzickými okruhy prostřednictvím jedné nebo více vrstev. Balíček qodec definuje tento datový model a jeho YAML reprezentaci. Modul qdk.ec odvozuje fakta z modelu a kontroluje, jestli jeho deklarace odpovídají jeho obvodům.
Další informace najdete v qodecpřehledu.
Modul qdk.qre má jiný účel. Modeluje náklady schématu opravy chyb na prostředky. Nedefinuje, neaudituje ani nespouští qodec miniaplikace. Další informace o odhadu kvantových zdrojů v QDKnaleznete v tématu Co je Microsoft Quantum Resource Estimator?
Pochopte součásti protokolu qodec
Následující komponenty definují qodec protokol a podporují jeho spuštění.
| Component | Description |
|---|---|
| Code | Statická sada stabilizátorů a logických operátorů, která definuje prostor kódu. |
| Sada instrukcí | Logické nebo fyzické operace, které qodec vrstva podporuje. |
| Přístroj | Okruh, který implementuje instrukci prostřednictvím operací v další nižší vrstvě. |
| Vrstva | Mapování z jedné sady instrukcí na sadu instrukcí nižší úrovně |
| Encoding | Propojení mezi logickými bloky a qubity okruhu na hranici gadgetu. |
| Zkontrolujte | Paritní rovnice, která se musí rovnat nule, když deklarovaná relace platí. |
| Odečet | Rovnice, která mapuje výsledky obvodu a značky rámce k logickému výsledku nebo příznaku |
| Flag | Pojmenovaný odečet, který hlásí, jestli pokyn splnil podmínku přijetí. |
| Dekodér | Součást, která používá data o syndromu k odvozování oprav a logických výsledků. |
qodec může obsahovat několik vrstev. Horní vrstva může definovat logické operace nad kódovanými bloky. Gadgety v horní vrstvě mohou volat instrukce v další nižší vrstvě. Dolní vrstva obsahuje fyzické operace, které simulátor spouští.
Ukázkový pracovní tok protokolu
Typický pracovní postup má šest kroků. Následující kroky používají funkce a třídy z qdk.ec modulu.
- Definujte nějaký kód. Vytvořte
qodec.Codese stabilizátory a logickými Pauli operátory. - Analyzovat kód. Pomocí třídy
CodeProfilemůžete zkontrolovat logické operátory, vypočítat syndromy a vypočítat vzdálenost kódu. - Vytvořte nebo načtěte qodec. Pomocí funkce
build_qodecvytvořte základní protokol nebo načtěte existující qodec z YAML. - Dokončete a ověřte protokol. Pomocí funkce
filledlze odvodit podporované rovnice kontroly a odečtu. Pomocí funkceauditvyhledejte nekonzistentní nebo neúplné deklarace. - Analyzujte chyby obvodu. Pomocí třídy
GadgetProfilemůžete zkontrolovat logické akce, efekty selhání a vzdálenost miniaplikace. - Spusťte logické programy. Zkompilujte kód Q# nebo OpenQASM do QIR. Předejte QIR a qodec do
qdk.simulation.run_qira pak vyberte dekodér a model šumu.
Následující kód ukazuje hlavní objekty v tomto pracovním postupu:
import qodec
from qdk import ec
from qdk.simulation import run_qir
code = qodec.Code(
"C4",
stabilizers=["X_0 X_1 X_2 X_3", "Z_0 Z_1 Z_2 Z_3"],
x=["X_0 X_1", "X_0 X_2"],
z=["Z_0 Z_2", "Z_0 Z_1"],
)
code_profile = ec.CodeProfile(code)
print("Code distance:", code_profile.distance())
protocol = ec.build_qodec(code, strategy="bare-css/v1", strict=False)
print(ec.audit(protocol))
# Compile a logical program to QIR before you call run_qir.
# results = run_qir(qir, qodec=protocol, shots=100)
Strategie bare-css/v1 v tomto příkladu vytvoří jednoduchý základní protokol bez qubitů příznaků. Pomáhá kontrolovat pracovní postup, ale nezaručuje zařízení odolná proti chybám. Před výběrem implementace protokolu použijte analýzu vzdálenosti gadgetu.
Oddělte ověřování protokolu od analýzy chyb
Audity protokolů a analýza vzdálenosti vyhodnocují různé aspekty protokolu QEC.
- Audity protokolu ověřují, jestli deklarovaný protokol odpovídá jeho obvodům a rovnicím, když nedojde k chybám.
- Analýza vzdálenosti určuje minimální počet povolených chyb nebo poruch obvodu, které můžou způsobit nedetekované logické selhání.
Pomocí funkce audit můžete zkontrolovat bezšumovou konzistenci. Audit kontroluje algebru kódu, deklarace instrukcí, akce gadgetu, kontroly, výstupy, příznaky, vztahy rámce a odkazy mezi qodec objekty.
Audit, který nehlásí žádné problémy, nezaručuje odolnost proti chybám. Obvod může implementovat správnou logickou akci bez chyb a stále selhat po jedné fyzické chybě. Použijte metodu CodeProfile.distance k analýze kódu a metodu GadgetProfile.distance k analýze jednotlivých implementací obvodu.
Před použitím protokolu pro hlučné simulace spusťte audit protokolu a analyzujte vzdálenosti kódu a gadgetů.
Zvolte strategii výstavby
Funkce build_qodec podporuje dvě základní CSS strategie výstavby.
| Strategy | Description |
|---|---|
flagged-css/v1 |
Použije konstrukci označenou příznakem CSS a vybere počet příznaků ze vzdálenosti kódu. Tato strategie je výchozí. |
bare-css/v1 |
Nepoužívá žádné qubity příznaku a přeskakuje výpočet vzdálenosti, který vybere počet příznaků. Používejte ho pro kontrolu a raný vývoj. |
Obě strategie se snaží vytvořit tyto logické pokyny:
prepare_z_allprepare_x_allsyndromemeasure_z_allmeasure_x_allh_allcx_all
Ne každý kód podporuje každou možnost. Při výchozím nastavení strict=Truebuild_qodec vyvolá chybu, když nejde sestavit a ověřit příkaz. S strict=Falsebuild_qodec zachová podporované pokyny a zaznamená všechny přeskočené instrukce v metadatech qodec.
Vyberte si další úkol
- Pokud chcete připravit Python prostředí, přečtěte si, jak nainstalovat QDK pro opravu chyb.
- Informace o definování kódu a vytvoření protokolu najdete v článku Vývoj a ověření protokolu QEC.
- Informace o kompilaci, simulaci a dekódování logických programů najdete v tématu Kompilace, simulace a dekódování logických programů.
Úplný poznámkový blok, který následuje za celým pracovním postupem, najdete v tématu Vývoj a testování protokolu QEC v QDK úložišti.