انتقل إلى المحتوى الرئيسي

HI-VQE Chemistry - دالة Qiskit من 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

اطّلع على مرجع API

ملاحظة

دوال Qiskit ميزة تجريبية متاحة فقط لمستخدمي خطط IBM Quantum® Premium وFlex وOn-Prem (عبر IBM Quantum Platform API). هي في مرحلة إصدار معاينة وقابلة للتغيير.

Package versions

The code on this page was developed using the following requirements. We recommend using these versions or newer.

qiskit-ibm-runtime~=0.45.0

نظرة عامة

في الكيمياء الكمومية، تتمحور مسألة البنية الإلكترونية حول إيجاد حلول معادلة شرودنغر الإلكترونية — دوال الموجة الكمومية التي تصف سلوك إلكترونات النظام. هذه الدوال عبارة عن متجهات من السعات المركبة، حيث تقابل كل سعة مساهمة إحدى التهيئات الإلكترونية الممكنة.

الحالة الأرضية هي دالة الموجة ذات أدنى طاقة في النظام، وتحتل مكانة خاصة في دراسة الأنظمة الجزيئية. يأخذ النهج الأدق لحساب الحالة الأرضية بعين الاعتبار جميع التهيئات الإلكترونية الممكنة، إلا أن ذلك يصبح غير قابل للتطبيق على الأنظمة الأكبر إذ يتزايد عدد التهيئات بشكل أسي مع حجم النظام.

يُعدّ الـ HI-VQE (Handover Iterative Variational Quantum Eigensolver) منهجًا هجينًا مبتكرًا بين الحوسبة الكمومية والكلاسيكية، يهدف إلى تقدير دقيق للحالة الأرضية للأنظمة الجزيئية. يدمج المعالجات الكمومية مع الحوسبة الكلاسيكية، مستعينًا بالمعالجات الكمومية لاستكشاف التهيئات الإلكترونية المرشحة بكفاءة، ثم يحسب دالة الموجة الناتجة على الحواسيب الكلاسيكية. من خلال توليد دوال موجة مضغوطة وذات دقة كيميائية عالية، يُعزّز HI-VQE البحث والاكتشاف في كيمياء الكم وعلم المواد.

صورة توضح نظرة عامة على خوارزمية HI-VQE من Qunova

يُقلّل HI-VQE من التعقيد الحسابي لمسألة البنية الإلكترونية من خلال تقدير الحالة الأرضية بدقة عالية وكفاءة. يركّز على مجموعة فرعية مختارة بعناية من أبرز التهيئات الإلكترونية، محقّقًا توازنًا مثاليًا بين الدقة والكفاءة.

يجمع HI-VQE بين إمكانيات الحواسيب الكلاسيكية والكمومية، ويُحسّن تقدير دالة الموجة الحالية تدريجيًا وبصورة متكررة. تُسهم تقنياته الفريدة لبناء الفضاء الجزئي في رفع كفاءة اختيار التهيئات، مما يمنح المستخدمين تحكّمًا حسابيًا أكبر ودقة محسّنة في محاكاة كيمياء الكم.

إن كنت تودّ التعمق في فهم الخوارزمية، يمكنك قراءة الورقة البحثية المرتبطة.

الوصف

يتزايد عدد التهيئات الإلكترونية لنظام جزيئي بشكل أسي مع حجمه. غير أنه في حالات إلكترونية معينة، كالحالة الأرضية، يشيع أن نسبة صغيرة فقط من التهيئات تُسهم بشكل ملحوظ في طاقة الحالة. تستغل أساليب التفاعل التشكيلي المنتقى (SCI) هذه الندرة لتقليل التكاليف الحسابية عبر تحديد التهيئات الأكثر صلة والتركيز عليها. تُسمّى هذه المجموعة الفرعية من التهيئات بالفضاء الجزئي.

يستثمر HI-VQE الكفاءة الجوهرية للحواسيب الكمومية في تمثيل الأنظمة الجزيئية للمساعدة في البحث عن الفضاء الجزئي. يدمج الروتينات الكلاسيكية والكمومية لحل مسألة البنية الإلكترونية بدقة عالية. على خلاف أساليب SCI الكمومية الموجودة، يجمع HI-VQE بين التدريب التغايري والبناء التكراري للفضاء الجزئي وفرز التهيئات قبل القطرنة، لتعزيز الكفاءة عبر تقليل القياسات الكمومية والتكرارات وتكاليف القطرنة الكلاسيكية. وبالتالي يمكن تطبيق HI-VQE على أنظمة جزيئية أكبر تحتاج إلى مزيد من qubits، مع تقليل تكلفة حل مسألة بحجم معين بالدقة ذاتها.

