Udostępnij za pośrednictwem


Samouczek: szacowanie zasobów problemu z chemią kwantową

W tym samouczku oszacowasz zasoby fizyczne wymagane do obliczenia energii hamiltonian do dokładności chemicznej 1 mHa przy użyciu narzędzia do szacowania zasobów kwantowych platformy Azure.

Ten samouczek obejmuje następujące kroki:

  • Sklonuj przykładowe repozytorium z usługi GitHub.
  • Użyj plików FCIDUMP jako parametrów argumentów do modelowania chemicznego i aplikacji symulacji.
  • Uruchom szacowanie zasobów dla problemu na dużą skalę, który jest próbą chemii dwuskładnikowej.

Wymagania wstępne

Napiwek

Nie musisz mieć konta platformy Azure do uruchamiania lokalnego narzędzia do szacowania zasobów.

Opisz problem

W tym samouczku ocenisz oszacowania zasobów fizycznych algorytmu kubityzacji opisanego w Phys. Rev. Research 3, 033055 (2021) w celu obliczenia energii użytkownika dostarczonego Hamiltonian do dokładności chemicznej 1 mHa.

Algorytm kwantowy, który oblicza energię hamiltonianu, opiera się na dwuskładnikowej kubityzacji. Hamiltonian jest opisany pod względem jedno-i dwu elektronowych całkowitoliczników w udostępnionych plikach FCIDUMP (pełna interakcja konfiguracji), które są dostępne za pośrednictwem identyfikatora URI HTTPS.

Podejście kubityzacji opiera się na szacowaniu fazy kwantowej, ale zamiast konstruowania standardu $U = \exp{(-i H/\alpha)}$ z macierzy Hamiltonian $H$, jeden przyjmuje $U = \exp{(-i \sin^{-1} (H/\alpha))}$, który zazwyczaj można zaimplementować przy mniejszej liczbie zasobów. Przy użyciu dwuskładnikyzacji $H$ jest reprezentowany zwartie poprzez kombinację rozsądnego wyboru orbitalnych i kompresji.

Ładowanie przykładu w programie Visual Studio Code

Kod tego samouczka można znaleźć w repozytorium przykładów języka Q# w obszarze szacowania/df-chemistry. Zalecamy sklonowanie repozytorium na komputerze lokalnym w celu uruchomienia przykładu.

Aby sklonować repozytorium, uruchom następujące polecenie z poziomu terminalu:

git clone https://github.com/microsoft/qsharp.git

Wybieranie i przekazywanie pliku FCIDUMP

W tym przykładzie Hamiltonian jest opisany pod względem jedno-i dwu elektronowych całkowitoliczników w formacie FCIDUMP. Możesz wybrać jeden z plików FCIDUMP z poniższej tabeli lub wybrać własny plik FCIDUMP dostępny na maszynie lub w trybie online za pośrednictwem publicznie dostępnego identyfikatora URI HTTPS.

Identyfikator URI Nazwa wystąpienia opis
https://aka.ms/fcidump/XVIII-cas4-fb-64e-56o XVIII-cas4-fb-64e56o 64 elektron, 56 orbitalnych aktywnych przestrzeni jednego ze stabilnych pośrednich w ruthenium katalizowanym cyklu utrwalonego węgla.
https://aka.ms/fcidump/nitrogenase-54e-54o nitrogenase_54orbital 54 elektron, 54 orbitalne aktywne przestrzeń aktywnego rdzenia azotu.
https://aka.ms/fcidump/fe2s2-10e-40o fe2s2-10e-40o 10 elektronów, 40 orbitalnych aktywnych przestrzeni [2Fe, 2S] klastra.
https://aka.ms/fcidump/polyyne-24e-24o poliyne-24e-24o 24 elektron, 24 orbitalne aktywne przestrzeń cząsteczki poliyny.
https://aka.ms/fcidump/n2-10e-8o n2-10e-8o 10 elektronów, 8 orbitalnych aktywnych przestrzeni, z których dysocjował azot w odległości 3 Angstrom.

Aby przekazać plik FCIDUMP, należy uruchomić plik chemistry.py i przekazać nazwę pliku FCIDUMP lub identyfikator URI jako argument przy użyciu -f metody lub --fcidumpfile.

usage: chemistry.py [-h] [-f FCIDUMPFILE]

options:
  -h, --help           
  -f FCIDUMPFILE, --fcidumpfile FCIDUMPFILE                      

