in

Q# ayuda a la estimación de recursos cuánticos para la fijación de precios derivados – Microsoft Azure Quantum Blog

Por determinar.

Por determinar.
Logotipo de la empresa de solo texto de Goldman Sachs.

En Goldman Sachs, nuestro equipo de Investigación y Desarrollo siempre busca impulsar la tecnología de vanguardia para los servicios financieros. Si bien la computación cuántica se encuentra en una etapa inicial, la promesa de la tecnología significa que estamos investigando activamente dónde y cómo se puede aplicar en el futuro. Un enfoque clave aquí es que «trabajemos hacia atrás». Comenzamos con un problema matemático valioso y bien definido en finanzas que podemos combinar con una ventaja computacional teórica para las computadoras cuánticas. Entonces preguntamos: ¿cuáles deberían ser las especificaciones de una computadora cuántica real para lograr una ventaja práctica para este problema? Al hacer este trabajo de estimación de recursos, necesitamos completar los detalles prácticos y llenar los vacíos en los enfoques teóricos. También suele descubrir optimizaciones importantes que pueden, por ejemplo, reducir el tiempo de solución o la memoria cuántica requerida.

Estimación de recursos para la ventaja cuántica en la fijación de precios de derivados

Un ejemplo en el que nos hemos centrado es la fijación de precios de derivados complejos. Los derivados son contratos financieros cuyo valor actual se basa en algún modelo estadístico de lo que sucederá en el futuro. Un ejemplo común de un derivado financiero es una opción sobre acciones. Cuando tiene un contrato complicado o un modelo estadístico complicado, puede ser computacionalmente costoso calcular el precio. Los derivados son tan comunes en las finanzas que incluso una pequeña mejora en la fijación de precios o en el cálculo de las cantidades relacionadas podría ser muy valiosa.

Los derivados son un buen objetivo para la estimación de recursos porque el algoritmo subyacente que se usa a menudo es Monte Carlo, y se sabe que existe una aceleración teórica disponible para las computadoras cuánticas para algoritmos de Monte Carlo bastante genéricos. El algoritmo se basa en una subrutina llamada estimación de amplitud y ofrece una aceleración cuadrática. Por ejemplo, para lograr una precisión ε en el precio, un algoritmo Monte Carlo clásico debe ejecutarse para O(1/ε2) pasos. Sin embargo, el algoritmo cuántico se ejecuta solo en pasos O(1/ε). Por ejemplo, si su objetivo es una precisión de una parte por mil (ε = 10-3), entonces el algoritmo cuántico podría necesitar solo 1,000 pasos frente a un algoritmo clásico que necesitaría 1,000,000.

Por supuesto, esta es solo la escala teórica y los detalles deben completarse para ver si esto es práctico. Por ejemplo, cada paso en una computadora cuántica puede llevar mucho más tiempo que cada paso en una computadora clásica porque la velocidad del reloj es más lenta. También puede haber otros gastos generales que influyan en los factores constantes del algoritmo.

En 2020, trabajamos con coautores en IBM para producir la primera estimación de recursos de extremo a extremo para la fijación de precios de derivados en nuestro artículo «Un umbral para la ventaja cuántica en la fijación de precios de derivados.” Usamos dos ejemplos prácticos de contratos de derivados en ese documento: uno autocallable y un Target Accrual Redemption Forward (TARF). Estos son ejemplos que son lo suficientemente complicados para cotizar hoy que nos gustaría una aceleración y que se negocian en un volumen suficiente como para mejorar sus precios. Para hacer que la estimación de recursos sea práctica, introdujimos algunas modificaciones al algoritmo llamado método de reparametrización. Esto resultó en las siguientes estimaciones de los recursos necesarios para el ejemplo autollamable. Incluimos los recursos totales necesarios así como los recursos utilizados en una importante subrutina de estimación de amplitud, el operador Q:

Recursos totales Operador Q
Cuenta T 1.2×10^10 11,4 millones
profundidad en T 5,4×10^7 9.5k
Qubits Lógicos 8k 8k

