ขั้นตอนวิธีเชิงควอนตัมสำหรับระบบเชิงเส้นของสมการ (HHL09): ขั้นตอนที่ 2 - การจัดทำสถานะเริ่มต้นและ


9

นี่คือความต่อเนื่องของอัลกอริทึมควอนตัมสำหรับระบบเชิงเส้นของสมการ (HHL09): ขั้นตอนที่ 2 -คืออะไร?|Ψ0


ในกระดาษ: อัลกอริทึมควอนตัมสำหรับระบบเชิงเส้นของสมการ (Harrow, Hassidim & Lloyd, 2009) , รายละเอียดของการใช้งานจริงของอัลกอริทึมไม่ได้รับ วิธีการที่รัฐและถูกสร้างขึ้นแล้วเป็นประเภทของ " กล่องดำ " (ดูหน้า 2-3)|Ψ0|b

|Ψ0=2Tτ=0T1sinπ(τ+12)T|τ

และ

|b=1Nbi|i

โดยที่|Ψ0เป็นสถานะเริ่มต้นของการลงทะเบียนนาฬิกาและ|bเป็นสถานะเริ่มต้นของการลงทะเบียนอินพุต

(พูด) ฉันต้องการทำอัลกอริทึมของพวกเขาในคอมพิวเตอร์ควอนตัมควอนตัมIBM16และฉันต้องการแก้สมการโดยที่คือเมทริกซ์เฮอริเทจกับรายการจริงและเป็นเวกเตอร์คอลัมน์มีรายการจริงAx=bA4×4b4×1

ลองมาตัวอย่าง:

A=[1234215635174671]

และ

b=[1234]

ด้วยขนาดของและเราควรต้องการ qubits สำหรับการลงทะเบียนอินพุตและอีก qubits สำหรับการลงทะเบียนนาฬิกาโดยสมมติว่าเราต้องการค่าลักษณะเฉพาะ แสดงด้วยความแม่นยำและความแม่นยำสูงสุดบิตสำหรับค่าลักษณะเฉพาะ (ได้มีการกล่าวถึงที่นี่ก่อนหน้านี้) ดังนั้นจะต้องใช้ qubits เพื่อจุดประสงค์นี้ (เพิ่ม qubit คือ ancilla)Ablog24=2690%32+6+1=91

คำถาม:

  1. การใช้ข้อมูลนี้เป็นไปได้หรือไม่ที่จะสร้างสถานะเริ่มต้นและในเวอร์ชันIBM qubit|Ψ0|b16

  2. หากคุณคิดว่ามีขนาดใหญ่เกินกว่าที่จะนำไปใช้กับคอมพิวเตอร์ควอนตัม IBM คุณสามารถแสดงตัวอย่างของการเตรียมสถานะเริ่มต้นสำหรับเมทริกซ์เฮอร์เมียน Hermitian (หรือเพียงแค่ให้การอ้างอิงถึง ตัวอย่าง).4×42×2A

ฉันเพียงต้องการที่จะได้รับความคิดทั่วไปเกี่ยวกับสิ่งที่สามารถทำได้ (เช่นว่ามันเป็นไปได้) ในคอมพิวเตอร์ควอนตัม IBM 16-qubit และสิ่งที่ประตูจะมีความจำเป็น ถ้าไม่ใช่คอมพิวเตอร์ควอนตัมแบบ 16 บิตของควอนตัมเครื่องจำลอง QISKit สามารถใช้เพื่อสร้างการเตรียมสถานะเริ่มต้นใหม่ของและในอัลกอริทึม HHL ได้หรือไม่? มีทางเลือกอื่นที่ดีกว่าที่จะไปเกี่ยวกับเรื่องนี้?|Ψ0|b


1
เท่าที่ฉันรู้ IBM ไม่สามารถทำ HHL ได้เพราะมันเกี่ยวข้องกับการทำสิ่งต่าง ๆ ในช่วงเวลาที่ต่างกัน แต่ฉันจะไม่แปลกใจถ้าฉันผิด @James Woottoon อาจรู้คำตอบดีกว่า
user1271772

