Nákladové funkce
Během této lekce se naučíme, jak vyhodnotit nákladovou funkci:
- Nejprve se seznámíme s primitivy Qiskit Runtime
- Definujeme nákladovou funkci . Jde o funkci specifickou pro daný problém, která definuje cíl problému, jenž má optimalizátor minimalizovat (nebo maximalizovat)
- Definování strategie měření pomocí primitiv Qiskit Runtime pro optimalizaci rychlosti vůči přesnosti
Primitiva
Všechny fyzikální systémy, ať už klasické nebo kvantové, mohou existovat v různých stavech. Například auto na silnici může mít určitou hmotnost, polohu, rychlost nebo zrychlení, které charakterizují jeho stav. Podobně i kvantové systémy mohou mít různé konfigurace nebo stavy, ale od klasických systémů se liší tím, jak zacházíme s měřeními a s vývojem stavů. To vede k jedinečným vlastnostem, jako je superpozice a provázanost, které jsou výhradně záležitostí kvantové mechaniky. Stejně jako můžeme popsat stav auta pomocí fyzikálních veličin, jako je rychlost nebo zrychlení, můžeme popsat i stav kvantového systému pomocí pozorovatelných veličin, což jsou matematické objekty.
V kvantové mechanice jsou stavy reprezentovány normalizovanými komplexními sloupcovými vektory neboli kety () a pozorovatelné veličiny jsou hermitovské lineární operátory (), které na tyto kety působí. Vlastní vektor () pozorovatelné veličiny se nazývá vlastní stav. Měřením pozorovatelné veličiny na některém z jejích vlastních stavů () získáme jako výstup odpovídající vlastní hodnotu ().
Pokud se ptáš, jak změřit kvantový systém a co vlastně můžeš měřit, Qiskit ti nabízí dvě primitiva, která mohou pomoci:
Sampler: Pro daný kvantový stav toto primitivum získává pravděpodobnost každého možného stavu výpočetní báze.Estimator: Pro danou kvantovou pozorovatelnou veličinu a stav toto primitivum počítá střední hodnotu .
Primitivum Sampler
Primitivum Sampler počítá pravděpodobnost získání každého možného stavu z výpočetní báze pro daný kvantový circuit, který připravuje stav . Počítá
kde je počet qubitů a celočíselná reprezentace libovolného možného výstupního binárního řetězce (tedy celá čísla v základu ).
Qiskit Runtime Sampler spouští circuit na kvantovém zařízení opakovaně, při každém běhu provádí měření a z získaných bitových řetězců rekonstruuje rozdělení pravděpodobností. Čím více běhů (neboli shotů) provede, tím přesnější budou výsledky, to ale vyžaduje více času a kvantových prostředků.
Protože však počet možných výstupů roste exponenciálně s počtem qubitů (tedy ), bude muset i počet shotů růst exponenciálně, aby zachytil husté rozdělení pravděpodobnosti. Proto je Sampler efektivní pouze pro řídká rozdělení pravděpodobnosti; kde cílový stav musí být vyjádřitelný jako lineární kombinace stavů výpočetní báze, přičemž počet členů roste nejvýše polynomiálně s počtem qubitů:
Sampler lze také nakonfigurovat tak, aby získával pravděpodobnosti z podčásti circuitu, reprezentující podmnožinu všech možných stavů.
Primitivum Estimator
Primitivum Estimator počítá střední hodnotu pozorovatelné veličiny pro kvantový stav ; kde pravděpodobnosti pozorovatelné veličiny lze vyjádřit jako , přičemž jsou vlastní stavy pozorovatelné veličiny . Střední hodnota je pak definována jako průměr všech možných výsledků (tedy vlastních hodnot pozorovatelné veličiny) měření stavu , vážený odpovídajícími pravděpodobnostmi:
Výpočet střední hodnoty pozorovatelné veličiny však není vždy možný, protože často neznáme její vlastní bázi. Qiskit Runtime Estimator využívá složitý algebraický postup k odhadu střední hodnoty na reálném kvantovém zařízení tak, že pozorovatelnou veličinu rozloží na kombinaci jiných pozorovatelných, jejichž vlastní bázi známe.
Zjednodušeně řečeno, Estimator rozkládá libovolnou pozorovatelnou veličinu, kterou neumí změřit, na jednodušší, měřitelné pozorovatelné zvané Pauliho operátory.
Libovolný operátor lze vyjádřit jako kombinaci Pauliho operátorů.
tak, že
kde je počet qubitů, pro (tedy celá čísla v základu ) a .
Po provedení tohoto rozkladu Estimator odvodí nový circuit pro každou pozorovatelnou veličinu (z původního circuitu), aby efektivně diagonalizoval Pauliho pozorovatelnou ve výpočetní bázi a změřil ji. Pauliho pozorovatelné můžeme snadno změřit, protože známe předem, což obecně pro jiné pozorovatelné neplatí.
Pro každé Estimator spustí odpovídající circuit na kvantovém zařízení několikrát, změří výstupní stav ve výpočetní bázi a vypočítá pravděpodobnost získání každého možného výstupu . Poté najde vlastní hodnotu operátoru odpovídající každému výstupu , vynásobí ji a všechny výsledky sečte, čímž získá střední hodnotu pozorovatelné veličiny pro daný stav .
Protože výpočet střední hodnoty Pauliho operátorů je nepraktický (tedy roste exponenciálně), Estimator může být efektivní pouze tehdy, když je velké množství nulových (tedy řídký Pauliho rozklad namísto hustého). Formálně říkáme, že aby tento výpočet byl efektivně řešitelný, musí počet nenulových členů růst nejvýše polynomiálně s počtem qubitů :
Čtenář si může povšimnout implicitního předpokladu, že pravděpodobnostní vzorkování musí být také efektivní, jak bylo vysvětleno pro Sampler, což znamená
Vedený příklad výpočtu středních hodnot
Předpokládejme jednoqubitový stav a pozorovatelnou
s následující teoretickou střední hodnotou