M. Solar, V. Figueroa, F. Manriquez, F. Pizarro, L. Dombrovskaia
Memoria Investigaciones en Ingeniería, núm. 27 (2024). pp. 220-237
https://doi.org/10.36561/ING.27.14
ISSN 2301-1092 • ISSN (en línea) 2301-1106 – Universidad de Montevideo, Uruguay 222
1. Introducción. - La computación cuántica y la programación genética son dos áreas de investigación fascinantes que
han mostrado un gran potencial para transformar la forma en que se abordan los desafíos computacionales complejos.
En (1) se exploran las aplicaciones de la programación genética en el campo de la computación cuántica desde la cual
ha habido un crecimiento significativo en la investigación y los avances tecnológicos.
En este artículo se explora la resolución de problemas de búsqueda (2), la optimización cuántica, como también los
nuevos enfoques que han mejorado la capacidad de encontrar soluciones óptimas para problemas complejos en ámbitos
como la optimización de parámetros cuánticos y la exploración de espacios de soluciones cuánticas (3), (4), (5), (6),
(7), (8), (9). En estos trabajos se explora cómo la programación genética y los algoritmos genéticos (GA) han sido
utilizados en la optimización de sistemas cuánticos, como la calibración de qubits y la reducción de errores en sistemas
de computación cuántica, que son fundamentales para superar los desafíos actuales en la implementación práctica de
la computación cuántica.
En este artículo se muestra los avances en el campo de la programación genética aplicada a la computación cuántica.
Los avances en la optimización de circuitos, diseño de algoritmos, resolución de problemas, simulación, seguridad y
optimización de sistemas cuánticos, han ampliado el espectro de aplicaciones prácticas y están acelerando el desarrollo
de la computación cuántica. Entre las aplicaciones se encuentran imágenes médicas (10), visualización de datos (11),
comunicaciones (14; 12; 13), arquitectura (15; 16), energía eólica (17), gestión de energía (18), control (19), diagnóstico
de fallas (20), uso de criptografía cuántica en imágenes (21). La evolución de programas cuánticos ha llevado al
desarrollo de algoritmos de criptografía más robustos y resistentes, impulsando la seguridad en el ámbito cuántico. En
la sección 3 se presenta el estado del arte en esta materia.
A partir de los pseudo-códigos y diagramas presentados en (6), (8) y (23), se extrapola una versión con el
funcionamiento de estos en las librerías de Qiskit, las cuales se implementan. En la sección 4 se muestra esta
implementación usando Qiskit de un Algoritmo Genético Cuántico (QGA) basado en un Algoritmo Genético Cuántico
Híbrido (HQGA) presentado en (8) y se presentan los métodos que permiten simular un entorno cuántico para el
desarrollo de los mismos circuitos utilizando Python.
2. Definición de un Algoritmo Genético: Población, Cruzamiento, Mutación. - Una de las ramas que más prometen
en la computación cuántica es la aplicación de algoritmos genéticos a estos mismos. Los GA son técnicas de
optimización inspiradas en los principios de la evolución biológica, que han demostrado su eficacia en la resolución de
problemas complejos en una amplia gama de áreas, desde la planificación de rutas hasta el diseño de estructuras.
La combinación de GA con computación cuántica, a través de herramientas como Qiskit, permite aprovechar las
ventajas de ambas disciplinas. Los QGA tienen el potencial de superar las limitaciones de los CGA, ya que pueden
explorar simultáneamente múltiples soluciones en paralelo gracias a los fenómenos cuánticos como la superposición y
la interferencia cuántica, al menos para un buen número de casos específicos.
Los QGAs se basan en la codificación de qubits para el almacenamiento de la información. Para esto se puede ocupar
cualquier representación conocida basada en bits, ocupando un qubit por cada bit, pero pueden surgir limitaciones
evidentes. Si se quiere ocupar la representación de punto flotante de 32 bits, se agotan fácilmente los recursos
disponibles, ya que actualmente no se logra soportar una gran cantidad de qubits en un computador cuántico. En un
QGA, se codifica un cromosoma como m secuencias de k qubits, que representan m variables codificadas en k bits
según la ecuación
1.
donde qjt representa el cromosoma j de la t-ésima generación. Para la codificación inicial, se codifican los (α,β) de cada
ψ como (compuerta de Hadamard), de manera que, en un inicio, la probabilidad de cualquier estado del
cromosoma sea el mismo.