อัลกอริทึมการค้นหาของ Grover มีแอปพลิเคชันใด


14

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

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

คำตอบ:


7

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

บทนำ :

ปัญหาการชนกันส่วนใหญ่มักอ้างถึงรุ่น2 ต่อ 1ซึ่งอธิบายโดย Scott Aaronson ในวิทยานิพนธ์ปริญญาเอกของเขา ระบุว่าคือแม้และฟังก์ชั่นF : { 1 , . . , n } { 1 , . . , n }เรารู้ล่วงหน้าว่าfเป็น 1 ต่อ 1 หรือ 2 ต่อ 1 เราได้รับอนุญาตให้ทำการสอบถามเกี่ยวกับค่าของf ( i )สำหรับi { 1 , 2 ,nf:{1,...,n}{1,...,n}ff(i) } จากนั้นปัญหาจะถามว่ามีคำถามจำนวนเท่าใดที่เราต้องพิจารณาเพื่อให้แน่ใจว่า fเป็น 1 ต่อ 1 หรือ 2 ต่อ 1i{1,2,...,n}f

การแก้ไขรุ่น 2 ต่อ 1 ต้องกำหนดอย่างแน่นอนต้องใช้แบบสอบถามและโดยทั่วไปแล้วฟังก์ชั่น r-to-1 ที่แตกต่างจากฟังก์ชั่น 1 ต่อ 1 ต้องใช้n /n/2+1คำสั่งn/r+1

วิธีการแก้ปัญหาแบบคลาสสิกที่กำหนด :

นี่เป็นแอปพลิเคชันที่ตรงไปตรงมาของหลักการของช่องพิราบ: หากฟังก์ชั่นคือ r-to-1, หลังจากนั้นหลังจากการค้นหาเรารับประกันว่าจะพบการชนกัน หากฟังก์ชั่นเป็น 1 ต่อ 1 แสดงว่าไม่มีการชนกัน หากเราโชคไม่ดีการค้นหาด้วยn / rสามารถส่งคืนคำตอบที่ชัดเจนได้ ดังนั้นจึงจำเป็นต้องค้นหาn / r + 1n/r+1n/rn/r+1

โซลูชันคลาสสิกแบบสุ่ม :

หากเราอนุญาตให้สุ่มปัญหาได้ง่ายขึ้น โดยวันเกิดที่ผิดธรรมดาถ้าเราเลือก (แตกต่าง) แบบสอบถามแบบสุ่มจากนั้นมีความน่าจะเป็นสูงที่เราจะพบการชนกันในฟังก์ชัน 2 ต่อ 1 คงที่หลังจาก ข้อความค้นหาΘ(n)

ควอนตัมโซลูชั่น BHT :

โดยสังหรณ์ใจอัลกอริทึมรวมการเร่งความเร็วรากที่สองจาก ความขัดแย้งวันเกิด โดยใช้การสุ่ม (คลาสสิก) กับการเร่งความเร็วรากที่สองจากอัลกอริทึมของโกรเวอร์ (ควอนตัม)

