Langkau ke kandungan utama

HI-VQE Chemistry - Fungsi Qiskit oleh Qunova Computing

# Added by doQumentation — required packages for this notebook
!pip install -q qiskit-ibm-catalog qiskit-ibm-runtime
# This cell is hidden from users
from qiskit_ibm_runtime import QiskitRuntimeService

service = QiskitRuntimeService()
instance = service.active_account()["instance"]
backend_name = service.least_busy(operational=True, min_num_qubits=16).name
nota

Fungsi Qiskit adalah ciri eksperimental yang hanya tersedia untuk pengguna Pelan Premium IBM Quantum®, Pelan Flex, dan Pelan On-Prem (melalui API IBM Quantum Platform). Ia berada dalam status keluaran pratonton dan tertakluk kepada perubahan.

Gambaran keseluruhan​

Dalam kimia kuantum, masalah struktur elektronik memfokuskan pada mencari penyelesaian kepada persamaan Schrödinger elektronik — fungsi gelombang kuantum yang menggambarkan tingkah laku elektron sistem. Fungsi gelombang ini adalah vektor amplitud kompleks, dengan setiap amplitud sepadan dengan sumbangan konfigurasi elektron yang mungkin.

Keadaan dasar adalah fungsi gelombang tenaga terendah sistem dan mempunyai kepentingan istimewa dalam kajian sistem molekul. Pendekatan paling tepat untuk mengira keadaan dasar mempertimbangkan semua konfigurasi elektron yang mungkin, tetapi ini menjadi tidak dapat diuruskan untuk sistem yang lebih besar kerana bilangan konfigurasi bertumbuh secara eksponen dengan saiz sistem.

Handover Iterative Variational Quantum Eigensolver (HI-VQE) adalah kaedah hibrid kuantum-klasik yang inovatif untuk menganggar keadaan dasar sistem molekul dengan tepat. Ia mengintegrasikan perkakasan kuantum dengan pengkomputeran klasik, menggunakan pemproses kuantum untuk meneroka konfigurasi elektron calon dengan cekap dan mengira fungsi gelombang yang terhasil pada komputer klasik. Dengan menghasilkan fungsi gelombang yang padat namun tepat secara kimia, HI-VQE meningkatkan penyelidikan dan penemuan dalam kimia kuantum dan sains bahan.

Image showing an overview of Qunova's HI-VQE algorithm

HI-VQE mengurangkan kerumitan pengkomputeran masalah struktur elektronik dengan menganggar keadaan dasar secara cekap dengan ketepatan tinggi. Ia memfokuskan pada subset konfigurasi elektron yang paling relevan yang dipilih dengan teliti, mengoptimumkan ketepatan dan kecekapan.

Menggabungkan kekuatan komputer klasik dan kuantum, HI-VQE secara berulang memperhalusi dan menambah baik anggaran fungsi gelombang semasa. Teknik pembinaan subspace yang unik membantu menjadikan pemilihan konfigurasi lebih cekap, supaya pengguna mempunyai kawalan pengkomputeran yang lebih besar dan ketepatan yang lebih baik dalam simulasi kimia kuantum.

Jika anda ingin mempelajari algoritma dengan lebih mendalam, anda boleh membaca kertas penyelidikan berkaitan.

Penerangan​

Bilangan konfigurasi elektron untuk sistem molekul bertumbuh secara eksponen dengan saiz sistem. Walau bagaimanapun, untuk keadaan elektronik tertentu, seperti keadaan dasar, adalah lazim bahawa hanya sebahagian kecil konfigurasi menyumbang secara signifikan kepada tenaga keadaan. Kaedah Interaksi Konfigurasi Terpilih (SCI) memanfaatkan kekurpaan ini untuk mengurangkan kos pengkomputeran dengan mengenal pasti dan memfokuskan pada konfigurasi yang paling relevan. Subset konfigurasi ini dirujuk sebagai subspace.

