Grover en acción
El problema a resolver
Vamos a resolver el problema 3SAT dado por
usando el algoritmo de Glover. Para ello necesitamos crear el Oráculo que define la acción de
las cláusulas lógicas anteriores sobre los qubits. Vamos a representar
q[0]
y q[1]
respectivamente.
El oráculo
Empecemos por ver qué hace el siguiente circuito:
cuya implementación es SAT Oracle Clause 1.
Efectivamente, este circuito hace la operación AND:
De la misma forma se puede seguir operando sobre los cubits,
negando ahora el resultado de la operación anterior para obtener
En el siguiente paso, se realiza el último AND entre el resultado anterior
y
Finalmente, es necesario deshacer las operaciones sobre los cubits auxiliares q[2]
y q[3]
. En efecto, como el estado cuántico está
compuesto de todas las contribuciones de los cubits, es importante
‘borrar’ el estado de esos cubits auxiliares para que solamente se tenga
como inputs los valores necesarios de los cubits 0, 1 y 4 en el siguiente
paso.
El circuito difusor
Para el difusor se propone el siguiente circuito:
que se encuentra acá.
Finalmente, el circuito completo es SAT Solver
El resultado que se obtiene al correr 1024 instancias es:
Es decir,