こんにちは、いろんなアニーリングソルバーの収益化を提供するためにTYTANを作りました。まだ開発中なので使い方は難がありますが、こんな感じで利用ができます。
https://github.com/tytansdk/tytan
v0.0.4
from tytan import *
import sympy as sym
変数を定義
x, y, z = sym.symbols('x y z')
#式を記述
expr = 3*x**2 + 2*x*y + 4*y**2 + z**2 + 2*x*z + 2*y*z
Compileクラスを使用して、QUBOを取得
qubo = qubo.Compile(expr).get_qubo()
サンプラーを選択
sampler = sampler.SASampler()
計算
result = sampler.run(qubo, shots=100)
print(result)
[[{'z': 0, 'y': 0, 'x': 0}, 0.0, 8], [{'z': 1, 'y': 0, 'x': 0}, 1.0, 15], [{'z': 0, 'y': 0, 'x': 1}, 3.0, 12], [{'z': 0, 'y': 1, 'x': 0}, 4.0, 11], [{'z': 1, 'y': 0, 'x': 1}, 6.0, 17], [{'z': 1, 'y': 1, 'x': 0}, 7.0, 12], [{'z': 0, 'y': 1, 'x': 1}, 9.0, 16], [{'z': 1, 'y': 1, 'x': 1}, 14.0, 9]]
こちらは近々変数の設定を簡単にするようにTYTANに機能追加したいと思います。
追加しました。