🖥️

Introducción a la Programación Cuántica

Jul 2, 2024

Programación de Computadoras Cuánticas - Parte 1

Descripción General

  • Introducción a la programación de computadoras cuánticas.
  • Comparación con la programación de computadoras clásicas.
  • Explicación de compiladores, código máquina y puertas lógicas en computación clásica y cuántica.
  • Discusión detallada sobre los principios de la mecánica cuántica: superposición y entrelazamiento.
  • Introducción a las puertas lógicas cuánticas y algoritmos de Computación Cuántica.

Computadoras Clásicas

Cómo Funciona la Programación

  • Los lenguajes de programación (Python, C++, Java, etc.) permiten interactuar con las computadoras usando comandos casi en lenguaje humano.
  • Ejemplo: Código para contar hasta 10 escrito por ChatGPT.

Compiladores

  • Programas especiales que convierten el lenguaje de programación de alto nivel en lenguaje máquina.
  • Diferentes lenguajes tienen compiladores específicos que actúan como traductores.
  • Compiladores como cajas negras: toman el código escrito por humanos (entrada) → salida el código máquina (secuencia de 1s y 0s).

Código Máquina

  • Conjunto de instrucciones que le dicen a la computadora sobre bits específicos en los que operar.
  • Contiene 1s y 0s interpretados como instrucciones directas para el flujo de señal eléctrica.

Puertas Lógicas

  • Bloques de construcción fundamentales de las computadoras clásicas (por ejemplo, puertas AND, OR).
  • Circuitos físicos compuestos por bits.
  • Realizan operaciones matemáticas y transfieren información entre bits.

Computadoras Cuánticas

Programación de Alto Nivel

  • Las computadoras cuánticas se programan utilizando lenguajes de programación de alto nivel como Qiskit de IBM.
  • Estos lenguajes se ejecutan en computadoras clásicas, se compilan y luego se ejecutan en el Hardware Cuántico.

Principios de la Mecánica Cuántica

Superposición

  • Un sistema cuántico puede estar en múltiples estados al mismo tiempo.
  • El estado del sistema solo colapsa a un estado definido al ser medido.
  • La probabilidad de colapso está dada por el cuadrado del coeficiente del estado.

Entrelnzamiento

  • La medición del estado de una partícula entrelazada informa inmediatamente el estado de la otra.
  • Ejemplo: Estado de Bell.
  • Probabilidades de estado entrelazado (por ejemplo, 50% de probabilidad de 00 y 50% de 11).

Puertas Lógicas Cuánticas

  • Operaciones que cambian el estado de un qubit de una manera conocida y repetible.
  • Puertas de uno y varios qubits (análogas a las puertas clásicas NOT y AND).
  • Implementadas de manera diferente en cada hardware cuántico (por ejemplo, átomos neutros, qubits superconductores).

Implementación de Algoritmos

  • Puertas cuánticas conectadas para formar algoritmos (circuitos cuánticos).
  • Abstracciones de programación clásica aplicadas (por ejemplo, programación en Qiskit).
  • Uso de computadoras clásicas para escribir/compilar código cuántico.

Ejemplo de Algoritmo: Deutsch-Jozsa

  • Problema: Determinar si una función es constante o balanceada.
  • Solución Clásica: Requiere 3 evaluaciones.
  • Solución Cuántica: Requiere solo 1 evaluación.
  • Pasos:
    1. Preparar los qubits (0 y 1 respectivamente) y aplicar la puerta Hadamard.
    2. Evaluar la función en los qubits.
    3. Medir los resultados y analizar si es constante o balanceada.

Resumen

  • Los algoritmos clásicos y cuánticos difieren pero siguen algunos principios subyacentes.
  • La Computación Cuántica ofrece ventajas significativas para ciertos tipos de problemas.
  • Próxima parte: Implementación del algoritmo Deutsch-Jozsa usando Qiskit en una computadora cuántica real.