Symulowanie natury
Obejrzyj ten film Olivii Lanes na temat symulowania natury za pomocą komputerów kwantowych lub otwórz wideo w osobnym oknie na YouTube.
Ta lekcja korzysta z treści następującego samouczka:
Samouczek dotyczący łagodzenia błędów w skali użyteczności z probabilistycznym wzmacnianiem błędów
Wprowadzenie
Jednym z najbardziej fascynujących zastosowań komputerów kwantowych jest ich zdolność do symulowania zjawisk naturalnych. W tej lekcji przyjrzymy się, w jaki sposób komputery kwantowe są wykorzystywane do rozwiązywania problemów dynamiki kwantowej — konkretnie: jak pomagają nam zrozumieć ewolucję czasową układu kwantowego.
Na początku spojrzymy z szerszej perspektywy na ogólne kroki wykonywane podczas takich symulacji. Następnie przeanalizujemy konkretny przykład: eksperyment zaprezentowany przez IBM w 2023 roku, który pokazał koncepcję użyteczności kwantowej. Eksperyment ten stanowi doskonałe studium przypadku pozwalające zrozumieć praktyczne kroki i implikacje symulowania dynamiki kwantowej na rzeczywistym sprzęcie kwantowym. Na koniec będziesz mieć wyraźniejszy obraz tego, jak badacze podchodzą do tych wyzwań i dlaczego symulacja kwantowa wzbudza tak duże nadzieje na pogłębienie naszego rozumienia świata naturalnego.
Richard Feynman wygłosił niezwykle wpływowy wykład na Caltech w 1959 roku. Nosił on słynny tytuł „There's Plenty of Room at the Bottom" — żartobliwe nawiązanie do ogromnych, niezbadanych możliwości kryjących się w skali mikroskopowej. Feynman przekonywał, że większość fizyki na poziomie atomowym i subatomowym pozostaje jeszcze do odkrycia.
Znaczenie tego wykładu wzrosło w latach osiemdziesiątych XX wieku wraz z postępem technologicznym. W tym okresie Feynman powrócił do tych idei podczas kolejnego ważnego wykładu na Caltech, prezentując artykuł zatytułowany „Simulating Nature with Computers". Postawił tam odważne pytanie: czy komputery mogłyby wykonywać dokładne symulacje odtwarzające zachowanie natury na poziomie kwantowym? Feynman zasugerował, że zamiast polegać na przybliżonych modelach procesów atomowych, moglibyśmy używać komputerów, które same działają zgodnie z prawami mechaniki kwantowej — nie po to, by jedynie modelować naturę, lecz by ją naśladować.
Właśnie ten rodzaj symulacji fizycznej zbadamy w tej lekcji.
Przypomnij sobie oś czasu wprowadzoną w poprzednim odcinku. Na jednym końcu spektrum widoczne są problemy, które są łatwe do rozwiązania i nie wymagają zwiększonej prędkości, jaką może zapewnić obliczanie kwantowe.
Na przeciwległym końcu znajdują się niezwykle trudne problemy wymagające w pełni odpornych na błędy maszyn kwantowych — technologii, która nie jest jeszcze dostępna. Na szczęście uważa się, że wiele problemów symulacyjnych leży gdzieś w połowie tej osi czasu, w zasięgu dzisiejszych komputerów kwantowych, które można już efektywnie wykorzystać. Jest wiele powodów, by być podekscytowanym i zaintrygowanym tą perspektywą, ponieważ symulowanie natury stanowi podstawę szerokiego zakresu obiecujących zastosowań.
Poniższe informacje opisują ogólny przepływ pracy przy symulacjach natury, a następnie konkretny przykład tego przepływu służący do odtworzenia wyników z dobrze znanego artykułu.
Ogólny przepływ pracy
Zanim będzie można zastosować obliczenia kwantowe w tych ekscytujących dziedzinach, warto najpierw zrozumieć podstawowe kroki typowego przepływu pracy przy symulacjach:
- Identyfikacja Hamiltonianu układu
- Kodowanie Hamiltonianu
- Przygotowanie stanu
- Ewolucja czasowa stanu
- Optymalizacja Circuit
- Wykonanie Circuit
- Post-processing
Proces zaczyna się od zidentyfikowania interesującego układu kwantowego. Pomaga to określić Hamiltonian rządzący jego ewolucją czasową, a także sensowny opis jego początkowych właściwości, czyli jego stan. Następnie musisz wybrać odpowiednią metodę implementacji ewolucji czasowej tego stanu. Zauważ, że pierwsze cztery kroki tego przepływu pracy są częścią kroku Mapowania w frameworku wzorców Qiskit.
Po skonfigurowaniu Circuit ewolucji czasowej kolejne etapy obejmują przeprowadzenie właściwego eksperymentu. Zazwyczaj obejmuje to optymalizację Circuit kwantowego implementującego algorytm ewolucji czasowej, uruchomienie Circuit na sprzęcie kwantowym oraz post-processing wyników. Odpowiadają one ostatnim trzem krokom frameworku wzorców Qiskit.
Następnie omówimy, co oznaczają te kroki, zanim przejdziemy do kodowania.
1. Identyfikacja Hamiltonianu układu
Pierwszym niezbędnym krokiem w przeprowadzeniu eksperymentu symulacyjnego jest zidentyfikowanie Hamiltonianu opisującego układ. W wielu przypadkach Hamiltonian jest dobrze znany. Często jednak konstruujemy go, sumując wkłady energetyczne z mniejszych części układu. Typowo wyraża się to jako sumę składników:
gdzie każdy składnik działa na jeden z lokalnych podukładów (np. pojedynczą cząstkę lub małą grupę cząstek) całkowitego Hamiltonianu . W przypadku nierozróżnialnych cząstek elementarnych ważne jest ustalenie, czy układ zawiera fermiony czy bozony — fermiony podlegają zasadzie wykluczenia Pauliego, co oznacza, że żadne dwa identyczne fermiony nie mogą zajmować tych samych stanów kwantowych, jak np. elektrony. W przeciwieństwie do fermionów, wiele bozonów może znajdować się w tym samym stanie kwantowym, a ta różnica wpływa na statystykę układu i sposób jego modelowania.
W praktyce badaczy często interesują układy fizyczne, w których elementy są traktowane jako dobrze rozdzielone lub oznaczone, a tym samym rozróżnialne — jak spiny na siatce.
Ten układ składa się z magnetycznych spinów dipolarnych rozmieszczonych na siatce, traktowanych jako rozróżnialne cząstki poprzez numerowanie ich pozycji. Układ ten opisuje Model Isinga z polem poprzecznym, a jego Hamiltonian jest skonstruowany jako suma dwóch części:
Gdzie pierwszy składnik reprezentuje energię oddziaływania między sąsiednimi spinami. Tutaj oznacza, że sumujemy po wszystkich parach spinów bezpośrednio połączonych na siatce, i to macierze Pauliego-Z, które reprezentują stan spinów w miejscach i , a to stała sprzężenia określająca siłę tego oddziaływania. Drugi składnik reprezentuje wpływ zewnętrznego pola magnetycznego przyłożonego do całego układu. Tutaj to macierz Pauliego-X działająca na pojedynczy spin w miejscu , a oznacza siłę tego zewnętrznego pola.
2. Kodowanie Hamiltonianu
Następnym krokiem jest przetłumaczenie Hamiltonianu na postać, którą komputer kwantowy może przetworzyć — nazywamy to kodowaniem. Ten proces kodowania zależy w decydującym stopniu od rodzaju cząstek w układzie: rozróżnialnych lub nierozróżnialnych, a w przypadku cząstek nierozróżnialnych — od tego, czy są to fermiony czy bozony.
Jeśli masz układ z rozróżnialnymi cząstkami, jak spiny unieruchomione na siatce, które pokrótce omówiliśmy powyżej, Hamiltonian jest często już zapisany w języku zgodnym z qubitami. Operator Pauliego-Z w naturalny sposób opisuje na przykład spin skierowany w górę lub w dół i nie jest potrzebne żadne specjalne kodowanie.
Przy symulowaniu nierozróżnialnych cząstek — fermionów lub bozonów — konieczne jest zastosowanie transformacji kodowania. Cząstki te opisuje się w specjalnych ramach matematycznych zwanych drugą kwantyzacją, która śledzi liczbę obsadzeń każdego stanu kwantowego poprzez wprowadzenie operatorów kreacji i anihilacji, gdzie operator kreacji dodaje jedną cząstkę do stanu , a operator anihilacji usuwa jedną cząstkę ze stanu . W oparciu o te ramy drugiej kwantyzacji fermiony można transformować metodą Bravyi-Kitaeva lub Jordana-Wignera. Transformacja Jordana-Wignera definiuje fermionowy operator kreacji
, który wypełnia -ty stan kwantowy fermionem, oraz fermionowy operator anihilacji , który usuwa fermion z -tego stanu. Więcej szczegółów tej transformacji Jordana-Wignera znajdziesz w naszym kursie Quantum Computing in Practice, odcinek 5 - Mapowanie. Podobnie bozony wymagają własnych metod kodowania, takich jak transformacja Holsteina-Primakoffa, aby można je było reprezentować przez Qubit/kubity.
Ostatecznie, niezależnie od tego, czy ścieżka jest bezpośrednia, czy wymaga tłumaczenia, cel jest ten sam: wyrażenie Hamiltonianu układu w postaci operatorów spinowych Pauliego, które komputer kwantowy może zrozumieć i wykonać.
3. Przygotowanie stanu
Po zakodowaniu żądanego Hamiltonianu w zestawie Gate'ów komputera kwantowego kolejnym ważnym krokiem jest wybór odpowiedniego początkowego stanu kwantowego, od którego rozpocznie się symulacja. Wybór stanu początkowego wpływa nie tylko na zbieżność algorytmów wariacyjnych, takich jak Wariacyjny Solver Wartości Własnych (VQE), ale również na dokładność i efektywność ewolucji czasowej i próbkowania. Zasadniczo stan początkowy służy jako punkt wyjścia dla obliczeń, stanowiąc podstawę do wydobywania użytecznych obserwowalnych z modelowanego układu kwantowego. Idealnie stan ten powinien reprezentować fizycznie sensowną konfigurację badanego układu.
W przypadku wielu symulacji chemii kwantowej stan Hartree-Focka może być dobrym punktem wyjścia. W języku drugiej kwantyzacji stan Hartree-Focka () tworzy się przez zastosowanie operatorów kreacji () dla każdego z orbitali o najniższej energii do stanu próżni (), czyli stanu bez elektronów.
Ponadto łatwy do przygotowania ansatz ze znaczącym pokryciem z prawdziwym stanem podstawowym może służyć jako dobry stan początkowy dla problemów chemicznych, takich jak wyznaczanie energii stanu podstawowego. Ogólnie rzecz biorąc, dowolny stan -qubitowy można zapisać jako superpozycję bazowych stanów obliczeniowych ze współczynnikami , spełniającymi warunek normalizacji. Przygotowanie takiego stanu można zasadniczo osiągnąć, stosując odpowiedni operator do stanu początkowego, którym umownie jest stan bazowy wszystkich zer.