HI-VQE memanfaatkan kecekapan intrinsik komputer kuantum untuk mewakili sistem molekul bagi membantu pencarian subspace. Ia mengintegrasikan subrutin klasik dan kuantum untuk menyelesaikan masalah struktur elektronik dengan ketepatan tinggi. Berbeza dengan kaedah SCI kuantum sedia ada, HI-VQE menggabungkan latihan variasi, pembinaan subspace berulang, dan penapisan konfigurasi pra-pengilangan untuk meningkatkan kecekapan dengan mengurangkan pengukuran kuantum, lelaran, dan kos pengilangan klasik. Oleh itu, HI-VQE boleh diaplikasikan kepada sistem molekul yang lebih besar yang memerlukan lebih banyak Qubit, dan mengurangkan kos untuk menyelesaikan masalah bersaiz tertentu kepada tahap ketepatan yang sama.

Image showing a detailed description of each step in Qunova's HI-VQE algorithm.

Untuk mengira keadaan dasar sistem, HI-VQE mula-mula menggunakan pakej kimia klasik PySCF untuk menjana perwakilan molekul daripada input yang diberikan pengguna, seperti geometri molekul dan maklumat molekul lain. Ia kemudian memasuki gelung pengoptimuman hibrid kuantum-klasik, secara berulang memperhalusi subspace untuk mewakili keadaan dasar secara optimum sambil meminimumkan bilangan konfigurasi yang disertakan. Gelung berterusan sehingga kriteria penumpuan, seperti saiz subspace atau kestabilan tenaga, dipenuhi, selepas itu fungsi gelombang keadaan dasar dan tenaga yang dikira dikeluarkan. Keputusan ini boleh digunakan untuk membina permukaan tenaga potensial yang tepat dan melakukan analisis lanjutan sistem.

Gelung pengoptimuman memfokuskan pada melaraskan parameter Circuit kuantum untuk menghasilkan subspace berkualiti tinggi. HI-VQE menawarkan tiga pilihan Circuit kuantum: excitation_preserving, efficient_su2, dan LUCJ. Pengoptimuman dimulakan dekat dengan keadaan rujukan Hartree-Fock kerana kesesuaiannya yang umum. Circuit kemudian dilaksanakan pada peranti kuantum dan konfigurasi disampling dari keadaan kuantum yang terhasil sebelum dikembalikan sebagai rentetan binari. Disebabkan hingar peranti kuantum, beberapa konfigurasi yang disampling mungkin tidak sah secara fizikal, gagal memulihara bilangan elektron atau spin. HI-VQE menangani ini menggunakan proses pemulihan konfigurasi dari pakej qiskit-addon-sqd, supaya pengguna boleh sama ada membetulkan konfigurasi tidak sah atau membuangnya.

Konfigurasi yang sah kemudian melalui langkah penapisan pilihan untuk mengalih keluar yang dijangka menyumbang secara minimal. Ini mengurangkan dimensi subspace, seterusnya menurunkan kos langkah pengilangan. Jika penapisan diaktifkan, Hamiltonian subspace awal dibina dari konfigurasi yang sah dan pengilangan dilakukan dengan kriteria penamatan yang sangat longgar. Walaupun ketepatan amplitud yang terhasil untuk setiap konfigurasi adalah rendah, ia berkesan untuk meramalkan konfigurasi mana yang hendak ditinggalkan daripada subspace pada lelaran ini, dan ia cepat untuk dikira.

Konfigurasi yang dipilih ditambahkan ke subspace, dan Hamiltonian sistem diprojeksikan ke dalam subspace ini. Subspace dikemas kini secara berulang, mengekalkan konfigurasi yang paling relevan merentasi lelaran. Pendekatan ini berbeza dengan kaedah alternatif kerana Circuit kuantum tidak perlu menghampiri keadaan dasar penuh pada setiap langkah.