@ user1271772 ฉันก็คิดเช่นกัน แต่ฉันก็ค่อนข้างสงสัยเพราะมีคนบอกฉันในการแชทว่าพวกเขาจำลอง HHL สำหรับติดตามเรื่องนี้บน IBM 4×4
Sanchayan Dutta

ทีนี้บางทีรูปที่ 4 ของกระดาษของ Yudong Cao (อันที่คุณเชื่อมโยง) เป็นสิ่งที่คุณต้องการแล้ว
user1271772

@ user1271772 ใช่ แต่โชคไม่ดีที่จะทำงานเฉพาะสำหรับที่เมทริกซ์โดยเฉพาะอย่างยิ่ง ฉันกำลังมองหาเทคนิคทั่วไปซึ่งฉันควรอ่านบทความนี้ให้ละเอียดยิ่งขึ้น
Sanchayan Dutta

เมื่อ John Watrous แสดงความคิดเห็นของเขาในคำถามที่มีคนถามหาวงจรเฉพาะ "คุณกำลังขอให้ผู้คนทำงานที่น่าเบื่อ แต่ยังขาดแนวคิดที่น่าสนใจ" Yudong เป็นนักศึกษาวิศวกรรมระดับปริญญาตรีเมื่อเขาสร้างวงจรเหล่านี้ เขาไม่ได้ฝึกอะไรมากไปกว่าคุณ (อันที่จริงตามความก้าวหน้าอย่างรวดเร็วของคุณคุณอาจรู้เพิ่มเติมเกี่ยวกับการคำนวณควอนตัมมากกว่าที่เขาทำตอนเขียนบทความนั้น) หากเขาสามารถสร้างวงจรนี้ได้คุณควรสร้างวงจรที่สอดคล้องกันสำหรับตัวอย่าง HHL ใด ๆ ที่อยู่ตรงหน้าคุณ
user1271772

คำตอบ:


3

ไม่สามารถสร้างสถานะเริ่มต้นและในเวอร์ชัน IBM 16 qubits ในทางตรงกันข้ามมันเป็นไปได้ที่จะประมาณพวกเขาด้วยข้อผิดพลาดต่ำโดยพลการ1เป็นประตูที่ดำเนินการโดยชิป IBM ให้ความเป็นไปได้นี้|Ψ0|b

ที่นี่คุณขอ 2 สถานะควอนตัมที่แตกต่างกัน:

  1. |bไม่ได้ถูก จำกัด เลย สถานะถูกแทนด้วยเวกเตอร์ของจำนวนเชิงซ้อนที่สามารถเป็นอะไรก็ได้ (ตราบใดที่เวกเตอร์มีบรรทัดฐานรวมกัน)|bN
  2. |Ψ0สามารถมองเห็นเป็นกรณีพิเศษของ , ที่ค่าสัมประสิทธิ์ถูก จำกัด มากขึ้น|bbi

ด้วยการวิเคราะห์นี้สามารถใช้วิธีการใดก็ได้ในการสร้างนอกจากนี้ยังสามารถใช้เพื่อสร้าง . ในขณะที่มีข้อ จำกัด มากขึ้นเราหวังว่าจะมีอัลกอริทึมที่มีประสิทธิภาพมากกว่าในการสร้าง .|b|Ψ0|Ψ0|Ψ0

มีประโยชน์สำหรับและ|b|Ψ0 : จากการสังเคราะห์วงจรควอนตัมเชิงตรรกะ (Shende, Bullock & Markov, 2006) , QISKit Python SDK ใช้วิธีการทั่วไปเพื่อเริ่มต้นสถานะควอนตัมโดยพลการ .