صورة توضح وصفًا تفصيليًا لكل خطوة في خوارزمية HI-VQE من Qunova.

لحساب الحالة الأرضية لنظام ما، يبدأ HI-VQE بالاستعانة بحزمة الكيمياء الكلاسيكية PySCF لتوليد تمثيل جزيئي من المدخلات التي يوفّرها المستخدم، كالهندسة الجزيئية وبيانات أخرى عن الجزيء. ثم يدخل في حلقة تحسين هجينة كمومية-كلاسيكية، يُحسّن فيها تدريجيًا فضاءً جزئيًا لتمثيل الحالة الأرضية بشكل أمثل مع تقليل عدد التهيئات المضمّنة. تستمر الحلقة حتى تتحقق معايير التقارب كحجم الفضاء الجزئي أو استقرار الطاقة، ثم يُخرج الخوارزم دالة موجة الحالة الأرضية المحسوبة وطاقتها. يمكن استخدام هذه النتائج لبناء أسطح طاقة الوضع الدقيقة وإجراء مزيد من التحليل للنظام.

تتمحور حلقة التحسين حول ضبط معاملات دائرة كمومية لتوليد فضاء جزئي عالي الجودة. يوفّر HI-VQE ثلاثة خيارات للدائرة الكمومية: excitation_preserving وefficient_su2 وLUCJ. يُهيّأ التحسين قريبًا من حالة مرجعية Hartree-Fock لملاءمتها العامة. تُنفَّذ الدائرة بعد ذلك على جهاز كمومي وتُؤخذ عيّنات من التهيئات من الحالة الكمومية الناتجة وتُعاد كسلاسل ثنائية. نتيجةً لضوضاء الجهاز الكمومي، قد تكون بعض التهيئات المُعيَّنة غير صالحة فيزيائيًا، إذ لا تحفظ عدد الإلكترونات أو الدوران. يتعامل HI-VQE مع هذا باستخدام عملية استرداد التهيئة من حزمة qiskit-addon-sqd، ليتمكن المستخدمون إما من تصحيح التهيئات غير الصالحة أو تجاهلها.

تخضع التهيئات الصالحة بعد ذلك لخطوة فرز اختيارية لإزالة تلك المتوقع أن تُسهم بالحد الأدنى. يُقلّل ذلك من بُعد الفضاء الجزئي وبالتالي يخفض تكلفة خطوة القطرنة. في حال تفعيل الفرز، يُبنى Hamiltonian فضاء جزئي أوّلي من التهيئات الصالحة ويُجرى قطرنة بمعايير إنهاء فضفاضة جدًا. رغم أن دقة السعات الناتجة لكل تهيئة منخفضة، إلا أنها فعّالة في التنبؤ بالتهيئات التي ينبغي استبعادها من الفضاء الجزئي في هذه الجولة، وتُحسب بسرعة.

تُضاف التهيئات المختارة إلى الفضاء الجزئي ويُسقَط Hamiltonian النظام في هذا الفضاء. يتحدث الفضاء الجزئي تكراريًا محافظًا على أبرز التهيئات عبر الجولات. يتميز هذا النهج عن البدائل بأن الدائرة الكمومية لا تحتاج إلى تقريب الحالة الأرضية الكاملة في كل خطوة.

بعد ذلك، يُقطَّر Hamiltonian الفضاء الجزئي كلاسيكيًا للحصول على أدنى قيمة ذاتية ومتجهها الذاتي المقابل، وهما تقريب للحالة الأرضية وطاقتها. مع تحسّن جودة الفضاء الجزئي عبر الجولات، يقترب حساب الحالة الأرضية من الحالة الحقيقية. يمكن إجراء خطوة فرز إضافية في هذه المرحلة لإزالة التهيئات ذات المساهمة غير الجوهرية في الحالة الأرضية المحسوبة. تضمن هذه الخطوة أن الفضاء الجزئي الذي يُنقل للجولة التالية يكون بالحجم الأمثل. ويُقيَّم ذلك بناءً على السعات التي تُعيدها عملية القطرنة، إذ تمثّل أهمية مساهمة كل تهيئة في الحالة الأرضية المحسوبة.

