ZA∥ A ∥A ϵ O ( log c 1ZAAϵc<4
O(logc1ϵ)
c<4
W pierwszej części:
przybliżenie wprowadza błąd, który rozprzestrzenia się i kumuluje w długim obliczeniu
Cóż, można to wykazać przez indukcję, że błędy kumulowane przez zastosowanie jednej macierzy do przybliżenia innej są subadditive (patrz np . Notatki z wykładu Andrew Childa ). To znaczy, dla macierzy jednostkowych i , .V i ‖ U i - V i ‖ < ϵUiVi∥Ui−Vi∥<ϵ∀i∈{1,2,…,t}⟹∥Ut…U2U1−Vt…V2V1∥≤tϵ
Oznacza to, że pod względem implementacji, aby ogólny błąd nie został osiągnięty więcej niż , każda bramka musi być przybliżona do lubϵ / tϵϵ/t
zastosowanie aproksymacji do obwodu jako całości
to to samo, co zastosowanie przybliżenia do każdej pojedynczej bramki, każda z indywidualnym błędem nie większym niż błąd całego obwodu podzielony przez liczbę bramek, które przybliżasz.
Jeśli chodzi o syntezę bramek, algorytm jest wykonywany przez przyjęcie produktów zestawu bramek celu utworzenia nowego zestawu bramek który tworzy sieć dla (dla dowolny ). Zaczynając od tożsamości, rekurencyjnie znajduje się nowy unitarny z nowego zestawu bram, aby uzyskać mocniejszą siatkę wokół docelowego unitarnego. Co dziwne, czas na wykonanie klasycznego algorytmu przez tę operację to także , czyli czas sub-wielomianowy. Jednak zgodnie zΓ 0 ϵ 2ΓΓ0ϵ2 A ∈ SU ( d ) ,SU(d)O ( p o l y log 1 / ϵ ) d ϵ SU ( d ) ∝ ϵ d 2 - 1 d 2A∈SU(d),∃U∈Γ0s.t.∥A−U∥≤ϵ2O(polylog1/ϵ)Harrow, Recht, Chuang , w wymiarach , ponieważ kula o promieniu wokół nazwa ma objętość , to skaluje się wykładniczo in dla nieokreślonej liczby wymiarów.dϵSU(d)∝ϵd2−1d2
Ma to wpływ na końcowy czas obliczeń. Ponieważ jednak skalowanie zarówno liczby bramek, jak i klasycznej złożoności obliczeniowej jest sub-wielomianowe, nie zmienia to klasy złożoności żadnego algorytmu, przynajmniej dla klas powszechnie uważanych.
Na bramy, ogólny (czasowych i bramka) złożony jest więct .
O(tpolylogtϵ)
W przypadku korzystania z modelu obwodu jednolitego bez pomiarów pośrednich liczba bramek, które należy wdrożyć, zawsze będzie znana przed obliczeniem. Można jednak założyć, że nie jest tak w przypadku pomiarów pośrednich, więc kiedy liczba bramek, które chcesz przybliżyć, jest nieznana, oznacza to, że jest nieznane. a jeśli nie wiesz, co to jest , oczywiście nie możesz przybliżyć każdej bramki do błędu . Jeśli znasz ograniczenie liczby bramek (powiedzmy, ), możesz zbliżyć każdą bramkę do aby uzyskać ogólny błądttϵ/ttmaxϵ/tmax≤ϵ i złożoność chociaż jeśli nie ma górnej granicy liczby bram jest znany , wówczas każda brama byłaby zbliżona do niektórych (mniejszych) , dając ogólny błąd dla wynikowej liczby zaimplementowanych bramek (co jest nieznane na początku) , z ogólna złożoność
O(tpolylogtmaxϵ),
ϵ′≤t′ϵt′O(t′polylog1ϵ′).
Oczywiście całkowity błąd tego jest nadal nieograniczony, więc jednym prostym 1 sposobem na ograniczenie tego błędu byłoby zmniejszenie błędu za każdym razem o, powiedzmy, , tak aby bramka była zaimplementowano z błędem . Złożoność byłaby wtedy co daje ogólną (teraz wielomianową) złożoność chociaż ma to tę zaletę, że gwarantuje ograniczenie błędu.2nthϵ/2nO(poly
O(polylog2nϵ′)=O(polynlog1ϵ′),
O(polytlog1ϵ),
To nie jest zbyt złe, więc mam nadzieję, że (gdy liczba bramek jest nieznany) komputery klasyczne byłby w stanie utrzymać wymyślanie odpowiednich bramek co najmniej tak szybko jak procesor kwantowy będzie ich potrzebować. Jeśli nie obecnie, to mam nadzieję, że gdy procesory kwantowe staną się wystarczająco dobre, że stanie się to problemem!
1 Chociaż prawdopodobnie nie jest najbardziej wydajny