ครั้งแรกปัจจัยการผลิตที่จะได้รับการคัดเลือกโดยการสุ่มและสอบถามที่ทั้งหมดของพวกเขา หากมีการขัดแย้งกันระหว่างอินพุตเหล่านี้เราจะส่งคืนคู่การชนของอินพุต มิฉะนั้นปัจจัยเหล่านี้ทั้งหมด map กับค่าที่แตกต่างกันโดยฉ จากนั้นอัลกอริทึมของ Grover จะใช้ในการค้นหาอินพุตใหม่ไปยังfที่ collides เนื่องจากมีเพียง n 2 / 3ปัจจัยการผลิตดังกล่าวเพื่ออัลกอริทึมของโกรเวอร์สามารถหาหนึ่ง (ถ้ามี) โดยการทำเพียง O ( n1/3ffffn2/3fO(n2/3)=O(n1/3)f

แหล่งที่มา:

  1. https://en.wikipedia.org/wiki/Collision_problem

  2. https://en.wikipedia.org/wiki/BHT_algorithm

  3. อัลกอริทึมควอนตัมสำหรับปัญหาการชน - Gilles Brassard, Peter Hoyer, Alain Tapp


n1/3fxf(x)f(x)n1/3xf(x) . การรู้จำนวนที่แน่นอนของรายการที่ทำเครื่องหมายไว้ (ถ้า 2-1 ต่อ 1) Grover's (เกือบ) รับประกันการแก้ปัญหา
DaftWullie

@ DaftWullie ใช่แน่นอนว่าเหมาะสม อัลกอริทึมของ Grover ไม่รับประกันโซลูชัน แต่มีโอกาสสูงที่จะให้บริการโซลูชันที่ถูกต้อง แต่นั่นไม่ชัดเจนจากคำอธิบายของ Wikipedia เองใช่ไหม ฉันไม่แน่ใจว่าฉันเข้าใจประเด็นหรือคัดค้านที่คุณกำลังทำอยู่ ฉันพลาดอะไรไปรึเปล่า?
Sanchayan Dutta

ทั้งหมดที่ผมสามารถพูดได้ก็คือว่ามันไม่ได้เป็นที่เห็นได้ชัดกับผม ในการอ่านครั้งแรกฉันเข้าใจ (เท็จ) ว่าสำหรับโกรเวอร์แทนที่จะเตรียมการซ้อนทับของสถานะที่เป็นไปได้ทั้งหมดมันเตรียมการซ้อนทับเหนือสิ่งที่ไม่ได้ทดสอบ แต่นั่นสำคัญอย่างยิ่งต่อวิธีการอธิบายความเร็ว นอกจากนี้ในตอนแรกฉันกังวลเกี่ยวกับวิธีการตรวจสอบการชน: คู่ใดที่ทำการตรวจสอบการชนและการคำนวณการชนได้อย่างมีประสิทธิภาพเพียงใด
DaftWullie

@DaftWullie อ่าโอเค ฉันเข้าใจประเด็นของคุณ Wikipedia ไม่ได้ให้รายละเอียดของอัลกอริทึมมากนัก คุณสามารถอ้างถึงเอกสารต้นฉบับได้เสมอ ( arxiv.org/abs/quant-ph/9705002 ) สำหรับรายละเอียด (ซึ่งฉันเดาว่าคุณทำไปแล้ว) ต่อมาฉันจะพยายามขยายคำตอบนี้เพื่อรวมรายละเอียดทั้งหมด ฉันยังอ่านกระดาษอยู่
Sanchayan Dutta

1
การอภิปรายใด ๆ ของ BHT ควรรวมถึงข้อแม้ที่ค่าใช้จ่ายสูงกว่าการค้นหาการชนแบบดั้งเดิมที่ล้ำสมัยด้วยเครื่อง van Oorschot – Wiener ดูcr.yp.to/papers.html#collisioncostหรือblog.cr.yp.to/20171017-collisions.htmlสำหรับรายละเอียด (หลังคือการตอบสนองต่อการปรับปรุงที่ถูกกล่าวหาใน BHT ที่อ้างว่าเป็นค่าใช้จ่ายที่มีประสิทธิภาพมากกว่าการค้นหาการชนกันแบบดั้งเดิม)
Squeamish Ossifrage

4

อัลกอริธึมของ Grover มีการใช้อย่างกว้างขวางในการเข้ารหัสควอนตัมเช่นกัน มันสามารถใช้ในการแก้ปัญหาต่าง ๆ เช่นปัญหาลอการิทึมยอดเยี่ยมปัญหาการค้นหารูตพหุนาม ฯลฯ


คุณสนใจที่จะอธิบายรายละเอียดเล็กน้อยหรือไม่? ปัญหาเหล่านี้คืออะไร? ฉันจะอ่านเพิ่มเติมเกี่ยวกับพวกเขาได้ที่ไหน
DaftWullie

1
ieeexplore.ieee.org/document/7016940นี่คือกระดาษ ieee ที่พยายามพัฒนาอัลกอริทึมควอนตัมสำหรับการแก้ปัญหาการค้นหารากของพหุนาม คุณสามารถอ่านเพิ่มเติมได้ที่นั่น
da281

0

อัลกอริทึมของ Grover สามารถใช้เพื่อแก้ปัญหาการเพิ่มประสิทธิภาพเชิงตัวเลขใด ๆ ได้เร็วกว่าการค้นหาแบบ brute-force เนื่องจากปัญหาการปรับให้เหมาะสมสามารถกำหนดเป็นปัญหาการค้นหาได้ M ภายในการวิ่งแต่ละครั้งและคุณทำซ้ำเพื่อหาจำนวนลอการิทึมของการวิ่งโดยใช้การค้นหาแบบไบนารีเพื่อกลับบ้านไปสู่สิ่งที่ดีที่สุด M): https://epubs.siam.org/doi/abs/10.1137/040605072?journalCode=sjope8

ในความเป็นจริงอัลกอริทึมของโกรเวอร์เป็นที่รู้จักกันดีขั้นตอนวิธีการควอนตัมสำหรับหลาย ๆ ปัญหาการเพิ่มประสิทธิภาพยาก (เช่นคน NP-สมบูรณ์) ที่ไม่ได้มีโครงสร้างที่เป็นมากคล้อยตามขั้นตอนวิธีฉลาดคลาสสิกกว่าการค้นหาแรงเดรัจฉาน: https: // link.springer.com/chapter/10.1007/978-3-540-78773-0_67

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