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(n−ng)2−EJcosϕ,
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⟩=|1⟩E0=ℏω0E1=ℏω1ω=ω1−ω0 . Dodanie dużej pojemności bocznikowej i zwiększenie pojemności bramki zmienia ten stosunek, tak że
E J ≫ E C i mamy
transmon. 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=5EJEJ≫EC
Wreszcie dochodzimy do głównego pytania:
Jak inicjalizujemy, ewoluujemy i mierzymy transmon?
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.