Jak komputer kwantowy wykonuje podstawowe obliczenia matematyczne na poziomie sprzętowym?

27

Po przeczytaniu tego wątku Reddit zdałem sobie sprawę, że nawet po kilku miesiącach nauki o komputerach kwantowych nie mam absolutnie pojęcia, jak faktycznie działa komputer kwantowy.

Aby uściślić pytanie, powiedzmy, że mamy nadprzewodzący komputer kwantowy oparty na kubitach (5-kubitowy komputer kwantowy IBM). Wpisuję 2+3 za pomocą klawiatury na monitorze (powiedzmy w podstawowej aplikacji kalkulatora, jaką może mieć komputer kwantowy). Potem powinien mi zwrócić . Ale dzieje się na poziomie sprzętowym? Czy jakieś sygnały elektryczne odpowiadające wejściom , i trafiają do procesora komputera? Czy to w jakiś sposób „inicjuje” elektrony pary Coopera? Co stanie się potem z kubitami elektronowymi pary Coopera (przypuszczam, że nad nimi pracowałyby bramki kwantowe , które z kolei znów są523+czarne skrzynki )? Jak to w końcu zwraca mi wynik ?5

Dziwi mnie, jak mało potrafiłem wymyślić podstawową pracę komputera kwantowego, wyszukując w sieci.

Sanchayan Dutta
źródło

Odpowiedzi:

27

Po pierwsze, klasyczny komputer wykonuje podstawowe matematyki na poziomie sprzętowym w jednostce arytmetycznej i logicznej (ALU). Bramki logiczne pobierają niskie i wysokie napięcia wejściowe i wykorzystują CMOS do implementacji bramek logicznych, umożliwiając wykonywanie i budowanie poszczególnych bramek w celu wykonywania większych, bardziej skomplikowanych operacji. W tym sensie pisanie na klawiaturze wysyła sygnały elektryczne, które ostatecznie kończą się wysłaniem polecenia (w postaci większej liczby sygnałów elektrycznych) do ALU, wykonywaniem prawidłowych operacji i wysyłaniem większej liczby sygnałów, które są konwertowane na wyświetlaj piksele w kształcie liczby na ekranie.

Co z komputerem kwantowym?

Istnieją dwa możliwe sposoby wykorzystania procesorów kwantowych: same w sobie lub w połączeniu z klasycznym procesorem. Jednak większość (w tym twój przykład nadprzewodnictwa) procesorów kwantowych w rzeczywistości nie wykorzystuje sygnałów elektrycznych, chociaż nadal w ten sposób mysz, klawiatura i monitor itp. Przesyłają i odbierają informacje. Tak więc musi istnieć sposób na konwersję sygnału elektrycznego na dowolny sygnał wykorzystywany przez procesor kwantowy (do którego przejdę później), a także sposób na powiedzenie procesorowi, co chcesz zrobić. Oba te problemy można rozwiązać od razu za pomocą klasycznego przetwarzania wstępnego i końcowego , takiego jak QISKit IBM . W Q # Microsoft stosuje podejście odgórne, w którym programy dla procesora kwantowego są pisane bardziej jak „klasyczny” program, w przeciwieństwie do skryptu, a następnie kompilowane i potencjalnie zoptymalizowane pod kątem sprzętu. Oznacza to, że jeśli masz funkcję, może ona wykonywać klasyczne operacje, a także wykonywać połączenia z procesorem kwantowym w celu wykonania wymaganych operacji kwantowych. To prowadzi mnie do pierwszego punktu:

Jeśli poprosisz komputer z dostępem do procesora kwantowego, aby obliczył coś takiego jak , jednym bardzo ważnym rozwiązaniem byłoby po prostu obliczenie tego na klasycznym procesorze, jak zwykle.2+3

OK, powiedzmy, że zmuszasz klasyczny procesor do korzystania z procesora kwantowego, który w tym przypadku jest jednym z nadprzewodzących układów scalonych IBM, używając kubonów transmonowych , powiedzmy, IBM QX4 . Jest to zbyt małe, aby mieć korekcję błędów, więc zignorujmy to. Korzystanie z procesora modelu obwodu składa się z trzech części: inicjalizacji, ewolucji jednostkowej i pomiaru, które wyjaśniono bardziej szczegółowo poniżej. Przed tym,

Co to jest transmon?

Wziąć nadprzewodzących pętlę pozwala na parach Cooper i dodać jeden lub dwa węzły Josephson otrzymując Cooper skrzynki para wyspy w obszarze między dwoma skrzyżowaniami Josephsona z Josephson energii sprzęgania , w którym strumień magnetyczny kwant Φ 0 = h / 2 e i I c jest prądem krytycznym złącza. Przyłożenie napięcia V g do tego pola daje „pojemność bramkową” C g i czyni z niego kubit ładunkowyEJ=IcΦ0/2π Φ0=h/2eIcVgCg. Dla energii kulombowskim jednej pary Cooper , gdzie C stanowi sumę całkowitej pojemności wyspy. Hamiltonian takiego układu daje H = E C ( n - n g ) 2 - E J cos ϕ , gdzie n jest liczbą par Coopera, ϕ jest zmianą fazy na skrzyżowaniu, a n g = C g V solEC=(2e)2/2CC

