问题描述
- Qiskit Aqua版本:0.7.3
- Python版本:3.8
- 操作系统:Windows 10
我想使用QAOA算法找到不同海森堡哈密顿量的基态能量。但是对于某些哈密顿算子,我总是得到绝对错误的解,而对于其他哈密顿算子,或多或少的类似哈密顿算子却有效。
在python中,我使用定义了哈密顿量
def heisenberg(nqubits,nlist,b = 1):
spin_spin = 0
for item in nlist:
n = item[0]
k = item[1]
x_gate = (I^ n) ^ X ^ (I^(k - n - 1)) ^ X ^ (I ^ nqubits - 1 -k)
y_gate = (I^ n) ^ Y ^ (I^(k - n - 1)) ^ Y ^ (I ^ nqubits - 1 -k)
z_gate = (I^ n) ^ Z ^ (I^(k - n - 1)) ^ Z ^ (I ^ nqubits - 1 -k)
spin_spin += (SummedOp([x_gate,y_gate,z_gate],b))
#spin_spin += (SummedOp([x_gate],b))
magnetic = 0
for n in range(nqubits):
magnetic += (I ^ n) ^ Z ^ (I ^ (nqubits - n - 1))
heisenberg = magnetic.add(spin_spin)
return heisenberg,
nlist仅是最近的邻居列表。 现在,我为QAOA算法给出nqubit = 4且nlist = [[0,1],[0,3],[1,2],[2,3]]的哈密顿量(在翻译之前 一个WeightedPauliOperator ..),然后在statevector / qasm模拟器上运行它。现在我得到的不是E = -8的地面能量,而是E = 4。
另一方面,更改哈密顿量,使其仅对spin_spin循环中的x_gates求和,QAOA将为我提供正确的结果或合理的结果。
鉴于QAOA算法只是构造了一个电路,然后将其传递给VQE算法,可能是在此引起问题。而且我认为这与VQE如何评估“成本函数”有关。
不幸的是,我找不到确切的原因,希望这里有人可以帮忙。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)