I have implemented a VQE based on Qiskit's VQE function and want to run that on an actual quantum computer. My understanding was, that an IBMQ backend can be passed into the function as a Quantum Instance. But this doesn't seem to work.
Here is the code that I am using:
from qiskit.algorithms import VQE
from qiskit.algorithms.optimizers import COBYLA
from qiskit.opflow import Z, X, I
from qiskit.circuit.library import TwoLocal
from qiskit import IBMQ
IBMQ.save_account('token') # Insert token here
IBMQ.load_account()
Define hamiltonian
H = -(Z ^ Z) - 0.2 * ((X ^ I) + (I ^ X))
Define backend
provider = IBMQ.get_provider(hub='ibm-q')
backend = provider.get_backend('ibmq_bogota')
Define optimizer
optimizer = COBYLA(maxiter=200)
Define ansatz
ansatz = TwoLocal(2, 'ry','cz', reps=1)
Set up VQE and run on backend
vqe = VQE(ansatz=ansatz, optimizer=optimizer, quantum_instance=backend)
result = vqe.compute_minimum_eigenvalue(operator=H)
print the result
print(result)
The Hamiltonian used in this code is just a dummy, not my actual one. I just want to figure out how to properly run the code on IBMQ, before I try it out with my actual one. I have already tried several approaches, including this one: How to run VQE experiments on IBMQ Backends? But they all did not work either.
Can someone please help me out?