H=EC(nng)2EJcosϕ,
nϕ . Podczas wykonywania operacji jednostkowych, tylko dwie najniższe stany systemu uważa, | n = | 0 i | n = | 1 z odpowiednimi energii E 0 = ω 0 i E 1 = ω 1 i częstotliwość qubit ω = ω 1 - ω 0 opisujący obliczeniowej podstawę qubitu. Typowy kubit ładunkowy może mieć E C =ng=CgVg/2e|n=|0|n=|1E0=ω0E1=ω1ω=ω1ω0 . Dodanie dużej pojemności bocznikowej i zwiększenie pojemności bramki zmienia ten stosunek, tak że E JE C i mamytransmon. Ma to tę zaletę, że dłuższy czas koherencji, kosztem zmniejszonej anharmoniczności (gdzie poziomy energii powyżej dwóch pierwszych są bliżej siebie, potencjalnie powodując wyciek).EC=5EJEJEC

Wreszcie dochodzimy do głównego pytania:

Jak inicjalizujemy, ewoluujemy i mierzymy transmon?

  • E(t)=Ex(t)cos(ωdt)+Ey(t)sin(ωdt)0<t<tgωd
    H=(ω1ωd12Ex(t)i2Ey(t)12Ex(t)+i2Ey(t)ω22ωd)
    However, due to lower anharmonicity, the microwave pulses have to be shaped to reduce leakage to higher energy levels in a process known as Derivative Removal by Adiabatic Gate (DRAG). By varying the pulse, different Hamiltonians can be achieved, which, depending on the time of the pulse can be used to implement different unitary operations on a single qubit.
  • Measurement/readout: A microwave resonator, with resonance frequency ωr, can be coupled to the transmon using a capacitor. This interaction causes (decaying) Rabi oscillations to occur in the transmon-resonator system. When the coupling strength of cavity and qubit, gωωr, this is known as the dispersive regime. In this regime, the transmittance spectrum of the cavity is shifted by ±g2/(ωωr) depending on the state of the qubit, so applying a microwave pulse and analysing the transmittance and reflectance (by computer) can then be used to measure the qubit.
  • Multiple qubit unitary evolution: This idea of coupling a qubit to a microwave resonator can be extended by coupling the resonator to another qubit. As in the single qubit gate case, timings of the coupling as well as microwave pulses can be used allow the first qubit to couple to the cavity, which is then coupled to the second qubit and perform certain 2-qubit gates. Higher energy levels can also be used to make certain gates easier to implement due to interactions between higher levels caused by the cavity. One such example is shown here, where the cavity causes an interaction between the states of |2|0 and |1|1. An avoided crossing between these states means that a 2-qubit phase gate can be implemented, although in general 2-qubit gates are implemented less well (have a lower fidelity) than single qubit ones.
  • Initialisation: Readout, potentially followed by a single qubit Pauli X gate (on each qubit measured to be in state |1) to ensure that all qubits start in state |0.

Adding 2 and 3 is now a 'simple' matter of initialising the qubits, performing the gates equivalent to a classical reversible adder and measuring the result, all implemented automatically. The measurement result is then returned by a classical computer as per usual.

As a bonus, it seems a little pointless to go through all that in order to implement gates that could be done on a classical computer anyway, so it turns out that it's possible to approximately implement a quantum adder, which adds two quantum (as opposed to classical) states, with some error, on one of IBM's processors.

Mithrandir24601
źródło
15

Here is my process for doing arithmetic on a quantum computer.

Step 1: Find a classical circuit that does the thing you're interested in.

In this example, a full adder.

klasyczny pełny sumator

Step 2: Convert each classical gate into a reversible gate.

Have your output bits present from the start, and initialize them with CNOTs, CCNOTs, etc.

półodwracalny pełny sumator

Step 3: Use temporary outputs.

If you were doing this addition to e.g. control whether a Grover oracle phases by -1 or not, now is the time to apply a Z gate to your output qubit.

Step 4: Get rid of intermediate values by doing exactly the opposite of what you did to compute them.

This may or may not include getting rid of the output bits, depending on how the circuit fits into your overall algorithm.

półodwracalny pełny sumator 2

Step 5: (Sometimes) for each output bit you keep, get rid of an input bit.

And I don't mean "drop them on the floor", I mean apply operations that cause them to become 0 for sure.

Podczas obliczeń c+=apozostawienie kopii oryginalnej wartości czwykle wydaje się złe. Niszczy spójność. Musisz więc spojrzeć na obwód sumatora (lub cokolwiek innego) i zastanowić się, czy istnieje sposób na wykorzystanie bitów wyjściowych w celu pozbycia się bitów wejściowych. Na przykład po obliczeniu c+amożna wykonać tymczasowe odejmowanie poza miejsce w rejestrze r, xor r w rejestrze przechowującym niepożądaną kopię c, a następnie cofnąć tymczasowe odejmowanie.

(Godnym uwagi wyjątkiem od „jeśli zachowujesz wyniki, nie przechowuj zbyt wiele danych wejściowych” jest algorytm Shora. Algorytm Shora celowo dekoduje swoje dane wejściowe , ale w bardzo szczególny sposób, który pomaga znaleźć okres).

Krok 6: Bądź skuteczny

W kroku 5 powiedziałem, że można obliczyć wkład dodawania w miejscu, wykonując dodawanie poza miejscem, a następnie tymczasowe odejmowanie poza miejscem. To jest trochę głupie. Ogólny proces dodawania obejmie 4n kubitów (n, aby zatrzymać a, n, aby zatrzymać c, n, aby zatrzymać c+a, n, aby zatrzymać (c+a)-a). Jeśli jesteś sprytniejszy, możesz dopasować wszystko do 2nkubitów lub (nieco łatwiej) do 2n+1kubitów :

sumator cuccaro

Craig Gidney
źródło