ثم يُجرى فحص تقارب لتحديد ما إذا كانت التكرارات الإضافية ستحسّن النتائج. إن كان الأمر كذلك، تُجرى خطوة توسيع كلاسيكية اختيارية، تُحدَّث معاملات الدائرة الكمومية لمزيد من تقليل الطاقة المحسوبة، وتتكرر العملية. تُولّد خطوة التوسيع الكلاسيكية تهيئات إضافية للفضاء الجزئي تكمّل ما أُخذ عيّنات منه من الجهاز الكمومي. تُحدّد أولًا التهيئة ذات أكبر سعة في نتائج القطرنة، ثم تُولّد تهيئات جديدة بإثارات أحادية وثنائية من التهيئة المحدّدة، وتُضاف العدد المطلوب من هذه التهيئات إلى الفضاء الجزئي.

بمجرد التحقق من تقارب الجولات، يُعيد HI-VQE الحالة الأرضية المحسوبة (على شكل الحالات في الفضاء الجزئي وسعاتها في دالة الموجة)، وطاقتها، ومقياس تباين الطاقة الذي يشير إلى ما إذا كانت الحالة المحسوبة تُشكّل حالة ذاتية لـ Hamiltonian النظام.

يستطيع المستخدمون تحديد الدائرة الكمومية المستخدمة وعدد اللقطات لكل دائرة، إضافةً إلى التحكم في حجم الفضاء الجزئي أو تفعيل التوليد الكلاسيكي لتهيئات إضافية لدعم تلك المولّدة كميًا. بهذه الطريقة، يمكن للمستخدمين تكييف سلوك HI-VQE لتناسب تطبيقاتهم المطلوبة.

الترخيص

يُرجى ملاحظة أن استخدام دالة Qiskit هذه مقيّد بالمسائل التي تتطلب 20 qubit كحد أقصى، ما لم يُحصل على ترخيص يمنح حدًا أعلى.

يُرجى مراسلة qiskit.support@qunovacomputing.com إن كنت ترغب في الاستفسار عن الحصول على ترخيص.

البدء

أولًا، اطلب الوصول إلى الدالة. ثم قم بالمصادقة باستخدام مفتاح IBM Quantum® API الخاص بك، وبافتراض أنك حفظت حسابك في بيئتك المحلية، اختر دالة Qiskit كما يلي:

import reprlib
from qiskit_ibm_catalog import QiskitFunctionsCatalog

catalog = QiskitFunctionsCatalog(channel="ibm_quantum_platform")

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

مثال

المثال الأول يوضح كيفية حساب طاقة الحالة الأرضية لجزيء NH3 باستخدام خوارزمية HI-VQE.

تحديد الهندسة الجزيئية والخيارات

تُوفَّر الهندسة الجزيئية لـ NH3 بإحداثيات ديكارتية مفصولة بـ ";" لكل ذرة.

