ToolDingo

Simulátor kvantového počítače

Napište malý kvantový obvod v JavaScriptu, simulujte jej přímo ve svém prohlížeči a podívejte se na schéma obvodu, pravděpodobnosti a vektor stavu. Nebo popište výpočet na vysoké úrovni (např. přidání) a sledujte, jak se automaticky změní v skutečný reverzibilní kvantový obvod.

Model hluku

Skutečné kvantové počítače nevypočítávají dokonale: qubity jsou extrémně citlivé a ztrácejí část svých informací (decherence) přes každou nežádoucí interakci s jejich prostředím - teplo, elektromagnetická pole, sousední qubity. Operace brány nejsou nikdy dokonale přesné, a dokonce i konečné čtení může jít špatně. Tento simulátor počítá ideálně ve výchozím nastavení; zde můžete povolit typické chybové modely a sledovat jejich účinek přímo ve výsledcích.

Platí pro každou simulaci na této stránce - pro high-level runs a ručně psané obvody.
%
Na bránu a zapojený qubit, nebo na čtení bit pro model čtení. Vyberte hodnotu pro scénář, který chcete prozkoumat.

Kód programu

Popište výpočet s quantum.add, quantum.subtract, quantum.multiply, quantum.divide nebo quantum.random. Ctrl+Enter spustí simulaci. Kompletní dokumentace pomocí tlačítka "Dokumentace".

Dokumentace

Popište výpočet v editoru - skutečný kvantový obvod je automaticky generován a simulován. Maximálně 4000 znaků. Ctrl+Enter Spustí simulaci.

VzorecPopisMezní hodnoty
quantum.add({ a, b })Přidat dvě číslaVýsledek max. 4 bity (0-15)
quantum.subtract({ a, b })Odčítánía ≥ b, max. 4 bity
quantum.multiply({ a, b })NásobeníFaktory 0-7 (3 bity)
quantum.divide({ a, b })Divize (kvocient + zbytek)b ≥ 1; velmi těsný: bity (a) + bity (b) + bity (a tis. b) + 1 ≤ 10
quantum.random({ bits })Skutečné kvantové náhodné číslobity 1–10

Vyberte si příklad

Kód obvodu

Maximální 4000 znaků. Dostupné metody QuantumCircuit: x, y, z, h, s, sdg, t, tdg, rx, ry, rz, cnot, cz, ccnot (alias: toffoli), swap, measureAll, run. Ctrl+Enter spustí simulaci.

Vyberte si příklad

Základy: Jak to funguje?

Schématické nastavení kvantového počítače: řídící počítač nasměruje několik laserových paprsků přes optický stůl na qubit uvnitř vakuové komory.
Od klasického ovládacího počítače přes lasery a optiku až po fyzický qubit.

Z programu na fyzický qubit

Skutečný kvantový počítač je více než čip. Klasická řídící elektronika překládá obvod do přesných impulsů. V ukázce zobrazených, chlazení, repump, qubit, a odečítání laserů tvarují tyto signály na optickém stole a nasměrují je do stíněné vakuové komory. Tam změní a změří stav qubit; výsledek měření se pak vrátí do klasického počítače.

Qubit a bázové stavy

Klasický bit je buď 0 nebo 1. Kvt může navíc existovat v superpozici dvou základních stavů |0⟩ a |1⟩. S několika qubity, všechny základní stavy jsou zapsány jako bit řetězec, např. |10⟩ pro 2 bity - kde q0 v tomto simulátoru je vždy nejvýznamnější (vlevo) bit.

Superpozice

Kvót v superpozici současně nese komponenty několika základních stavů. Tyto komponenty jsou popsány jako komplexní amplitudy; na druhou velikost amplituda dává pravděpodobnost získání odpovídajícího stavu v měření.

Bloch sféra

Stav jednoho qubitu může být zobrazen jako šipka v kouli: severní pól představuje |0⟩, jižní pól |1⟩, a všechny body na rovníku jsou stejně vážené superpozice - fáze určuje směr podél rovníku, ve kterém šipka bodů. rx, ry, a rz otočte šipku kolem příslušné osy, fázové brány jako S a T otočte ji kolem osy Z. Se zamotanými qubity se šipka scvrkne směrem ke středu koule: individuální qubit pak již nemá čistý stav vlastní - takže provázanost se stává doslova viditelným.

Měření a snímání

measureAll() Měří všechny qubity najednou a končí obvod. Vzhledem k tomu, že jediné měření přináší pouze jeden náhodný výsledek, obvod je koncepčně měřen "záběry" krát s run({ shots }), takže rozdělení pravděpodobnosti se ukáže jako histogram. Přesné pravděpodobnosti jsou navíc vypočteny přímo ze státního vektoru, nezávisle na náhodnosti snímků.

