我正在使用 Qiskit Nature 进行 VQE。我想看看我的最终量子电路是什么样子的。如何打印整个量子电路(如 ansatz)?
最佳答案
您可以使用construct_ Circuit
方法来实现。例如。 (假设您安装了最新的 Qiskit 版本)
from qiskit import Aer
from qiskit.algorithms import VQE
from qiskit.algorithms.optimizers import SPSA
from qiskit.circuit.library import EfficientSU2
from qiskit.opflow import X, Y, Z
backend = Aer.get_backend('qasm_simulator')
hamiltonian = X ^ Y ^ Z
ansatz = EfficientSU2(3)
optimizer = SPSA()
parameters = list(ansatz.parameters)
vqe = VQE(ansatz, optimizer, quantum_instance=backend)
circuits = vqe.construct_circuit(parameters, hamiltonian)
for circuit in circuits:
print(circuit.draw())
打印内容
┌──────────┐┌───────────┐ ┌───────────┐┌───────────┐ ┌───────────┐┌───────────┐ ┌───────────┐┌───────────┐
q_0: ─┤ RY(θ[0]) ├┤ RZ(θ[17]) ├──■────■──┤ RY(θ[20]) ├┤ RZ(θ[23]) ├───────────────■────■──┤ RY(θ[17]) ├┤ RZ(θ[20]) ├───────────────■────■──┤ RY(θ[23]) ├┤ RZ(θ[13]) ├─────────────────────────
┌┴──────────┤├───────────┤┌─┴─┐ │ └───────────┘├───────────┤┌───────────┐┌─┴─┐ │ └───────────┘├───────────┤┌───────────┐┌─┴─┐ │ └───────────┘├───────────┤┌───────────┐┌─────┐┌───┐
q_1: ┤ RY(θ[11]) ├┤ RZ(θ[18]) ├┤ X ├──┼────────■──────┤ RY(θ[21]) ├┤ RZ(θ[11]) ├┤ X ├──┼────────■──────┤ RY(θ[18]) ├┤ RZ(θ[21]) ├┤ X ├──┼────────■──────┤ RY(θ[10]) ├┤ RZ(θ[14]) ├┤ SDG ├┤ H ├
├───────────┤├───────────┤└───┘┌─┴─┐ ┌─┴─┐ ├───────────┤├───────────┤└───┘┌─┴─┐ ┌─┴─┐ ├───────────┤├───────────┤└───┘┌─┴─┐ ┌─┴─┐ ├───────────┤├───────────┤└┬───┬┘└───┘
q_2: ┤ RY(θ[16]) ├┤ RZ(θ[19]) ├─────┤ X ├────┤ X ├────┤ RY(θ[22]) ├┤ RZ(θ[16]) ├─────┤ X ├────┤ X ├────┤ RY(θ[19]) ├┤ RZ(θ[22]) ├─────┤ X ├────┤ X ├────┤ RY(θ[12]) ├┤ RZ(θ[15]) ├─┤ H ├──────
└───────────┘└───────────┘ └───┘ └───┘ └───────────┘└───────────┘ └───┘ └───┘ └───────────┘└───────────┘ └───┘ └───┘ └───────────┘└───────────┘ └───┘
这是 ansatz 加基础转换门(H 和 Sdg 在最后),从 Pauli-X 和 -Y 基础映射到计算基础。
关于Qiskit Nature VQE 打印全量子电路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67707357/