البدء مع التجميع الكمي التقريبي باستخدام شبكات الموترات (AQC-Tensor)
إصدارات الحزم
تم تطوير الكود في هذه الصفحة باستخدام المتطلبات التالية. نوصي باستخدام هذه الإصدارات أو أحدث منها.
qiskit[all]~=2.3.0
qiskit-aer~=0.17
qiskit-addon-utils~=0.3.0
qiskit-addon-aqc-tensor[aer,quimb-jax]~=0.2.0; sys.platform != 'darwin'
scipy~=1.16.3
يوضّح هذا الدليل مثالاً عملياً بسيطاً للبدء مع AQC-Tensor. في هذا المثال، ستأخذ دائرة تروتر التي تحاكي تطور نموذج إيزينغ ذي المجال المستعرض، وتستخدم طريقة AQC-Tensor لتقليل عمق الدائرة الناتجة. بالإضافة إلى ذلك، يتطلب هذا المثال حزمة qiskit-addon-utils لتوليد المسألة، وqiskit-aer لمحاكاة شبكة الموترات، وscipy لتحسين المعاملات.
للبدء، تذكّر أن هاميلتوني نموذج إيزينغ ذي المجال المستعرض يأخذ الشكل
حيث نفترض شروط حدودية دورية تعني أنه عند نحصل على ، و هي قوة الاقتران بين موقعين، و هي شدة المجال المغناطيسي الخارجي.
يولّد مقطع الكود التالي هاميلتوني سلسلة إيزينغ المكوّنة من 10 مواقع مع شروط حدودية دورية.
# Added by doQumentation — required packages for this notebook
!pip install -q qiskit qiskit-addon-aqc-tensor qiskit-addon-utils qiskit-aer scipy
from qiskit.transpiler import CouplingMap
from qiskit_addon_utils.problem_generators import generate_xyz_hamiltonian
from qiskit.synthesis import SuzukiTrotter
from qiskit_addon_utils.problem_generators import (
generate_time_evolution_circuit,
)
from qiskit_addon_aqc_tensor import generate_ansatz_from_circuit
from qiskit_addon_aqc_tensor.simulation import tensornetwork_from_circuit
from qiskit_addon_aqc_tensor.simulation import compute_overlap
from qiskit_addon_aqc_tensor.objective import MaximizeStateFidelity
from qiskit_aer import AerSimulator
from scipy.optimize import OptimizeResult, minimize
# Generate some coupling map to use for this example
coupling_map = CouplingMap.from_heavy_hex(3, bidirectional=False)
# Choose a 10-qubit circle on this coupling map
reduced_coupling_map = coupling_map.reduce(
[0, 13, 1, 14, 10, 16, 4, 15, 3, 9]
)
# Get a qubit operator describing the Ising field model
hamiltonian = generate_xyz_hamiltonian(
reduced_coupling_map,
coupling_constants=(0.0, 0.0, 1.0),
ext_magnetic_field=(0.4, 0.0, 0.0),
)