Hadamardova brána

Hadamardova brána h(q) bere qubit z určitého stavu (|0⟩ nebo |1⟩) do stejně vážené superpozice |0⟩ a |1⟩ - při měření přibližně 50% / 50%.

Fázové brány: S a T

Brány s(q) a t(q) nemění pravděpodobnost měření jednoho qubitu; pouze otáčí fází |1⟩ amplituda - S o 90 °, T o 45 °. Ukazují pouze svůj účinek v kombinaci se superpozicí: mezi dvěma Hadamardovými branami, fáze rozhoduje o tom, jak amplitudy kombinují nebo vyruší (rušení). sdg(q) a tdg(q) otočte přesně opačným směrem a zrušte S a T. Pravidlo je: dva T je S, dva S je Z.

CNOT & podmíněné propojení

Brána CNOT cnot(control, target) přesune cílový qubit přesně, když je ovládací qubit ve stavu |1⟩. Je-li ovládací qubit je v superpozici předem, to může vytvořit provázanost - dva qubity pak již nelze popsat nezávisle na sobě, jako v Bell stavu příklad. Je-li kontrolní qubit je v určitém stavu, místo toho, CNOT provádí podmíněný bit flip bez proplétání. Takže ne každý CNOT automaticky vytváří proplétání.

CZ: symetrický příbuzný CNOT

Brána CZ cz(a, b) invertuje znamení amplitudy přesně v případě, že oba qubity jsou |1⟩. Na rozdíl od CNOT, není žádná kontrola a žádný cílový qubit - brána působí identicky na obou kvadratech, což je důvod, proč je nakreslena jako dvě propojené tečky v diagramu. CZ a CNOT mohou být přeměněny na sebe: CNOT je CZ, jehož cílový kvabit je předán přes Hadamardova brána před a po. CZ je centrální stavební blok mnoha algoritmů, jako je Grover vyhledávání.

Stav GHZ: provázanost jako trio

Stav GHZ (pojmenovaný po Greenberger, Horne, a Zeilinger) rozšiřuje princip zvonu státu na tři části: jedna Hadamardova brána plus dva CNOT zaplést všechny tři tak, že měření pouze výnosy |000⟩ nebo |111⟩ Žádný qubit už nemá vlastní stav, informace leží výhradně ve sdílené korelaci.

Deutsch algoritmus: nejmenší kvantová výhoda

V Deutsch algoritmus odpovědi, s jediným hodnocením neznámé věštkyně, otázka, pro které klasický počítač potřebuje dvě hodnocení: je funkce konstantní nebo vyvážený? Trik je poslat vstup přes věštkyně v superpozici - díky rušení, odpověď poté je jednoznačně zakódována v vstupní qubit. Princip za ním (fáze kickback) je v jádru téměř všech kvantových algoritmů.

Grover vyhledávání: zesilovat amplitudy

Grover vyhledávání najde označený záznam v netříděném souboru s podstatně menším počtem dotazů, než je klasicky požadováno. Orákulum označí požadovaný stav s fázovým posunem (zde přes CZ bránu), pak difuzní operátor zesílí označenou amplitudu na úkor všech ostatních. S 2 body, jedna iterace je dost pro měření hit s 100% pravděpodobností.

Vratné přidání: od quantum.add () do obvodu

Editor kódu programu výše překládá quantum.add({ a, b }) do obvodu X, CNOT, a CCNOT brány (Toffoli), který reprodukuje klasické sčítání čistě vratným způsobem: každá brána může být odčiněn přesně, protože žádné informace jsou vyřazeny. CCNOT brána (ccnot(c1, c2, target)) převrací cíl qubit pouze tehdy, když oba ovládací qubity jsou |1⟩ - to je dostačující jako stavební blok k rekonstrukci jakéhokoliv klasického obvodu reverzibilně, včetně plné zmije s care. Vstupy A a B jsou nejprve inicializovány jako definitivní základní stavy (bez superpozice) pomocí X bran. Vzhledem k tomu, že celý obvod tedy prochází pouze určitými stavy namísto superpozic, měření na konci přináší přesně jeden výsledek se 100% pravděpodobností - klasicky správný součet. Proto quantum.add() produkuje deterministický výsledek navzdory kvantové simulaci, namísto několika možných stavů s pravděpodobností pod 100%.

Odčítání: sčítání obráceně

