Computación cuántica: aprenda lo básico de Q # y comprenda Azure Quantum

Comprendiendo…

Es importante entender primero que la computación cuántica requiere un enfoque diferente que la computación clásica. Cuando trabajamos con computadoras cuánticas, trabajamos con materiales como átomos, iones, fotones o electrones, que se comportan de acuerdo con las leyes de la mecánica cuántica, como el cálculo probabilístico, la superposición y el enredo.

Algunos conceptos de la mecánica cuántica.

    Superposición (o coherencia): la capacidad de las partículas cuánticas de ser una combinación de todos los estados posibles.
      (puede tener una cierta probabilidad de ser 1 Y una cierta probabilidad de ser 0. Cuando una partícula cuántica está en un estado de superposición, es una combinación lineal de un número infinito de estados entre 1 y 0). Para saber cuál es … usamos la medición cuántica.


    • Medición cuántica:
    el acto de observar una partícula cuántica en superposición y dar como resultado uno de los posibles estados.
      El acto de observar o medir una partícula cuántica colapsa el estado de superposición (también conocido como decoherencia) y la partícula adquiere un estado binario clásico de 1 o 0. Una vez que se ha medido una partícula cuántica, permanece en ese estado para siempre. * nota: en la computación cuántica hay operaciones que pueden “restablecer” una partícula a un estado de superposición para que pueda usarse nuevamente para los cálculos cuánticos.

    Enredo: la capacidad de las partículas cuánticas para correlacionar sus resultados de medición entre sí.
      Cuando las partículas se enredan, forman un sistema único de tal manera que el estado cuántico de una partícula no se puede describir independientemente del estado cuántico de las otras partículas. Esto significa que cualquier operación o proceso que aplique a una partícula se correlaciona con las otras partículas también.

    Qubit: la unidad básica de información en computación cuántica. Un qubit representa una partícula cuántica en superposición de todos los estados posibles.
      Debido a la superposición, los qubits pueden ser 1 o 0 o algo intermedio. Dependiendo de su configuración, un qubit tiene una cierta probabilidad de colapsar a 1 o 0. La probabilidad del colapso del qubit de una forma u otra está determinada por la interferencia cuántica.

    Interferencia: comportamiento intrínseco de un qubit debido a la superposición para influir en la probabilidad de que se colapse de una forma u otra. La interferencia afecta el estado de un qubit para influir en la probabilidad de un determinado resultado durante la medición, y este estado probabilístico es donde se destaca el poder de la computación cuántica.

    Simuladores Cuánticos

    Los simuladores cuánticos que se ejecutan en computadoras clásicas le permiten simular la ejecución de algoritmos cuánticos en un sistema cuántico. Para este artículo utilizaré el Quantum Development Kit (QDK) de Microsoft, que incluye un simulador de vector de estado completo junto con otros simuladores cuánticos especializados.

    Proceso básico para computaciones cuánticas

      1.Accede a los qubits
      2.Inicialice los qubits al estado deseado.
      3. Realizar operaciones para transformar los estados de los qubits
      4.Mide los nuevos estados de los qubits

      Operaciones cuánticas

      Las operaciones cuánticas son similares a las operaciones lógicas en informática clásica, como AND, OR, NOT y XOR.

      Medición

      Medir el resultado del cálculo nos dice una respuesta, pero para algunos algoritmos cuánticos, no necesariamente la respuesta correcta. Debido a que el resultado de algunos algoritmos cuánticos se basa en la probabilidad que fue configurada por las operaciones cuánticas, estos cálculos se ejecutan varias veces para obtener una distribución de probabilidad y refinar la precisión de los resultados. La garantía de que una operación devuelve una respuesta correcta se conoce como verificación cuántica y es un desafío importante en la computación cuántica.

      Entorno de desarrollo

      Trabajaremos con el QDK que incluye Q # como lenguaje de programación. ¿Por qué uso QDK??
        • Bibliotecas Q # que lo ayudan a crear aplicaciones cuánticas del mundo real de inmediato.
        • Objetivos, que le permiten ejecutar su programa localmente o en una variedad de hardware a través de Azure Quantum.
        • Herramientas que lo ayudan a integrar programas cuánticos con programas clásicos, incluido el soporte para C #, F # y Python.
        1. Instalar VSCode.
        2. Instalar QDK para VSCode.
        3. Instalar Quantum project templates.
        - Teclear Ctrl+Shit+P and enter “Q#: Install project templates”
        4. Crear project
        - Teclear Ctrl+Shift+P and enter “Q#: Create new project”
        - - Seleccione "Aplicación de consola independiente", seleccione el nombre del directorio de su proyecto y presione Crear proyecto.
        image
        5. Este es el resultado, como puede ver tenemos dos archivos, un csproj y un qs. Vamos a abrir el archivo Program.qs. Puede presionar Ctrl + Shift + P y abrir Terminal para probar el siguiente programa. mediante la ejecución “dotnet run”.  
        image
        image

        Entendiendo el código:

        Bibliotecas

        Como puede ver primero, tenemos el espacio de nombres que nos ayuda a organizar la funcionalidad, son útiles cuando utilizamos bibliotecas Q # en nuestros programas.

        Por ejemplo Microsoft.Quantum.Chemistry cuando llamamos a una función u operación desde una biblioteca, especificamos el espacio de nombres de la biblioteca. En el código anterior que tenemos … especificamos dos nombres. (usamos “abierto”), Microsoft.Quantum.Canon y Microsoft.Quantum.Intrinsic.

        Operaciones
        Las operaciones (subrutina cuántica) son los componentes básicos de un programa Q #. Básicamente, especifica el nombre de la Operación (en nuestro ejemplo es "HelloQ"), junto con sus entradas (cero en nuestro ejemplo) y su salida (tipo: Unidad). 
        Tipos
        Q # proporciona tipos familiares como Int, Double, Bool y String. También tipos que definen rangos, matrices y tuplas junto con el específico para QC.
        
        6.  Comprensión del generador de bits aleatorio cuántico simple

        Una computadora clásica no genera números aleatorios sino números “pseudoaleatorios” basados en algún valor inicial que a menudo es el reloj de la CPU.
        El generador aleatorio cuántico utiliza una operación H para poner un qubit en “superposición”, la medición da como resultado un cero o uno.

        image
        image

        Entendiendo el código:

        + Biblioteca agregada Microsoft.Quantum.Measurement;

        + Cambió el nombre de la operación y la salida de Unidad a Resultado.

        + Asignó un qubit con la palabra clave using.

        + Ponga el qubit en superposición con la operación H.

        + Mide el qubit con la operación MResetZ (restablece el qubit al estado cero y devuelve el valor medido cero o uno).

        7 – Comprender el generador de números aleatorios cuánticos complejos

        En nuestro ejemplo anterior solo obtuvimos dos resultados, uno cero o uno. Si repite el proceso cuatro veces y genera: 0,1,1,0 si concatena esto en una cadena, tiene un número binario 0110 que es un 6 en decimal.

        image

        Entendiendo el código:

        + Creamos una nueva operación que llama a nuestra operación de vista previa GenerateRandom. Establecemos una salida y una entrada (llamada max, que es el valor máximo que queremos generar) como Int.

        + Agregamos dos bibliotecas Microsoft.Quantum.Math y Microsoft.Quantum.Convert.

        + Creamos una variable mutable llamada salida.

        + Repetimos el proceso que se repetirá si nuestro número generado es mayor que nuestro máximo.

        + Creamos otra variable Mutable llamada bits que alojará el valor aleatorio generado.

        + Tenemos un bucle for que funciona como el de otros lenguajes de programación y calculamos la cantidad de bits que necesitamos para expresar un número entero hasta el máximo con la ayuda de la función BitSizel.

        + Una vez que tenemos el resultado, lo configuramos en nuestra variable mutable de salida con la función ResultArrayAsInt que convierte la cadena de bits en un entero positivo.

        Ahora, para ejecutar nuestras operaciones, necesitamos establecer un EntryPoint diferente.

        image

        Entendiendo el código:

        + Se mudó a @EntryPoint ()

        + Creó una nueva operación con Int como salida

        + Establecimos un máximo, escribimos un mensaje y devolvemos un al azar.

        image

        ¿Qué es Azure Quantum?

        Los ejemplos que acabamos de ejecutar en VSCode, se ejecutaron en un simulador para imitar el comportamiento cuántico. Si ya tiene su programa listo para ejecutarse en hardware cuántico, es cuando usamos Azure Quantum (Servicio de Computación Azure de Microsoft).

        [youtube https://www.youtube.com/watch?v=EnIlSEjkXZo&w=560&h=315]

        A diagram showing various Azure Quantum features

        Consideraciones al usar Azure Quantum

        Azure Quantum ofrece un conjunto de herramientas que lo ayudan a comprender la computadora cuántica:
        • Existen herramientas como el estimador de recursos, que le ayuda a comprender los recursos que requeriría su código. Esto puede significar los tipos de compuertas cuánticas que usa, la cantidad de operaciones realizadas o la cantidad de qubits que necesita.
        • Existen herramientas para simular sus programas para que pueda probar el comportamiento y el rendimiento de su código. Le ayuda a iterar y mejorar su código, para que pueda reducir la cantidad de recursos necesarios para ejecutarlo.

        Espacios de trabajo de Azure

        Al igual que cualquier otro servicio de Azure, Azure Quantum tiene un recurso que se llama Workspace, y es una colección de activos que están asociados con la ejecución de una carga de trabajo cuántica o inspirada en Quantum. Tienes que configurar.

        – Objetivo: computadora cuántica o simulador.

        – Proveedor: proveedor que ejecuta su objetivo, puede ser IonQ, Honeywell, QCI.

        – Trabajos: cuando ejecutas un programa cuántico estás creando y ejecutando un trabajo …

        – Facturación: definirá cómo se crea para los trabajos según el proveedor seleccionado.

        Conclusión

        A medida que la innovación continúa acelerándose, la computación cuántica se ha convertido en una tecnología cada vez más importante para monitorear como parte de la ola más amplia de transformación digital. La computación cuántica tiene como objetivo resolver problemas complejos que son imposibles de abordar con las supercomputadoras de hoy en día y tiene un gran potencial en múltiples sectores de la industria, incluidos la industria farmacéutica, energía, finanzas, logística, fabricación y materiales. Hoy en día, los principales problemas a los que se enfrenta la computación cuántica son la simulación de sistemas cuánticos, el aprendizaje automático y la optimización.

        Ya existen pequeños dispositivos experimentales de procesamiento cuántico en el sector privado, administrados por compañías como IBM, Google y Amazon. Pero Microsoft está preparado para Quantum a través de Azure Quantum. Azure Quantum is a full-stack, ecosistema de nube abierta que traerá los beneficios de la computación cuántica a personas y organizaciones de todo el mundo. Junto con nuestros socios 1QBit, Honeywell, IonQ y QCI. Si está interesado en convertirse en uno de los primeros en adoptar, pueden registrarse aqui.  

        0 0 votos
        Valora el Articulo
        Suscribirse
        Notificarme de
        guest
        1 Comentario
        Viejos
        Nuevos Más votados
        Feedback entre líneas
        Ver todos los Comentarios

        Pablo Ariel Di Loreto
        Pablo Ariel Di Loreto(@pablodiloreto)
        Admin
        Active Member
        3 años atrás

        ¡Muy bueno!

        Próximos Eventos

        • No hay eventos programados

        Comentarios Recientes

        1
        0
        Nos encantaría conocer tu opinión: ¡comenta!x
        Ir a la barra de herramientas