Cechy komputerów kwantowych

Moc komputera kwantowego mierzona jest w kubitach, podstawowej jednostce miary w komputerze kwantowym. Źródło.

Robię facepalm po każdym przeczytaniu takiego zdania. To do niczego dobrego nie prowadzi, zaczyna mi siadać wzrok; wkrótce będę musiał zwrócić się do Meklon.

Myślę, że czas na systematyzację podstawowych parametrów komputera kwantowego. Jest ich kilka:

  1. Liczba kubitów
  2. Czas utrzymania koherencji (czas dekoherencji)
  3. Poziom błędów
  4. Architektura procesora
  5. Cena, dostępność, warunki utrzymania, czas amortyzacji, narzędzia programistyczne, itd.

Liczba kubitów

Tutaj wszystko jest oczywiste, im więcej, tym lepiej. W praktyce jednak, za kubity trzeba płacić, i w idealnym przypadku należy kupić dokładnie tyle kubitów, ile jest potrzebne do wykonania zadania. Dla dewelopera ekskluzywnych automatów wystarczy jeden kubit na automat (do generowania losowości). Do 'brute force' RSA-2048 - co najmniej 2048 kubitów.

Najbardziej rozreklamowane algorytmy kwantowe noszą imiona Grovera i Shora. Grover pozwala na 'hakowanie' hashy. Do załamania bitcoina potrzebne są komputery z co najmniej 256 kubitami na pokładzie (można pokombinować ze złożonością bitcoina, ale zatrzymajmy się na tej okrągłej liczbie). Shor pozwala na faktoryzację liczb. Do faktoryzacji liczby długości n binarnych bitów potrzeba co najmniej n kubitów.

Aktualny maksymalny wynik: 50 kubitów (już 72?). I w rzeczywistości 50 kubitów to limit. Limit symulacji komputera kwantowego. W teorii możemy symulować dowolną liczbę kubitów na komputerach klasycznych. W praktyce dodanie jednego kubita do symulacji wymaga podwojenia klasycznych komputerów. Dodaj tutaj plotki o podwajaniu kubitów co roku i zadaj sobie pytanie: jak debugować algorytmy dla 25651210242048 kubitów? Symulator nie istnieje, na procesorze kwantowym nie postawisz breakpointa.

Czas utrzymania koherencji (czas dekoherencji)

Kohorencja i koherentność to nie to samo. Wolę porównać koherentność z regeneracją pamięci RAM. Na kości RAM znajdują się miliardy komórek, na każdej z nich znajduje się ładunek, zerowy lub jedynkowy. Ten ładunek ma bardzo ciekawą cechę — spada. Początkowo komórka z "jedynką" staje się komórką na 0.99, następnie 0.98 i tak dalej. Odpowiednio, na zerowej gromadzi się 0.01, 0.02, 0.03… Musi się ten ładunek aktualizować, "regenerować". Wszystko, co jest mniejsze od połowy, zrzucane jest do zera, wszystko inne osiąga jedynkę.

Kwantowe procesory nie mogą być regenerowane. W związku z tym na wszystkie obliczenia jest jeden cykl, aż do pierwszego "przeciekającego" kubitu. Czas do pierwszego "przecieku" nazywa się czasem dekohereencji. Koherencja to stan, w którym kubity jeszcze nie "przeciekły". Tutaj można zobaczyć nieco bardziej zaawansowane wyjaśnienia.

Dekoherecja jest związana z liczbą kubitów: im więcej kubitów, tym trudniej utrzymać koherentność. Z drugiej strony, przy dużej liczbie kubitów można część z nich przeznaczyć na korekcję błędów związanych z dekoherejcją. Stąd wynika, że liczba kubitów sama w sobie nic nie rozwiązuje. Można podwoić liczbę kubitów i poświęcić 90% z nich na ustabilizowanie dekoherecji.

W przybliżeniu tutaj pojawia się pojęcie kubitu logicznego. Mówiąc w uproszczeniu, jeśli masz procesor na 100 kubitów, ale 40 z nich jest przeznaczone na ustabilizowanie dekoherecji — zostaje ci 60 kubitów logicznych. To te, na których realizujesz swój algorytm. Koncept kubitów logicznych jest obecnie raczej teoretyczny, o praktycznych realizacjach osobiście nie słyszałem.

Błędy i ich korekcja

Jeszcze jeden problem kwantowych procesorów. Jeśli odwracasz kubit, istnieje 2% prawdopodobieństwa, że operacja zakończy się błędem. Jeśli splatasz 2 kubity, prawdopodobieństwo błędu wzrasta do 8%. Weź liczbę wynoszącą 256 bitów, zhashuj ją na SHA-256, oblicz liczbę operacji, oblicz prawdopodobieństwo wykonania WSZYSTKICH tych operacji bezbłędnie.

Matematycy mają rozwiązanie: korekcja błędów. Algorytmy są. Wdrożenie jednego splątania 2 kubitów logicznych wymaga 100.000 kubitów fizycznych. Bitko- katastrofa nie nastąpi wkrótce.

Architektura procesora

Ścisłe mówiąc, nie ma komputerów kwantowych. Są tylko procesory kwantowe. Po co potrzebna pamięć operacyjna, gdy czas pracy ogranicza się do milisekund? Programuję w Q#, ale to język wysokiego poziomu. Przydzieliłem sobie 15 kubitów i rób z nimi, co chcesz. Chciałem — splątałem pierwszy kubit z dziesiątym. Pragnąłem — splątałem pierwsze sześć.

Na prawdziwym procesorze takiej swobody nie ma. Poprosiłem o splątanie pierwszego kubitu z 15 — kompilator wygeneruje 26 dodatkowych operacji. Jeśli się poszczęści. Jeśli się nie poszczęści — wygeneruje setki. Chodzi o to, że kubit może splątywać się tylko z sąsiadami. Więcej niż 6 sąsiadów przy kubicie nie widziałem. W zasadzie istnieją optymalizujące kwantowe programy kompilatory, ale one wciąż są raczej teoretyczne.

Każdy procesor ma swój zestaw instrukcji, a połączenia między kubitami różnią się. W idealnym świecie mamy dowolne Rx, Ry, Rz i ich kombinacje, plus swobodne splątanie dziesięciu wskaźników, plus Swap: zobacz operatorów w Quirk. W rzeczywistości mamy kilka par kubitów, a splątanie CNOT (q[0], q[1]) kosztuje jedną operację, a CNOT(q[1], q[0]) — już 7. A koherencja zanika...

Cena, dostępność, warunki przechowywania, czas amortyzacji, narzędzia programistyczne...

Ceny nie są ujawniane, dostępność dla przeciętnego obywatela jest bliska zeru, czas amortyzacji nie został praktycznie obliczony, a narzędzia programistyczne dopiero się rozwijają. Dokumentacja na arxiv.org.

Jakie informacje powinienem wymagać od ekspertów przy wydaniu nowego komputera kwantowego?

Oprócz powyższej listy, podobają mi się opcje od PerlPower i Alter2:

Oby każdy artykuł o nowym komputerze kwantowym zaczynał się od dwóch charakterystyk — liczby równoczesnych splątanych kubitów, oraz czasu utrzymania kubitów.

A może jeszcze lepiej — od czasu wykonania najprostszego benchmarka, na przykład znajdowania liczb pierwszych liczby 91.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster