大日本印刷

DNP アニーリング・ソフトウェア (DAS)

大日本印刷株式会社 の提供するアニーリングソフトウェアです。 GPU が搭載された PC 上で動作し、バイナリ変数またはイジング変数について二次の問題を扱うことができます。

Amplify SDK の提供する DASClient を使用することで、 pysoan モジュールがインストールされた PC において、 amplify を使って定式化した問題を DAS で実行することができます。

Tip

DAS の実行には pysoan モジュールが必要です。 ご自身で大日本印刷と契約し、 pysoan のセットアップを行ってください。

ソルバー仕様:

バイナリ変数

イジング変数

整数変数

実数変数

目的関数

2次

2次

-

-

等式制約

-

-

-

-

不等式制約

-

-

-

-

クライアントクラス:

クライアントクラスの共通インターフェース を持ちます。

設定例:

from amplify import DASClient

client = DASClient()

# アニーリング制御パラメータを自動設定するか否かの設定
client.parameters.auto = True

# CPU で実行するか GPU で実行するか選択
client.parameters.proc = "GPU"
実行例:

from amplify import Model, Constraint, VariableGenerator, equal_to, solve

# 決定変数と目的関数を定義
g = VariableGenerator()
s = g.array("Ising", 3)
f = s[0] * s[1] + s[1] * s[2] + s[2] * s[0]
c = equal_to(s[0] * a[2] - s[1], 0)

# モデルを作成
model = Model(f, c)

# ソルバーを実行
result = solve(model, client)

# DAS の実行時間を表示
print(result.execution_time)

pysoan モジュールのインストール先を取得:

>>> client.library_path
'<PATH_TO_MODULE>/pysoan/__init__.py'

pysoan モジュールのバージョンを取得:

>>> client.version
'v1.0.3'

注釈

DASClient の内部処理では、 DAS のユーザー・マニュアル 2.4 章に書かれているモデル設定方法の内、「(a) 係数リストによる方法」を用いた処理を行っています。