Đối với bài thuyết trình từ các nguyên tắc đầu tiên, tôi thích câu trả lời của Ryan O'Donnell . Nhưng đối với một điều trị đại số cấp độ cao hơn một chút, đây là cách tôi sẽ làm điều đó.
Tính năng chính của hoạt động kiểm soát , đối với bất kỳ U đơn vị nào , là nó (kết hợp) thực hiện một thao tác trên một số qubit tùy thuộc vào giá trị của một số qubit đơn. Cách mà chúng ta có thể viết điều này theo đại số một cách rõ ràng (với điều khiển trên qubit đầu tiên) là:
nơi là một ma trận nhận dạng của kích thước tương tự như . Tại đây, và là các máy chiếu lên các trạng thái vàUU1 U | 0 ⟩
CU=|0⟩⟨0|⊗1+|1⟩⟨1|⊗U
1U| 1 ⟩|0⟩⟨0|| 0 ⟩ | 1 ⟩|1⟩⟨1||0⟩|1⟩ của qubit kiểm soát - nhưng chúng tôi không sử dụng chúng ở đây làm các yếu tố của phép đo, mà để mô tả hiệu ứng trên các qubit khác tùy thuộc vào một hoặc không gian con khác của không gian trạng thái của qubit đầu tiên.
Chúng ta có thể sử dụng điều này để lấy ra ma trận cho cổng thực hiện thao tác trên qubit 3, được điều hòa nhất quán ở trạng thái của qubit 1, bằng cách nghĩ rằng đây là một điều khiển- hoạt động trên qubit 2 và 3:
X( 1 2CX1,3XC X 1 , 3(12⊗X)
CX1,3=|0⟩⟨0|⊗14+|1⟩⟨1|⊗(12⊗X)=[140404(12⊗X)]=⎡⎣⎢⎢⎢12020202021202020202X02020202X⎤⎦⎥⎥⎥,
trong đó hai cái sau là biểu diễn ma trận khối để tiết kiệm không gian (và sự tỉnh táo).
Vẫn tốt hơn: chúng ta có thể nhận ra rằng - ở một mức độ toán học nào đó, chúng ta cho phép bản thân nhận ra rằng thứ tự của các yếu tố tenor không nhất thiết phải theo một trật tự cố định - điều khiển và mục tiêu của hoạt động có thể nằm trên bất kỳ hai tenxơ nào các yếu tố và chúng ta có thể điền vào mô tả của toán tử trên tất cả các qubit khác với . Điều này sẽ cho phép chúng tôi nhảy thẳng đến đại diện
C X 1 , 312
CX1,3==|0⟩⟨0|control⊗12uninvolved⊗12target⎡⎣⎢⎢⎢12020202021202020202020202020202⎤⎦⎥⎥⎥+|1⟩⟨1|control⊗12uninvolved⊗Xtarget+⎡⎣⎢⎢⎢02020202020202020202X02020202X⎤⎦⎥⎥⎥
và cũng cho phép chúng tôi thấy ngay lập tức phải làm gì nếu vai trò của kiểm soát và mục tiêu bị đảo ngược:
CX3,1===12target⊗12uninvolved⊗|0⟩⟨0|control⎡⎣⎢⎢⎢⎢⎢|0⟩⟨0||0⟩⟨0||0⟩⟨0||0⟩⟨0|⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢10000000000001000010000000000001+Xtarget⊗12uninvolved⊗|1⟩⟨1|control+⎡⎣⎢⎢⎢⎢⎢|1⟩⟨1||1⟩⟨1||1⟩⟨1||1⟩⟨1|⎤⎦⎥⎥⎥⎥⎥00001000010000000000001000010000⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥.
Nhưng tốt nhất là: nếu bạn có thể viết ra các toán tử này theo đại số, bạn có thể thực hiện các bước đầu tiên để phân phối hoàn toàn với các ma trận khổng lồ, thay vào đó là lý do về các toán tử này theo đại số bằng cách sử dụng các biểu thức như
và
CX1,3=|0⟩⟨0|⊗12⊗12+|1⟩⟨1|⊗12⊗XCX3,1=12⊗12⊗|0⟩⟨0|+X⊗12⊗|1⟩⟨1|. Tất nhiên, sẽ có giới hạn về mức độ bạn có thể làm với những điều này - một thay đổi đơn giản trong biểu diễn khó có thể tạo ra một thuật toán lượng tử khó giải quyết một cách hiệu quả, chứ đừng nói là có thể điều chỉnh bằng cách tính toán thủ công - nhưng bạn có thể suy luận về các mạch đơn giản hiệu quả hơn nhiều sử dụng các biểu thức này hơn với ma trận ăn không gian khổng lồ.