Optimisation à l'aide de Quantum Logics

Aug 27 2020

Est-il possible de résoudre le type d'optimisation suivant à l'aide de l'informatique quantique?

Minimize
5*x1 - 7*x2

binary
x1
x2

Si oui, est-il possible d'avoir un exemple de code en utilisant QISKit?

Réponses

2 StefanWoerner Aug 27 2020 at 14:14

Qiskit dispose d'un module d'optimisation et vous pouvez trouver des tutoriels qui illustrent ses fonctionnalités ici .

Pour résoudre l'exemple que vous avez publié, par exemple, avec l'algorithme d'optimisation quantique approximative (QAOA), vous pouvez effectuer les opérations suivantes:

from qiskit import Aer
from qiskit.optimization import QuadraticProgram
from qiskit.aqua.algorithms import QAOA
from qiskit.optimization.algorithms import MinimumEigenOptimizer

# construct optimization problem
qp = QuadraticProgram()
qp.binary_var('x1')
qp.binary_var('x2')
qp.minimize(linear=[5, -7])

# initialize optimizer
qaoa_mes = QAOA(quantum_instance=Aer.get_backend('statevector_simulator'))
qaoa = MinimumEigenOptimizer(qaoa_mes)

# solve problem
result = qaoa.solve(qp)
print(result)

qui imprime:

optimal function value: -7.0
optimal value: [0. 1.]
status: SUCCESS

Le module d'optimisation de Qiskit fournit également d'autres algorithmes d'optimisation quantique pour les programmes quadratiques et vous pouvez trouver une description plus détaillée ici .