Incluimos tres importantes cifras de mérito para describir los recursos. El conteo T proporciona el número de operaciones de puerta T necesarias en el algoritmo. La operación T-gate en muchas arquitecturas de computación cuántica tolerantes a fallas requiere significativamente más recursos que otras operaciones y, por lo tanto, domina los recursos necesarios para la computación. También incluimos la profundidad en T. Este es el número de operaciones de puerta en T que deben ejecutarse secuencialmente. En algunas arquitecturas, este número de profundidad determina el tiempo de ejecución general del algoritmo, ya que se pueden paralelizar otras puertas T. Finalmente, incluimos la cantidad de memoria cuántica necesaria para el algoritmo medida por la cantidad de qubits.

Estimación de recursos con Q#

La estimación de recursos es un desafío ya que todos los detalles importan. Por ejemplo, nuestro documento utiliza una precisión totalmente mixta en la implementación, donde cada registro de punto fijo está optimizado para usar la cantidad correcta de qubits. ¿Cómo podemos estar seguros de que no cometimos errores cuando no podemos ejecutar una implementación completa?

Para llevar nuestra estimación de recursos al siguiente nivel, elegimos usar Q# y trabajar con Mathias Soeken y Martin Roetteler en el equipo de Microsoft Azure Quantum para desarrollar una implementación Q# completa de nuestro algoritmo. Hacer la estimación de recursos de esta manera tuvo muchos beneficios:

  1. Complejidad de manejo: Podríamos usar las características de Q# para manejar automáticamente la asignación y administración de la memoria cuántica. Además, características como la generación automática de operaciones controladas y adjuntas nos facilitaron expresar el algoritmo a un nivel superior y permitieron que el compilador descubriera los detalles.
  2. Uso de bibliotecas: Gran parte de la complejidad de los recursos en nuestro algoritmo de precios de derivados se utiliza mediante aritmética reversible en registros cuánticos. Q# ya tiene muchas bibliotecas para operaciones aritméticas de punto fijo que podemos importar e invocar sin necesidad de volver a implementarlas nosotros mismos.
  3. Encontrar errores: Dado que gran parte del código de nuestra implementación trata con versiones reversibles de la aritmética clásica, pudimos utilizar el simulador Toffoli de Q# para probar de manera eficiente la corrección de partes de nuestra implementación. Si bien no se puede simular directamente todo el algoritmo, pudimos desarrollar pruebas unitarias para componentes clave que pudimos simular de manera eficiente para generar confianza en nuestros recuentos de recursos.
  4. Diseño modular: El algoritmo general es complicado. Tener una implementación concreta le permite a uno enfocarse en optimizar funciones específicas una a la vez y luego dejar que el sistema le indique el efecto general en el conteo de recursos.

Nuevas actualizaciones del algoritmo por el uso de Q#

Al implementar el algoritmo de nuestro trabajo anterior en Q#, realizamos algunas mejoras y modificaciones.

En primer lugar, eliminamos las operaciones aritméticas de arcoseno y raíz cuadrada (Paso 3 del Algoritmo 4.2) y los reemplazó con el método de comparación (Apartado 2.2 de este trabajo). Esto reduce los recursos necesarios para ese paso.

En segundo lugar, reemplazamos la implementación polinomial por partes de la función exponencial con una tabla de búsqueda. Una tabla de búsqueda puede reducir aún más los recursos en comparación con la aritmética de punto fijo reversible que puede ser costosa en las computadoras cuánticas. Esta implementación de la tabla de búsqueda ha sido de código abierto como parte de Q#. En los resultados de la estimación de recursos que se dan a continuación, la tabla de búsqueda para la función exponencial tiene un parámetro libre dado por la cantidad de qubits de «intercambio» utilizados. En las estimaciones de recursos a continuación, citamos recursos para tres opciones diferentes de qubits de intercambio. Como tenemos una implementación en Q#, es sencillo administrar y calcular diferentes requisitos de recursos para implementaciones con parámetros diferentes.

