Tutorial: Memperkirakan sumber daya masalah kimia kuantum

Tutorial ini menunjukkan cara memperkirakan sumber daya fisik yang diperlukan untuk menghitung energi Hamiltonian terhadap akurasi kimia 1 mHa menggunakan Azure Quantum Resource Estimator.

Catatan

Microsoft Quantum Development Kit (Classic QDK) tidak akan lagi didukung setelah 30 Juni 2024. Jika Anda adalah pengembang QDK yang sudah ada, kami sarankan Anda beralih ke Azure Quantum Development Kit (Modern QDK) baru untuk terus mengembangkan solusi kuantum. Untuk informasi selengkapnya, lihat Memigrasikan kode Q# Anda ke QDK Modern.

Dalam tutorial ini, Anda akan:

  • Kloning repositori sampel dari GitHub.
  • Gunakan file FCIDUMP sebagai parameter argumen untuk pemodelan kimia dan aplikasi simulasi.
  • Jalankan estimasi sumber daya untuk masalah skala besar, yang merupakan sampel kimia faktor ganda.

Prasyarat

Tip

Anda tidak perlu memiliki akun Azure untuk menjalankan Estimator Sumber Daya lokal.

Jelaskan masalahnya

Dalam tutorial ini, Anda mengevaluasi perkiraan sumber daya fisik dari algoritma kubitisasi yang dijelaskan dalam Phys. Rev. Research 3, 033055 (2021) untuk menghitung energi pengguna yang disediakan Hamiltonian untuk akurasi kimia 1 mHa.

Algoritma kuantum yang menghitung energi Hamiltonian didasarkan pada kubitisasi faktor ganda. Hamiltonian dijelaskan dalam hal integral satu dan dua elektron dalam file FCIDUMP yang disediakan (interaksi konfigurasi penuh) yang tersedia melalui URI HTTPS.

Pendekatan kubitisasi didasarkan pada estimasi fase kuantum, tetapi alih-alih membangun $U standar = \exp{(-i H/\alpha)}$ dari matriks Hamiltonian $H$, seseorang mengambil $U = \exp{(-i \sin^{-1} (H/\alpha))}$, yang biasanya dapat diimplementasikan dengan lebih sedikit sumber daya. Dengan menggunakan faktorisasi ganda, $H$ diwakili secara ringkas melalui kombinasi pilihan orbital dan kompresi yang bersifat yudisial.

Memuat sampel di Visual Studio Code

Kode untuk tutorial ini dapat ditemukan di repositori sampel Q#, di bawah estimasi/df-chemistry. Kami menyarankan agar Anda mengkloning repositori di komputer lokal Anda untuk menjalankan sampel.

Untuk mengkloning repositori, jalankan perintah berikut dari terminal Anda:

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

Memilih dan meneruskan file FCIDUMP

Dalam contoh ini, Hamiltonian dijelaskan dalam hal integral satu dan dua elektron dalam format FCIDUMP. Anda dapat memilih salah satu file FCIDUMP dari tabel berikut atau memilih file FCIDUMP Anda sendiri yang tersedia di komputer Anda atau online melalui URI HTTPS yang dapat diakses publik.

URI Nama Instans Deskripsi
https://aka.ms/fcidump/XVIII-cas4-fb-64e-56o XVIII-cas4-fb-64e56o 64 elektron, 56 ruang aktif orbital dari salah satu perantara stabil dalam siklus fiksasi karbon yang dikatalisis ruthenium.
https://aka.ms/fcidump/nitrogenase-54e-54o nitrogenase_54orbital 54 elektron, 54 ruang aktif orbital dari inti aktif nitrogenase.
https://aka.ms/fcidump/fe2s2-10e-40o fe2s2-10e-40o 10 elektron, 40 ruang aktif orbital kluster [2Fe, 2S].
https://aka.ms/fcidump/polyyne-24e-24o polyyne-24e-24o 24 elektron, 24 ruang aktif orbital dari molekul poliyne.
https://aka.ms/fcidump/n2-10e-8o n2-10e-8o 10 elektron, 8 ruang aktif orbital dia memisahkan nitrogen pada jarak 3 Angstrom.

