Klasyczna pamięć wystarczająca do przechowywania stanów do 40 kubitów systemu kwantowego?

10

W ramach dyskusji z moim „klasycznym” przyjacielem nalegał, aby stworzenie maszyny stanu do obliczania wyniku komputera kwantowego było możliwe; więc po prostu oblicz wyniki (znanych) algorytmów na superkomputerach i zapisz ich wyniki w tabeli przeglądowej. (Coś jak przechowywanie tabeli prawdy).

Dlaczego ludzie pracują na symulatorach kwantowych (powiedzmy, zdolnych do 40 kubitów); które obliczają wynik za każdym razem ?! Po prostu (hipotetycznie) użyj superkomputerów świata (powiedzmy, że jest w stanie do 60 kubitów); obliczyć wynik dla przypadków wejściowych, zapisać wynik i użyć go jako odniesienia? Jak mogę go przekonać, że to niemożliwe? Uwaga: dotyczy to znanych algorytmów kwantowych i ich znanych realizacji układów.2)60

Viliyar
źródło
2
Sugerowałbym bardziej ekstremalne podejście „klasyczne”: pod koniec dnia każdy algorytm kwantowy jest jednostkową transformacją stosowaną w systemie n-kubitowym; można to opisać macierzą jednolitą ; więc możemy stworzyć listę znanych algorytmów kwantowych, opisanych jako macierze jednolite; a uruchomienie algorytmu to po prostu pomnożenie macierzy przez wektor wejściowy i byłoby to szybkie. Oczywiście należy wziąć pod uwagę wymagania dotyczące pamięci ...2)n×2)n
kludg
Dokładnie. I wierzę, że zapotrzebowanie na pamięć gwałtownie wzrosłoby wraz ze wzrostem n .
viliyar

Odpowiedzi:

14

Załóżmy, że masz algorytm kwantowy z możliwymi wejściami. Załóżmy również, że uruchomienie tego na superkomputerze zajmie 1 nanosekundę (co jest nierealistycznie optymistyczne!). Całkowity czas potrzebny do przejścia przez wszystkie możliwe nakłady wyniósłby 36,5 lat.2)60

Oczywiście zdecydowanie lepiej byłoby po prostu uruchomić instancję, na której Ci zależy, i uzyskać odpowiedź w mgnieniu oka, zamiast czekać pół życia na wybranie jej z listy. Staje się to coraz bardziej prawdziwe, gdy zwiększamy czas działania z nierealistycznej 1 nanosekundy.

dlaczego ludzie pracują na symulatorach kwantowych (powiedzmy, zdolnych do 40 kubitów); które obliczają wynik za każdym razem ?!

Nawet jeśli chcesz utworzyć tabelę odnośników, nadal potrzebujesz takiego symulatora, aby ją utworzyć.

James Wootton
źródło
2
Bieżący nr 1 TOP500 superkomputer, w Oak Ridge, jest wymieniony jako posiadające 2.3m rdzeni CUDA, POWER9 i Volta (nie wiem, podział, prawdopodobnie lump je razem w statystykach). Zakładając, że obliczenia są w pełni równoległe, co oznacza, że ​​goli dość dużo od oszacowania, do około 20 minut. Nawet pomnożenie czasu sim przez 12 stawia go w rozsądnym czasie 4 godzin, a wydatki na energię wynoszą zaledwie 32 MW‧h :)
kkm 20'18
3

W przypadku konkretnego algorytmu kwantowego, który wykorzystuje 40 kubitów, twój przyjaciel ma rację. Można po prostu obliczyć tabelę prawdy (może to być trudne, ale można założyć, że tak) i wykorzystać ją jako odniesienie. Oczywiście zaczyna się to robić absurdalnie w miarę zwiększania liczby kubitów, nie tylko ze względu na liczbę danych wejściowych, ale także dlatego, że obliczenie wyniku algorytmu kwantowego może być klasycznie trudniejsze o ile wiemy.

Jednak możliwość symulacji komputera kwantowego (lub posiadania rzeczywistego komputera kwantowego) jest znacznie bardziej użyteczna. Zmieniając wykonywane operacje kwantowe, uzyskuje się różne algorytmy. Liczba funkcji, które można zdefiniować na 40 bitach danych wejściowych, wynosi 2 ^ 2 ^ 40. Posiadanie jednej bazy danych, która daje natychmiastowy dostęp do wyników dowolnego algorytmu kwantowego, jest po prostu absurdalnie niemożliwe. Chcemy też łatwo zmieniać algorytmy, a klasycznie chcielibyśmy do tego symulatory.

SuhailSherif
źródło
Czy możesz mi powiedzieć, jak obliczyłeś ? 2)2)40
viliyar
1
Każda funkcja jest unikatowo zdefiniowana przez tabelę prawdy. Dla wejścia 40-bitowego tabela prawdy ma długość 2 ^ 40 bitów. Tak więc liczba tabel prawdy (a zatem liczba funkcji) to liczba ciągów bitów o długości 2 ^ 40, czyli 2 ^ 2 ^ 40.
SuhailSherif