ค่าจำนวนเต็มต่ำสุดคืออะไรเพื่อให้การแยกตัวประกอบควอนตัมคุ้มค่า?


11

ให้เราสมมติว่าเรามีควอนตัมและคอมพิวเตอร์แบบคลาสสิกเช่นนั้นการทดลองการดำเนินการเชิงตรรกะเบื้องต้นของการแยกตัวประกอบทางคณิตศาสตร์แต่ละครั้งนั้นมีค่าใช้จ่ายเท่า ๆ กันในคลาสสิกและในการแยกตัวประกอบควอนตัม: หนึ่ง?


2
การคำนวณที่แม่นยำมากขึ้นอยู่กับรายละเอียดเช่นการใช้งานการดำเนินการเพิ่มเติมในอัลกอริทึมควอนตัมและการปฏิบัติการที่แม่นยำที่ใช้ในอัลกอริทึมการแยกตัวประกอบแบบดั้งเดิมที่ดีที่สุด ในทั้งสองกรณีเรามักจะคุ้นเคยกับการละเลยปัจจัยคงที่ในปริมาณของงานที่ต้องการ แต่แม้แต่ moreso ในกรณีคลาสสิกกว่ากรณีควอนตัม คุณจะพอใจกับการประเมินตามลำดับความสำคัญ (เช่นข้อได้เปรียบเชิงควอนตัมที่ได้รับอยู่ระหว่าง 350-370 บิต --- เพื่อให้คำตอบที่เป็นไปได้ซึ่งฉันได้สร้างขึ้นมาจากอากาศบางโดยไม่มีการวิเคราะห์จริง)
Niel de Beaudrap

@NieldeBeaudrap ฉันจะบอกว่าสำหรับเหตุผลที่คุณระบุจำนวนที่แน่นอนจะเป็นไปไม่ได้ที่จะให้ หากการประมาณการ 'ออกไปจากอากาศ' ของคุณขึ้นอยู่กับเหตุผลบางอย่างฉันคิดว่ามันน่าสนใจ (กล่าวอีกนัยหนึ่งการเดาที่ได้รับการศึกษามีค่า แต่การเดาที่ไม่ดี)
จิ้งจกที่ไม่ต่อเนื่อง

@DiscreteLizard: หากฉันมีวิธีการประเมินเสียงที่พร้อมใช้งานฉันจะไม่ได้สร้างคำตอบตัวอย่างโดยไม่มีการวิเคราะห์ :-) ฉันแน่ใจว่ามีวิธีที่เหมาะสมในการจัดทำประมาณการที่น่าสนใจ แต่สิ่งที่ฉันจะเป็น สามารถให้ได้อย่างง่ายดายจะมีแถบข้อผิดพลาดใหญ่เกินไปที่จะน่าสนใจมาก
Niel de Beaudrap

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

1
@agaitaarino: ฉันเห็นด้วยแม้ว่าคำตอบจะต้องเข้าใจบัญชีที่แม่นยำยิ่งขึ้นของประสิทธิภาพของอัลกอริธึมคลาสสิกที่ดีที่สุดสำหรับการแยกตัวประกอบ ส่วนที่เหลือสามารถทำได้โดยนักเรียนที่ดีพอสมควรในการคำนวณควอนตัม
Niel de Beaudrap

คำตอบ:


8

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

ให้เราสมมติว่า [... ] การดำเนินการเชิงตรรกะในระดับประถมศึกษาของการแยกตัวประกอบทางคณิตศาสตร์มีค่าใช้จ่ายเท่ากันในคลาสสิกและในการแยกตัวประกอบเชิงควอนตัม

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

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

|T

สมมติว่าเราได้รับล้านสถานะต่อวินาทีและเราต้องการแปลงสิ่งนี้เป็นอัตราการเพิ่ม 64 บิตเพื่อเปรียบเทียบกับเครื่องจักรแบบดั้งเดิม การเพิ่ม 64- บิตต้องใช้ 64 และประตูแต่ละครั้งต้องมี 4 ประตู 1 ล้านหารด้วย 4 หารด้วย 64 ให้ ... ประมาณ 4KHz สำหรับความคมชัดเครื่องคลาสสิคจะทำการเพิ่มพันล้านต่อวินาทีได้อย่างง่ายดาย Quantum Adders นั้นช้ากว่า Adders แบบดั้งเดิมถึงหนึ่งล้านเท่า (คาดประมาณอีกครั้งอย่างดุเดือดและโปรดจำไว้ว่าตัวเลขนี้ควรปรับปรุงตลอดเวลา)

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

