Tối ưu hóa bằng Lôgic lượng tử

Aug 27 2020

Có thể giải quyết loại tối ưu hóa sau đây bằng Máy tính lượng tử không?

Minimize
5*x1 - 7*x2

binary
x1
x2

Nếu có, có thể có mã mẫu bằng cách sử dụng QISKitkhông?

Trả lời

2 StefanWoerner Aug 27 2020 at 14:14

Qiskit có một mô-đun tối ưu hóa và bạn có thể tìm thấy các hướng dẫn minh họa chức năng của nó tại đây .

Để giải quyết ví dụ bạn đã đăng, ví dụ: với Thuật toán tối ưu hóa gần đúng lượng tử (QAOA), bạn có thể thực hiện như sau:

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)

mà in:

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

Mô-đun tối ưu hóa của Qiskit cũng cung cấp các thuật toán tối ưu hóa lượng tử khác cho các chương trình bậc hai và bạn có thể tìm thấy mô tả chi tiết hơn tại đây .