common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


autoQAOA
Desktop RAG

Overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

誰でも大規模QUBOアニーリング。PyTorchベースの無料QUBOソルバーTorch Tytanの使い方。

Yuichiro Minato

2024/02/09 11:05

こんにちは、ちょっと開発してみました。

無料のSDKでPyTorchベースで巨大な計算が解けます。

GPUを増やすと解ける問題を増やすことができると思いますが、今後の開発に期待です。

今回は単体のCPU/GPUを使って組合せ最適化問題を解いてみます。

Tytan(タイタン)というQUBOアニーリングのSDKに統合しました。

有志によって運用されています。

Tytan

https://github.com/tytansdk/tytan

使い方はシンプルです。とりあえずgithubに載せたので、インストールは、

pip install -U git+https://github.com/tytansdk/tytan

使い方はやはりシンプルです。今回のTorch TytanではPyTorchもインストールが必要ですので、合わせて入れておいてください。

通常のTytanでソルバーを変更するだけです。今回の指定するソルバーは、

solver = sampler.ArminSampler()

で、アルミンソルバーを指定すればOKです。標準ではCPUモードになっていますので、

solver = sampler.ArminSampler(mode="GPU")

のように指定してあげるとGPUモードになります。

from tytan import *
import random

N = 5000

#量子ビットを用意(まとめて定義)
q = symbols_list([N])
print(q)

式を記述(ランダムな数を与えます)

H = 0

バイアスを設定

for i in range(N):
H += random.randint(-10, 10) * q[i]

全部の相互作用を追加するの大変なので、5000箇所だけ指定

for i in range(5000):
H += random.choice([-1, 1]) * q[random.randint(0,N-1)] * q[random.randint(0,N-1)]

print(H)

#コンパイル
qubo, offset = Compile(H).get_qubo()

#サンプラー選択
solver = sampler.ArminSampler(mode="GPU")

#サンプリング
result = solver.run(qubo, show=True)

#結果
for r in result:
print(r)

こんな感じですね。

[q0 q1 q2 ... q4997 q4998 q4999]
3*q0 - 9*q1 - 3*q10 - 10*q100 + 4*q1000 (略)
GPU MODE
[{'q0': 0, 'q1': 1, 'q10': 1, (中略), -11177.0, 1]

今回はオプションで履歴をつけてるので、

サンプラー自体はこちらにあります、

https://github.com/tytansdk/tytan/blob/main/tytan/sampler.py

インスタンス生成時にはモードの指定、シードの指定ができます。mode = 'CPU' か mode='GPU'が指定できます。

def __init__(self, mode='CPU', seed=None, seed_cuda=None):

実行時にはいくつかオプションがありますが、重要なのは、num_iterationsでシミュレーションのステップ数を長くできます。大規模になったらこちらを大きめにとるのが良いかと。また、show=Trueを指定するとグラフが見れます。

def run(self, qubo, shots=1, initial_temp=10.0, final_temp=0.1, alpha=0.95, num_iterations=10000, show=False):

どうでしょうか?GPUを持っているとかなり夢が広がります。今回の問題もGoogle Colabの無料T4でも10秒くらいで計算が終わります。式展開などを入れても20秒ほどでした。ぜひ色々試してみてください。

© 2025, blueqat Inc. All rights reserved