การลงโทษปัจจัยที่คงที่เป็นพันล้านโดยปกติแล้วเป็นตัวจัดการข้อตกลงทันที และสำหรับอัลกอริทึมควอนตัมที่มีความได้เปรียบกำลังสองเท่านั้น (เช่น Grover) ฉันขอยืนยันว่าในความเป็นจริงแล้วตัวจัดการข้อตกลง แต่อัลกอริทึมของ Shor ดีขึ้นอย่างมากเมื่อเทียบกับกลยุทธ์แบบคลาสสิกเมื่อคุณเพิ่มจำนวนบิตในจำนวนที่จะคำนึงถึง กี่บิตก่อนที่เราจะกินไปที่ "เลวทรามต่ำช้า" 10 ^ 9 คงที่ด้วยการเติบโตแบบเลขชี้กำลังของเราในความได้เปรียบ?

พิจารณาว่าRSA-640 ได้รับความนิยมในปี 2005 โดยใช้ ~ 33 CPU ปี คอมพิวเตอร์ควอนตัมน่าจะสามารถทำตัวเลขนั้นได้ในเวลาไม่ถึงวัน หากคุณมีคอมพิวเตอร์คลาสสิคนับพันที่สามารถแก้ไขปัญหาได้พวกเขาจะเสร็จสิ้นภายในสองสัปดาห์ ดังนั้นดูเหมือนว่าควอนตัมจะชนะโดย 640 บิต แต่เพียงตามลำดับความสำคัญหรือสามเท่านั้น ดังนั้นบางทีการตัดออกจะเกิดขึ้นประมาณ 500 บิต?

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


นี่เป็นความพยายามที่ดี แต่คุณจะมาประมาณ 30 บิตได้อย่างไร คุณเปรียบเทียบอัลกอริทึมของ Shor กับอะไรเมื่อคุณพิจารณาว่าเป็นจุดไขว้
Niel de Beaudrap

1
@ NieldeBeaudrap อย่างที่ฉันพูดมันเป็นเรื่องคาดเดา ฉันคิดว่า: การคูณแบบแยกส่วนมีปัจจัยคงที่ที่เหมาะสม (แบบคลาสสิก) ดังนั้นเศษส่วนต่อเนื่อง อัลกอริทึมการแฟคตอริ่งยังมีปัจจัยคงที่ที่ดีหรือไม่? อาจจะไม่? ถ้าเป็นเช่นนั้นครอสโอเวอร์จะเกิดขึ้นเกือบจะทันทีแทนที่จะเป็นจำนวนมาก หากมีคนต้องการเปรียบเทียบสองสิ่งที่ขัดแย้งกันฉันจะอัปเดตคำตอบ ฉันถือว่า "เนื้อ" เป็นส่วนที่เหลือของมัน
Craig Gidney

1
โดยปกติฉันจะไม่คัดค้านสิ่งนี้เป็นการให้ปรีชายกเว้นว่าการคาดเดาของคุณนั้นแม่นยำในเรื่องของคำถาม (คำถามถูกวางในลักษณะที่แนะนำการรับรู้ปัญหาความเร็วสัญญาณนาฬิกา) เทคนิคที่เร็วที่สุดสำหรับการแยกตัวประกอบจำนวนมากที่เกี่ยวข้องกับปัจจัยคงที่ที่มีขนาดใหญ่ แต่ที่จริงการคำนวณกับพวกเขาคือประเด็น แต่สำหรับตัวเลขประมาณหนึ่งพันล้านเราอาจพิจารณาการแบ่งทดลองโดยใช้ตารางของจำนวนเฉพาะสูงถึง 32,767 ซึ่งจะเร็วมากในทางปฏิบัติ การเปรียบเทียบเชิงปริมาณแม้ว่าสิ่งนี้จะเป็นการเริ่มต้น
Niel de Beaudrap

6

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

คำตอบนี้ไม่ได้ตั้งใจเป็นคำตอบที่ชัดเจน แต่เป็นขั้นตอนในทิศทางที่ถูกต้องโดยอ้างอิงถึงวรรณกรรมที่มีอยู่ (แม้ว่าจะยอมรับตอนนี้กว่าสิบปีโดยเฉพาะ):

  • Van Meter, Itoh และ Ladd สถาปัตยกรรมขึ้นอยู่กับเวลาในการปฏิบัติการของแคระแกร็นของอัลกอริทึม พร ตัวนำยิ่งยวดแบบ Mesoscopic + Spintronics 2006; [ arXiv: quant-ph / 0507023 ]

Van Meter, Itoh และ Ladd พยายามเปรียบเทียบประสิทธิภาพของอัลกอริธึมของ Shor กับเทคโนโลยีการคำนวณที่มีประสิทธิภาพซึ่งทำหน้าที่ Number Field Sieve (อัลกอริทึมแบบดั้งเดิมที่รู้จักกันดีที่สุดสำหรับการแยกตัวประกอบ) ฉันไม่ได้มีเวลาที่จะดรายละเอียดของกระดาษ - คำตอบที่ดีกว่าอาจจะได้รับจากการทำเช่นนั้น - แต่รูปที่ 1 ของบทความนั้นช่วยให้เราสามารถประมาณตัวเลขที่สมเหตุสมผล:

