The Algoritmus Bernstein – Vazirani, který řeší Bernstein – Vazirani problém je kvantový algoritmus vynalezl Ethan Bernstein a Umesh Vazirani v roce 1992.[1] Je to omezená verze Algoritmus Deutsch – Jozsa kde se místo rozlišení mezi dvěma různými třídami funkcí pokusí naučit řetězec zakódovaný ve funkci.[2] Algoritmus Bernstein – Vazirani byl navržen tak, aby dokázal věštecké oddělení mezi třídy složitosti BQP a BPP.[1]
Problémové prohlášení
Vzhledem k věštec který implementuje funkci
ve kterém
je slíbil být Tečkovaný produkt mezi
a tajný řetězec
modulo 2,
, najít
.
Algoritmus
Nejúčinnější metodou k nalezení tajného řetězce je klasicky vyhodnocení funkce
časy kde
,
[2]
![{ displaystyle { begin {zarovnáno} f (1000 cdots 0_ {n}) & = s_ {1} f (0100 cdots 0_ {n}) & = s_ {2} f (0010 cdots 0_ {n}) & = s_ {3} & , , , vdots f (0000 cdots 1_ {n}) & = s_ {n} konec {zarovnáno}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/a5cd6bf701e0b9076aa011de634746a448f4c14d)
Na rozdíl od klasického řešení, které potřebuje minimálně
dotazy na funkci k vyhledání
, pomocí kvantového výpočtu je potřeba pouze jeden dotaz. Kvantový algoritmus je následující: [2]
Použijte a Hadamardova transformace do
stav qubit
dostat
![{ displaystyle { frac {1} { sqrt {2 ^ {n}}}} sum _ {x = 0} ^ {2 ^ {n} -1} | x rangle.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e97fee904c19e4fea87ec50004d2ae85626963f8)
Dále použijte věštec
který se transformuje
. To lze simulovat pomocí standardního věštce, který se transformuje
aplikací tohoto věštce na
. (
označuje přidání mod dva.) Tím se superpozice transformuje do
![{ displaystyle { frac {1} { sqrt {2 ^ {n}}}} součet _ {x = 0} ^ {2 ^ {n} -1} (- 1) ^ {f (x)} | x rangle.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/bff660e62e6a060c9f1a275fc8bc8c34a12264fe)
Na každý qubit se aplikuje další Hadamardova transformace, což je tak pro qubits kde
, jeho stav je převeden z
na
a pro qubits kde
, jeho stav je převeden z
na
. Získat
, měření v standardní základ (
) se provádí na qubits.
Graficky může být algoritmus znázorněn následujícím diagramem, kde
označuje Hadamardovu transformaci
qubits:
![{ displaystyle | 0 rangle ^ {n} xrightarrow {H ^ { otimes n}} { frac {1} { sqrt {2 ^ {n}}}} sum _ {x in {0 , 1 } ^ {n}} | x rangle xrightarrow {U_ {f}} { frac {1} { sqrt {2 ^ {n}}}} sum _ {x in {0, 1 } ^ {n}} (- 1) ^ {f (x)} | x rangle xrightarrow {H ^ { otimes n}} { frac {1} {2 ^ {n}}} součet _ {x, y in {0,1 } ^ {n}} (- 1) ^ {f (x) + x cdot y} | y rangle = | s rangle}](https://wikimedia.org/api/rest_v1/media/math/render/svg/8fefd5d14347b32f33a83c32e64fc10b4334b168)
Důvodem je poslední stav
je to proto, že konkrétně
,
![{ displaystyle { frac {1} {2 ^ {n}}} součet _ {x in {0,1 } ^ {n}} (- 1) ^ {f (x) + x cdot y} = { frac {1} {2 ^ {n}}} sum _ {x in {0,1 } ^ {n}} (- 1) ^ {x cdot s + x cdot y} = { frac {1} {2 ^ {n}}} sum _ {x in {0,1 } ^ {n}} (- 1) ^ {x cdot (s oplus y )} = 1 { text {if}} s oplus y = { vec {0}}, , 0 { text {jinak}}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/453b23dc62c24321e6cc8150618fec2f966c1692)
Od té doby
je pravda pouze tehdy, když
, to znamená, že je zapnuta pouze nenulová amplituda
. Takže měření výstupu obvodu ve výpočetní bázi poskytuje tajný řetězec
.
Viz také
Reference