Guía de introducción a la computación cuántica con MATLAB
MATLAB Support Package for Quantum Computing permite crear, simular y ejecutar algoritmos cuánticos.
| Puerta de un solo qubit | |||
| Aplique una puerta de un solo qubit a un circuito cuántico. El valor indicado entre paréntesis () corresponde al índice del qubit al que se aplica la puerta. | |||
| Objeto de circuito cuántico | Representación gráfica | Matriz | |
|---|---|---|---|
| Sintaxis | >> qc=quantumCircuit(xGate(1)) |
|
>> getMatrix(qc) |
| Salida |
|
|
|
| Puerta de un solo qubit | Descripción |
|---|---|
|
xGate = Rotación de π alrededor del eje x aplicada al qubit 1 |
|
yGate = Rotación de π alrededor del eje y aplicada al qubit 1 |
|
zGate = Rotación de π alrededor del eje z aplicada al qubit 1 |
|
sGate = Rotación positiva de π/2 alrededor del eje z |
|
tGate = Rotación positiva de π/4 alrededor del eje z |
|
tiGate = Rotación negativa de π/4 alrededor del eje z |
|
hGate = Puerta de Hadamard |
|
idGate = Puerta identidad (no realiza ninguna operación) |
Las puertas de rotación son puertas de un solo qubit que aceptan dos argumentos. El primero es el índice del qubit al que se aplica la puerta; el segundo es el ángulo de rotación o la fase (θ) en radianes
Puerta de un solo qubit parametrizada |
Descripción |
|
rxGate = Puerta de rotación alrededor del eje x |
|
ryGate = Puerta de rotación alrededor del eje y |
|
rzGate = Puerta de rotación alrededor del eje z |
|
r1Gate = Puerta de rotación alrededor del eje z con fase global |
Puertas con un solo qubit de control
Aplique una puerta con un solo qubit de control a un circuito cuántico. Estas puertas aceptan dos argumentos entre paréntesis (); el primero es el qubit de control y el segundo es el qubit objetivo. Si el qubit de control se encuentra en el estado |0>, la puerta no realiza ninguna operación. Si el qubit de control se encuentra en el estado |1>, la puerta especificada actúa sobre el qubit objetivo. >> cxGate(control,target)
Qubit con índice 1: qubit de control
Qubit con índice 2: qubit objetivo
Las puertas de rotación controladas son puertas de dos qubits que aceptan tres argumentos. El primero es el qubit de control, el segundo es el qubit objetivo, y el tercero es el ángulo de rotación o la fase (θ) en radianes.
Puerta de dos qubits |
Descripción |
|
cxGate o cnotGate = Rotación de π alrededor del eje x aplicada al qubit 2 si el qubit 1 se encuentra en el estado |1> |
|
cyGate = Rotación de π alrededor del eje y aplicada al qubit 2 si el qubit 1 se encuentra en el estado |1> |
|
czGate = Rotación de π alrededor del eje z aplicada al qubit 2 si el qubit 1 se encuentra en el estado |1> |
|
chGate = Puerta de Hadamard controlada |
Puerta de dos qubits parametrizada |
Descripción |
|
crxGate = Puerta de rotación controlada alrededor del eje x |
|
cryGate = Puerta de rotación controlada alrededor del eje y |
|
crzGate = Puerta de rotación controlada alrededor del eje z |
|
cr1Gate = Puerta de rotación controlada alrededor del eje z con fase global |
Puertas especiales
Puerta |
Descripción |
compositeGate (qc, [1,2]) |
Construye una puerta compuesta a partir de un circuito cuántico interno y devuelve un objeto CompositeGate. En el ejemplo, qc es el circuito cuántico interno. |
|
Puerta X doblemente controlada (puerta CCNOT o puerta de Toffoli) |
mcxGate(1:3,4,5) |
Puerta X multicontrolada. El primer argumento corresponde a tres qubits de control (1,2,3), el segundo a un qubit objetivo (4), y el tercero a un qubit auxiliar (5). Esta puerta actúa sobre un solo qubit objetivo en función de los estados de los qubits de control. El número de qubits auxiliares determina el número de puertas simples. |
|
Puerta de transformada cuántica de Fourier (QFT) |
En las puertas siguientes, el primer y segundo argumentos corresponden a los índices de los qubits, y el tercero a la fase (θ), excepto en swapGate, que tiene dos argumentos. Intercambiar los dos qubits objetivo no modifica la operación de ninguna de las puertas siguientes.
Puerta |
Descripción |
|
Puerta de acoplamiento Ising XX |
|
Puerta de acoplamiento Ising YY |
|
Puerta de acoplamiento Ising ZZ |
|
Intercambia los valores de los qubits. |
| Operaciones con circuitos cuánticos | ||
Operación |
Ejemplo |
Salida |
|
|
|
|
>> bell_inverted=inv(bell); plot(bell_inverted) |
|
getMatrix = Representación matricial de un circuito cuántico o una puerta |
>> getMatrix(bell) |
|
generateQASM = Genera código QASM |
>> generateQASM(bell) |
|
simulate(circuit, inputState), = Simula el circuito, permite especificar su estado cuántico inicial y devuelve un objeto QuantumState |
>> simulate(bell) |
|
unpack = Descompone las puertas compuestas contenidas en un circuito cuántico |
|
|
Operaciones con circuitos cuánticos simulados |
||
Operación |
Ejemplo |
Salida |
Inicializar el estado cuántico del circuito de modo que el qubit 1 (el qubit superior en la representación gráfica del circuito) se establezca en |1> y el segundo en |0> |
S=simulate(bell,"10") |
|
Mostrar los estados base de salida y sus amplitudes |
|
|
Mostrar el estado final del circuito, como la base en la que se representa cada qubit |
|
|
Mostrar los estados posibles y la probabilidad de medir cada estado |
|
states = "00" P= |
| Muestrear aleatoriamente el estado cuántico del circuito con cualquier número de ejecuciones |
|
|
Función |
Descripción |
|
Realiza conexión a un dispositivo Amazon Braket especificando el nombre del dispositivo, la región y la ruta del bucket de S3 donde se almacenarán los resultados |
|
Realiza conexión a un dispositivo cuántico de IBM especificando el nombre del dispositivo y las credenciales de la cuenta |
|
Obtiene información adicional sobre el dispositivo |
|
Crea una tarea para ejecutar el circuito en el dispositivo |
|
Comprueba el estado de una tarea |
|
Recupera el resultado de la ejecución del circuito |
|
>> plot(qftGate(1:3))
|
|
| >> GitHub con ejemplos | ||