Tutorial: Memperkirakan sumber daya masalah kimia kuantum
Dalam tutorial ini, Anda memperkirakan sumber daya fisik yang diperlukan untuk menghitung energi Hamiltonia hingga akurasi kimia 1 mHa menggunakan Estimator Sumber Daya Azure Quantum.
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 berfaktor ganda.
Prasyarat
Lingkungan Python dengan Python dan Pip terinstal.
Versi terbaru Visual Studio Code dengan Azure Quantum Development Kit, dan ekstensi Python terinstal.
Paket Dan paket Azure Quantum
qsharp
numpy
scipy
terbaru.python -m pip install --upgrade qsharp numpy scipy
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 Hamiltonia $H$, seseorang mengambil $U = \exp{(-i \sin^{-1} (H/\alpha))}$, yang biasanya dapat diimplementasikan dengan lebih sedikit sumber daya. 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
Pilih dan teruskan 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 secara online melalui HTTPS URI 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 orbit salah satu perantara stabil dalam siklus fiksasi karbon yang dikatalis ruthenium. |
https://aka.ms/fcidump/nitrogenase-54e-54o | nitrogenase_54orbital | 54 elektron, 54 ruang aktif orbit dari inti aktif nitrogenase. |
https://aka.ms/fcidump/fe2s2-10e-40o | fe2s2-10e-40o | 10 elektron, 40 ruang aktif orbit dari kluster [2Fe, 2S]. |
https://aka.ms/fcidump/polyyne-24e-24o | polyyne-24e-24o | 24 elektron, 24 ruang aktif orbit 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
Jalankan sampel kimia
Di Visual Studio Code, buka folder tempat Anda mengkloning repositori sampel Q#.
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
.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
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
Buka file chemistry.py.
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"}})
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 yang kompleks berpotensi membuka terobosan di area seperti tangkapan karbon, ketidakamanan 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 kami memahami cara memproduksinya 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 ketidakamanan pangan dalam populasi yang terus meningkat.
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.
Konten terkait
- Tutorial Menerapkan algoritma pencarian Grover menunjukkan cara menulis program Q# yang menggunakan algoritma pencarian Grover untuk menyelesaikan masalah pewarnaan grafik.
- Tutorial Menulis dan mensimulasikan program tingkat kubit di Q# mengeksplorasi cara menulis program Q# yang secara langsung membahas qubit tertentu.
- Tutorial Jelajahi entanglemen kuantum dengan Q# menunjukkan cara mengoperasikan qubit dengan Q# untuk mengubah keadaan mereka, dan menunjukkan efek superposisi dan entanglemen.
- Quantum Katas adalah tutorial berbasis Jupyter Notebook, mandiri, dan latihan pemrograman yang bertujuan mengajarkan elemen komputasi kuantum dan pemrograman Q# secara bersamaan.