在计算QUBO求解哈密顿算符H最小值的过程中需要利用到wildqat包,然后调用模拟退火算法来计算结果。
但是安装wildqat的过程中会遇到很多问题,本文就从我踩过的坑来介绍wildqat的安装过程,并进行简单的示例。
另外,我还更新了如何基于python模拟退火计算QUBO表达式的方法,内附详细代码,有需要的朋友可以了解一下,链接如下:
【建议收藏】利用python基于模拟退火计算QUBO表达式(内附代码)
在安装wildqat的过程中,我首先使用了常规的conda安装方法尝试了安装,代码如下:
conda install wildqat
但是却出现了以下的错误:
这是一个很常见的错误,大概表示在conda中并没有找到这个包。
于是我尝试使用下面的代码进行安装:
pip install wildqat
却遇到了下面这个问题:
显然,这是由于我们版本的错误而导致的问题,简单来讲就是numpy的版本并不符合要求,然而pip并不会帮我们配置环境。
探索了很久,找到了一种解决方案。那就是新建一个conda虚拟环境,必须是空的环境,使用下面的代码新建一个虚拟环境:
conda create -n wildqat
输入上述语句,我们就可以创建一个虚拟环境wildqat,激活这个虚拟环境:
activate wildqat
然后我们需要使用pip3(确保自己的python版本为3.X,并使用最新的pip)安装wildqat的1.1.9版本,如下:
pip3 install wildqat==1.1.9
这时候会出现第二个错误,错误如下:
大概意思表明matplotlib-3.0.0.tar.gz并没有被找到,所以我们要预先安装matplotlib=3.0.0,所以我们继续使用conda安装matplotlib的3.0.0版本,代码如下:
conda install matplotlib==3.0.0
pip3 install wildqat==1.1.9
结果如下:
可以看到一个错误提示,这表明我们的numpy版本过低,但是这不重要,我们只需要这个库可以运行就好了。
想要使用wildqat计算我们需要的结果,我们首先要确定我们的QUBO计算表达式,这里假设我们的表达式为:
[[1,2,3],
[1,2,3],
[1,2,3]]
接下来我们就需要新建一个opt类并调用sa来查看使用模拟退火算法对其的求解,代码如下:
import wildqat as wq
# 定义序列
list_value = [[1,2,3],
[1,2,3],
[1,2,3]]
# 创建opt类
wpt_new = wq.opt()
# 将我们的qubo赋值
wpt_new.qubo = list_value
print(wpt_new.sa())
# 得出结果
>>>[0,0,0]
在本文中,详细描述了在配置wildqat的过程中遇到的问题以及解决方案,并且描述了QUBO的简要计算过程。
更多函数的详情使用,我将会继续更新,如果本文对你有帮助,希望你帮我点赞,收藏,转发。
有问题可以在评论区与我一起讨论,我们下次再见。