from qiskit.aqua.algorithms import NumPyMinimumEigensolver from qiskit.optimization.algorithms import GroverOptimizer, MinimumEigenOptimizer from qiskit.optimization.problems import QuadraticProgram from qiskit import BasicAer from docplex.mp.model import Model backend = BasicAer.get_backend("statevector_simulator") model = Model() x0 = model.binary_var(name="x0") x1 = model.binary_var(name="x1") x2 = model.binary_var(name="x2") model.minimize(-x0 + 2 * x1 - 3 * x2 - 2 * x0 * x2 - 1 * x1 * x2) qp = QuadraticProgram() qp.from_docplex(model) print(qp.export_as_lp_string()) from qiskit.aqua import QuantumInstance grover_optimizer = GroverOptimizer(6, num_iterations=10, quantum_instance=backend) results = grover_optimizer.solve(qp) print("x={}".format(results.x)) print("fval={}".format(results.fval)) exact_solver = MinimumEigenOptimizer(NumPyMinimumEigensolver()) exact_result = exact_solver.solve(qp) print("x={}".format(exact_result.x)) print("fval={}".format(exact_result.fval)) # Since the `pytket` extension modules provide an interface to the widest variety of devices and simulators out of all major quantum software platforms, the simplest advantage to obtain through `pytket` is to try using some alternative backends. #
if (ii != jj): quadraticCoeffDict[(z[ii], z[jj])] = penalty else: quadraticCoeffDict[(z[ii], z[jj])] = quadraticCoeffs[ii][jj] else: quadraticCoeffDict[(z[ii], z[jj])] = quadraticCoeffs[ii][jj] #backend = BasicAer.get_backend('statevector_simulator') qubo = QuadraticProgram() for ii in range(numOfItems + backPackCap): qubo.binary_var(z[ii]) qubo.minimize(linear=linearCoeff, quadratic=quadraticCoeffDict) print(qubo.export_as_lp_string()) """qaoa_mes = QAOA(quantum_instance=BasicAer.get_backend('statevector_simulator')); qaoa = MinimumEigenOptimizer(qaoa_mes) # using QAOA qaoa_result = qaoa.solve(qubo) print(qaoa_result)""" quantumBackend = QuantumInstance(provider.get_backend('ibmq_qasm_simulator'), shots=2048, skip_qobj_validation=False) qaoa_mes = QAOA(quantum_instance=quantumBackend) qaoa = MinimumEigenOptimizer(qaoa_mes) # using QAOA qaoa_result = qaoa.solve(qubo) print(qaoa_result)