Protože každá brána kvantového obvodu je přesně nezvratná, může být celý obvod s dresem proveden pozpátku - a sčítání se stává odečtením: quantum.subtract({ a, b }) používá přesně brány zmije v opačném pořadí, a tím počítá a − b. To není trik, ale základní princip reverzibilního výpočtu: žádný krok výpočtu ničí informace, každý krok může být odebrán. V této verzi, a ≥ b je vyžadována tak, aby nedošlo k žádné negativní výsledek.

Násobení: quantum.multiply ()

Násobení zde vyplývá z přesně stejných reverzibilních stavebních bloků jako sčítání: podle metody školní knihy, faktor a se přidává několikrát v posunutých pozicích - odpovídající nastaveným bitům faktoru b. Každé částečné přidání je stejný reverzibilní ripple- carry zmije; přenášet toky do dalšího produktu bit pokaždé. Vzhledem k tomu, že rejstřík výsledků roste s produktem, faktory jsou omezeny na 3 bity (0-7) zde - pouze pak se faktor, produkt a nést qubit dohromady zapadnout do tohoto simulátoru 10 kbit.

Divize: quantum.divide ()

Divize také používá pouze vratné stavební bloky: quantum.divide({ a, b }) provádí dlouhé dělení postavené z posunutých, vratných odstínů dělitele ze zbytkového registru; výsledkem je kvocient a zbytek (a = quotient · b + remainder). Protože dividenda, dělitel, kvocient a Výpůjční qubit se musí vejít do 10 qubitů dohromady, dělení je nejvíce silně omezena operace: bits(a) + bits(b) + bits(a÷b) + 1 ≤ 10 musí držet, a dělitel b musí být ≥ 1 (bez dělení na nulu). Pokud vstup nevyhovuje rozpočtu, editor ji místo výpočtu nahlásí.

Skutečná náhodnost: quantum.random ()

Klasické počítače nemohou generovat skutečnou náhodnost - jejich "náhodná čísla" pocházejí z deterministických algoritmů (pseudo- náhodnost). kvantový počítač může: quantum.random({ bits }) Každý bit do 50 / 50 superpozice pomocí Hadamardovy brány, a pouze měření rozhodne - v zásadě nepředvídatelně - která hodnota vyjde ven. Na skutečném kvantovém hardwaru je to fyzicky pravda náhodnost; tento simulátor imituje to s pseudo- náhodnost vašeho prohlížeče.

Simulátor vs. skutečný kvantový hardware

Tento simulátor počítá stav přesně pomocí klasické floating- bod aritmetika ve vašem prohlížeči - to funguje pouze proto, že výhradně velmi malé obvody s až 10 bitů jsou považovány zde. Skutečné kvantové počítače používají fyzické qubity, jsou error-náchylné (decoherence, hluk), a jejich výhoda ukazuje pouze s mnohem větší obvody, které již nemohou být simulované klasicky v praxi. Tento nástroj je nástroj učení, není skutečný kvantový procesor.

Časté dotazy

Je to skutečný kvantový počítač?
Ne. Tento nástroj je klasický statevektorový simulátor, který počítá matematiku malého kvantového obvodu (až 10 kvadratů) přesně, pomocí floating- bod aritmetika ve vašem prohlížeči. Skutečný kvantový hardware používá fyzické qubity a funguje zásadně jinak.
Který qubit je q0 v trochu řetězci jako "10"?
q0 je vždy nejvýznamnější (levý) bit. Se 2 qubity proto x(0) vytvoří stav |10⟩, nikoli |01⟩.
Co znamená "injekce"?
Výstřely jsou počet simulovaných opakovaných měření (1-10,000). Každý výstřel náhodně nakreslí výsledek měření podle přesného rozdělení pravděpodobnosti vektoru stavu. Přesné pravděpodobnosti samy o sobě nezávisí na náhodě a jsou zobrazeny odděleně.
Proč některé příklady ukazují chybovou zprávu?
MVP rozsah umožňuje přesně jeden obvod s přesně jedním spuštěním () volání po measureAll (). Neplatné qubit indexy, brány po measureAll (), neplatné úhly nebo výstřely, a chyby syntaxe v kódu jsou odmítnuty s pochopitelnou chybovou zprávou.
Co dělají Hadamardovy, X a CNOT brány?
X zamění |0⟩ a |1⟩. Hadamardova brána převede bázový stav na rovnoměrnou superpozici. CNOT přepne cílový qubit pouze tehdy, je-li řídicí qubit ve stavu |1⟩, a v kombinaci se superpozicí může vytvořit provázání.
Jak je spojení vytvořeno?
Jeden příklad použije Hadamardovu bránu na první qubit a poté CNOT na druhý. Qubity už nelze popsat nezávisle a měření vrací korelované výsledky, například |00⟩ nebo |11⟩.