Por @Alvy — 18 de febrero de 2022
from qiskit import QuantumCircuit
# Create a basic Bell State.
qc = QuantumCircuit(2, 2) # 2 qubits, 2 bits
qc.h(0)
qc.cx(0, 1)
# Measure and put the result into the two bits.
qc.measure([0, 1], [0, 1])
# Display circuit.
print(qc)

En el artículo «Hello Many Worlds» in Seven Quantum Languages la gente de IonQ explica cómo se puede escribir el más clásico y simple de los programas, en este caso, programas de computación cuántica, en 7 lenguajes de programación cuántica. Este código sería por su simplicidad el equivalente del archifamoso ¡Hola, mundo! de los lenguajes convencionales aunque –como jocosamente dicen– más bien sería un ¡Hola, mundos! dado el entorno en cuestión.

Los lenguajes de programación cuántica en cuestión son:

Hay un par de ellos que son de código abierto y otros que forman parte de los SDK de diversas plataformas, como las de IBM, Microsoft, Google y Amazon.

El programa cuántico más simple sería la creación de dos qubits entrelazados, lo que se conoce como par de Bell. Si se denotan como 0 o 1 sus posibles estados, al medir esos dos qubits –que podría entenderse como «imprimir sus estados»– debería obtenerse 00 ó 11 en igual proporción. Así al ejecutar el programa 1.000 veces deberían salir –idealmente– 500 veces 00 y 500 veces 01… O casi. Un resultado típico sería:

{'00': 513, '01': 6, '10': 4, '11': 477}

donde la suma de todos los casos posibles (00 01 10 11) es 1.000, pero la distribución de los resultados se deben a las peculiares propiedades de los qubits entrelazados y a las leyes de la mecánica cuántica. Es una distribución que se correspondería con la del mundo físico, con algo de azar en el asunto.

En el caso de Qiskit previamente se genera un circuito de este tipo:

     ┌───┐     ┌─┐   
q_0: ┤ H ├──■──┤M├───
     └───┘┌─┴─┐└╥┘┌─┐
q_1: ─────┤ X ├─╫─┤M├
          └───┘ ║ └╥┘
c: 2/═══════════╩══╩═
                0  1

que con otras líneas de código hay que enviar a la QPU (la CPU cuántica) para luego «esperar la cola» del proveedor, porque está en la nube, que lo procesa y devuelve el resultado.

Un tema interesante para investigar y aprender, más aún cuando hoy en día se puede acceder a algunos de los ordenadores cuánticos a través de la nube, sin necesidad de estar físicamente allí.

Relacionado:

Compartir en Flipboard Publicar / Tuitear Publicar