Seterusnya, Hamiltonian subspace digilang secara klasik untuk mendapatkan nilai eigen terendah dan eigenvector yang sepadan, mewakili penghampiran keadaan dasar dan tenaganya. Apabila kualiti subspace bertambah baik melalui lelaran, keadaan dasar yang dikira lebih menghampiri keadaan dasar sebenar. Langkah penapisan tambahan boleh dilakukan pada ketika ini untuk mengalih keluar konfigurasi daripada subspace yang tidak mempunyai sumbangan ketara kepada keadaan dasar yang dikira. Langkah ini memastikan subspace yang dibawa ke lelaran seterusnya adalah sepadat mungkin. Ini dinilai berdasarkan amplitud yang dikembalikan oleh pengilangan, kerana ini mewakili kepentingan sumbangan setiap konfigurasi kepada keadaan dasar yang dikira.

Semakan penumpuan kemudian menentukan sama ada latihan lanjut akan meningkatkan keputusan. Jika ya, langkah pengembangan klasik pilihan dilakukan, parameter Circuit kuantum dikemas kini untuk lebih meminimumkan tenaga yang dikira, dan proses berulang. Langkah pengembangan klasik menjana konfigurasi tambahan untuk subspace, melengkapi konfigurasi yang disampling dari peranti kuantum. Ia mula-mula mengenal pasti konfigurasi dengan amplitud terbesar dalam keputusan pengilangan, sebelum menjana konfigurasi baharu dengan eksitasi tunggal dan berganda dari konfigurasi yang dikenal pasti. Bilangan konfigurasi yang dikehendaki kemudian ditambahkan ke subspace.

Setelah ditentukan bahawa lelaran telah menumpu, HI-VQE mengembalikan keadaan dasar yang dikira (dalam bentuk keadaan dalam subspace dan amplitud mereka dalam fungsi gelombang keadaan dasar), tenaganya, dan ukuran varians tenaga yang memberi petunjuk sama ada keadaan yang dikira membentuk eigenstate Hamiltonian sistem.

Pengguna boleh menentukan Circuit kuantum yang digunakan dan bilangan shot yang diambil untuk setiap Circuit kuantum, serta mengawal saiz subspace atau membolehkan penjanaan klasik konfigurasi tambahan untuk membantu konfigurasi yang dijana kuantum. Dengan cara ini pengguna boleh menyesuaikan tingkah laku HI-VQE untuk memenuhi aplikasi yang dikehendaki.

Mulakan​

Pertama, mohon akses ke fungsi. Kemudian, sahkan menggunakan kunci API IBM Quantum® anda dan, dengan mengandaikan anda telah menyimpan akaun anda ke persekitaran tempatan anda, pilih Fungsi Qiskit seperti berikut:

import reprlib
from qiskit_ibm_catalog import QiskitFunctionsCatalog

catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")

function = catalog.load("qunova/hivqe-chemistry")

Input​

Lihat jadual berikut untuk semua parameter input yang diterima fungsi. Bahagian Pilihan molekul dan Pilihan HI-VQE yang berikutnya memberikan butiran lanjut tentang argumen tersebut.

NamaJenisPeneranganDiperlukanLalaiContoh
geometryUnion[List[List[Union[str, Tuple[float, float, float]]]], str]Ini boleh berupa rentetan atau senarai berstruktur yang mengandungi pasangan atom dan koordinat. Jika diberikan sebagai rentetan, ia mestilah geometri molekul dalam Format Koordinat Kartesian. Jika diberikan sebagai senarai, ia hendaklah diberikan sebagai senarai senarai yang masing-masing mengandungi rentetan atom dan tuple koordinat.YaN/A[['O', (0, 0, 0)], ['H', (0, 1, 0)], ['H', (0, 0, 1)]] or "O 0 0 0; H 0 1 0; H 0 0 1"
backend_namestrNama backend untuk membuat pertanyaan.YaN/Aibm_fez
max_statesintDimensi subspace maksimum untuk pengilangan. Lebih sedikit keadaan akan digunakan jika nombor bukan kuasa dua sempurna.YaN/A100
max_expansion_statesintBilangan maksimum keadaan CI yang dijana secara klasik untuk disertakan dalam setiap lelaran.YaN/A10
molecule_optionsdictPilihan berkaitan molekul yang digunakan sebagai input kepada HI-VQE. Lihat bahagian Pilihan molekul untuk butiran lanjut.TidakLihat bahagian Pilihan molekul untuk butiran.{"basis": "sto3g", "unit": "angstrom" }
hivqe_optionsdictPilihan yang mengawal tingkah laku algoritma HI-VQE. Lihat bahagian Pilihan HI-VQE untuk butiran lanjut.TidakLihat bahagian Pilihan HI-VQE untuk butiran.{"shots": 10_000, "max_iter": 10 }

