Vengo de un entorno no físico y estoy muy interesado en seguir la computación cuántica, especialmente cómo programarlos. Cualquier orientación sobre cómo comenzar será muy útil.
Vengo de un entorno no físico y estoy muy interesado en seguir la computación cuántica, especialmente cómo programarlos. Cualquier orientación sobre cómo comenzar será muy útil.
Respuestas:
Podría comenzar con una introducción a las computadoras cuánticas como esta de Voxxed Days Vienna 2018 : está destinada a personas con experiencia en programación pero poco o ningún conocimiento previo en mecánica cuántica. Después de eso, puede consultar las guías de IBM Quantum Experience o las del Kit de desarrollo de Microsoft Quantum .
Además de eso, hay muchos videos en YouTube, por ejemplo, que pueden ayudarlo a comprender el tema más profundamente.
Creo que los programadores cuánticos no necesariamente necesitarán saber sobre física cuántica y álgebra lineal. Estas son ciertamente cosas que ayudarán a ampliar el conocimiento de los programadores cuánticos, pero no deben considerarse como requisitos previos.
Aun así, la mayoría de los recursos para ayudar a un programador cuántico en ciernes comienzan con una suposición de álgebra lineal. Los que no se centran principalmente en QISKit, el SDK para el dispositivo cuántico de IBM (y algunos de ellos fueron escritos por mí).
El programa más simple que se te ocurre es un "Hola Mundo". ¿Cómo se hace eso para las computadoras cuánticas? Mi propuesta es una superposición de emoticones .
Una vez que haya avanzado más allá de "Hello World" en la programación cuántica, querrá hacer algo más complejo. A menudo las personas hacen juegos simples. Así que hagamos eso con una computadora cuántica. Hice acorazados .
Encontrará estos y muchos más ejemplos de programación cuántica en el tutorial de QISKit . Creo que ese es probablemente el mejor lugar para que los nuevos programadores cuánticos vean qué se puede hacer y cómo hacerlo.
pyQuil es una biblioteca de programación cuántica de código abierto en Python. La documentación incluye una introducción práctica a la computación cuántica donde aprende mediante programación. No asume ningún fondo de física.
Aquí hay algunos enlaces a los temas principales:
No es necesario comprender completamente la mecánica cuántica para comprender la teoría detrás del control de calidad. Soy un BSc / programador de matemáticas y leí sobre el tema y también hice el antiguo curso edX QC (desafortunadamente no está disponible, pero hay otros). Creo que puedo decir que entiendo la esencia del control de calidad, pero no sé nada sobre mecánica cuántica.
La parte clave es que Quantum Computing utiliza principalmente álgebra lineal, que se basa en las matemáticas que se enseñan comúnmente en los estudios de pregrado de ingeniería / informática. Contraste esto con la mecánica cuántica real que utiliza espacios de dimensiones infinitas (o análisis funcional, si lo desea).
Si te sientes cómodo con estos temas de matemáticas de pregrado, puedes consultar la Mecánica cuántica de Susskind : Mínimo teórico : en realidad no se trata de mecánica cuántica `` real '', es sobre todo cosas útiles para el control de calidad. Por cierto, toda la serie de libros de Teórico Mínimo está dirigida a personas que saben algo de matemáticas (como informáticos o estudiantes de ingeniería), y les gustaría saber más sobre física. También hay muchos cursos en línea, por ejemplo, hay nuevos cursos en edX, pero no hice ninguno de ellos, por lo que no puedo recomendar uno.
Si desea ir más allá de aprender a escribir circuitos cuánticos en los diversos marcos de programación cuántica como Q # , pyQuil y QISKit , le recomiendo este artículo reciente con el título Implementaciones de algoritmos cuánticos para principiantes del Laboratorio Nacional de Los Alamos. Es un gran recurso para comprender cómo compilar e implementar varios algoritmos cuánticos, así como sus oráculos y subrutinas específicas como circuitos cuánticos con IBM Q Experience. Le recomiendo que los implemente en cualquiera de los marcos de programación mencionados anteriormente y que aprenda los detalles esenciales a medida que avanza.
Las computadoras cuánticas se programan mediante (lenguajes de programación en evolución que representan) los llamados circuitos cuánticos. Estas son una secuencia de puertas cuánticas más la información sobre qué bits cuánticos (qubits) actúan.
Lo único que realmente necesita saber sobre las puertas cuánticas es que representan rotaciones (en un espacio dimensional superior, llamado espacio de Hilbert). Por lo tanto, son reversibles: las computadoras cuánticas están programadas con lógica reversible.
para un sistema de 2 qubits en la notación de Dirac habitual) obtiene un número complejo como coeficiente o como la llamada amplitud de probabilidad. Los vectores de base son ortogonales y abarcan el espacio de Hilbert del estado, las amplitudes de probabilidad pueden verse como coordenadas en él. Esta es la imagen en la que las puertas cuánticas efectúan rotaciones. Descubrirá que los físicos a menudo usan una imagen diferente, la esfera de Bloch, para sistemas de un solo qubit, en el que las puertas cuánticas también causan rotaciones (pero a veces por un ángulo más grande o por uno que se omite en esa imagen por completo).
Toda la lógica convencional puede implementarse mediante una computadora cuántica expresándola primero en lógica reversible (que puede requerir bits auxiliares). La puerta NOT clásica corresponde a la puerta cuántica X, pero a diferencia del caso clásico donde las puertas reversibles de 1 bit son la identidad y la puerta NOT, una computadora cuántica tiene cuatro puertas correspondientes (X, Y, Z según las rotaciones en el Esfera de Bloch, más la identidad). Además, puede tener rotaciones que giran solo por una fracción de la distancia a la que giran estas puertas; Algunos particularmente interesantes tienen nombres y abreviaturas especiales como la puerta Hadamard o la puerta H que crea la superposición igual de todos los estados.
Desafortunadamente, los primeros ingenieros de software cuántico probablemente tendrán que saber un poco sobre el hardware de la computadora cuántica que usarán: debido al ángulo arbitraria y continuamente seleccionable de la rotación efectiva de una puerta cuántica, hay una especie de elemento analógico para las computadoras cuánticas que necesariamente crea errores (y las computadoras cuánticas físicas tienen incluso más fuentes de error que solo eso). Hay una manera de lidiar con eso, la corrección de errores cuánticos que discretiza los errores y corrige las discretizaciones más probables de ellos para lograr (idealmente) cálculos arbitrariamente complejos con errores vinculados. Pero la optimización probablemente significará que una computadora cuántica con una opción de corrección de errores cuánticos será más apta para ciertas puertas cuánticas o incluso algoritmos que otras,