Uruchamianie próbki chemicznej

  1. W programie Visual Studio Code otwórz folder, w którym sklonujesz przykładowe repozytorium języka Q#.

  2. Otwórz nowy terminal, Terminal —> nowy terminal i przejdź do katalogu, w którym znajduje się przykład chemii kwantowej. Jeśli na przykład sklonujesz przykładowe repozytorium języka Q# na komputerze lokalnym, ścieżka to qsharp/samples/estimation/df-chemistry.

  3. Uruchom plik chemistry.py i przekaż plik FCIDUMP. Na przykład następujące polecenie spowoduje pobranie pliku FCIDUMP n2-10e-8o do folderu roboczego i uruchomienie szacowania zasobów.

    python chemistry.py -f https://aka.ms/fcidump/n2-10e-8o
    

    Następnie możesz przekazać ścieżkę do pobranego pliku do skryptu.

    python chemistry.py -f n2-10e-8o
    
  4. Wynik szacowania zasobów jest wyświetlany w terminalu. Na przykład następujące dane wyjściowe przedstawiają szacowanie zasobów dla pliku FCIDUMP n2-10e-8o .

    Algorithm runtime: 19 mins
    Number of physical qubits required: 207.60k
    For more detailed resource counts, see file resource_estimate.json
    

Uwaga

Po uruchomieniu pliku chemistry.py plik resource_estimation.json zostanie utworzony w folderze roboczym. Plik resource_estimation.json zawiera szczegółowe dane wyjściowe narzędzia do szacowania zasobów. Są to parametry zadania, liczby fizyczne, właściwości fabryki T, liczby logiczne i właściwości kubitu logicznego.

Zmienianie target parametrów

  1. Otwórz plik chemistry.py.

  2. Parametry target szacowania zasobów można znaleźć w wywołaniu qsharp.estimate pliku chemistry.py. Poniższy fragment kodu przedstawia parametry używane w tym samouczku.

    # Get resource estimates
    res = qsharp.estimate(qsharp_string,
                          params={"errorBudget": 0.01,
                                  "qubitParams": {"name": "qubit_maj_ns_e6"},
                                  "qecScheme": {"name": "floquet_code"}})
    
  3. Jeśli chcesz zmienić target parametry, możesz to zrobić, modyfikując poprzedni fragment kodu. Na przykład poniższy fragment kodu pokazuje, jak zmienić budżet błędu na 0,333. Aby uzyskać więcej informacji, zobacz Dostosowywanie target parametrów narzędzia do szacowania zasobów.

    # Get resource estimates
    res = qsharp.estimate(qsharp_string,
                          params={"errorBudget": 0.333,
                                  "qubitParams": {"name": "qubit_maj_ns_e6"},
                                  "qecScheme": {"name": "floquet_code"}})
    

Dlaczego zastosowania chemiczne obliczeń kwantowych są ważne?

Ten samouczek stanowi pierwszy krok umożliwiający zintegrowanie szacowania zasobów rozwiązań kwantowych z problemami ze strukturą elektroniczną. Jednym z najważniejszych zastosowań skalowanych komputerów kwantowych jest rozwiązywanie problemów z chemią kwantową. Symulacja złożonych systemów kwantowych ma potencjał do odblokowania przełomów w takich obszarach, jak przechwytywanie dwutlenku węgla, brak bezpieczeństwa żywności i projektowanie lepszych paliw i materiałów.

Na przykład jeden z plików FCIDUMP podanych w tej próbce, nitrogenase_54orbital, opisuje enzym azotazowy. Jeśli można dokładnie zasymulować działanie tego enzymu na poziomie kwantowym, może to pomóc nam zrozumieć, jak je produkować na dużą skalę. Można zastąpić wysoce energochłonny proces, który jest używany do produkcji wystarczającej ilości nawozu do karmienia planety. Ma to potencjał, aby zmniejszyć globalny ślad węglowy, a także pomóc w rozwiązaniu problemów związanych z brakiem bezpieczeństwa żywnościowego w rosnącej populacji.

Jeśli chcesz pogłębić swoją wiedzę, oto kilka eksperymentów, które możesz wypróbować:

  • Szacowanie niektórych niestandardowych plików FCIDUMP.
  • Zmodyfikuj target założenia na komputerze kwantowym, podając niestandardowe parametry kubitu.
  • Zapoznaj się z innymi przykładowymi notesami szacowania zasobów w galerii przykładów usługi Azure Quantum.