diff --git a/qiskit/algorithms/time_evolvers/variational/var_qite.py b/qiskit/algorithms/time_evolvers/variational/var_qite.py index 48ec19409696..4200389c83cf 100644 --- a/qiskit/algorithms/time_evolvers/variational/var_qite.py +++ b/qiskit/algorithms/time_evolvers/variational/var_qite.py @@ -36,11 +36,13 @@ class VarQITE(VarQTE, ImaginaryTimeEvolver): .. code-block::python + import numpy as np + from qiskit.algorithms import TimeEvolutionProblem, VarQITE from qiskit.algorithms.time_evolvers.variational import ImaginaryMcLachlanPrinciple from qiskit.circuit.library import EfficientSU2 - from qiskit.quantum_info import SparsePauliOp - import numpy as np + from qiskit.quantum_info import SparsePauliOp, Pauli + from qiskit.primitives import Estimator observable = SparsePauliOp.from_list( [ @@ -54,13 +56,19 @@ class VarQITE(VarQTE, ImaginaryTimeEvolver): ) ansatz = EfficientSU2(observable.num_qubits, reps=1) - init_param_values = np.zeros(len(ansatz.parameters)) - for i in range(len(ansatz.parameters)): - init_param_values[i] = np.pi / 2 + init_param_values = np.ones(len(ansatz.parameters)) * np.pi/2 var_principle = ImaginaryMcLachlanPrinciple() time = 1 + + # without evaluating auxiliary operators evolution_problem = TimeEvolutionProblem(observable, time) - var_qite = VarQITE(ansatz, var_principle, init_param_values) + var_qite = VarQITE(ansatz, init_param_values, var_principle) + evolution_result = var_qite.evolve(evolution_problem) + + # evaluating auxiliary operators + aux_ops = [Pauli("XX"), Pauli("YZ")] + evolution_problem = TimeEvolutionProblem(observable, time, aux_operators=aux_ops) + var_qite = VarQITE(ansatz, init_param_values, var_principle, Estimator()) evolution_result = var_qite.evolve(evolution_problem) """ diff --git a/qiskit/algorithms/time_evolvers/variational/var_qrte.py b/qiskit/algorithms/time_evolvers/variational/var_qrte.py index 094aaea9e2df..f8305f643cb5 100644 --- a/qiskit/algorithms/time_evolvers/variational/var_qrte.py +++ b/qiskit/algorithms/time_evolvers/variational/var_qrte.py @@ -36,11 +36,14 @@ class VarQRTE(VarQTE, RealTimeEvolver): .. code-block::python - from qiskit.algorithms import TimeEvolutionProblem, VarQITE + import numpy as np + + from qiskit.algorithms import TimeEvolutionProblem, VarQRTE from qiskit.circuit.library import EfficientSU2 from qiskit.algorithms.time_evolvers.variational import RealMcLachlanPrinciple from qiskit.quantum_info import SparsePauliOp - import numpy as np + from qiskit.quantum_info import SparsePauliOp, Pauli + from qiskit.primitives import Estimator observable = SparsePauliOp.from_list( [ @@ -54,14 +57,20 @@ class VarQRTE(VarQTE, RealTimeEvolver): ) ansatz = EfficientSU2(observable.num_qubits, reps=1) - init_param_values = np.zeros(len(ansatz.parameters)) - for i in range(len(ansatz.parameters)): - init_param_values[i] = np.pi / 2 + init_param_values = np.ones(len(ansatz.parameters)) * np.pi/2 var_principle = RealMcLachlanPrinciple() time = 1 + + # without evaluating auxiliary operators evolution_problem = TimeEvolutionProblem(observable, time) - var_qrte = VarQRTE(ansatz, var_principle, init_param_values) - evolution_result = var_qite.evolve(evolution_problem) + var_qrte = VarQRTE(ansatz, init_param_values, var_principle) + evolution_result = var_qrte.evolve(evolution_problem) + + # evaluating auxiliary operators + aux_ops = [Pauli("XX"), Pauli("YZ")] + evolution_problem = TimeEvolutionProblem(observable, time, aux_operators=aux_ops) + var_qrte = VarQRTE(ansatz, init_param_values, var_principle, Estimator()) + evolution_result = var_qrte.evolve(evolution_problem) """ def __init__(