首页 新闻 会员 周边

Qskit1.1.0是不是删除了execute函数?

0
悬赏园豆:20 [已解决问题] 解决于 2024-06-13 18:03

我看1.0.0的更新日志中写的已经移除了,但是很多AI给出的代码仍在使用execute函数,让我很迷茫到底还有没有这个函数,如果移除了现在是用什么函数代替这个函数。

问题补充:

编程语言使用的python

闪亮的石头的主页 闪亮的石头 | 初学一级 | 园豆:164
提问于:2024-06-13 14:11
< >
分享
最佳答案
0

Qiskit 在 1.0.0 版本的更新日志中确实提到了一些重大变化,其中包括了一些函数和模块的移除或重构。如果 execute 函数已经被移除,代码中仍在使用这个函数可能会导致混淆和错误。

在 Qiskit 1.0.0 及其后的版本中,execute 函数不再被使用,改为使用其他方式来运行量子电路。

代替 execute 函数的方法
在新的 Qiskit 版本中,可以使用 qiskit.transpile 和 qiskit.assemble 组合来替代 execute 函数。以下是如何在 Qiskit 1.0.0 及其后版本中运行量子电路的示例:

python
Copy code
from qiskit import QuantumCircuit, Aer
from qiskit.transpiler import transpile
from qiskit.assembler import assemble

创建量子电路

qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])

选择模拟器

backend = Aer.get_backend('qasm_simulator')

编译电路

transpiled_circuit = transpile(qc, backend)

将编译后的电路组装成Qobj

qobj = assemble(transpiled_circuit, backend)

运行电路

result = backend.run(qobj).result()

获取结果

counts = result.get_counts(qc)
print(counts)
简化版的替代方案
为了简化上述代码,Qiskit 提供了更方便的方法来执行量子电路。尽管 execute 被移除,你可以使用 backend.run 方法,它在内部会执行必要的编译和组装步骤。

python
Copy code
from qiskit import QuantumCircuit, Aer
from qiskit import transpile

创建量子电路

qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])

选择模拟器

backend = Aer.get_backend('qasm_simulator')

编译电路

transpiled_circuit = transpile(qc, backend)

运行电路并获取结果

result = backend.run(transpiled_circuit).result()

获取结果

counts = result.get_counts(qc)
print(counts)
结论
总结来说,execute 函数在 Qiskit 1.0.0 及其后版本中被移除,并被新的执行方法取代。可以使用 backend.run 方法直接运行编译后的量子电路,这个方法也隐式地执行了必要的编译和组装步骤。如果你看到仍在使用 execute 函数的代码,那可能是针对旧版本的 Qiskit。请确保在最新版本的 Qiskit 中使用相应的新方法来执行量子电路。

收获园豆:20
Technologyforgood | 大侠五级 |园豆:7199 | 2024-06-13 16:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册