มีประโยชน์สำหรับ|Ψ0 : การสร้าง superpositions ที่สอดคล้องกับการแจกแจงความน่าจะเป็นแบบการได้อย่างมีประสิทธิภาพ (Grover & Rudolph, 2002)นำเสนออัลกอริทึมอย่างรวดเร็วในการเริ่มต้นสถานะ ข้อ จำกัด เหล่านี้ได้รับการเคารพสำหรับตามอัลกอริทึม Quantum สำหรับการแก้ระบบเชิงเส้นของสมการ (Harrow, Hassidim & Lloyd, 2009) , บรรทัดสุดท้ายของหน้า 5|Ψ0

สำหรับการดำเนินการกับ QISKit นี่คือตัวอย่างเพื่อเริ่มต้นสถานะควอนตัมที่กำหนด:

import qiskit

statevector_backend = qiskit.get_backend('local_statevector_simulator')

###############################################################
# Make a quantum program for state initialization.
###############################################################
qubit_number = 5
Q_SPECS = {
    "name": "StatePreparation",
    "circuits": [
        {
            "name": "initializerCirc",
            "quantum_registers": [{
                "name": "qr",
                "size": qubit_number
            }],
            "classical_registers": [{
                "name": "cr",
                "size": qubit_number
            }]},
    ],
}
Q_program = qiskit.QuantumProgram(specs=Q_SPECS)

## State preparation
import numpy as np
from qiskit.extensions.quantum_initializer import _initializer

def psi_0_coefficients(qubit_number: int):
    T = 2**qubit_number
    tau = np.arange(T)
    return np.sqrt(2 / T) * np.sin(np.pi * (tau + 1/2) / T)

def get_coeffs(qubit_number: int):
    # Can be changed to anything, the initialize function will take
    # care of the initialisation.
    return np.ones((2**qubit_number,)) / np.sqrt(2**qubit_number)
    #return psi_0_coefficients(qubit_number)

circuit_prep = Q_program.get_circuit("initializerCirc")
qr = Q_program.get_quantum_register("qr")
cr = Q_program.get_classical_register('cr')
coeffs = get_coeffs(qubit_number)
_initializer.initialize(circuit_prep, coeffs, [qr[i] for i in range(len(qr))])

res = qiskit.execute(circuit_prep, statevector_backend).result()
statevector = res.get_statevector("initializerCirc")
print(statevector)

1 "ข้อผิดพลาด" ที่นี่หมายถึงข้อผิดพลาดระหว่างสถานะอุดมคติและการประมาณค่าเมื่อจัดการกับคอมพิวเตอร์ควอนตัมที่สมบูรณ์แบบ (เช่นไม่มีความไม่มีระเบียบไม่มีข้อผิดพลาดเกท)


0

อัลกอริทึม HHL ที่มีเมทริกซ์ 4 x 4 อาจมีขนาดใหญ่สำหรับคอมพิวเตอร์ IBM ฉันลองอัลกอริทึมรุ่นของเล่นขนาดเล็กลงตามลิงค์ของ arXiv 1302.1210 ระบบการแก้สมการเชิงเส้น

ฉันอธิบายเกี่ยวกับวงจรนี้เล็กน้อยที่นี่ที่ stackexchange: /cs/76525/could-a-quantum-computer-perform-linear-algebra-faster-than-a-classical-computer/ 77036 # 77036

น่าเสียดายที่มันมีเพียง 1 qubit input ที่มีเมทริกซ์ A = 2 x 2 ซึ่งในคำตอบจะมีการเชื่อมโยงไปยังวงจร IBM


ปัญหาของการนำ 4x4 HHL มาใช้ไม่ใช่จำนวนของ qubits (จำเป็นต้องมี 7 qubits) แต่อัตราข้อผิดพลาดของประตูควอนตัมและเวลาที่ใช้ในการตกแต่ง การดำเนินการของระบบ 4x4 โดยใช้ QISKit สามารถใช้ได้ที่นี่ การดำเนินการดังต่อไปนี้arxiv.org/abs/1110.2232v2
Nelimee

การใช้งานที่ยอดเยี่ยมของ 4 x 4 HHL
Bram
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.