เราสามารถเร่งอัลกอริทึมของโกรเวอร์ด้วยการรันกระบวนการแบบขนานได้หรือไม่?


10

ในการคำนวณแบบคลาสสิกเราสามารถรันการค้นหาคีย์ (เช่น AES) โดยการเรียกใช้โหนดการคำนวณแบบขนานให้มากที่สุด

เป็นที่ชัดเจนว่าเราสามารถใช้อัลกอริทึมของ Grover ได้เช่นกัน

คำถามของฉันคือ ; เป็นไปได้ไหมที่จะเพิ่มความเร็วโดยใช้อัลกอริทึมของ Grover มากกว่าหนึ่งตัวในการคำนวณแบบดั้งเดิม

คำตอบ:


6

แน่นอน! ลองนึกภาพคุณK=2k สำเนาของ oracle การค้นหา USที่คุณสามารถใช้ โดยปกติคุณจะต้องค้นหาซ้ำการกระทำ

Hn(In2|00|n)HnUS,
เริ่มต้นจากสถานะเริ่มต้น (H|0)n. ต้องใช้เวลาΘ(N). (ฉันกำลังใช้In เพื่อแสดงถึง 2n×2n เมทริกซ์เอกลักษณ์.)

คุณสามารถแทนที่ด้วย 2k สำเนาแบบขนานซึ่งแต่ละดัชนีโดย x{0,1}kใช้งาน

(IkH(nk))Ik(Ink2|00|(nk))(IkH(nk))US
และเริ่มจากรัฐ |x(H|0)(nk) เวลาที่ใช้ในการรันสิ่งเหล่านี้จะลดลงเป็น O(N/K)ในราคาที่กำหนด K เพิ่มพื้นที่ว่าง

ในแง่การปรับขนาดหนึ่งอาจพิจารณาว่านี่เป็นผลลัพธ์ที่ไม่เกี่ยวข้อง หากคุณมีออราเคิลจำนวนหนึ่งแน่นอนKแล้วคุณจะได้รับการแก้ไข (Kการปรับปรุง) (เช่นถ้าคุณมี K แกนคลาสสิกแบบขนานการปรับปรุงที่ดีที่สุดที่คุณจะได้รับคือปัจจัย K) และนั่นไม่เปลี่ยนการปรับสเกล แต่มันจะเปลี่ยนเวลาทำงานพื้นฐาน เรารู้ว่าอัลกอริทึมของ Grover นั้นเหมาะสมที่สุด ใช้เวลาต่ำสุดที่แน่นอนที่เป็นไปได้ด้วย oracle เดียว ดังนั้นรู้ว่าคุณจะได้รับK การปรับปรุงในเวลานั้นมีประโยชน์โดยอ้างอิงถึงเกณฑ์มาตรฐานของเวลาการทำงานเฉพาะที่ค่าเฉพาะของ N.


แต่ถ้าคุณทำสิ่งนี้การเปรียบเทียบกับการแสดงแบบคลาสสิกจะสูญเสียความหมายบางอย่างไปใช่มั้ย ท้ายที่สุดคุณยังสามารถเร่งความเร็วการค้นหาแบบเดิมโดยเรียกใช้การดำเนินการที่ตรวจสอบว่ามีการระบุหรือไม่xคือเป้าหมายที่ขนานกันไปกับอินพุตทั้งหมด ต้องมีการตั้งสมมติฐานเพิ่มเติมอย่างชัดเจนเกี่ยวกับทรัพยากรที่มีอยู่ แต่สมมติฐานแบบเดียวกับที่คุณทำในการโต้แย้งของคุณ
glS

1
N ไปที่อินฟินิตี้ แต่ Kไม่. ปัญหาของคุณเริ่มใหญ่ขึ้น แต่ทรัพยากรของคุณยังน้อยอยู่
AHusain

1
คำตอบนี้ถูกต้อง (แม้ว่ามันอาจจะไม่เหมาะสมเพราะ DaftWullie เตือน) นี่เป็นเจตคติแบบเดียวกันที่มีต่อความขนานในขณะที่ความซับซ้อนของวงจรคลาสสิกเกิดขึ้น หากคุณต้องการความเร็วที่เพิ่มขึ้นเนื่องจากการขนานคุณจะต้องดูที่ความลึกของวงจร (เนื่องจากการประสานงานหลาย ๆ กระบวนการจะไม่ลดงานทั้งหมด) มันไม่สำคัญว่าKคงที่ --- ไม่ว่าคุณจะสนใจในการปรับปรุงเชิงลึกจากการขนานหรือไม่ เช่นเดียวกับการคำนวณควอนตัมเพียงแค่ขว้างคอมพิวเตอร์หลาย ๆ ตัวที่มีปัญหาไม่ได้ทำให้ทุกอย่างรวดเร็วอย่างน่าอัศจรรย์!
Niel de Beaudrap

