Para una presentación de primeros principios, me gusta la respuesta de Ryan O'Donnell . Pero para un tratamiento algebraico de nivel ligeramente superior, así es como lo haría.
La característica principal de una operación de controlada , para cualquier U unitaria , es que realiza (coherentemente) una operación en algunos qubits dependiendo del valor de algún qubit único. La forma en que podemos escribir esto explícitamente algebraicamente (con el control en el primer qubit) es:
C UUU
, donde 1 es una matriz de identidad de la misma dimensión que U . Aquí | 0 ⟩
CU=|0⟩⟨0|⊗1+|1⟩⟨1|⊗U
1Uy
| 1 ⟩|0⟩⟨0|son proyectores en los estados
| 0 ⟩ y
| 1 ⟩ del qubit de control - pero no estamos usando aquí como elementos de una medición, pero para describir el efecto sobre los otros qubits en función de uno u otro subespacio del espacio de estado del primer qubit.
|1⟩⟨1||0⟩|1⟩
Podemos usar esto para derivar la matriz para la puerta que realiza una operación X en el qubit 3, condicionada coherentemente al estado del qubit 1, al considerar esto como un control- ( 1 2CX1,3X operación en qubits 2 y 3:
C X 1 , 3(12⊗X)
donde los dos últimos son representaciones de matriz de bloque para ahorrar espacio (y cordura).
C X1 , 3=El | 0 ⟩⟨ 0 | ⊗ 14 4+El | 1 ⟩⟨ 1 | ⊗ ( 12⊗ X)=[ 14 40 04 40 04 4( 12⊗X)]=⎡⎣⎢⎢⎢120 020 020 020 02120 020 020 020 02X0 020 020 020 02X⎤⎦⎥⎥⎥,
Mejor aún: podemos reconocer que, en algún nivel matemático donde nos permitimos darnos cuenta de que el orden de los factores tensoriales no tiene que estar en un orden fijo, el control y el objetivo de la operación pueden estar en dos tensor factores, y que podemos completar la descripción del operador en todos los demás qubits con . Esto nos permitiría saltar directamente a la representación
C X 1 , 312
y también nos permite ver de inmediato qué hacer si los roles de control y objetivo son invertido:
C X 3 , 1
C X1 , 3==El | 0 ⟩⟨ 0 |controlar⊗12no involucrado⊗12objetivo⎡⎣⎢⎢⎢120 020 020 020 02120 020 020 020 020 020 020 020 020 020 02⎤⎦⎥⎥⎥+El | 1 ⟩⟨ 1 |controlar⊗12no involucrado⊗Xobjetivo+⎡⎣⎢⎢⎢0 020 020 020 020 020 020 020 020 020 02X0 020 020 020 02X⎤⎦⎥⎥⎥
Pero lo mejor de todo: si puede escribir estos operadores algebraicamente, puede dar los primeros pasos para prescindir completamente de las matrices gigantes, en lugar de razonar sobre estos operadores algebraicamente usando expresiones como
CX1,3=| 0⟩C X3 , 1===12objetivo⊗12no involucrado⊗ | 0 ⟩⟨ 0 |controlar⎡⎣⎢⎢⎢⎢⎢El | 0 ⟩⟨ 0 |El | 0 ⟩⟨ 0 |El | 0 ⟩⟨ 0 |El | 0 ⟩⟨ 0 |⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢10 00 00 00 00 00 00 00 00 00 00 00 010 00 00 00 010 00 00 00 00 00 00 00 00 00 00 00 01+Xobjetivo⊗12no involucrado⊗ | 1 ⟩⟨ 1 |controlar+⎡⎣⎢⎢⎢⎢⎢El | 1 ⟩⟨ 1 |El | 1 ⟩⟨ 1 |El | 1 ⟩⟨ 1 |El | 1 ⟩⟨ 1 |⎤⎦⎥⎥⎥⎥⎥0 00 00 00 010 00 00 00 010 00 00 00 00 00 00 00 00 00 00 00 010 00 00 00 010 00 00 00 0⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥.
y
C X 3 , 1 = 1 2C X1 , 3= | 0 ⟩⟨ 0 |⊗12⊗12+ | 1 ⟩⟨ 1 |⊗12⊗X. Por supuesto, habrá un límite en cuanto a lo que puede hacer con estos: un simple cambio en la representación es poco probable que haga que un algoritmo cuántico difícil sea solucionable de manera eficiente, y mucho menos manejable mediante cálculo manual, pero puede razonar sobre circuitos simples de manera mucho más efectiva usando estas expresiones que con matrices gigantes que comen espacio.
C X3 , 1= 12⊗12⊗El | 0 ⟩⟨ 0 | + X⊗12⊗El | 1 ⟩⟨ 1 |