Pilihan molekul​

Jadual berikut memperincikan semua kunci dan nilai yang boleh ditetapkan dalam kamus molecule_options, serta jenis data dan nilai lalainya. Semua kunci adalah pilihan.

KunciJenis nilaiNilai lalaiJulat sahPenjelasan
"charge"int0PelbagaiInteger yang menentukan jumlah cas bersih sistem molekul. Nilai lalai ialah 0; walau bagaimanapun, ia boleh menjadi sebarang integer.
"basis"str'sto-3g'PelbagaiRentetan yang menentukan jenis asas; ini dihantar ke pyscf. (contoh: "sto-3g", "3-21g", "6-31g", "cc-pvdz")
"active_orbitals"List[int]Setiap indeks orbital.Indeks orbital ruang yang sah untuk masalah tersebut.Senarai indeks orbital aktif dalam selang [0, n) di mana n adalah bilangan Qubit yang digunakan dalam masalah. Jika ini ditentukan, argumen frozen_orbitals juga mesti ditentukan.
"frozen_orbitals"List[int]Tiada indeks.Indeks orbital ruang yang sah untuk masalah tersebut, tidak termasuk orbital aktif.Senarai indeks orbital beku dalam julat yang sama seperti active_orbitals. Jika ditentukan, active_orbitals juga mesti ditentukan. Perhatikan bahawa hanya orbital yang diduduki patut dibekukan kerana bilangan elektron aktif dikurangkan sebanyak 2 untuk setiap orbital yang diduduki yang dibekukan.
"orbital_coeffs"List[List[float]]Orbital molekul Hartree-Fock.Pelbagai.Pekali untuk orbital ruang yang digunakan dalam pengiraan integral tolakan elektronik sistem. Beberapa contoh yang sah ialah orbital molekul Hartree-Fock, orbital semula jadi, dan orbital AVAS.
"symmetry"Union[str, bool]FalseTrue atau FalseDigunakan untuk mengaktifkan simetri kumpulan titik bagi pengiraan molekul awal untuk membina asas orbital yang disesuaikan simetri. Orbital yang disesuaikan simetri ini digunakan sebagai fungsi asas untuk pengiraan SCF berikutnya. Nilai lalai ialah False; jika ditetapkan kepada True, ia akan diaktifkan dan kumpulan titik sewenang-wenangnya akan dikesan dan digunakan secara automatik. Jika simetri tertentu ditetapkan, contohnya, symmetry = "Dooh", maka ralat akan dinaikkan jika geometri molekul tidak tertakluk kepada simetri yang diperlukan ini.
"symmetry_subgroup"Optional[str]NoneLihat dokumentasi pyscf.Boleh digunakan untuk menjana subkumpulan simetri yang dikesan. Ini tidak berkesan apabila simetri ditentukan menggunakan argumen kata kunci symmetry.
"unit"str"angstrom"Lihat dokumentasi pyscf.Menentukan unit pengukuran yang digunakan untuk koordinat dan jarak atom. Lalainya adalah menggunakan unit angstrom.
"nucmod"Optional[Union[dict, str]]NoneLihat dokumentasi pyscf.Menentukan model nuklear yang hendak digunakan. Secara lalai ia menggunakan model nuklear titik, dan nilai lain membolehkan model nuklear Gaussian. Jika fungsi diberikan, ia akan digunakan dengan model nuklear Gaussian untuk menjana nilai taburan cas nuklear 'zeta'.
"pseudo"Optional[Union[dict, str]]NoneLihat dokumentasi pyscf.Menentukan pseudopotential untuk atom dalam molekul. Ini adalah None secara lalai, menunjukkan bahawa tiada pseudopotential digunakan dan semua elektron disertakan secara eksplisit dalam pengiraan.
"cart"boolFalseLihat dokumentasi pyscf.Menentukan sama ada hendak menggunakan GTO kartesian sebagai fungsi asas momentum sudut dalam pengiraan. Nilai lalai False akan menggunakan GTO sfera.
"magmom"Optional[List[Union[int, float]]]NoneLihat dokumentasi pyscf.Menetapkan momen magnetik spin kolinear setiap atom. Secara lalai, ini adalah None dan setiap atom dimulakan dengan spin sifar.
"avas_aolabels"Optional[List[str]]Nonecth. ["H 1s", "O 2p"] untuk H2OIni mentakrifkan Orbital Atom yang hendak disertakan dalam skim AVAS. Lihat dokumentasi AVAS .
"avas_threshold"float0.2Antara 0.0 dan 2.0Ini menentukan nilai potong yang digunakan untuk menentukan Orbital Atom (AO) mana yang dikekalkan dalam ruang aktif.
"noons_level"Optional[str]None"mp2" atau "ccsd"Ini mentakrifkan pendekatan teori untuk menyediakan orbital semula jadi dan memilih orbital aktif berdasarkan skim Nombor Penghunian Orbital Semula Jadi (NOONs). Lihat dokumentasi NOONs. Kedua-dua indeks orbital aktif dan beku mesti diberikan untuk mengawal bilangan orbital (dan bilangan Qubit).