3

เรียกได้ว่าถ้าเราทำแบบขนานบนโหนดต่าง ๆ คุณจะประหยัดเวลาในการวิ่ง แต่ถ้าเราพูดถึงความซับซ้อน (นั่นคือสิ่งที่เราอ้างถึงในการเร่งความเร็ว) เราต้องทำการวิเคราะห์เล็กน้อย

คุณยอมรับว่าเราต้องการ Nการดำเนินงานสำหรับกรณีที่ไม่ขนาน สมมติว่าเรามีสองโหนดและเราแยกรายการองค์ประกอบ N เป็นสองขนาดรายการN1,N2. การค้นหาในรายการย่อยจะเกิดขึ้นN1,N2.

อย่างไรก็ตามเรามีสิ่งนั้น

N=N1+N2N1+N2

และคุณจะต้องตรวจสอบผลลัพธ์ที่ได้จากสิ่งที่ส่งคืนโดยกระบวนการแบบขนานซึ่งเป็นสิ่งที่คุณต้องการ มันเพิ่มค่าคงที่ในความซับซ้อนดังนั้นโดยทั่วไปเราจึงซ่อนมันไว้ในO เอกสาร

อย่างไรก็ตามนั่นจะยังคงน่าสนใจโดยเฉพาะอย่างยิ่งถ้าเราต้องทำคลัสเตอร์ฮาร์ดแวร์เนื่องจากเรามีข้อ จำกัด ในจำนวน qubits หรือข้อ จำกัด อื่น


2
สำหรับ N1 = N2 ยังคงเป็นความไม่เท่าเทียมกัน: sqrt (2) * sqrt (N1) <2 * sqrt (N1)
Mariia Mykhailova

โอ้จริง ๆ ในหัวของฉัน $ \ sqrt {a b} = \ sqrt {a} \ sqrt {b} $ ฉันคิดว่า ฉันควรหยุดตอบคำถามที่นี่ตอนเที่ยงคืนและเมื่อเหนื่อย ขอบคุณสำหรับการชี้ให้เห็นว่า
cnada

3
@cnada: มีแนวคิดที่ซับซ้อนแตกต่างกันอย่างน้อยสองประการซึ่งทั้งสองอย่างนี้เกี่ยวข้องกับการเร่งความเร็ว หนึ่งคือความซับซ้อนของขนาดและหนึ่งคือความซับซ้อนเชิงลึก เว้นแต่ระบุไว้เป็นอย่างอื่นเรามักจะพิจารณาความซับซ้อนของขนาด แต่ความซับซ้อนเชิงลึกยังคงเป็นสิ่งที่น่าสนใจอย่างมากในความซับซ้อนของการคำนวณควอนตัมเช่นใน MBQC [arXiv: quant-ph / 0301052 , arXiv: 0704.1736 ] และผลลัพธ์ล่าสุด การแยกความลึกแบบไม่มีเงื่อนไข[arXiv: 1704.00690 ]
Niel de Beaudrap

@NieldeBeaudrap ฉันคิดว่าคนดูความซับซ้อนในเชิงลึกมากขึ้น แต่สำหรับ Grover ความซับซ้อนของขนาดและความลึกนั้นเกี่ยวกับลำดับเดียวกัน นั่นคือสมการกำลังสองในขนาดของปัญหา (โดยทั่วไปจะเห็นว่าเป็นขนาดของรายการองค์ประกอบ N) คุณคิดว่าแนวทางของฉันที่นี่ไม่ถูกต้องหรือไม่?
cnada

2
คุณไม่ได้พูดอะไรผิดปกติฉันแค่ชี้ให้เห็นว่าคุณเน้นความซับซ้อนของขนาดมากเกินไปและไม่ได้ผลประโยชน์จากความซับซ้อนเชิงลึก ไม่มีอะไรน่าสนใจเกิดขึ้นถ้าคุณทำได้kO(1) กระบวนการโกรเวอร์แบบขนาน แต่เป็นคำตอบของ DaftWullie แนะนำ (และพิจารณาโพสต์โพรเซสซิง - คลาสสิก) ความซับซ้อนที่ลึกลงไป N ถึง log(k)N/k สำหรับ k(N)Ω(1) กระบวนการโกรเวอร์แบบขนานซึ่งเป็นการปรับปรุงโดยปัจจัย k/log(k)(ปัจจัยบันทึกมาจากการระบุว่าหากกระบวนการใดพบวิธีแก้ปัญหา)
Niel de Beaudrap
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.