Czy możemy wykorzystać równoległość kwantową do obliczenia wielu funkcji jednocześnie?


9

Dobrze wiadomo, że wykorzystując paralelizm kwantowy możemy obliczyć funkcję dla wielu różnych wartości jednocześnie. Potrzebne są jednak pewne sprytne manipulacje w celu wydobycia informacji o każdej wartości, tj. Algorytmem Deutscha.f(x)x

Rozważmy odwrotny przypadek: czy możemy użyć równoległości kwantowej do obliczenia wielu funkcji (powiedzmy ) jednocześnie dla pojedynczej wartości x_0 ?f(x),g(x),x0


Aby ocenić f(x0) i g(x0) trzeba wykonać kopię x0 dla każdej operacji, która w ogóle nie jest możliwe twierdzenia bez klonowania. Z drugiej strony, jeśli po prostu przygotujesz stan, który jest dwa razy x0 , po prostu przywrócisz klasyczną równoległość.

@HenriMenke A może niedoskonałe klonowanie?
donnydm,

@HenriMenke: twoje pojęcie „klonowania” wydaje się być bardzo szerokie, do tego stopnia, że ​​stanowi przeszkodę dla twojej zdolności do produktywnego podejścia do problemów.
Niel de Beaudrap,

Odpowiedzi:


5

Dokładna odpowiedź zależy od dokładnego rodzaju superpozycji, którą chcesz. Odpowiedzi piramid i Niel dają ci coś podobnego

At=1n|ft(x)|Ft

Tutaj śledziłem Niel w oznaczaniu różnych funkcji , itd., oznacza całkowitą liczbę funkcji, które chcesz nałożyć. Użyłem również do oznaczenia opisu funkcji jako zapisanego programu. Tylko cokolwiek potrzeby numer będzie tam stan zostać znormalizowane.f1f2nFtftA

Zauważ, że nie jest to po prostu superpozycja . Jest zaplątany w przechowywany program. Jeśli miałbyś wyśledzić zapisany program, miałbyś po prostu kombinację . Oznacza to, że przechowywany program może stanowić „śmieci”, co zapobiega efektom interferencyjnym, na które możesz liczyć. A może nie. To zależy od tego, w jaki sposób ta superpozycja zostanie wykorzystana w obliczeniach.ft(x)ft(x)

Jeśli chcesz pozbyć się śmieci, sprawy stają się trudniejsze. Załóżmy na przykład, że chcesz uzyskać jednolity który ma efektU

U:|x|0NAt=1n|ft(x)

dla wszystkich możliwych danych wejściowych (które, jak zakładam, są łańcuchami bitów zapisanymi w podstawie obliczeniowej). Zauważ, że umieściłem również puste kubity po stronie wejściowej, na wypadek gdyby funkcje miały dłuższe wyjścia niż wejścia.x

Z tego możemy bardzo szybko znaleźć warunek, który muszą spełniać funkcje: ponieważ stany wejściowe tworzą zbiór ortogonalny, podobnie jak wyniki. Spowoduje to znaczne ograniczenie rodzajów funkcji, które można łączyć w ten sposób.


Dziękuję, myślę, że w ten sposób można przyspieszyć coś jak obliczenia ekspansji Taylora. W każdym razie, czy można uzyskać dostęp do zmierzonego programu, aby uzyskać jakieś informacje, czy może to tylko narzędzie?
donnydm,

Zapisany program zostanie zapisany w rejestrze kubitów, więc z pewnością można nim manipulować.
James Wootton,

5

Funkcje , które chcesz ocenić w różnych gałęziach obliczeniowych, muszą być, aby w ogóle być obliczalne, w jakiś sposób określone (np. Sekwencja klasycznych bramek logicznych). A zbiór funkcji, które chcesz obliczyć, powinien sam być obliczalny: dla danego musisz być w stanie obliczyć specyfikację tego, jak ma być obliczony na podstawie jego argumentu. W rezultacie: musisz mieć możliwość opisania funkcji jako zapisanych programów. (Wszystkie są konieczne, nawet zanim rozważymy obliczenia kwantowe, na pytanie „obliczenie jednej / wszystkich funkcji na wejściuf,g, {f1,f2,}tftftf1,f2,x0„mieć sens.)

