Für eine Präsentation nach ersten Grundsätzen mag ich die Antwort von Ryan O'Donnell . Aber für eine etwas höhere algebraische Behandlung würde ich es folgendermaßen machen.
Das Hauptmerkmal einer gesteuerten U Operation für jede unitäre U ist, dass sie (kohärent) eine Operation für einige Qubits ausführt, abhängig vom Wert eines einzelnen Qubits. Die Art und Weise , dass wir diese algebraisch explizit schreiben können (mit der Kontrolle auf der ersten Qubit) ist:
CU=|0⟩⟨0|⊗1+|1⟩⟨1|⊗U
wobei
1 eine Identitätsmatrix mit der gleichen Dimension wie
U . Hier,
|0⟩⟨0|und
sind Projektoren auf die Staaten
| 0 ⟩ und
| 1 ⟩ der Steuer Qubit - aber wir sind mit ihnen nicht hier als Elemente einer Messung, aber die Auswirkungen auf den anderen Qubits aufeinen oder anderen Unterraum des Zustandsraumes des ersten QubitAbhängigkeit zu beschreiben.
|1⟩⟨1||0⟩|1⟩
Wir können dies verwenden, um die Matrix für das Gatter abzuleiten , das eine X- Operation an Qubit 3 ausführt , die kohärent vom Zustand von Qubit 1 abhängig ist, indem wir dies als gesteuertes ( 1 2 betrachtenCX1,3X Operation auf Qubits 2 und 3:
C X 1 , 3(12⊗X)
CX1,3=|0⟩⟨0|⊗14+|1⟩⟨1|⊗(12⊗X)=[140404(12⊗X)]=⎡⎣⎢⎢⎢12020202021202020202X02020202X⎤⎦⎥⎥⎥,
wobei die beiden letzteren Blockmatrixdarstellungen sind, um Platz (und Vernunft) zu sparen.
Besser noch: Wir können erkennen, dass - auf einer mathematischen Ebene, auf der wir uns erlauben zu erkennen, dass die Reihenfolge der Tensorfaktoren nicht in einer festen Reihenfolge sein muss - die Kontrolle und das Ziel der Operation auf zwei beliebigen Tensoren liegen können Faktoren, und dass wir die Beschreibung des Operators auf allen anderen Qubits mit ausfüllen können . Dies würde es uns ermöglichen, direkt zur Darstellung C X 1 , 3 zu springen
12
CX1,3==|0⟩⟨0|control⊗12uninvolved⊗12target⎡⎣⎢⎢⎢12020202021202020202020202020202⎤⎦⎥⎥⎥+|1⟩⟨1|control⊗12uninvolved⊗Xtarget+⎡⎣⎢⎢⎢02020202020202020202X02020202X⎤⎦⎥⎥⎥
and also allows us to immediately see what to do if the roles of control and target are reversed:
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⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥.
But best of all: if you can write down these operators algebraically, you can take the first steps towards dispensing with the giant matrices entirely, instead reasoning about these operators algebraically using expressions such as
CX1,3=|0⟩⟨0|⊗12⊗12+|1⟩⟨1|⊗12⊗X
and
CX3,1=12⊗12⊗|0⟩⟨0|+X⊗12⊗|1⟩⟨1|.
There will be a limit to how much you can do with these, of course — a simple change in representation is unlikely to make a difficult quantum algorithm efficiently solvable, let alone tractable by manual calculation — but you can reason about simple circuits much more effectively using these expressions than with giant space-eating matrices.