はじめの一歩

前提条件

  • Python3
  • numpy
  • blueqat (汎用ゲートモデルを利用する場合)

インストール

$ pip3 install wildqat

または

$ git clone https://github.com/mdrft/Wildqat.git
$ python setup.py install

イジングモデル

コード例

import wildqat as wq
a = wq.opt()
a.qubo = [[4,-4,-4],[0,4,-4],[0,0,4]]
a.sa() #=> [1, 1, 1]
print(a.E[-1]) #=>[0.0]

パラメーター

いくつかのパラメーターは調整可能です。

#for sa
a.Ts  = 10    #default 5
a.R   = 0.99  #default 0.95
a.ite = 10000 #default 1000

#for sqa
a.Gs  = 100   #default 10

エネルギー関数

エネルギーの変遷は変数Eに配列で格納されています。

print(a.E[-1]) #=>[0.0]

#if you want to check the time evolution
a.plot()

汎用ゲートモデル

コード例

QAOAを実行するための汎用ゲートモデルのPauli演算子に変換することができます。

wq.pauli(wq.sel(2,1))
# => -0.5*I + 0.5*Z[0]*Z[1]

Blueqatを使うと汎用ゲートモデル上で、組み合わせ最適化問題のシミュレーションを実行することができます。

import wildqat as wq
from blueqat import vqe

qubo = wq.pauli(wq.sel(4,1))
step = 4
result = vqe.Vqe(vqe.QaoaAnsatz(qubo,step)).run()
print(result.most_common(5))

# => (((0, 0, 1, 0), 0.24650337773427797), ((1, 0, 0, 0), 0.24650337773427794), ((0, 0, 0, 1), 0.24650337773427788), ((0, 1, 0, 0), 0.24650337773427783), ((0, 0, 0, 0), 0.0034271782738342416))