ข้ามไปยังเนื้อหาหลัก

Multi-product formulas (MPF)

เวอร์ชันของแพ็กเกจ

โค้ดในหน้านี้พัฒนาขึ้นโดยใช้ข้อกำหนดต่อไปนี้ แนะนำให้ใช้เวอร์ชันเหล่านี้หรือใหม่กว่า

Multi-product formulas (MPF) สามารถใช้จำลองไดนามิกส์ของระบบควอนตัมได้แม่นยำยิ่งขึ้น แลกกับการรัน Circuit ที่เพิ่มขึ้น นี่คือเทคนิคการประมวลผลหลัง (post-processing) ที่ช่วยลด error ของค่า expectation values สำหรับสถานะที่วิวัฒนาการตามเวลา

การคำนวณแบบ classical ถูกนำมาใช้แก้ระบบสมการเชิงเส้นที่ให้ coefficients สำหรับการรวมแบบ weighted ของการรัน Circuit หลายครั้ง การใช้การรวมแบบ weighted นี้ช่วยลด error ที่เกิดจากการจำลองการวิวัฒนาการตามเวลา โดยต้องเลือก Trotter steps อย่างเหมาะสม เครื่องมือ MPF จะรับข้อมูล ได้แก่ จำนวน Trotter steps และ order ของการประมาณ Trotter เพื่อเตรียมและแก้ (หรือประมาณค่า) ระบบสมการเชิงเส้นที่เกี่ยวข้อง ซึ่งคุณสามารถนำไปใช้ประมวลผลค่า expectation values ของสถานะที่วิวัฒนาการตามเวลาต่อไปได้

ติดตั้งแพ็กเกจ MPF

มีสองวิธีในการติดตั้งแพ็กเกจ MPF: ผ่าน PyPI และการ build จาก source แนะนำให้ติดตั้งในสภาพแวดล้อมเสมือน เพื่อให้แน่ใจว่าแพ็กเกจ dependencies แยกออกจากกัน

ติดตั้งจาก PyPI

วิธีที่ตรงไปตรงมาที่สุดในการติดตั้งแพ็กเกจ qiskit-addon-mpf คือผ่าน PyPI

pip install qiskit-addon-mpf

Build จาก source

ผู้ใช้ที่ต้องการพัฒนาใน repository หรือต้องการติดตั้งด้วยตัวเองสามารถทำได้โดยเริ่มจากการ clone repository:

git clone git@github.com:Qiskit/qiskit-addon-mpf.git

และติดตั้งแพ็กเกจผ่าน pip repository ยังมี optional dependencies หลายตัวที่เปิดใช้งานฟีเจอร์บางอย่างด้วย

ปรับตัวเลือกตามความต้องการ

pip install tox notebook -e '.[notebook-dependencies,dev]'

พื้นฐานทางทฤษฎี

MPF สามารถลด Trotter approximation error ที่เกิดจากการจำลองไดนามิกส์ของระบบควอนตัมได้ผ่านการรวมแบบ weighted ของการรัน Circuit หลายครั้ง weighted sum นี้นิยามเป็น:

μ(t)=jxjρjkj(tkj)+some remaining Trotter error,\mu(t) = \sum_j x_j\rho_j^{k_j}\left(\frac{t}{k_j}\right) + \text{some remaining Trotter error},

โดยที่ xjx_j คือ weighting coefficients, ρjkj\rho_j^{k_j} คือ density matrix ที่สอดคล้องกับ pure state ที่ได้จากการ evolve สถานะเริ่มต้นผ่าน product formula SkjS^{k_j} โดยประมาณ time-evolution operator ด้วย kjk_j Trotter steps และ jj เป็น index ของแต่ละ product formula ที่ใช้ในผลรวม

Circuit หลายตัวที่มีจำนวน Trotter steps ต่างกันถูกใช้คำนวณ observable เป้าหมาย

โดยทั่วไปแล้ว เป้าหมายของการจำลองไดนามิกส์ควอนตัมคือการวัด observable บางตัว O(t)\mathcal{O}(t) ซึ่งเป็นฟังก์ชันของเวลา เมื่อใช้ MPF จะรัน Circuit หลายตัว โดยแต่ละตัวใช้ kjk_j Trotter steps เพื่อได้การวัด observable เป้าหมาย Okj(t)\mathcal{O}_{k_j}(t) หลายครั้ง จากนั้นได้การวัด observable เป้าหมายโดยการคำนวณ:

O(t)=jxj(t)Okj(t).\langle \mathcal{O}(t) \rangle = \sum_j x_j(t) \langle \mathcal{O}_{k_j}(t) \rangle.

โดยพื้นฐานแล้ว คุณสามารถลด Trotter error รวมได้โดยการประมาณ time-evolution operator ด้วย product formulas หลายตัวที่มีจำนวน Trotter steps ต่างกัน แทนที่จะใช้ product formula เพียงตัวเดียว คุณสร้าง Circuit สำหรับแต่ละ term ใน weighted sum ซึ่ง evolve ระบบตามจำนวน kjk_j Trotter steps แต่ละ Circuit จะถูกรันแยกกันบน QPU เพื่อสร้างผลลัพธ์ใหม่ในขั้นตอนการประมวลผลหลัง ประโยชน์ของเทคนิคนี้มองได้จากสองมุมมอง:

  1. สำหรับจำนวน Trotter steps ที่กำหนดไว้ที่รัน คุณสามารถได้ผลลัพธ์ที่มี Trotter error รวมน้อยลง
  2. สำหรับจำนวน Trotter steps ที่ส่งผลให้ Circuit ลึกมาก คุณสามารถใช้ MPF เพื่อหา Circuit ที่มีความลึกสั้นกว่าหลายตัวมาแทน ซึ่งให้ Trotter approximation error ที่ใกล้เคียงกัน

กำหนด MPF coefficients

ฟังก์ชันหลักของแพ็กเกจ qiskit-addon-mpf อยู่ที่การกำหนด MPF coefficients xj(t)x_j(t) (ซึ่งอาจขึ้นกับเวลา) กระบวนการได้แต่ละ xj(t)x_j(t) เกี่ยวข้องกับการแก้ระบบสมการเชิงเส้น Ax=bAx=b โดยที่ xx คือเวกเตอร์ของ coefficients ที่ต้องการหา AA คือเมทริกซ์ที่ขึ้นอยู่กับค่า kjk_j และ product formula SS ที่ใช้ (ได้แก่ approximation order และจำนวน Trotter steps) และ bb คือเวกเตอร์ของเงื่อนไขบังคับ ระบบสมการนี้สามารถแก้ได้แบบ exact หรือด้วยโมเดลประมาณที่ minimize 1-norm ของ coefficients นอกจากนี้ การเลือกแต่ละ kjk_j เป็นกระบวนการ heuristic แต่สามารถกำหนดขอบเขตด้วยเงื่อนไขต่อไปนี้:

  1. ค่า kjk_j ที่ใหญ่ที่สุดถูกจำกัดโดยความลึกสูงสุดของ Circuit ที่สามารถรันได้อย่างน่าเชื่อถือ
  2. kjk_j ที่เล็กที่สุดควรตอบสนอง dt=t/kj<1dt = t/k_j < 1 เนื่องจากนั่นคือจุดที่ Trotter error มีพฤติกรรมที่ดีที่สุด
  3. ไม่มี coefficients xjx_j ตัวใดควรใกล้ 00 เพราะนั่นหมายความว่ามันไม่มีส่วนสำคัญต่อ MPF
  4. ในทำนองเดียวกัน coefficient ที่เกี่ยวข้องกับค่า kjk_j ที่ใหญ่ที่สุดไม่ควรครอบงำ เพราะนั่นหมายความว่าคุณกำลังใช้ product formula เพียงตัวเดียว
  5. สุดท้าย norm ของ coefficients xjx_j ที่ได้ควรมีค่าน้อย เพราะนี่บ่งชี้ว่า MPF มีเงื่อนไขที่ดี 1

ขั้นตอนต่อไป

คำแนะนำ

เอกสารอ้างอิง

  1. A. Carrera Vazquez, D. J. Egger, D. Ochsner, and S. Wörner, "Well-conditioned multi-product formulas for hardware-friendly Hamiltonian simulation", Quantum 7, 1067 (2023).
  2. S. Zhuk, N. Robertson, and S. Bravyi, "Trotter error bounds and dynamic multi-product formulas for Hamiltonian simulation", Phys. Rev. Research 6, 033309 (2024).
  3. N. Robertson, et al. "Tensor Network enhanced Dynamic Multiproduct Formulas", arXiv:2407.17405v2 [quant-ph].
Source: IBM Quantum docs — updated 13 ก.พ. 2569
English version on doQumentation — updated 7 พ.ค. 2569
This translation based on the English version of 11 มี.ค. 2569