Untuk meneruskan file FCIDUMP, Anda perlu menjalankan file chemistry.py dan meneruskan nama file FCIDUMP atau URI sebagai argumen menggunakan -f atau --fcidumpfile.

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

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

Menjalankan sampel kimia

  1. Di Visual Studio Code, buka folder tempat Anda mengkloning repositori sampel Q#.

  2. Buka terminal baru, Terminal -> Terminal Baru, dan navigasikan ke direktori tempat sampel kimia kuantum berada. Misalnya, jika Anda mengkloning repositori sampel Q# di komputer lokal Anda, jalurnya adalah qsharp/samples/estimation/df-chemistry.

  3. Jalankan file chemistry.py dan teruskan file FCIDUMP. Misalnya, perintah berikut akan mengunduh file FCIDUMP n2-10e-8o ke folder kerja dan menjalankan estimasi sumber daya untuk itu.

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

    Setelah itu, Anda dapat meneruskan jalur ke file yang diunduh ke skrip sebagai gantinya.

    python chemistry.py -f n2-10e-8o
    
  4. Hasil estimasi sumber daya ditampilkan di terminal. Misalnya, output berikut menunjukkan estimasi sumber daya untuk file 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
    

Catatan

Setelah menjalankan file chemistry.py, file resource_estimation.json dibuat di folder kerja. File resource_estimation.json berisi output terperinci dari Estimator Sumber Daya. Ini adalah, parameter pekerjaan, jumlah fisik, properti pabrik T, jumlah logis, dan properti kubit logis.

Mengubah target parameter

  1. Buka file chemistry.py .

  2. Parameter target estimasi sumber daya dapat ditemukan dalam panggilan ke qsharp.estimate file chemistry.py. Cuplikan kode berikut menunjukkan parameter yang digunakan dalam tutorial ini.

    # Get resource estimates
    res = qsharp.estimate(qsharp_string,
                          params={"errorBudget": 0.01,
                                  "qubitParams": {"name": "qubit_maj_ns_e6"},
                                  "qecScheme": {"name": "floquet_code"}})
    
  3. Jika Anda ingin mengubah target parameter, Anda dapat melakukannya dengan memodifikasi cuplikan kode sebelumnya. Misalnya, cuplikan kode berikut menunjukkan cara mengubah anggaran kesalahan menjadi 0,333. Untuk informasi selengkapnya, lihat Menyesuaikan target parameter Estimator Sumber Daya.

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

Mengapa aplikasi kimia komputasi kuantum penting?

Tutorial ini mewakili langkah pertama untuk mengintegrasikan estimasi sumber daya solusi kuantum untuk masalah struktur elektronik. Salah satu aplikasi terpenting dari komputer kuantum berskala adalah memecahkan masalah kimia kuantum. Simulasi sistem mekanis kuantum kompleks berpotensi membuka terobosan di area seperti tangkapan karbon, keamanan makanan, dan merancang bahan bakar dan bahan yang lebih baik.

Misalnya, salah satu file FCIDUMP yang disediakan dalam sampel ini, nitrogenase_54orbital, menjelaskan enzim nitrogenase. Jika Anda dapat secara akurat mensimulasikan cara kerja enzim ini pada tingkat kuantum, itu dapat membantu kita memahami cara menghasilkannya dalam skala besar. Anda dapat menggantikan proses yang sangat intensif energi yang digunakan untuk menghasilkan pupuk yang cukup untuk memberi makan planet ini. Hal ini berpotensi mengurangi jejak karbon global dan juga untuk membantu mengatasi kekhawatiran mengenai kerawanan pangan pada populasi yang terus bertambah.

Langkah berikutnya

Jika Anda ingin memperdalam pengetahuan Anda, berikut adalah beberapa eksperimen yang dapat Anda coba:

  • Perkirakan beberapa file FCIDUMP kustom.
  • Ubah asumsi pada target komputer kuantum dengan menyediakan parameter qubit kustom.
  • Lihat contoh notebook estimasi sumber daya lainnya di galeri sampel Azure Quantum.

Terus jelajahi algoritma dan teknik kuantum lainnya: