解决Qiskit中QuantumInstance等类的弃用警告问题
解决Qiskit Max-Cut代码中的弃用警告方案
核心修改点
针对代码中出现的三类弃用警告,对应修改如下:
1. 更新NumPyMinimumEigensolver的导入路径
原导入语句from qiskit.algorithms import NumPyMinimumEigensolver已被废弃,替换为:
from qiskit.algorithms.minimum_eigensolvers import NumPyMinimumEigensolver
2. 移除QuantumInstance的使用
QuantumInstance类已被废弃,QAOA现在支持直接传入backend参数,无需再创建QuantumInstance对象。
3. 更新QAOA的导入路径与参数
- 导入路径替换为:
from qiskit.algorithms.minimum_eigensolvers import QAOA
- 创建QAOA实例时,将原
quantum_instance参数替换为backend。
修改后的完整代码
import networkx as nx from qiskit import Aer from qiskit.algorithms.minimum_eigensolvers import QAOA, NumPyMinimumEigensolver from qiskit.algorithms.optimizers import COBYLA from qiskit_optimization import QuadraticProgram from qiskit_optimization.algorithms import MinimumEigenOptimizer from qiskit_optimization.applications import Maxcut # 定义图的边(边用节点索引的元组表示) edges = [(0, 1), (0, 2), (1, 2)] # 根据边创建图 G = nx.Graph(edges) # 创建Maxcut对象 maxcut = Maxcut(G) # 基于maxcut生成二次规划问题 qp = maxcut.to_quadratic_program() # 经典精确求解 exact_mes = NumPyMinimumEigensolver() exact = MinimumEigenOptimizer(exact_mes) result = exact.solve(qp) print("精确解:\n", result) # QAOA求解 qaoa_mes = QAOA(optimizer=COBYLA(), backend=Aer.get_backend('statevector_simulator')) qaoa = MinimumEigenOptimizer(qaoa_mes) result = qaoa.solve(qp) print("QAOA解:\n", result)
修改后的代码会保留原功能,同时消除所有弃用警告。
内容的提问来源于stack exchange,提问作者PapaGhost
相关产品推荐
相关产品推荐

