ตามจริงแล้ว wwjohnsmith1 กล่าวว่าคุณสามารถรับความเร็วรากที่สองผ่านอัลกอริทึมของSchöningสำหรับ 3-SAT แต่โดยทั่วไปแล้วสำหรับอัลกอริทึมของSchöningสำหรับ k-SAT ในความเป็นจริงอัลกอริทึมแบบสุ่มจำนวนมากสำหรับ k-SAT สามารถนำไปใช้งานได้เร็วขึ้นเป็นสองเท่าบนคอมพิวเตอร์ควอนตัม
เหตุผลสำหรับปรากฏการณ์ทั่วไปนี้มีดังต่อไปนี้ อัลกอริทึมแบบสุ่มจำนวนมากสำหรับ k-SAT ที่ทำงานในเวลา (โดยเป็นฟังก์ชันที่เพิ่มขึ้นอย่างมากของ ) ทำสิ่งที่แข็งแกร่งจริง ๆ ที่เป็นแกนหลักของพวกเขามีขั้นตอนวิธีการพหุนามเวลาที่ผลการมอบหมายความพึงพอใจถ้ามีมีความน่าจะเป็นอย่างน้อย1 / T ( n ) จากนี้เป็นที่ชัดเจนว่าถ้าคุณทำซ้ำอัลกอริทึมโพลีเวลานี้O ( T ( n ) )หลายครั้งและยอมรับว่าการรันใด ๆ ส่งคืนโซลูชันคุณจะได้รับอัลกอริทึมแบบสุ่มสำหรับ k-SAT ที่ทำงานในเวลาO(T(n)poly(n))T(n)n1/T(n)O(T(n)) )O(T(n)poly(n))
ตอนนี้แทนที่จะเรียกใช้อัลกอริธึมครั้งนี้คุณสามารถเรียกใช้แอมพลิจูดแอมพลิจูดของแอมพลิจูดเวลานี้ได้ การขยายความกว้างเป็นขั้นตอนวิธีควอนตัมทั่วไปที่สามารถตัดสินใจได้ว่าอัลกอริทึมอื่นยอมรับด้วยความน่าจะเป็น 0 หรือที่มีความน่าจะเป็น1 / Tใช้เพียงO ( √O(T(n))1/Tใช้อัลกอริทึมนี้ การใช้แอมพลิจูดแอมพลิจูดกับตัวแก้ k-SAT ดังกล่าวจะให้อัลกอริทึมควอนตัมสำหรับ k-SAT กับเวลารันO ทันที( √O(T−−√)ซึ่งเร็วกว่ากำลังสองของกำลังสอง (ละเว้นคำโพลี (n))O(T(n)−−−−√poly(n))