Resultados de la estimación de recursos

Con estas actualizaciones y la implementación más detallada en Q#, calculamos los recursos necesarios para tres subrutinas clave en la fijación de precios de derivados y los comparamos con nuestro trabajo anterior. El primero es para el operador Q, el operador clave en la estimación de amplitud. El segundo es para el operador de pago que implementa reversiblemente el pago derivado. El tercero es para la propia función exponencial, que es el mayor consumidor de recursos además de la propia estimación de amplitud fundamental.

El punto de referencia elegido es el activo 3 autocallable en 20 pasos de tiempo. Estos parámetros coinciden con instancias reales que uno podría encontrar en la práctica.

Las comparaciones se hacen entre tres métodos:

  • Papel: las estimaciones manuales originales de nuestro trabajo en Chakrabarti et al: https://quantum-journal.org/papers/q-2021-06-01-463/.
  • INTERCAMBIO10: La implementación de Q# estima dónde la tabla de búsqueda exponencial está configurada para usar 10 bits de intercambio.
  • INTERCAMBIO5: La implementación de Q# estima dónde la tabla de búsqueda exponencial está configurada para usar 5 bits de intercambio.
  • INTERCAMBIO1: La implementación de Q# estima dónde la tabla de búsqueda exponencial está configurada para usar 1 bit de intercambio.

Operador Q general

Papel SWAP10 SWAP5 INTERCAMBIAR1
Cuenta T 11,4 millones 14,6 millones 2,9 millones 6,3 millones
profundidad en T 9.5k 16k 16.6k 36k
Qubits Lógicos 8k 3,8 millones 124k 19.2k

Operador de pagos

Papel SWAP10 SWAP5 INTERCAMBIAR1
Cuenta T 189k 77k 77k 77k
profundidad en T 3.2k 2.7k 2.7k 2.7k
Qubits Lógicos 1.6k 19.2k 19.2k 19.2k

Exponencial de punto fijo

Papel SWAP10 SWAP5 INTERCAMBIAR1
Cuenta T 7M 12,3 millones 617k 3,9 millones
profundidad en T 1.2k 62 1.3k 20.5k
Qubits Lógicos 5.4k 3,8 millones 124k 11.5k

En términos generales, nuestros resultados de implementación de SWAP1 son cercanos pero no iguales a nuestras estimaciones manuales. Esto significa que nuestras estimaciones manuales fueron a veces pesimistas (como para el conteo T) y otras veces optimistas, pero no demasiado.

comida para llevar

Al trabajar con una implementación de Q#, pudimos mejorar la precisión y la flexibilidad de nuestras estimaciones de recursos para obtener una ventaja cuántica en la fijación de precios de derivados. La implementación también nos brinda una base para iterar más rápidamente en versiones actualizadas y en otros algoritmos que usan subrutinas similares. Esperamos continuar con la optimización de este algoritmo y su implementación aprovechando las nuevas ideas y desarrollos en el ecosistema de Q#.

“Trabajar directamente con el equipo de Goldman Sachs ha brindado una oportunidad fantástica para colaborar en la estimación de recursos para un problema importante en la industria financiera, obtener información para mejorar las ofertas en todo el ecosistema de Azure Quantum y compartir técnicas de estimación de recursos y mejoras de algoritmos con la comunidad. . Es emocionante ver el impacto que Q# puede permitir, desde el desarrollo de algoritmos hasta la estimación y reducción de recursos, y ha sido un placer trabajar con Goldman Sachs para lograr un mayor impacto cuántico”.-Dr. Krysta Svore, ingeniera distinguida y vicepresidenta de software cuántico para Azure Quantum

Fuente

Echa un vistazo a la isla dinámica del iPhone 14 Pro en acción

Zekia nos enamora con su versión Bunny Dress de Zero Two de Darling in the Franxx

Zekia nos enamora con su versión Bunny Dress de Zero Two de Darling in the Franxx