Tutorial: Runing VQE on Braket backend#
[3]:
from qiskit.algorithms.minimum_eigensolvers import VQE
from qiskit.quantum_info import SparsePauliOp
from qiskit.algorithms.optimizers import SLSQP
from qiskit.circuit.library import TwoLocal
from qiskit.utils import algorithm_globals
from qiskit.primitives import BackendEstimator
from qiskit_braket_provider import AWSBraketProvider, BraketLocalBackend
seed = 50
algorithm_globals.random_seed = seed
Get backend to run VQE with
[2]:
provider = AWSBraketProvider()
local_simulator = BraketLocalBackend()
local_simulator
[2]:
BraketBackend[default]
[4]:
state_vector_simulator_backend = provider.get_backend("SV1")
state_vector_simulator_backend
[4]:
BraketBackend[SV1]
Running VQE
More docs on VQE and algorithms https://qiskit.org/documentation/tutorials/algorithms/01_algorithms_introduction.html#A-complete-working-example
[5]:
H2_op = SparsePauliOp(
["II", "IZ", "ZI", "ZZ", "XX"],
coeffs=[
-1.052373245772859,
0.39793742484318045,
-0.39793742484318045,
-0.01128010425623538,
0.18093119978423156,
],
)
estimator = BackendEstimator(
local_simulator,
options={"seed_transpiler": seed, "seed_simulator": seed},
skip_transpilation=False,
)
ansatz = TwoLocal(rotation_blocks="ry", entanglement_blocks="cz")
slsqp = SLSQP(maxiter=1)
vqe = VQE(estimator=estimator, ansatz=ansatz, optimizer=slsqp)
result = vqe.compute_minimum_eigenvalue(H2_op)
print(result)
{ 'aux_operators_evaluated': None,
'cost_function_evals': 9,
'eigenvalue': -1.0778032163726936,
'optimal_circuit': <qiskit.circuit.library.n_local.two_local.TwoLocal object at 0x13801f5d0>,
'optimal_parameters': { ParameterVectorElement(θ[0]): 3.611860069224077,
ParameterVectorElement(θ[1]): 4.19301252102391,
ParameterVectorElement(θ[2]): 0.6019852007557844,
ParameterVectorElement(θ[3]): 5.949536809130025,
ParameterVectorElement(θ[4]): -3.3070470445355764,
ParameterVectorElement(θ[5]): 1.8462931831829383,
ParameterVectorElement(θ[6]): -5.466043598406607,
ParameterVectorElement(θ[7]): 0.6984088030463615},
'optimal_point': array([ 3.61186007, 4.19301252, 0.6019852 , 5.94953681, -3.30704704,
1.84629318, -5.4660436 , 0.6984088 ]),
'optimal_value': -1.0778032163726936,
'optimizer_evals': None,
'optimizer_result': <qiskit.algorithms.optimizers.optimizer.OptimizerResult object at 0x138be0fd0>,
'optimizer_time': 4.060570001602173}