Jupyter Notebookで実行する
サンプルコード本チュートリアルでは、Fixstars Amplify で対応しているマシンの一部を利用する際のクライアントの設定例を紹介します。より包括的で詳細な説明は、クライアントクラスに関するドキュメントをご覧ください。
from amplify import *
from amplify.constraint import *
from amplify.client import FixstarsClient
client = FixstarsClient()
client.parameters.timeout = 1000 # タイムアウト1秒
# client.token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # ローカル環境等で使用する場合は、こちらのコメントアウトを外し、Fixstars Amplify AEのアクセストークンを入力してください。
from amplify.client.ocean import DWaveSamplerClient
client_dwave = DWaveSamplerClient()
client_dwave.token = "トークンを入力してください"
# D-Wave 2000Q
client_dwave.solver = "DW_2000Q_VFYC_6"
client_dwave.parameters.num_reads = 100 # 実行回数 100
# D-Wave Advantage
client_dwave.solver = "Advantage_system1.1"
client_dwave.parameters.num_reads = 100 # 実行回数 100
from amplify.client.ocean import LeapHybridSamplerClient
client_leap_hybrid = LeapHybridSamplerClient()
client_leap_hybrid.token = "トークンを入力してください"
client_leap_hybrid.solver = "hybrid_binary_quadratic_model_version2"
client_leap_hybrid.parameters.time_limit = 3 # タイムリミット3秒
from amplify.client import FujitsuDA4SolverClient
client_fujitsu_da4 = FujitsuDA4SolverClient()
client_fujitsu_da4.token = "トークンを入力してください"
client_fujitsu_da4.parameters.time_limit_sec = 3 # タイムリミット3秒
from amplify.client import ToshibaClient
client_toshiba_sbm = ToshibaClient()
client_toshiba_sbm.url = "http://xxx.xxx.xxx.xxx" # API URL
client_toshiba_sbm.parameters.timeout = 1 # タイムアウト1秒
from amplify.client import HitachiClient
client_hitachi = HitachiClient()
client_hitachi.token = "トークンを入力してください"
client_hitachi.parameters.temperature_num_steps = 10
client_hitachi.parameters.temperature_step_length = 100
client_hitachi.parameters.temperature_initial = 100.0
client_hitachi.parameters.temperature_target = 0.02
# コスト関数の定式化例
gen = BinarySymbolGenerator()
q = gen.array(2)
cost_func = -2 * q[0] * q[1] + q[0] - q[1] + 1
cost_func
# 制約条件の定式化例
constraint = 2 * equal_to(q[0] + q[1], 1)
constraint
# モデルの構築
model = cost_func + constraint
# ソルバーの構築
solver = Solver(client)
# マシンの実行
result = solver.solve(model)
for s in result:
print(f"q = {q.decode(s.values)}")
print(f"energy = {s.energy}")