こんにちは、自分で作ったQUBOソルバーを公開して収益化したいですよね。すぐできます。
TYTANというアニーリングQUBOソルバーをつくって、クラウド側にもAPIを準備しました。仕様はBQMという形式に沿っています。
今回はトライアルでZekeソルバーは普通のSAソルバーで量子ビット数も1000以下に設定しています。現状ではローカルソルバーの限界値は実用的には大体1000量子ビット程度かと思われます。それ以上の量子ビットの対応のソルバーだと市場投入する価値はあるのかなと思います。
TYTANではローカル・クラウド両方を想定しています。今回は、githubにリリースしているバージョン0.0.5で、
クラウドソルバーを実装してみました。
こちらは、blueqat.comのアカウントのAPIキーを利用して使用できます。
pip install tytan
下記はsympyを使って定式化しています。それをコンパイルしてQUBOを取り出し、それをZekeSamplerに入れると、
クラウドへ投げてくれます。戻り値は内部で処理して、dict形式にしてます。
from tytan import *
import sympy as sym
変数を定義
s1, s2, s3, s4 = sym.symbols('s1 s2 s3 s4')
#式を記述
expr = (4 * s1 + 2 * s2 + 7 * s3 - 5*s4) ** 2
Compileクラスを使用して、QUBOを取得
qubo = qubo.Compile(expr).get_qubo()
サンプラーを選択
sampler = sampler.ZekeSampler()
#計算
result = sampler.run(qubo, shots=100, api_key="APIキー")
print(result)
計算結果は、
[[{'s1': 0, 's2': 0, 's3': 0, 's4': 0}, 0.0, 49], [{'s1': 1, 's2': 1, 's3': 0, 's4': 1}, 1.0, 15], [{'s1': 0, 's2': 0, 's3': 1, 's4': 1}, 4.0, 9], [{'s1': 1, 's2': 0, 's3': 0, 's4': 1}, 1.0, 24], [{'s1': 0, 's2': 1, 's3': 0, 's4': 0}, 4.0, 3]]
使いたい人だけじゃなくて、QUBOソルバーをリリースして収益化したいという方は是非お声がけください。金額とかは自由に決められます。また、QUBOソルバーを入れるサーバーなどもご相談に乗ります。
今はとりあえず困ってる企業や個人の開発者の手助けとなるようなツールを開発します。