ป้อนคำอธิบายรูปภาพที่นี่

ที่นี่เส้นโค้งที่สูงชันแสดงเวลาการคำนวณของเครือข่ายการคำนวณแบบดั้งเดิม ส่วนโค้งที่มีป้ายกำกับว่า 'NFS, 104 ชิ้น, 2003' ดูเหมือนจะบ่งบอกถึงการคำนวณ (และเวลาการคำนวณ) ของคอมพิวเตอร์ส่วนบุคคลหนึ่งร้อยสี่เครื่องในปี 2546 ตามรายงานโดย RSA Security Inc. ในปี 2004 [ http: //www.rsasecurity co.th / rsalabs / node.asp? id = 2096]

nnvv2×1011การดำเนินงานต่อวินาที การเปรียบเทียบสมมติฐานของอัลกอริทึมของชอร์จะต้องทำกับคอมพิวเตอร์ควอนตัมที่ทำงานด้วยความเร็วสัญญาณนาฬิกาที่เทียบเท่า

109

  • แม้จะมีข้อได้เปรียบในการปฏิบัติงานต่อวินาทีของปัจจัย 200 หรือมากกว่า แต่พล็อตก็ระบุว่าเมื่อใช้งาน NFS แบบคลาสสิก 200GHz นี้แล้วโดยคอมพิวเตอร์ควอนตัม 1GHz ที่ทำหน้าที่อัลกอริทึมของ Shor (ที่ประมาณ 200 หลักตัวเลข) ที่หมายเลข 330 หลัก)
  • นอกจากนี้เรายังมีเส้นโค้งฉายประสิทธิภาพ "ในปี 2018" คิดเป็น 1,000 เท่าของพลังการคำนวณแบบคลาสสิก: การสกัดกั้นด้วยคอมพิวเตอร์ควอนตัม 1GHz และ 1MHz อยู่ที่ 350 บิตและ 530 บิตตัวเลข

การเพิ่มจุดข้ามกับการคำนวณควอนตัมจากการคำนวณในปี 2546 ไปจนถึงการคาดการณ์หนึ่งครั้งในปี 2561 คิดเป็นเพิ่มความเร็วสัญญาณนาฬิกาที่ 1,000 เป็นปัจจัยประมาณ 5/3 จากสิ่งนี้เราสามารถประเมินได้ว่าข้อได้เปรียบด้านการคำนวณกับขนาดของตัวเลขที่สามารถแก้ไขได้อย่างรวดเร็วโดยคอมพิวเตอร์คลาสสิคเนื่องจากความเร็วที่เพิ่มขึ้นจากปัจจัย 200 เท่ากับ 7/6 จากนั้นเราสามารถประมาณได้ว่าจุดผ่านจุดหนึ่งของคอมพิวเตอร์คลาสสิค 1GHz ที่มี NFS พร้อมกับคอมพิวเตอร์ควอนตัม 1GHz ที่มีอัลกอริทึมของ Shor อยู่ที่ประมาณ 170 บิต

บรรทัดล่าง - คำตอบที่แม่นยำจะขึ้นอยู่กับสมมติฐานทางเทคนิคมากมายที่สามารถเปลี่ยนผลลัพธ์ที่แม่นยำอย่างมีนัยสำคัญดังนั้นจึงเป็นการดีกว่าที่จะหาการประมาณคร่าวๆ แต่คำถามนี้ได้รับการวิจัยอย่างน้อยหนึ่งครั้งก่อนหน้านี้และทำให้มีการสันนิษฐานและคาดการณ์เกี่ยวกับประสิทธิภาพตามประสิทธิภาพดั้งเดิมในปี 2546 ดูเหมือนว่าอัลกอริทึมของชอร์จะมีประสิทธิภาพสูงกว่าอัลกอริทึมแบบดั้งเดิมที่รู้จักกันดีที่สุด ประมาณ 170 บิต


นี่เป็นคำตอบที่ดี เป็นเรื่องน่าสังเกตว่าแนวคิดของ "การดำเนินการเชิงตรรกะระดับประถมศึกษา" ในระดับของประตู AND นั้นตรงข้ามกับระดับการเรียนการสอนของ CPU หรือการดำเนินการ BigInt (ซึ่งฉันสงสัยว่าเป็นสิ่งที่ผู้ถาม) คิด) ในคำตอบของฉันเองฉันได้สมมติว่าการยกกำลังแบบแยกส่วนทำได้ "ราวกับคลาสสิก" ซึ่งจะเกี่ยวข้องกับการคูณแบบ FFT นี่คือเหตุผลที่ฉันเดาตัวเลขที่ต่ำกว่ากระดาษนี้มากซึ่ง (อย่างเหมาะสม) ทำการคูณหนังสือเรียนกับระลอกคลื่นกระทำการแอดเดอร์สำหรับคณิตศาสตร์ควอนตัม
Craig Gidney

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