# 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;
"""

يمكن تعريف خيارات إضافية وتوفيرها للنظام الجزيئي بصيغة القاموس التالية.

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

نفّذ الدالة مع مدخلات الهندسة والخيارات.

# 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,
)

من المفيد طباعة معرّف مهمة الدالة حتى يمكن تقديمه في طلبات الدعم إذا حدث خطأ ما.

print("Job ID:", job.job_id)
Job ID: e5ced6f2-fd1d-4244-a6aa-bd27cfb0cdee

يستخدم هذا المثال 16 qubit مع 8 مدارات من أساس sto3g لجزيء NH3. تحقق من الحالة أو استرجع النتائج لعمل Qiskit Function الخاص بك على النحو التالي:

print(job.status())
QUEUED

بعد اكتمال المهمة، يمكن الحصول على النتائج باستخدام نسخة result().

result = job.result()

# Output can be long, so we display a shortened representation
shortened_result = reprlib.repr(result)
print(shortened_result)
{'eigenvector': [0.9824448589364075, 0.009527106392132133, 6.854074372058527e-08, 3.591500190038039e-07, 0.0012975231577544268, 2.310159709002111e-05, ...], 'energy': -55.52108557170985, 'energy_history': [-55.51901898989887, -55.52056881448526, -55.52065046778772, -55.520690696813716, -55.520691108428, -55.520708448092634, ...], 'energy_variance': 3.066239097617371e-10, ...}

للوصول إلى طاقة الحالة الأرضية، استخدم مفتاح "energy". يوفّر مفتاح "eigenvector" معاملات CI مع تدوين السلسلة الثنائية المقابلة للتهيئة الإلكترونية المخزّنة في "states" من النتائج.

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.06246299427914437 mHa
Sampled Number of States: 1936

الأداء

يعرض هذا القسم حسابات المعايير التوضيحية لـ HI-VQE مع حالة بـ 24 qubit لجزيء Li2S، وحالة بـ 40 qubit لجزيء N2، وحالة بـ 44 qubit لنظام FeP-NO.

منحنى سطح طاقة الوضع للتفكك لجزيء Li2S بـ 24 qubit

يُعرض منحنى PES مع مرجع FCI والتخمين الأوّلي من RHF، إضافةً إلى خطأ الطاقة من مرجع FCI.

صورة توضح أن HI-VQE ينتج حلولًا ضمن الدقة الكيميائية لمنحنى PES المرجعي الكلاسيكي لنظام Li2S.

أُجريت الحسابات بالهندسات والخيارات التالية.

# 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())

تمثّل النقاط الحمراء نتائج حسابات HI-VQE لستة هندسات مختلفة، وثلاث هندسات تتوافق مع 1.51 و2.40 و3.80 أنغستروم مُقدَّمة كمدخلات في الخلية أعلاه.

منحنى PES للتفكك لجزيء N2 بـ 40 qubit

تم التعرف على جزيء النيتروجين كنظام متعدد المراجع مع مساهمات طاقة ارتباط كبيرة تتجاوز حالة Hartree-Fock. أجرينا حسابًا معياريًا لجزيء N2 مع أساس cc-pvdz، (20o,14e) باستخدام اختيار المدار النشط homo-lumo. رقم الفضاء النشط الكامل (CAS) لتمثيل هذه المسألة هو 6,009,350,400. من غير الممكن الحصول على حل مسألة القيم الذاتية (للطاقة والبنية الإلكترونية) بهذا العدد من الحالات باستخدام حاسوب مكتبي قوي (16cpu/64GB). مع HI-VQE، يستطيع المستخدمون البحث بكفاءة في الفضاء الجزئي لحالات CAS للحصول على نتائج دقيقة كيميائيًا مع توفير موارد الحوسبة بشكل ملحوظ. تُظهر الرسوم البيانية التالية منحنى PES لحساب HI-VQE بـ 40 qubit لتفكك جزيء N2.

صورة توضح أن HI-VQE ينتج حلولًا ضمن الدقة الكيميائية لمنحنى PES المرجعي الكلاسيكي لنظام N2.

منحنى PES للتفكك لـ iron(II)-porphyrin خماسي التنسيق مع نظام NO بـ 44 qubit

نظام كيميائي مثير للاهتمام آخر هو مركّب iron(II)-porphyrin (FeP) مع ليغاند nitric oxide (NO) منسّق، وهو نظام metalloporphyrin ذو صلة بيولوجية يؤدي أدوارًا محورية في عمليات فسيولوجية متعددة. في هذا المثال، استُخدم HI-VQE لتقدير منحنى سطح طاقة الوضع الدقيق للتفاعل بين جزيئيّ FeP وNO (طاقة الحالة الأرضية لهندسات بمسافات مختلفة). يحتوي النظام المدمج على 450 مدارًا و202 إلكترونًا (450o,202e) مع أساس 6-31g(d) إجمالًا. اُستخدم اختيار المدار النشط homo-lumo لحساب الحالة الأصغر من الحالة الحقيقية بـ (22o,22e). من نتائج المعايير التالية، تمكّنا من تحقيق الدقة الكيميائية (> 1.6 mHa) مع حساب كيمياء الحاسوب الكلاسيكي المتقدم CASCI(DMRG) (22o,22e) كمرجع.

صورة توضح أن HI-VQE ينتج حلولًا ضمن الدقة الكيميائية لمنحنى PES المرجعي الكلاسيكي لنظام FeP-NO.

المعايير

  • حجم المصفوفة الدقيق هو عدد المحدِّدات للحل الدقيق، مثل FCI وCASCI.
  • يأخذ حساب HI-VQE عيّنات من الفضاء الجزئي ويحسبه (أي حجم مصفوفة HI-VQE).
  • الوقت الإجمالي يشمل وقت تشغيل QPU وتشغيلات Qiskit Function مع CPU.
  • تُقدَّر الدقة من فارق الطاقة عن الحل الدقيق.
النظام الكيميائيعدد الـ qubitsحجم المصفوفة الدقيقحجم مصفوفة HI-VQEE(diff) من الدقيق (mHa)عدد الجولاتالوقت الإجمالياستخدام وقت تشغيل 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

استرجاع رسائل الخطأ

إذا فشل عملك، ستكون الحالة ERROR واستدعاء job.result() سيُطلق استثناء:

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'

الحصول على الدعم

يمكنك إرسال بريد إلكتروني إلى qiskit.support@qunovacomputing.com للحصول على مساعدة بشأن هذه الدالة.

إذا كنت تريد مساعدة في استكشاف خطأ محدد وإصلاحه، يُرجى تقديم معرّف مهمة الدالة للمهمة التي واجهت الخطأ.

الخطوات التالية