Pilihan HI-VQE​

Jadual berikut memperincikan semua kunci dan nilai yang boleh ditetapkan dalam kamus hivqe_options, serta jenis data dan nilai lalainya. Semua kunci adalah pilihan.

KunciJenis nilaiNilai lalaiJulat sahPenjelasan
"shots"int1_000Antara 1 dan 10 000.Bilangan shot yang digunakan pada peranti kuantum setiap lelaran.
"max_iter"int25Antara 1 dan 50.Bilangan maksimum lelaran yang dijalankan untuk mengoptimumkan ansatz. Algoritma mungkin menggunakan lebih sedikit lelaran jika penumpuan dicapai lebih awal.
"initial_basis_states"List[str]Keadaan Hartree-Fock.Rentetan binari dengan bilangan bit yang sepadan dengan bilangan Qubit yang diperlukan untuk masalah tersebut.Boleh digunakan untuk memulakan semula algoritma dengan keadaan klasik dari keputusan sebelumnya.
"ansatz"str"epa""epa", "hea", atau "lucj"Ini menentukan ansatz kuantum yang hendak dioptimumkan untuk menjana keadaan baharu. "epa" memilih ansatz pemeliharaan eksitasi. "hea" memilih ansatz cekap perkakasan. "lucj" memilih ansatz Jastrow kluster unitari setempat.
"convergence_count"int3Sekurang-kurangnya 2.Bilangan lelaran tanpa perubahan signifikan tenaga yang dikira yang perlu berlalu sebelum algoritma dianggap telah menumpu.
"convergence_abstol"float1e-4Lebih daripada 0 dan paling banyak 1.Magnitud perubahan dalam tenaga yang dikira yang dianggap signifikan untuk tujuan semakan penumpuan.
"reset_convergence_count"boolTrueTrue atau FalseJika True, lelaran convergence_count mesti berlaku tanpa perubahan signifikan yang mengganggu untuk layak sebagai menumpu. Jika False, algoritma akan berhenti selepas convergence_count jika perubahan tidak signifikan telah berlaku pada mana-mana lelaran semasa proses pengoptimuman.
"configuration_recovery"boolTrueTrue atau False.Sama ada hendak menggunakan pemulihan konfigurasi dari pakej qiskit-addon-sqd. Jika True, keadaan tidak sah yang disampling dari peranti kuantum diperbetulkan secara klasik. Jika False, ia dibuang.
"ansatz_entanglement"str"circular"Mana-mana satu daripada "linear", "reverse_linear", "pairwise", "circular", "full", atau "sca". Jika menggunakan ansatz "lucj", "lucj_default" juga merupakan pilihan.Ini menentukan skim belitan yang hendak digunakan dalam Circuit kuantum, mengikut konvensyen Qiskit dan ffsim yang biasa untuk ansatz LUCJ.
"ansatz_reps"int2Lebih daripada 0.Bilangan pengulangan setiap lapisan dalam Circuit kuantum.
"amplitude_screening_tolerance"Union[float,int]0Sekurang-kurangnya 0, dan kurang daripada 1.Toleran untuk menentukan keadaan mana yang patut ditapis daripada subspace selepas pengilangan. Ia menentukan ambang inklusi untuk keadaan subspace berdasarkan amplitud yang dikira.
"overlap_screening_tolerance"float1e-2Antara 1e-4 dan 1e-1, inklusif.Toleran untuk meramalkan keadaan mana yang patut ditapis daripada subspace sebelum pengilangan. Ia mengawal ketepatan amplitud yang diramalkan untuk setiap keadaan, dengan nilai yang lebih kecil menghasilkan ramalan yang lebih tepat.