Gdy masz już sposób określania funkcji jako przechowywanych programów, to w zasadzie gotowe: program jest zasadniczo innym rodzajem danych wejściowych, które możesz przygotować w superpozycji, i np. Ocenić na stałym wejściu lub superpozycji danych wejściowych, obliczając funkcje z ich specyfikacji w każdej branży.

Aby uzyskać comptational przewagę od tego jest inna sprawa, i będzie musiał zaangażować jakąś specyficzną strukturę w funkcje , które można wykorzystać, ale po prostu do „oceny w superpozycji” jest łatwo zrobić, jeśli masz wystarczająco dużo informacji dla pytanie rozsądne.ft


3

Tak (w zależności od tego, co oznacza „oblicz wiele funkcji jednocześnie”)

Opisując obwód, który daje funkcję jako i obwód dający jako , można to na kilka sposobów:fUfgUg

  1. Zaczynając od rejestrów qubit w , Przygotuj stan na pierwszych dwóch rejestrach. Można to zrobić poprzez zastosowanie jednolitego 1 w pierwszym rejestrze, aby umieścić ten rejestr w stanie przed nałożeniem CNOT, potem . Następnie zastosuj z pierwszego rejestru do trzeciego i z drugiego do trzeciego.|00xα|01+β|10α|0+β|1IXCUfCUg

    1.1 Daje to, że trzeci rejestr jest teraz w stanie , kiedy początkowe operacje (do ) na pierwszych dwóch rejestrach są wywrócony. Jednak ze względu na ogólne trudności związane z realizacją arbitralnych operacji kontrolowanych-jednostkowych (a także niepotrzebnego korzystania z dodatkowych kubitów) prawdopodobnie łatwiej byłoby to zrealizować bezpośrednio, wybierając numer jednolity . Zauważ, że nie jest to ani implementacja ani , ale nowa, inna funkcja(αUf+βUg)|xIXαUf+βUgfgf+g

    1.2 Brak odwrócenia początkowych operacji na pierwszych dwóch rejestrach stawia trzeci w pewnym splątanym stanie i , co omówiono w innych odpowiedziach.fg

  2. Zaczynając od stanu i stosując do pierwszego rejestru i do drugiego. Jest to najbliższy klasycznemu paralelizmowi, w którym obie funkcje są stosowane niezależnie do kopii tego samego stanu. Poza wymaganiem podwójnej liczby kubitów, problem polega na tym, że ze względu na brak klonowania, aby skopiować , musi on być znany lub być stanem klasycznym (tj. Nie obejmować superpozycji w podstawie obliczeniowej). Można również zastosować przybliżone klonowanie .|xxUfUg|x

  3. Zacznij od stanu , a także klasycznego rejestru. Zastosuj jednostkę 1, aby umieścić pierwszy rejestr w superpozycji . Teraz zmierz ten rejestr (umieszczając wynik w rejestrze klasycznym) i zastosuj klasyczną operację . Chociaż może się to wydawać mniej skuteczne niż którakolwiek z powyższych operacji, jest to w pewnym sensie równoważne kanałowi kwantowemu . Takie metody można stosować do tworzenia losowych jednostek, które mają zastosowanie np. W próbkowaniu bozonów i|0xα|0+β|1IF RESULT = 0 U_f ELSE U_gE(ρ)=|α|2UfρUf+|β|2UgρUgrandomizowane testy porównawcze


1 podany przez

(αββα)


Jest to interesujące, częściowo dlatego, że nie jest potrzebny żaden zapisany program. Czy konieczne jest podanie CNOT pod numerem 1?
donnydm,

2

Tak, można. Sztuczka polega na zdefiniowaniu (i zaimplementowaniu) nowej funkcji która ma wartość jeśli , do jeśli itd. Następnie przygotowuje się kubity reprezentujące żądanej superpozycji i ustaw na .fall(y,x)f(x)y=0g(x)y=1yxx0

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.