ขั้นตอนวิธีของชอร์

ขั้นตอนวิธีของชอร์ ตั้งชื่อตามนักคณิตศาสตร์ชื่อปีเตอร์ ชอร์ที่คิดขึ้นในปี ค.ศ. 1994 โดยขั้นตอนวิธีนี้เป็นขั้นตอนวิธีควอนตัม (ขั้นตอนวิธีที่ทำงานบนควอนตัมคอมพิวเตอร์) ที่ใช้ในการแยกตัวประกอบของจำนวนเต็ม ซึ่งโดยทั่วไปแล้วใช้ในการแก้ปัญหา: ให้จำนวนเต็ม "N" แล้วให้หาตัวประกอบเฉพาะของ "N"
ในควอนตัมคอมพิวเตอร์นั้น การแยกตัวประกอบด้วยขั้นตอนวิธีของชอร์จะใช้เวลาในการทำงานไม่เกินฟังก์ชันพหุนาม (Polynomial) ของขนาดข้อมูล โดยจะใช้เวลาเป็น O((log N)3) ซึ่งแสดงให้เห็นว่าเป็นการแก้ปัญหาการแยกตัวประกอบของจำนวนเต็มที่มีประสิทธิภาพในควอนตัมคอมพิวเตอร์ วิธีนี้จัดเป็นวิธีที่เร็วกว่าหลาย ๆ วิธีที่มีประสิทธิภาพที่รู้จักกันทั่ว ๆ ไปทีมักจะใช้เวลาเป็นฟังก์ชันเลขชี้กำลัง (Exponential) ขนาดของข้อมูล
ให้ควอนตัมคอมพิวเตอร์มีจำนวนคิวบิตที่เพียงพอ ขั้นตอนวิธีของชอร์จะสามารถถอดรหัสประเภทระบบเข้ารหัสแบบกุญแจอสมมาตรได้ ยกตัวอย่างเช่น รหัสลับRSA โดยRSAนั้นตั้งอยู่บนสมมติฐานที่ว่าการคำนวณหาตัวประกอบของเลขที่มีจำนวนมาก ๆ นั้นเป็นไปไม่ได้ เท่าที่รู้กันสมมติฐานนี้ใช้ได้สำหรับคอมพิวเตอร์ทั่วไป และไม่มีขั้นตอนวิธีใดที่จะทำงานในเวลาไม่เกินฟังก์ชันพหุนาม อย่างไรก็ตามขั้นตอนวิธีของชอร์แสดงให้เห็นถึงวิธีการแยกตัวประกอบที่มีประสิทธิภาพในควอนตัมคอมพิวเตอร์ เพื่อให้ควอนตัมคอมพิวเตอร์มีขนาดที่ใหญ่พอที่จะถอดรหัส RSA ได้ จึงสร้างแรงจูงใจอย่างมากในการออกแบบและการสร้างควอนตัมคอมพิวเตอร์ และสำหรับศึกษาแบบวิธีการบนควอนตัมคอมพิวเตอร์ใหม่ ๆ ในขณะที่ก็มีการให้การสนับสนุนการวิจัยระบบการเข้ารหัสแบบใหม่เพื่อสร้างความปลอดภัยจากควอนตัมคอมพิวเตอร์ เรียกว่าวิทยาการเข้ารหัสลับหลังควอนตัม (post-quantum cryptography)
กระบวนการของขั้นตอนวิธีของชอร์.
ปัญหาที่เราต้องการจะหาคำตอบคือ: ให้ <math>N</math> เป็นจำนวนประกอบที่เป็นเลขคี่ ให้หาจำนวนเต็ม d ที่อยู่ระหว่าง "1" และ <math>N</math> และ หาร <math>N</math> ลงตัว เราสนใจ <math>N</math> ที่มีค่าเป็นจำนวนคี่เนื่องจากถ้าเป็นจำนวนคู่จะมี “2” เป็นตัวประกอบเฉพาะอยู่แล้ว โดยเราสามารถใช้การทดสอบจำนวนเฉพาะเพื่อหาว่า <math>N</math> นั้นเป็นจำนวนประกอบหรือไม่
นอกจากนั้นแล้ว เรายังต้องการ <math>N</math> ที่ไม่ใช่เลขยกกำลังของจำนวนเฉพาะ เราสามารถทดสอบโดยใช้รากที่ 2, รากที่ 4, ..., รากที่ k ของ N โดยที่ <math>k \le \log_{2} (N) </math> และต้องตรวจสอบว่าไม่มีจำนวนใดในนั้นที่เป็นจำนวนเต็ม
เนื่องจาก <math>N</math> ไม่ใช่เลขยกกำลังของจำนวนเฉพาะ คำตอบต้องเป็นผลลัพธ์ของจำนวนเฉพาะสองตัวที่มีค่ามากกว่า 1 จากทฤษฎีบทเศษเหลือของจีน โดยจุดมุ่งหมายของอัลกอริทึมนี้คือการหาตัวประกอบของNที่มีค่าไม่เป็น 1 และ -1
ในการแยกตัวประกอบโดยใช้ขั้นตอนวิธีของชอร์นั้นประกอบด้วย 2 ส่วนคือ
ประวัติของขั้นตอนวิธีของชอร์.
แนวคิดที่จะใช้การคำนวณต่าง ๆ บนอุปกรณ์ที่อยู่ทำงานด้วยพื้นฐานของกลศาสตร์ควอนตัมเริ่มมีการนำเสนอมาตั้งแค่ทศวรรษที่ 1970 จากทั้งนักคอมพิวเตอร์ และนักฟิสิกส์หลายคน โดยแนวคิดนี้เริ่มต้นมาจากการที่พวกเขาทั้งหลายได้เริ่มไตร่ตรองถึงขีดจำกัดในการคำนวณ เนื่องมาจากกฎของมัวร์ (Moore’s law) ซึ่งจะทำให้ขนาดวงจรบนชิพซิลิกอนนั้นมีขนาดเล็กลงไปเรื่อย ๆ จนถึงขนาด 2-3 อะตอม ซึ่งถ้าหากมีขนาดเล็กขนาดนั้นก็จะทำให้อะตอมแสดงคุณสมบัติของควอนตัมออกมาในวงจร จึงเกิดแนวคิดเกี่ยวกับคอมพิวเตอร์ชนิดใหม่ที่จะทำงานบนพื้นฐานของกฎทางกลศาสตร์ควอนตัม
ในปี 1982 เฟย์แมน ได้เสนอว่า มีความเป็นไปได้ที่ควอนตัมคอมพิวเตอร์จะทำงานได้เร็วกว่าคอมพิวเตอร์ดั้งเดิมที่มีประสิทธิภาพเป็นฟังก์ชันเลขชี้กำลัง และเครื่องจักรทัวริง (Turing machine) นั้นไม่สามารถจำลองระบบทางควอนตัมได้ หากไม่ใช้ขั้นตอนเป็นฟังก์ชันเลขชี้กำลังของหน่วยย่อยในระบบ นอกจากนี้ เฟย์แมน ยังได้แนะไว้ว่า หากใช้เครื่องมือที่มีพฤติกรรมแบบควอนตัมในตัวเองแล้ว จะสามารถทำการจำลองระบบทางควอนตัมได้โดยไม่ต้องใช้ขั้นตอนเป็นเอ็กโพเนนเชียล ซึ่งจะทำให้นักวิทยาศาสตร์สามารถทำการทดลองทางกลศาสตร์ควอนตัมบนควอนตัมคอมพิวเตอร์ได้
ต่อมาในปี 1985 ดอยซ์ ได้ขยายแนวความคิดของ เฟย์แมน ออกไปว่า ระบบทางฟิสิกส์ใด ๆ ก็ตามสามารถจำลองได้ด้วยควอนตัมคอมพิวเตอร์ ซึ่งแสดงให้เห็นว่าควอนตัมคอมพิวเตอร์มีความสามารถมากกว่าคอมพิวเตอร์ดั้งเดิมทั้งหมด หลังจากการตีพิมพ์ผลงานชิ้นนี้จึงเริ่มมีการหาทางประยุกต์ใช้ควอนตัมคอมพิวเตอร์
แต่ความพยายามในการหาวิธีประยุกต์ใช้ควอนตัมคอมพิวเตอร์นี้ ยังไม่ประสบผลสำเร็จจนกระทั่ง ปีเตอร์ ชอร์ นักวิจัยของเอทีแอนด์ที (AT&T) ได้เสนอวิธีการแก้ปัญหาการแยกตัวประกอบด้วยควอนตัมคอมพิวเตอร์ในปี 1994 โดย ชอร์ แสดงให้เห็นว่าจะต้องรวมตัวดำเนินการทางคณิตศาสตร์ที่ออกแบบมาเฉพาะกับควอนตัมคอมพิวเตอร์นั้นเข้าด้วยกันอย่างไร จึงจะสามารถทำการแยกตัวประกอบของจำนวนขนาดใหญ่ได้ จากจุดนี้เองทำให้ควอนตัมคอมพิวเตอร์ได้เปลี่ยนจากคำถามในวงการวิชาการ มาเป็นความสนใจของโลกที่จะสร้างควอนตัมคอมพิวเตอร์ขึ้นมาจริง ๆ
จนกระทั่งในปี 2001 ลีเว็น วานเดอร์ไซเพ็น นักวิจัยของไอบีเอ็ม และคณะ ได้ใช้ควอนตัมคอมพิวเตอร์แบบ เอ็นเอ็มอาร์ (NMR) ขนาด 7 คิวบิต แก้ปัญหาการแยกตัวประกอบด้วยขั้นตอนวิธีของชอร์ โดยทำการแยกตัวประกอบของ 15 ได้เป็นผลสำเร็จ
ลำดับเหตุการณ์ในการคิดค้นขั้นตอนวิธีของชอร์.
ตั้งแต่อดีตจนถึงปัจจุบัน ขั้นตอนวิธีของชอร์ได้มีการพัฒนาในการคิดค้น การออกแบบวงจร และ
การประยุกต์ใช้จริงตามลำดับ ดังนี้