Output​

Fungsi mengembalikan kamus dengan empat kunci dan nilai. Kunci dan nilai didokumentasikan dalam jadual berikut:

KunciJenis nilaiPenjelasan
"energy"floatTenaga keadaan dasar anggaran molekul.
"states"List[str]Determinan yang dipilih yang membentuk subspace yang digunakan untuk menyelesaikan tenaga. Ia dalam format alfa-beta berselang-seli.
"eigenvector"List[float]Eigenvector yang sepadan dengan keadaan dasar subspace yang terdiri daripada "states".
"energy_variance"floatVarians tenaga keadaan dasar subspace yang terdiri daripada "states", memberi petunjuk tentang kualiti penyelesaian. Nilai ini tidak negatif dan nilai yang lebih rendah bermakna keadaan dasar subspace lebih hampir menghampiri eigenstate Hamiltonian sistem.
"energy_history"List[float]Tenaga yang dikira setiap lelaran semasa proses pengoptimuman hibrid, dalam urutan yang sama ia dikira. Dua tenaga dikira setiap lelaran sebagai sebahagian daripada proses pengoptimuman SPSA.

Contoh​

Contoh pertama menunjukkan cara mengira tenaga keadaan dasar untuk molekul NH3 menggunakan algoritma HI-VQE.

Takrifkan geometri molekul dan pilihan​

Geometri molekul NH3 diberikan dengan koordinat Kartesian yang dipisahkan dengan ";" untuk setiap atom.

# Define the molecule geometry
geometry = """
N -0.85188 -0.02741 0.03141;
H 0.16545 0.00593 -0.01648;
H -1.16348 -0.39357 -0.86702;
H -1.16348 0.94228 0.06281;
"""

Pilihan tambahan boleh ditakrifkan dan diberikan untuk sistem molekul dalam format kamus berikut.

# Configure some options for the job.
molecule_options = {"basis": "sto3g"}
hivqe_options = {"shots": 100, "max_iter": 20}

Laksanakan fungsi dengan input geometri dan pilihan.

# Run HI-VQE
job = function.run(
geometry=geometry,
# `backend_name` is the name of a backend with at least 16 qubits, for example, "ibm_marrakesh".
backend_name=backend_name,
max_states=2000,
max_expansion_states=10,
molecule_options=molecule_options,
hivqe_options=hivqe_options,
)

Adalah baik untuk mencetak ID kerja Fungsi supaya ia boleh diberikan dalam permintaan sokongan jika ada yang tidak kena.

print("Job ID:", job.job_id)
Job ID: 128ee399-7cfc-4be2-91e9-c4abd22b97c7

Contoh ini kemudian menggunakan 16 Qubit dengan 8 orbital asas sto3g untuk molekul NH3. Semak status atau kembalikan keputusan beban kerja Fungsi Qiskit anda seperti berikut:

print(job.status())
QUEUED

Selepas kerja selesai, keputusan boleh diperoleh dengan instans result().

result = job.result()

