Articulo de referencia

Lenguaje de computación cuántica

El lenguaje de computación cuántica ( QCL ) es uno de los primeros lenguajes de programación cuántica implementados . [ 1 ] La característica más importante de QCL es la compati...

El lenguaje de computación cuántica ( QCL ) es uno de los primeros lenguajes de programación cuántica implementados . [ 1 ] La característica más importante de QCL es la compatibilidad con operadores y funciones definidos por el usuario. Su sintaxis se asemeja a la del lenguaje de programación C y sus tipos de datos clásicos son similares a los tipos de datos primitivos de C. Es posible combinar código clásico y código cuántico en un mismo programa.

El lenguaje se creó antes de que existieran las computadoras cuánticas de múltiples cúbits, y la única implementación de QCL utiliza un intérprete con una computadora cuántica integrada que simula la física clásica.

QCL se creó para explorar conceptos de programación para computadoras cuánticas. [ 2 ] [ 3 ] [ 4 ]

La biblioteca QCL proporciona operadores cuánticos estándar utilizados en algoritmos cuánticos como: [ 5 ]

Sintaxis

  • Tipos de datos
    • Cuántico - qureg, quvoid, quconst, quscratch, qucond
    • Clásico: entero, real, complejo, booleano, cadena, vector, matriz, tensor
  • Tipos de función
    • qufunct - Operadores pseudoclásicos. Solo pueden cambiar la permutación de los estados base.
    • operador - Operadores unitarios generales. Permiten cambiar la amplitud.
    • Procedimiento: Se pueden llamar a las funciones measure, print y dump dentro de esta función. Esta función no es reversible.
  • Funciones integradas
    • Cuántico
      • qufunct - Fanout, Swap, Perm2, Perm4, Perm8, Not, CNot
      • Operador - Matriz2x2, Matriz4x4, Matriz8x8, Rotación, Mezcla, H, CPhase, SqrtNot, X, Y, Z, S, T
      • procedimiento - medir, volcar, reiniciar
    • Clásico
      • Aritmética: seno, coseno, tangente, logaritmo, raíz cuadrada, ...
      • Complejo - Re, Im, conj

Ejemplos

El tipo de dato cuántico básico integrado en QCL es el qureg (registro cuántico). Se puede interpretar como una matriz de cúbits (bits cuánticos).

qureg x1 [ 2 ]; // Registro cuántico de 2 cúbits x1 qureg x2 [ 2 ]; // Registro cuántico de 2 cúbits x2 H ( x1 ); // Operación de Hadamard en x1 H ( x2 [ 1 ]); // Operación de Hadamard en el primer cúbit del registro x2

Dado que el intérprete qcl utiliza la biblioteca de simulación qlib, es posible observar el estado interno de la máquina cuántica durante la ejecución del programa cuántico.

qcl> volcado ESTADO: 4 / 32 cúbits asignados, 28 / 32 cúbits libres 0,35355 |0> + 0,35355 |1> + 0,35355 |2> + 0,35355 |3> + 0,35355 |8> + 0,35355 |9> + 0,35355 |10> + 0,35355 |11> 

Cabe señalar que la operación de volcado es diferente de la medición, ya que no influye en el estado de la máquina cuántica y solo puede realizarse mediante un simulador.

Al igual que en los lenguajes de programación modernos, es posible definir nuevas operaciones que se pueden utilizar para manipular datos cuánticos. Por ejemplo:

operador difuso ( qureg q ) { H ( q ); // Transformación de Hadamard Not ( q ); // Invertir q CPhase ( pi , q ); // Rotar si q=1111.. ! Not ( q ); // deshacer la inversión ! H ( q ); // deshacer la Transformación de Hadamard }

Define el operador inverso respecto a la media utilizado en el algoritmo de Grover (a veces llamado operador de difusión de Grover ). Esto permite definir algoritmos con un mayor nivel de abstracción y ampliar el conjunto de funciones disponibles para los programadores.

Referencias

  1. "QCL - Un lenguaje de programación para computadoras cuánticas" . tuwien.ac.at . Consultado el 20 de julio de 2017 .
  2. Ömer, Bernhard (2000-01-20). Programación cuántica en QCL (PDF) (Tesis). Instituto de Física Teórica, Universidad Tecnológica de Viena . Recuperado el 24 de mayo de 2021 .
  3. Ömer, Bernhard (29 de abril de 2003). "Conceptos clásicos en programación cuántica". Revista Internacional de Física Teórica . 44 (7): 943– 955. arXiv : quant-ph/0211100 . doi : 10.1007/s10773-005-7071-x . S2CID 119373370 . 
  4. Ömer, Bernhard (2 de septiembre de 2009). "Programación cuántica estructurada" (PDF) . Instituto de Física Teórica, Universidad Tecnológica de Viena.
  5. Página web de QCL