Quantum Space Invaders es una adaptación del clásico juego "Space Invaders" a una versión Cuántica.
El objetivo de este juego es mostrar que usando una estrategia cuántica se obtiene mejores puntajes que cuando se usa una estrategia clásica.
Usar pip + git para instalar sin necesidad de clonar el repositorio.
pip install --force-reinstall git+https://github.com/pablo-cardenas/QInvaders@mainClonar el repositorio y luego instalarlo con pip
git clone https://github.com/pablo-cardenas/QInvaders.git
cd QInvaders
pip install .Para correr QInvaders, simplemente ejecutar qinvaders en la terminal
qinvadersEn QInvaders, uno tiene dos modos, modo fácil y modo difícil. El modo difícil es parecido al QPong, en donde uno diseña el circuito cuántico para obtener un estado resultado deseado. Consideramos que eso es demasiado difícil para alguien que está empezando en Computación Cuántica y que se debe tener aprendizaje más progresivo en este campo. Es por ello que creamos el modo fácil, en donde uno indica cuál es el estado deseado y el juego muestra el circuito cuántico que genera ese estado.
Además, QPong es complicado porque no se puede pausar para pensar. Crear circuitos cuánticos que devuelvan un estado deseado toma su tiempo (incluso para expertos en computación cuántica). Es por ello que, en QInvaders, le añadimos una tecla (ESPACIO) de pausa para pensar.
Finalmente, la característica más importante de QInvaders es que se evidencia que una estrategia cuántica es mejor que una estrategia clásica.
Se debe evitar la invasión destruyendo a los invasores. Para ello se tiene un cañón quántico que lanza misiles quánticos.
El cañón puede estar en un estado de superposición, es decir, puede estar en varios lugares a la vez. Durante todo el juego, el cañón estará lanzando misiles. Estos misiles estarán en un estado de superposición mientras no lo hayan visto los invasores, es decir, mientras no se haya medido. Al momento de hacer la medición, los misiles colapsan en un único estado y podrá impactar con las naves.
El objetivo es evitar la invasión con la mejor eficiencia. Donde la eficiencia es la taza de milisegundos usados por cada cambio de estado del cañón. Es decir, se debe minimizar la cantidad de cambios de estados del cañón por minuto.
Este juego tiene dos modos: modo FÁCIL y modo DIFÍCIL. La tecla TAB sirve para cambiar entre el modo fácil y el modo difícil.
En el modo fácil, uno debe escoger los estados que quiere superponer.
- Combinar las teclas A, S, D, F, H, J, K, L para tener una superposición de estados.
- SPACE: pausar el juego.
- TAB: cambiar al modo difícil.
En el modo difícil, uno debe diseñar el circuito cuántico que genera la superposición de estados que uno quiere.
- Usar las teclas Q, A, Z para poner una compuerta X.
- Usar las teclas W, S, X para poner una compuerta H.
- SPACE: pausar el juego.
- TAB: cambiar al modo fácil.
Este juego muestra que es más ventajoso tener una estrategia cuántica que tener una estrategia clásica.
La estrategia clásica es usar el cañón sin superposición, es decir en un sólo estado a la vez (determinístico). Entonces, los misiles serán lanzados en una sóla posición. Sin embargo, se tendrá que cambiar la posición del cañón para poder impactar a todos los invasores.
Hay momentos en que vienen muchos invasores a la vez. Supongamos que hay 4 invasores viniendo a la vez y que estamos usando la estrategia clásica. Entonces, se tendría que hacer 4 movimientos para atacar a esos 4 invasores. Sin embargo, en la estrategia cuántica, sólo se necesita un movimiento.
La estrategia cuántica permite usar el cañón en un estado de superposición, es decir, que puede estar en varios lugares a la vez.
En los momentos que vengan varios invasores a la vez. Se puede atacar a todos los invasores usando sólamente un estado superpuesto.
Se observa que usando la estrategia clásica se consigue una eficienca de 2000 y usando la estrategia cuántica se puede superar los 5000
Nota: La estrategia de usar el estado totalmente entrelazado siempre
(|000>+|001>+|010>+|011>+|100>+|101>+|110>+|111>)/sqrt(8) no funciaría,
ya que sería enviar misiles superpuestos en todas las posiciones a la vez.
Al momento de colapsar escogería aleatoriamente cualquier posición y
varios de esos misiles no impactarían con ningún invasor.