# Output can be long, so we display a shortened representation
shortened_result = reprlib.repr(result)
print(shortened_result)
{'eigenvector': [0.9824200343205695, 0.009520846167419264, 6.365368845740147e-08, 3.6832123006425615e-07, 0.0012869941182066654, 2.3403891050875465e-05, ...], 'energy': -55.521146537970466, 'energy_history': [-55.52091922342852, -55.52113695367561, -55.521146537970466, -55.52114653864798, -55.521146537970466, -55.521146537970466, ...], 'energy_variance': 9.788555455342562e-12, ...}

Untuk mengakses tenaga keadaan dasar, gunakan kunci "energy". Kunci "eigenvector" menyediakan pekali CI dengan notasi bitstring konfigurasi elektron yang sepadan yang disimpan dengan "states" dalam keputusan.

fci_energy = -55.521148034704126  # the exact energy using FCI method
hivqe_energy = result["energy"]
print(
f"|Exact Energy - HI-VQE Energy|: {abs(fci_energy - hivqe_energy) * 1000} mHa"
)
print(f"Sampled Number of States: {len(result['states'])}")
|Exact Energy - HI-VQE Energy|: 0.0014967336596782843 mHa
Sampled Number of States: 1936

Output:

|Exact Energy - HI-VQE Energy|: 0.077237504 mHa Sampled Number of States: 1936

Prestasi​

Bahagian ini menunjukkan pengiraan penanda aras yang ditunjukkan HI-VQE dengan kes 24-Qubit untuk Li2S, kes 40-Qubit untuk molekul N2, dan kes 44-Qubit untuk sistem FeP-NO.

Lengkung permukaan tenaga potensial dissosiasi untuk molekul Li2S dengan 24 Qubit​

Lengkung PES ditunjukkan dengan rujukan FCI dan teka-teki awal dari RHF, bersama-sama dengan ralat tenaga dari rujukan FCI.

Image showing that HI-VQE produces solutions within chemical accuracy of a classical reference PES curve for the Li2S system.

Pengiraan telah dijalankan dengan geometri dan pilihan berikut.

# This cell is hidden from users
backend_name = service.least_busy(operational=True, min_num_qubits=38).name
# Define Li2S geometries
Li2S_geoms = {
"Li2S_1.51": "S -1.239044 0.671232 -0.030374;Li -1.506327 0.432403 -1.498949;Li -0.899996 0.973348 1.826768;",
"Li2S_2.40": "S -1.741432 0.680397 0.346702;Li -0.529307 0.488006 -1.729343;Li -1.284307 0.989409 2.177209;",
"Li2S_3.80": "S -2.707255 0.674298 0.909161;Li 0.079218 0.552012 -1.671656;Li -0.927010 0.931502 1.557063;",
}

# Configure some options for the job.
molecule_options = {
"basis": "sto3g",
}
hivqe_options = {
"shots": 100,
"max_iter": 20,
}

results = []
for geom in ["Li2S_1.51", "Li2S_2.40", "Li2S_3.80"]:
# Run HI-VQE
job = function.run(
geometry=Li2S_geoms[geom],
backend_name=backend_name, # can use any device with at least 38 qubits
max_states=2000,
max_expansion_states=10,
molecule_options=molecule_options,
hivqe_options=hivqe_options,
)
results.append(job.result())

Titik merah mewakili keputusan pengiraan HI-VQE untuk enam geometri berbeza, dan tiga geometri yang sepadan dengan 1.51, 2.40, dan 3.80 Angstrom disediakan sebagai input dalam sel di atas.

Lengkung PES dissosiasi untuk molekul N2 dengan 40 Qubit​

