Operación ApplyAnd

Advertencia

Esta documentación hace referencia al QDK clásico, que se ha reemplazado por el QDK moderno.

https://aka.ms/qdk.api Consulte la documentación de la API para el QDK moderno.

Espacio de nombres: Microsoft.Quantum.Canon

Paquete: Microsoft.Quantum.Standard

Invierte un cúbit de destino determinado si y solo si ambos cúbits de control están en el estado 1, utilizando medidas para realizar la operación adyacente.

operation ApplyAnd (control1 : Qubit, control2 : Qubit, target : Qubit) : Unit is Adj + Ctl

Descripción

Invierte target si y solo si ambos controles son 1, pero supone que target está en el estado 0. La operación tiene T count 4, T-depth 2 y no requiere cúbit auxiliar, y por lo tanto puede ser preferible a una operación CCNOT, si target se sabe que es 0. El adyacente de esta operación se basa en la medición y no requiere puertas T.

La aplicación controlada de esta operación no requiere cúbit auxiliar, 2^cRz puertas y no está optimizado para profundidad, donde c es el número de cúbits de control general, incluidos los dos controles de la ApplyAnd operación. La aplicación controlada adyacente requiere 2^c - 1Rz puertas (con un ángulo dos veces el tamaño de la operación no adyacente), ningún cúbit auxiliar y no está optimizado para profundidad.

Entrada

control1 : Cúbit

Primer bit cuántico de control

control2: Cúbit

Segundo bit cuántico de control

target : Qubit

Cúbit auxiliar de destino; debe estar en el estado 0

Salida: unidad

Referencias

  • Cody Jones: "Construcciones nuevas para la puerta toffoli tolerante a errores", Phys. Rev. A 87, 022328, 2013 arXiv:1212.5069 doi:10.1103/PhysRevA.87.022328
  • Craig Gidney: "Halving the cost of quantum addition", Quantum 2, page 74, 2018 arXiv:1709.06648 doi:10.1103/PhysRevA.85.044302
  • Mathias Soeken: "Quantum Oracle Circuits and the Christmas Tree Pattern", artículo del blog del 19 de diciembre de 2019 (nota: explica la construcción controlada múltiple)