Cajas envueltas
Los mecanismos físicos del ruido que se producen durante la ejecución de circuitos cuánticos dependen del contexto. Al aplicar operaciones simultáneamente sobre conjuntos disjuntos de qubits, el perfil de ruido de la operación global podría diferir de los perfiles de ruido de las partes que la componen si estas se aplicaran de forma aislada. Del mismo modo, en el caso de las operaciones que, en teoría, conmutan sobre los mismos qubits, es posible que el perfil de ruido asociado a cada operación no conmute y que sea totalmente diferente si se cambia el orden de las operaciones. Por lo tanto, los protocolos destinados a suprimir, mitigar y corregir el ruido deben conocer el contexto en el que se produce.
Samplomatic utiliza las instrucciones de las casillas para interpretar conjuntos de operaciones de circuitos que deben tratarse como si tuvieran un contexto de ruido estable, y utiliza anotaciones en las casillas para permitir a los usuarios declarar y configurar esa intención. Cada cuadro es un ámbito que contiene un conjunto de qubits, operaciones que actúan sobre dichos qubits y una lista de anotaciones. Las anotaciones de Samplomatic especifican las instrucciones y los aderezos. Las instrucciones indican qué hay que hacer con la caja; por ejemplo, darle vueltas. Los «dressings» son grupos de puertas parametrizadas que se añaden al lado izquierdo o derecho de la caja; por ejemplo, una capa de puertas de un solo qubit. Las etapas de un diagrama de flujo incluyen las etapas del diagrama de bloques y las operaciones necesarias para ejecutar las instrucciones, tales como las siguientes:
- Las puertas del cuadro que son compatibles con las puertas parametrizadas y se encuentran en el mismo lado que estas.
- Puertas giratorias seleccionadas al azar de un conjunto para aleatorizar la caja.
- Compuertas de inyección de ruido muestreadas a partir de un mapa de Pauli-Lindblad.
- Puertas de cambio de base especificadas por el usuario.
Ten en cuenta que las directivas pueden modificar el formato de otras casillas.
Ejemplo
Supongamos que queremos modificar el siguiente circuito, añadiendo puertas de Pauli aleatorias antes y después de las puertas de entrelazamiento en paralelo que no alteran el contenido lógico del circuito, pero que sí modifican el modelo de ruido efectivo.
Circuito hasta el giro de Pauli.
Esto se consigue dividiendo el circuito en recuadros y añadiendo anotaciones en espiral.
Circuito con directivas de giro de Pauli. El símbolo @ se utiliza para indicar directivas; por defecto, la alineación es a la izquierda.
Cada caja «dressed» contiene una capa de puertas de un solo qubit y una capa de puertas de entrelazamiento de dos qubits en pares de qubits disjuntos. La capa de puertas de entrelazamiento está rodeada por capas de puertas de Pauli aleatorias, de tal manera que la acción lógica de la caja no se ve alterada. Estas capas de Pauli aleatorias son virtuales, al igual que una puerta Z virtual. No añaden operaciones al circuito, sino que actúan como una directiva para modificar la forma en que se implementan las puertas de un solo qubit adyacentes.
Circuito con elementos de conexión y puertas según las directivas. Los aderezos son los recuadros con línea discontinua. Las capas de Pauli unidas por flechas se anulan entre sí. La capa final de Pauli se aplicará mediante cambios de estado de los bits en los resultados de la medición.
La capa aleatoria de Pauli situada entre las puertas de entrelazamiento y las puertas de un solo qubit se integra en la capa de puertas de un solo qubit y se implementa en su «dressing». La otra capa de Pauli aleatoria se incorporará al relleno de la siguiente caja rellena.
En resumen, la directiva de giro a la izquierda (o a la derecha) implementa un Pauli aleatorio en el «dressing» de esta caja y aplica el Pauli que lo anula en el «dressing» de la siguiente (o anterior) caja. Las directivas «inject noise» y «basis change» son análogas.
Aleatorización de circuitos con puertas virtuales
Samplomatic utiliza el marco de las puertas virtuales para analizar circuitos con recuadros decorados. Desde un punto de vista conceptual, y tal y como se implementa en una instancia Samplex generada por el build() proceso, las puertas virtuales se generan en el borde de la caja opuesto a su revestimiento. Estas puertas virtuales se desplazan por el circuito siguiendo un patrón determinado y deben combinarse para formar un circuito. Si todas las puertas virtuales pueden combinarse para formar un «dressing», es posible construir aleatorizaciones del circuito de forma procedimental.
Circuito con las directivas «twirl», «basis change» e «inject noise».
Las puertas situadas en los laterales del apósito que sean compatibles con la parametrización de la plantilla del apósito pueden integrarse en ella, lo que reduce el número de puertas físicas. A estas se les llama «puertas fáciles ». El resto de la caja se denomina «hard» y se implementa tal cual.
Ejemplos de circuitos con puertas virtuales suspendidas. Las puertas virtuales situadas en el lado opuesto al vestuario no tienen dónde instalarse.
Ejemplos de circuitos en los que todas las puertas virtuales se organizan en grupos. Las mediciones tienen en cuenta las puertas de Pauli al considerar el cambio de estado de los bits que estas provocan.
Ejemplo complejo en el que se recogen todas las puertas virtuales. Las puertas virtuales generadas por una caja se pueden combinar para crear diferentes conjuntos.
Esto permite realizar construcciones en las que las cajas acabadas no tengan que tener la misma anchura.