Molekul nitrogen telah dikenal pasti sebagai sistem multirujukan dengan sumbangan tenaga korelasi yang besar melebihi keadaan Hartree-Fock. Kami menjalankan pengiraan penanda aras untuk molekul N2 dengan asas cc-pvdz, (20o,14e) menggunakan pemilihan orbital aktif homo-lumo. Nombor ruang aktif penuh (CAS) untuk mewakili masalah ini ialah 6,009,350,400. Tidak mungkin mendapatkan penyelesaian masalah nilai eigen (untuk tenaga dan struktur elektronik) dengan bilangan keadaan ini menggunakan komputer meja yang berkuasa (16cpu/64GB). Dengan HI-VQE, pengguna boleh mencari subspace keadaan CAS dengan cekap untuk mencari keputusan yang tepat secara kimia sambil menjimatkan sumber pengkomputeran dengan ketara. Plot berikut menunjukkan lengkung PES pengiraan HI-VQE 40 Qubit untuk dissosiasi molekul N2.

Image showing that HI-VQE produces solutions within chemical accuracy of a classical reference PES curve for the N2 system.

Lengkung PES dissosiasi untuk iron(II)-porfirin berlima koordinat dengan sistem NO dengan 44 Qubit​

Sistem kimia menarik lain ialah kompleks iron(II)-porfirin (FeP) dengan ligan nitrik oksida (NO) terkoordinat, yang mewakili sistem metaloporfirin yang berkaitan biologi yang memainkan peranan penting dalam pelbagai proses fisiologi. Dalam contoh ini, HI-VQE telah digunakan untuk menganggar lengkung permukaan tenaga potensial yang tepat bagi interaksi antarmolekul antara FeP dan NO (tenaga keadaan dasar untuk geometri yang dipisahkan secara berbeza). Sistem gabungan mempunyai 450 orbital dan 202 elektron (450o,202e) dengan asas 6-31g(d) secara keseluruhan. Pemilihan orbital aktif homo-lumo digunakan untuk mengira kes yang lebih kecil dari kes sebenar dengan (22o,22e). Daripada keputusan penanda aras berikut, kami berjaya mencapai ketepatan kimia (> 1.6 mHa) dengan pengiraan kimia komputer klasik terkini CASCI(DMRG) (22o,22e) sebagai rujukan.

Image showing that HI-VQE produces solutions within chemical accuracy of a classical reference PES curve for the FeP-NO system.

Penanda aras​

  • Saiz matriks tepat adalah bilangan determinan untuk penyelesaian tepat, seperti FCI dan CASCI.
  • Pengiraan HI-VQE mengambil sampel dan mengira subspace daripadanya (iaitu, saiz matriks HI-VQE).
  • Jumlah masa termasuk masa jalan QPU dan jalankan Fungsi Qiskit dengan CPU.
  • Ketepatan dianggar daripada perbezaan tenaga dari penyelesaian tepat.
Sistem kimiaBilangan QubitSaiz matriks tepatSaiz matriks HI-VQEE(perbezaan) dari tepat (mHa)Bilangan lelaranJumlah masaPenggunaan masa jalan QPU
NH3NH_3 (8o,10e)16313619360.08637 s34 s
Li2SLi_2S (10o,10e)206350439690.605250 s50 s
NH3NH_3 (15o,10e)309018009497290.905354 s54 s
N2N_2 (16o,14e)3213087360017982811.1096531 s121 s
3H2O3H_2O (18o,24e)363446220963994240.90245174 s130 s
N2N_2 (20o,14e)40600935040090120041.202146547 s258 s

Dapatkan mesej ralat​

Jika beban kerja anda gagal, status akan menjadi ERROR dan memanggil job.result() akan menaikkan pengecualian:

job = function.run(
geometry="invalid-geometry", # This will cause an error
backend_name=backend_name,
max_states=2000,
max_expansion_states=15,
molecule_options=molecule_options,
hivqe_options=hivqe_options,
)

job.result()
job.status()
'ERROR'

Dapatkan sokongan​

Anda boleh menghantar e-mel ke qiskit.support@qunovacomputing.com untuk bantuan dengan fungsi ini.

Jika anda memerlukan bantuan untuk menyelesaikan masalah ralat tertentu, sila berikan ID kerja Fungsi bagi kerja yang menghadapi ralat tersebut.

Langkah seterusnya​

Source: IBM Quantum docs — updated 1 Apr 2026
English version on doQumentation — updated 7 Mei 2026
This translation based on the English version of 11 Mac 2026