ความเป็นสากลของประตู Toffoli


20

เกี่ยวกับประตูควอนตัมทอฟโฟลี :

  1. มันเป็นสากลคลาสสิคและถ้าเป็นเช่นนั้นทำไม?
  2. มันเป็นควอนตัมสากลหรือไม่?

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

8
ในตรรกะเชิงควอนตัมประตู Toffoli นั้นไม่ได้เป็นสากลเพราะคุณสามารถทำการคำนวณแบบดั้งเดิมได้เท่านั้น คุณต้องมีประตูควอนตัมด้วยว่าหากอินพุตอยู่ในสถานะพื้นฐานทำให้เอาต์พุตเป็นสถานะซ้อนทับของสถานะพื้นฐาน
Peter Shor

ฉันรู้ว่าคำถามอาจทำให้สับสนบางทีมันควรแก้ไขเพื่อถามความแตกต่างระหว่างความเป็นสากลในโลกควอนตัม / คลาสสิก
Ran G.

ฉันแก้ไขคำตอบของฉันเพื่อครอบคลุมกรณีควอนตัม คุณคิดอะไรอยู่ตอนนี้
Victor Stafusa

1
@RanG เราควรจะแสดงวิธีการสำหรับคำถามในอนาคตคำถามนี้มีการติดแท็กการบ้าน แต่ปรากฏว่าคุณไม่ได้อธิบายว่าทำไมคุณไม่สามารถแก้ปัญหาด้วยตัวคุณเอง (และปัญหาอยู่ที่ไหน) ฉันคิดว่ามันไม่ใช่คำถามที่ดีสำหรับเบต้าส่วนตัว (ดูการสนทนาเมตา ) ฉันโหวตให้ปิดคำถามนี้
Gopi

คำตอบ:


13

Toffoli เป็นสากลสำหรับการคำนวณแบบคลาสสิก (ดังที่แสดงโดย @Victor) อย่างไรก็ตาม Toffoli ไม่ได้เป็นสากลสำหรับการคำนวณควอนตัม (เว้นแต่ว่าเรามีสิ่งที่บ้าเช่น )P=BQP

เพื่อให้เป็นสากลสำหรับการคำนวณควอนตัม (ภายใต้คำจำกัดความปกติ) กลุ่มที่สร้างโดยประตูของคุณจะต้องมีความหนาแน่นในหน่วย ในคำอื่น ๆ ที่กำหนดโดยพลและเป้าหมายรวมมีวิธีการประยุกต์ใช้จำนวน จำกัด ของคุณประตูควอนตัมที่จะได้รับรวมดังกล่าวว่า<\U U | | U - U | | < ϵϵUU||UU||<ϵ

Toffoli โดยตัวของมันเองนั้นไม่ได้เป็นสากลภายใต้คำจำกัดความนี้เนื่องจากมันมักจะใช้พื้นฐานของรัฐไปสู่พื้นฐานของรัฐและดังนั้นจึงไม่สามารถใช้สิ่งที่ตัวอย่างเช่นมันไม่สามารถสร้างการทับซ้อนได้|012(|0+|1)


10

จากบทความวิกิพีเดียที่คุณอ้างถึง :

ประตู Toffoli เป็นสากล นี่หมายความว่าสำหรับฟังก์ชั่นบูลีน f (x1, x2, ... , xm) มีวงจรประกอบด้วยประตู Toffoli ซึ่งใช้เวลา x1, x2, ... , xm และบิตพิเศษบางค่าที่ตั้งค่าเป็น 0 หรือ 1 และเอาต์พุต x1, x2, ... , xm, f (x1, x2, ... , xm) และบิตพิเศษบางอย่าง (เรียกว่าขยะ) โดยพื้นฐานแล้วนี่หมายความว่าเราสามารถใช้ประตู Toffoli เพื่อสร้างระบบที่จะทำการคำนวณฟังก์ชั่นบูลีนที่ต้องการในลักษณะย้อนกลับได้

ซึ่งหมายความว่าง่าย ๆ ที่ฟังก์ชันบูลีนใด ๆ อาจถูกสร้างขึ้นด้วยประตู Toffoli เท่านั้น

โดยทั่วไปแล้วฟังก์ชั่นบูลีนจะถูกสร้างขึ้นจาก OR, และและประตูไม่ได้ซึ่งอาจรวมกันเพื่อสร้างฟังก์ชั่นบูลีนใด ๆ มันเป็นที่รู้กันอย่างกว้างขวางว่าประตูดังกล่าวเป็นไปได้เฉพาะกับประตู NOR หรือกับประตู NAND เท่านั้น

ประตู Toffoli อาจสรุปได้ดังนี้:

Toffoli(a,b,c)={(a,b,¬c)when a=b=1(a,b,c)otherwise.

เนื่องจากเอาต์พุตแรกและเอาต์พุตที่สองจะเท่ากับอินพุตแรกและอินพุตที่สองเสมอ ดังนั้นเราจึงมี:

Toffoli(a,b,c)={¬cwhen a=b=1cotherwise.

ด้วยความที่เป็นไปได้ที่จะกำหนดเกต NAND เป็น

NAND(a,b)=Toffoli(a,b,1)

เนื่องจากประตู NAND เป็นสากลและประตู NAND อาจถูกกำหนดให้เป็นประตู Toffoli ดังนั้นประตู Toffoli จึงเป็นสากล

มีวิธีอื่นที่จะพิสูจน์ว่า Toffoli เป็นสากลโดยการสร้างประตู AND และ NOT โดยตรง:

NOT(x)=Toffoli(1,1,x)

AND(a,b)=Toffoli(a,b,0)

จากนั้นเราอาจสร้างประตู OR โดยใช้กฎหมายของ De Morgan :

OR(a,b)=NOT(AND(NOT(a),NOT(b))=Toffoli(1,1,Toffoli(Toffoli(1,1,a),Toffoli(1,1,b),0))


แก้ไขเนื่องจากคำถามถูกแก้ไขและขอบเขตมีการเปลี่ยนแปลง:

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

ประตู Toffoli สามารถย้อนกลับได้ (แต่ Toffoli 'ที่ใช้ด้านบนไม่ใช่) ซึ่งหมายความว่าการคำนวณใด ๆ ที่ทำกับมันสามารถยกเลิกได้ นี่คือ:

(a,b,c)=Toffoli(Toffoli(a,b,c))

ซึ่งหมายความว่าสำหรับทริปเปิลใด ๆ (a, b, c) หากใช้ Toffoli สองครั้งอินพุตต้นฉบับจะได้รับเป็นเอาต์พุต

การย้อนกลับเป็นสิ่งสำคัญเนื่องจากประตูควอนตัมต้องย้อนกลับได้ดังนั้นประตู Toffoli (แบบดั้งเดิม) จึงอาจถูกใช้เป็นประตูควอนตัมเนื่องจากสิ่งนี้

ดังที่แสดงไว้ที่นี่ประตู Deutsch ถูกกำหนดในลักษณะเดียวกันกับที่ประตู Toffoli เป็น แต่แทนที่จะเป็นประตูคลาสสิคมันเป็นเชิงปริมาณหนึ่ง:

Deutsch(a,b,c)=|a,b,c{icos(θ)|a,b,c+sin(θ)|a,b,1cfor a=b=1|a,b,cotherwise.

ด้วยวิธีนี้ประตู Toffoli เป็นกรณีเฉพาะของประตู Deutsch ที่:

Toffoli(a,b,c)=Deutsch(π2)(a,b,c)

ประตู Toffoli ทำการคำนวณแบบคลาสสิกมันขาดการดำเนินการเปลี่ยนเฟสซึ่งหมายความว่าประตู Toffoli อาจใช้สำหรับ 90 องศาเท่านั้น ( ) การเปลี่ยนเฟส (และรวมหลายประตูเข้าด้วยกัน) เพื่อรับผลคูณ 90 องศา) แต่นี่ก็หมายความว่ามันไม่สามารถใช้ในการสร้างสถานะ sobrepositions เพราะจะต้องมีการเลื่อนเฟสในมุมที่ไม่มากกว่า 90 องศาดังนั้นประตู Toffoli ไม่ใช่ประตูควอนตัมสากลπ2

ชุดควอนตัมควอนตัมสากลอาจได้รับถ้าเรารวมประตู Toffoli และประตู Hadamard นี่คือสิ่งที่ประตู Deutsch ทำ

การอ้างอิงที่น่าสนใจสามารถพบได้ที่นี่ , ที่นี่และที่นี่ การอ้างอิงที่มีค่าที่เป็นไปได้ซึ่งแสดงรากฐานของการแปลง Deutsch ควรอยู่ที่นี่แต่ลิงก์นั้นมีการป้องกันด้วยรหัสผ่าน


Toffolli ไม่ได้เป็นสากลสำหรับการคำนวณควอนตัมไม่ได้เป็น CNOT ด้วยตัวเอง นี่เป็นเรื่องง่ายที่จะดูเนื่องจากไม่สามารถสร้างการซ้อนทับได้
Artem Kaznatcheev

ส่วนคลาสสิกของคำตอบของคุณดีมากฉันไม่แน่ใจว่าชิ้นส่วนควอนตัมเหมาะสมหรือไม่ ไม่จำเป็นต้องยืนยันว่าประตู Toffoli เป็นสิ่งที่สามารถย้อนกลับได้เนื่องจากเป็นประตูควอนตัมที่ถูกต้องดังนั้นโดยนิยามจึงย้อนกลับได้ สำหรับ Edit2: บทความนั้นบอกว่า Hadamard, Toffoliเป็นชุดสากล แต่ฉันไม่คิดว่ามันจะบอกว่า Toffoli เป็น q-universal ด้วยตัวเอง (หรือฉันคิดถึงอะไร?)}{}
Ran G.

การอ้างอิงใน EDIT 2 ของคุณผิด บทความดังกล่าวระบุอย่างชัดเจนว่า Toffoli + Hadamard เป็นสากลไม่ใช่ Toffoli ด้วยตัวเอง
Artem Kaznatcheev

@ArtemKaznatcheev: บทความพูดว่า "Toffoli and Hadamard" จากนั้นฉันคิดว่านี่หมายถึง "Toffoli เป็นตัวอย่างและ Hadamart เป็นอีกหนึ่ง" อย่างไรก็ตามมันชัดเจนแล้ว
Victor Stafusa

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