FUJITSU Quantum-inspired Computing

Digital Annealer ユーザーズガイド

初版

Copyright 2018 FUJITSU LIMITEDP3KD-1152-01

はじめに
本書は、Digital Annealer サービスの利用方法および運用管理方法を説明します。

本書の読者
本書は、Digital Annealer 上で組み合わせ最適化問題を解くためのプログラムやアプリケーションを開発する方、それらのプログラムやアプリケーションを実行する方を対象として説明します。
本書を読むにあたって、以下の知識が必要です。

• 組み合わせ最適化問題に関する基本的な知識• 量子アニーリング、シミュレーテッドアニーリングなどの最適化問題のアルゴリズムに関する基本的な知識• Virtual Private Network（VPN）に関する基本的な知識• Web API に関する基本的な知識

本書の構成
本書の構成は以下のとおりです。
● 第 1 章 概要

Digital Annealer の概要、およびシステム構成を説明します。
● 第 2 章 サービスの利用サービスを使用して、組み合わせ最適化問題を解く方法を説明します。
● 用語集

Digital Annealer 固有の用語、および関連する用語を説明します。

本書の表記について
本書では、略称および記号を以下のように使用しています。

製品名／技術名の略称について
本書では、製品名／技術名を以下のように表記しています。
製品名／技術名

略称

Windows® 7 Professional
Windows® 7 Enterprise

Windows 7

Windows® 7 Ultimate
Windows® 8.1 Pro

Windows 8.1

Windows® 8.1 Enterprise
Windows® 10 Pro

Windows 10

Windows® 10 Enterprise-1-

Windows製品名／技術名

略称

Windows® Internet Explorer®

Internet Explorer

Internet Explorer®
Mozilla® Firefox® ESR 52

Firefox ESR 52

記号について本書では、参照先、キー、メニューなどを表記するために、以下のように記号を使用します。
記号

意味

「

」

本書内の参照先のタイトル、画面での設定値を「」で囲んでいます『』

他マニュアル参照のマニュアル名を『［］

画面のボタン名、タブ名、ドロップダウンメニュー、およびキーボードのキー名を示します』で囲んでいます

例：［設定］ダイアログボックス、［ファイル］メニュー、［項目名］、［OK］ボタン、［Enter］キー

コマンドインターフェースの説明では、以下のような記号を使用します。
記号

XXXX

意味
値や文字列が可変であることを表す場合、斜体（イタリック体）の文字を使用します

また、以下のアイコン表記を使用します。
操作や設定を行ううえで制限される内容や注意が必要な内容が書いてあります。

操作や設定を行ううえで知っておくと便利な機能や使い方など、本文を補足す
る内容が書いてあります。

-2-

輸出管理規制について
本ドキュメントを輸出または第三者へ提供する場合は、お客様が居住する国および米国輸出管理関連法
規等の規制をご確認のうえ、必要な手続きをおとりください。

高度な安全性が要求される用途への使用について
本サービスは、一般事務用、パーソナル用、家庭用、通常の産業等の一般的用途を想定して開発・設計・製造されているものであり、原子力施設における核反応制御、航空機自動飛行制御、航空交通管
制、大量輸送システムにおける運行制御、生命維持のための医療用機器、兵器システムにおけるミサイ
ル発射制御など、極めて高度な安全性が要求され、仮に当該安全性が確保されない場合、直接生命・身体に対する重大な危険性を伴う用途（以下「ハイセイフティ用途」という）に使用されるよう開発・設計・製造されたものではありません。
お客様は本サービスを必要な安全性を確保する措置を施すことなくハイセイフティ用途に使用しないでください。また、お客様がハイセイフティ用途に本サービスを使用したことにより発生する、お客様
または第三者からのいかなる請求または損害賠償に対しても富士通株式会社およびその関連会社は一切責任を負いかねます。

商標について• Microsoft、Windows またはその他のマイクロソフト製品の名称および製品名は、米国 Microsoft
Corporation の、米国およびその他の国における商標または登録商標です。
• Linux® は米国及びその他の国における Linus Torvalds の登録商標です。
• Mozilla、Firefox は Mozilla Foundation の登録商標です。
• Mac OS、OS X は、米国および他の国々で登録された Apple Inc. の商標です。
• その他の会社名、各製品名などの固有名詞は、各社の商号、登録商標または商標です。
• その他、会社名、システム名、製品名などには必ずしも商標表示を付記しておりません。
2018 年 4 月 初版

-3-

改版履歴表
（1/1）
版数

日付

初版

2018 年 4 月

変更箇所（変更種別）（注）
全体

変更内容
新規作成

注）変更箇所は最新版の項番を示しています。ただし、アスタリスク（*）の付いている項番は旧版の項番を示します。

-4-

目次
第 1 章 概要 .....................................................................................................6
1.1 Digital Annealer とは .................................................................................. 7
1.1.1 Digital Annealer のサービス .................................................................. 7
第 2 章 サービスの利用 ....................................................................................8
2.1 Web API サービス ........................................................................................ 9
2.1.1 Digital Annealer サーバへの接続 ......................................................... 10
2.1.2 Web API の使用方法 ............................................................................ 11
2.1.2.1 概要 .............................................................................................. 11
2.1.2.2 API の使用例 ................................................................................. 11
2.1.2.2.1 qubo/hobo2qubo の使用例 ....................................................... 11
2.1.2.2.2 qubo/solve の使用例 ................................................................. 122.1.2.3 API の仕様 .................................................................................... 14
2.1.2.3.1 qubo/hobo2qubo の仕様 .......................................................... 14
2.1.2.3.2 qubo/solve の仕様 .................................................................... 15
2.1.2.4 API のデータ形式 .......................................................................... 16
2.2 注意事項 .................................................................................................... 24
用語集 ..............................................................................................................29

-5-

第1章

概要

この章では、Digital Annealer の概要について説明します。

-6-

1.1

Digital Annealer とはDigital Annealer は、量子現象を用いた計算方法に着想を得て設計したデジタル回路です。アニーリン
グ方式を用いて、組み合わせ最適化問題を高速に解くことができます。従来のコンピュータのようにプ
ログラミングの必要がなく、パラメーターを設定するだけで計算が行われます。また、コンピュータの内部で任意の素子同士が自由に信号をやりとりできる全結合型の構造を採用しているため、量子アニー
リングマシンに比べ、計算量が膨大で今まで解けなかった複雑な問題を計算させることができます。

Digital Annealer は、QUBO（Quadratic Unconstrained Binary Optimization）を入力データとして持ち、以下の評価関数（エネルギー）を最小化するための組合せを探索します。
Ex =

  ji ,j xi xj +  hi xi + c
i j>i

i

2 値変数 x (x ∈ {0,1}) により、組合せの状態を表現しています。

1.1.1

Digital Annealer のサービス

Digital Annealer サービスとは、1QBit 社が開発した量子コンピュータ向けソフトウェア（以降、1QBit
ソフトウェア）、および最適化回路 Digital Annealer を実装したハードウェアを使用して、組み合わせ最適化問題を高速に解くクラウドサービスです。
以下のサービスを提供します。

• Web API サービス
図 1：Web API サービス

-7-

第2章

サービスの利用

この章は、Digital Annealer が提供するサービスを使用して、組み合わせ最適化問題を解く方法について説明します。

-8-

2.1

Web API サービス

以下の手順で Web API サービスを使用します。

1

事前準備
契約時に通知された以下の情報を確認してください。

• VPN 接続• VPN サーバの FQDN（vpn.digitalannealer.global.fujitsu.com）• VPN 接続用アカウント（ユーザー名／パスワード）• VPN サーバから配付される IP アドレス
• 事前共有キー（L2TP/IPsec VPN 接続の場合だけ）• Web API アクセス
• Digital Annealer サーバの IP アドレス
• VPN 接続用アカウントのパスワードは、通知を受け取り次第、速やかに変更してください。
1

Internet Explorer で以下の URL にアクセスします。
https://vpn.digitalannealer.global.fujitsu.com/
Mac 端末（OS X または macOS）を使用する場合、上記 URL へは Firefox ESR 52 でアクセスしてください。

2

ログイン画面で、ユーザー名とパスワードを入力して、［パスワードの変更］をクリッ
クし、パスワードを変更します。

• パスワードの有効期限は 90 日です。必ず有効期限内に変更してください。
有効期限が切れた場合の通知と対処については、「VPN 接続時の注意」(P.24) を参照してください。
パスワードを忘れた場合は、ヘルプデスクへお問合せください。

2

Digital Annealer サーバへ VPN 接続する
VPN 接続することで、お客様のシステムからインターネット経由での通信を安全に使用できます。同一アカウントで、同時に 5 ユーザーまでログインできます。

3

Web API を使用する
Web API を使用して、組み合わせ最適化問題を解きます。

-9-

2.1.1

Digital Annealer サーバへの接続「2.1 Web API サービス」の「1 事前準備」(P.9) で確認した VPN 接続情報を使用して、Digital Annealer
サーバへ VPN 接続します。
● L2TP/IPsec VPN 接続の場合

L2TP/IPsec VPN 接続をサポートする OS であれば、L2TP/IPsec VPN で Digital Annealer サーバへのアクセスが可能です。
接続認証方式は事前共有鍵方式、ユーザー認証方式は MS-CHAP v2 を設定して、接続してください。
動作実績のある OS は以下のとおりです。

•
•
•
•
•

Windows 7（32bit/64bit）
Windows 8.1（32bit/64bit）
Windows 10（32bit/64bit）
OS X 10.9/10.10/10.11
macOS Sierra 10.12● SSL-VPN 接続の場合ログインには、Internet Explorer 8.0、9.0、10.0、または 11.0 が必要です。
Internet Explorer を起動して、以下の URL を入力してください。

https://vpn.digitalannealer.global.fujitsu.com/
Digital Annealer サーバがサポートする SSL-VPN クライアントは、以下のとおりです。
OS
Windows 7（32bit）

ブラウザ

Internet Explorer 8
Internet Explorer 9
Internet Explorer 10
Internet Explorer 11

Windows 7（64bit）

Internet Explorer 8（32bit）
Internet Explorer 9（32bit）
Internet Explorer 10
Internet Explorer 11

Windows 8.1（32bit/64bit）

Internet Explorer 11（デスクトップ用）

Windows 10（32bit/64bit）

Internet Explorer 11

SSL-VPN 接続は、必ず以下の手順で切断してください。
1

隠れているインジケーターを表示します。

2

SSL-VPN 接続アイコンをダブルクリックします。

3

SSL-VPN 接続画面下部の［ログアウト］ボタンをクリックして、ログアウトします。
［切断］ボタンをクリックした場合、そのあとに必ず［ログアウト］ボタンをクリックしてください。

手順 3 で［ログアウト］ボタンをクリックしなかった場合は、セッションがシステムに残り、以降、同時に 5 ユーザーまでのログインができなくなる可能性があります。

VPN 接続に関する注意事項は「 VPN 接続時の注意」(P.24) を参照してください。

- 10 -

2.1.2Web API の使用方法

Web API の使用方法について説明します。
Web API の使用に関する注意事項は、「Web API 使用時の注意」(P.28) を参照してください。

2.1.2.1 概要
Web API で提供するサービスを以下に示します。
サービス

説明

qubo/hobo2qubo

HOBO（Higher Order Binary Optimization）を
QUBO（Quadratic Unconstrained Binary Optimization）に変換する

qubo/solve

QUBO の最適解を求める

データ形式と使用するポート番号を以下に示します。
データ形式

ポート番号

REST（Representational State Transfer）/JSON 形式

8080

2.1.2.2 API の使用例
提供する各 API の使用例を以下に示します。
各 API の仕様については、「2.1.2.3 API の仕様」(P.14) を参照してください。

2.1.2.2.1 qubo/hobo2qubo の使用例
以下に、qubo/hobo2qubo を使用して、HOBO 形式の数式を QUBO 形式に変換する例を示します。
リクエスト例：x 1 x 2 x 3 を QUBO 形式に変換

1

クライアント上で、以下を実行します。
<IP address> は、Digital Annealer サーバの IP アドレス（契約時に通知）を指定します。
$ curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"terms": [{]}"coefficient": 1.0,
"polynomials": [ 1, 2, 3 ]}' http://<IP address>:8080/v1/qubo/hobo2qubo

2

QUBO 形式に変換された結果が Digital Annealer サーバから取得できます。
レスポンス例：2 x 1 x 2 – 4 x 1 x 4 – 4 x 2 x 4 + x 3 x 4 + 6 x 4{"terms":[{"coefficient":2,"polynomials":[1,2]},{"coefficient":-4,"polynomials":[1,4]},{"coefficient":-4,"polynomials":[2,4]},{"coefficient":1,"polynomials":[3,4]},{"coefficient":6,"polynomials":[4]}]}- 11 -

2.1.2.2.2 qubo/solve の使用例
以下に、qubo/solve を使用して、QUBO の最適解を求める例を示します。
リクエスト例： 2 x 1 x 2 – 4 x 2 x 4 の最適解を求める

1

クライアント上で、以下を実行します。
<IP address> は、Digital Annealer サーバの IP アドレス（契約時に通知）を指定します。

• FujitsuDAPTSolver 使用の場合$ curl -H 'Accept: application/json' -H 'Content-type: application/json' -X POST -d '{"binary_polynomial": {"terms": [{"coefficient": 2,"polynomials": [1, 2]},{"coefficient": -4,"polynomials": [2, 4]}]},"fujitsuDAPT": {"solution_mode" : "COMPLETE","number_iterations": 1000000,"number_replicas": 20,"offset_increase_rate": 1000}}
' http://<IP address>:8080/v1/qubo/solve• FujitsuDASolver 使用の場合$ curl -H 'Accept: application/json' -H 'Content-type: application/json' -X POST -d '{"binary_polynomial": {"terms": [{"coefficient": 2,"polynomials": [1, 2]},{"coefficient": -4,"polynomials": [2, 4]}]},"fujitsuDA": {"expert_mode": true,"solution_mode" : "COMPLETE","number_iterations": 1000000,"number_runs": 20,"offset_increase_rate": 819,
"temperature_start": 655,
"temperature_decay": 0.0001,"temperature_mode": "EXPONENTIAL","temperature_interval": 100,
"noise_model": "METROPOLIS"}}' http://<IP address>:8080/v1/qubo/solve- 12 -

2

QUBO の最適解が Digital Annealer サーバから取得できます。
レスポンス例：FujitsuDAPTSolver 使用の場合{"qubo_solution":{"result_status":true,"solutions":[{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}}],"f_timing":{"timing":2205,"anneal_time":2205}}}

レスポンス例：FujitsuDASolver 使用の場合{"qubo_solution":{"result_status":true,"solutions":[{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}},{"energy":-4,"frequency":1,"configuration":{"1":false,"2":true,"4":true}}],"f_timing":{"timing":376,"anneal_time":375}}}- 13 -

2.1.2.3 API の仕様
提供する各 API の仕様とデータ形式を以下に示します。

2.1.2.3.1 qubo/hobo2qubo の仕様
qubo/hobo2qubo の仕様を以下に示します。
• メソッド種別
POST• URI/v1/qubo/hobo2qubo• リクエストヘッダーの説明
キー

説明

Content-Length<length> リクエストボディのサイズ（単位：バイト）

Content-Typeapplication/json（固定）Acceptapplication/json（固定）• リクエストボディの形式
BinaryPolynomial
データ形式は、「2.1.2.4 API のデータ形式」(P.16) を参照してください。
• レスポンスボディの形式
BinaryPolynomial
データ形式は、「2.1.2.4 API のデータ形式」(P.16) を参照してください。
• 処理結果
処理結果は、HTTP ステータスコードで返されます。
正常
200：
200 以外：異常
異常の内容は、通知されるエラーメッセージで確認してください。

- 14 -

2.1.2.3.2 qubo/solve の仕様
qubo/solve の仕様を以下に示します。
• メソッド種別
POST• URI/v1/qubo/solve• リクエストヘッダーの説明
キー

説明

Content-Length<length> リクエストボディのサイズ（単位：バイト）

Content-Typeapplication/json（固定）Acceptapplication/json（固定）• リクエストボディの形式
QuboRequest
データ形式は、「2.1.2.4 API のデータ形式」(P.16) を参照してください。
• レスポンスボディの形式
QuboResponse
データ形式は、「2.1.2.4 API のデータ形式」(P.16) を参照してください。
• 処理結果
処理結果は、HTTP ステータスコードで返されます。
正常
200：
200 以外：異常
異常の内容は、通知されるエラーメッセージで確認してください。
Digital Annealer ハードウェアの処理で異常が検出された場合は、以下のようなメッセージが通知されます。
Digital Annealer failed to do the anneal with code: -1【原因】
指定したパラメーターに誤りがあるなど、アプリケーションのエラーであることを示します。
【対処】
指定したパラメーターに誤りがないかなど確認してください。
Digital Annealer failed to do the anneal with code: -2【原因】
システムのエラーであることを示します。
【対処】
ヘルプデスクへお問合せください。
Digital Annealer failed to do the anneal with code: -3【原因】
資源が一時的に利用できないなど、リトライ可能なエラーであることを示します。
【対処】
しばらく時間をおいてから再試行してください。

- 15 -

2.1.2.4 API のデータ形式
提供する各 API のリクエストおよびレスポンスのデータ形式を以下に示します。

■ BinaryPolynomial
BinaryPolynomial{terms [BinaryPolynomialTerm]
}

キー

terms

説明

BinaryPolynomialTerm の配列

BinaryPolynomialTerm{coefficientpolynomials}

number($float)[integer($int32)]

キー

説明

coefficient

係数（float 型）

polynomials

変数の番号の配列（uint16 型）

指定例：2 x 1 x 2 – 4 x 2 x 4 + x 4 + 3{}"terms": [{"coefficient": 2,"polynomials": [ 1, 2 ]},{"coefficient": -4,"polynomials": [ 2, 4 ]},{"coefficient": 1,"polynomials": [ 4 ]},{"coefficient": 3}]2 次多項式の各項単位に、coefficient に係数や定数を指定し、polynomials に変数の番号をカンマで区切って指定します。

qubo/solve で、ソルバーに FujitsuDASolver を使用し、かつ、expert_mode パラメーターに true を指定する場合、coefficient に指定する係数は「［Scaling and Rounding］」(P.19) に従い、ハード

ウェア上で計算できる範囲の整数で指定してください。

- 16 -

■ QuboMatrix
QuboMatrix {qubo}[ QuboMatrixQuboArray ]

キー

qubo

説明

QuboMatrixQuboArray の配列

QuboMatrixQuboArray {qubo_row[ number($float) ]}キー

qubo_row

説明qubo の行の配列（float 型）

指定例：2 x 1 x 2 – 4 x 2 x 4 + x 4{}"qubo": [{"qubo_row": [ 0, 0, 0, 0, 0 ]},{"qubo_row": [ 0, 0, 2, 0, 0 ]},{"qubo_row": [ 0, 0, 0, 0, -4 ]},{"qubo_row": [ 0, 0, 0, 0, 0 ]},{"qubo_row": [ 0, 0, 0, 0, 1 ]}]2 次多項式の各項の 1 つ目の変数と 2 つ目の変数を、列と行でそれぞれ以下のように表し、それぞれの変数の番号の要素に係数を指定します。
列  x 0 ,x 1 ,x 2 , x n 行  x 0 ,x 1 ,x 2 , x n 

1 次式の場合は、変数の番号の対角項に係数を指定します。
定数は指定できないため、求められた最適解に加算減算するか、または BinaryPolynomial で指定してください。

qubo/solve で、ソルバーに FujitsuDASolver を使用し、かつ、expert_mode パラメーターに true を指定する場合、qubo_row に指定する係数は「［Scaling and Rounding］」(P.19) に従い、ハードウェ
ア上で計算できる範囲の整数で指定してください。

- 17 -

■ QuboRequest
QuboRequest {binary_polynomial
qubo_matrix}

BinaryPolynomial
QuboMatrix

（*1）
（*1）

FujitsuDAPTSolver （*2）
FujitsuDASolver（*2）

fujitsuDAPT
fujitsuDA*1: 2 種類の形式（BinaryPolynomial / QuboMatrix）のどちらかで QUBO を指定します。
*2: 2 種類のソルバー（FujitsuDAPTSolver / FujitsuDASolver）のどちらかを指定します。レプリカ交換（paralleltempering）機能を使用する場合は、FujitsuDAPTSolver を指定してください。
レプリカ交換機能については、「備考」(P.21) および「レプリカ交換」(P.30) の説明を参照してください。
ソルバー（FujitsuDAPTSolver / FujitsuDASolver）のパラメーターの詳細を以下に示します。
● FujitsuDAPTSolver
FujitsuDAPTSolver {number_iterations
number_replicas
offset_increase_rate
solution_mode}

integer($int32)
integer($int32)
integer($int32)
stringパラメーター説明

number_iterations

1 回のアニーリングにおける探索回数（int32 型）
1 以上の整数を指定（デフォルト：100000）（推奨値：100000 以上）

number_replicas

レプリカ数（int32 型）
初期化された異なる温度で並列にアニーリングを実行させる数
1 以上の整数を指定（デフォルト：100）（推奨値：100）
20 の倍数となる値の指定を推奨
設定値に制限があるため、「Web API 使用時の注意」(P.28) を参照

offset_increase_rate

新しい状態が選ばれなかったときのエネルギー累積増分（int32 型）
0 以上の値を指定（デフォルト：1000）

solution_mode

最適解の復帰モード（string 型）
COMPLETE または QUICK を指定（デフォルト：COMPLETE）• COMPLETE を指定した場合
number_replicas で指定したアニーリング数分すべての結果を返すが、Digital Annealer ハードウェアでスケーリング（Scaling and Rounding）（*1）が行われた場合は、energy が同一の結果は 1 つにまとめ、frequencyに合計した出現頻度を設定して返す• QUICK を指定した場合
number_replicas で指定したアニーリング数分すべての結果を返すが、Digital Annealer ハードウェアでスケーリング（Scaling and Rounding）（*1）が行われた場合は、すべての結果の中から energy が一番低い結果（最適解）だけ返す*1: ● FujitsuDASolver の 「expert_mode」(P.19) の説明を参照してください。

- 18 -

● FujitsuDASolver
FujitsuDASolver {expert_mode
noise_model
number_iterations
number_runs
offset_increase_rate
temperature_decay
temperature_intervaltemperature_mode
temperature_startsolution_mode}

boolean($boolean)stringinteger($int32)
integer($int32)
integer($int32)
number($float)
integer($int32)
stringnumber($float)
stringパラメーター

expert_mode

説明
エキスパートモード（boolean 型）
アニーリングを行うためのスケーリング（Scaling and Rounding）、
および各種パラメーター（Parameter Setting）を手動で設定するか自動で設定するかを、true または false で指定（デフォルト：false）• true を指定した場合
Scaling and Rounding：disable（手動）Parameter Setting : enable（手動）• false を指定した場合
Scaling and Rounding：enable（自動）Parameter Setting : disable（自動）［Scaling and Rounding］
Digital Annealer ハードウェアは、二次のバイナリ多項式の係数を整数としてエンコードする。Digital Annealer ハードウェアの計算精度は、二次項が符号付き 16bit 整数で、線形項が符号付き 25bit 整数である。係数がDigital Annealer ハードウェアの計算精度の範囲外や整数でない場合に、
Digital Annealer ハードウェア上で解くことができる多項式に変換する機能である。enable の場合に自動で行われる［Parameter Setting］
以下のパラメーターは enable の場合だけ指定可能• noise_model• offset_increase_rate• temperature_decay• temperature_interval• temperature_mode• temperature_start

noise_model（*1）

状態遷移の判定方式（string 型）
METROPOLIS または GIBBS を指定（デフォルト：METROPOLIS）
METROPOLIS を推奨［METROPOLIS の判定方式］
状態を遷移させた場合のエネルギーの変化量（ E ）とそのときの温度（T）に応じて、状態を遷移させるかどうかを判定するための確率（遷移受入確率）（A）を計算する方式
A = min [1, exp  – E  T ]

number_iterations

1 回のアニーリングにおける探索回数（int32 型）
1 以上の整数を指定

number_runs

アニーリングの繰り返し回数（int32 型）
1 以上の整数を指定（デフォルト：100）
20 の倍数、かつ、number_runs × number_iterations が 100000 以上になる値を推奨
設定値に制限があるため、「Web API 使用時の注意」(P.28) を参照- 19 -

パラメーター

offset_increase_rate

説明
新しい状態が選ばれなかったときのエネルギー累積増分（int32 型）（*1）

0 以上の値を指定

temperature_decay

アニーリングの温度の減衰率（float 型）
指定値の範囲は、temperature_mode の指定に依存「temperature_mode」(P.20) の説明を参照（*1）

temperature_interval（*1）

temperature_mode（*1）

アニーリング時の温度変更の間隔（int32 型）
1 以上の整数を指定（デフォルト：100）
アニーリング温度の変更モデル（string 型）
EXPONENTIAL、INVERSE、または INVERSE_ROOT のどれかを指定（デフォル
ト：EXPONENTIAL）
n 番目の温度変更時における温度（Tn）は以下のように算出する• EXPONENTIAL
Tn +1 = Tn ×（1 - temperature_decay）• INVERSE
Tn +1 = Tn ×（1 - temperature_decay× Tn）• INVERSE_ROOT
Tn +1 = Tn ×（1 - temperature_decay × Tn × Tn）
temperature_decay は、各モードの定義式の右辺が 0 以上の値になるように指定各モードの指定値の範囲は以下• EXPONENTIAL
0 ≦ temperature_decay ≦ 1• INVERSE
0 ≦ temperature_decay ≦ 1 / temperature_start• INVERSE_ROOT
0 ≦ temperature_decay ≦ 1 /（ temperature_start × temperature_start）
temperature_decay の値を小さくすると、アニーリングの温度遷移は緩やかになる

temperature_start

アニーリングの開始温度（float 型）（*1）

0 より大きな値を指定

solution_mode

最適解の復帰モード（string 型）
COMPLETE または QUICK を指定（デフォルト：COMPLETE）• COMPLETE を指定した場合
number_runs で指定したアニーリング数分すべての結果を返すが、Digital Annealer ハードウェアでスケーリング（Scaling and Rounding）（*2）が行われた場合は、energy が同一の結果は 1 つにまとめ、frequencyに合計した出現頻度を設定して返す• QUICK を指定した場合
number_runs で指定したアニーリング数分すべての結果を返すが、Digital Annealer ハードウェアでスケーリング（Scaling and Rounding）（*2）が行われた場合は、すべての結果の中から energy が一番低い結果（最適解）だけ返す*1: expert_mode パラメーターで true を指定した場合だけ、指定できます。
*2: 「expert_mode」(P.19) の説明を参照してください。

- 20 -

備考• FujitsuDAPTSolver（レプリカ交換機能使用）では、QUBO の最適解を求めるために必要な以下のパラメーターの指定が不要になります。

• noise_model• temperature_decay• temperature_interval• temperature_mode• temperature_start
FujitsuDASolver では、特に temperature_decay、temperature_interval、temperature_start は、

温度スケジュールに関わるパラメーターであり、適切な値を指定しないと最適解が得られません。
各パラメーターの値の組合せは無数にあり、最適解が得られる適切な値を探すチューニング作業が必要となります。
FujitsuDAPTSolver では、これらのパラメーターの指定が不要となり、チューニング作業にかかる時間を大幅に短縮できます。
• FujitsuDASolver では、以下のパラメーターのうち、どれか 1 つでも指定する場合は、必ず以下の6 つのパラメーターをすべて指定してください。

• noise_model• offset_increase_rate• temperature_decay• temperature_interval• temperature_mode• temperature_start• FujitsuDASolver でのアニーリングの温度スケジュールは、temperature_decay、
temperature_interval、temperature_mode、temperature_start のパラメーターで規定されます。
例えば、以下のように number_iterations=100000、temperature_interval=100 の場合、100 回の探索ごとに temperature_mode パラメーターで指定したモードで算出した温度に変更します。
1 回のアニーリングの探索回数（number_iterations）が 100000 なので、100000/100=1000 回の温度変更をすることになります。

• FujitsuDASolver での 1 回のアニーリングは、上記アニーリングの温度スケジュールで設定された各温度で、number_iterations パラメーターで指定した回数分探索が実施され、number_runs パ
ラメーターで指定した回数分アニーリングを繰り返します。
どちらのパラメーターも大きな値を指定するほど時間がかかります。

- 21 -

• offset_increase_rate は、探索を加速するためのパラメーターです。局所解に落ち込んで状態遷移が起こらない場合に、探索ごとに offset_increase_rate の値分ずつエネルギーを上げる処理を行い、状態遷移を起こす確率を向上させます。状態遷移が発生したら、offset_increase_rate によって累積されたエネルギーはリセットされます。使用しない場合は、0 を指定します。

■ QuboResponse
QUBOResponse {qubo_solution QUBOSolutionList}
キー

qubo_solution

説明

qubo_solution リスト

QUBOSolutionList {result_status boolean($boolean)solutions[QuboSolution]
f_timing
FujitsuTiming
}
キー

説明

result_status

処理結果のステータス（true または false）

solutions

QuboSolution の配列

f_timing

f_timing リスト

QuboSolution {energyfrequency

number($float)
number($float)}

configuration {}< * > : boolean($boolean)キー

説明energy最適解

frequency

最適解の出現頻度

configuration

各変数 X の値（true または false）- 22 -

FujitsuTiming {timinganneal_time}

number($float)
number($float)

キー

説明timing

最適解を求めるのに要した時間（単位：ms）

anneal_time

Digital Annealer ハードウェアでの処理時間（単位：ms）- 23 -

2.2

注意事項

VPN 接続時の注意
VPN 接続時の注意事項について説明します。
• アクセス中のクライアントに、VPN サーバから IP アドレスが配付されます（IP アドレスは契約時に通知）。

• VPN サーバから配付される IP アドレスと同じ IP アドレスが、同一サブネット内に存在しないことを確認してください。同じ IP アドレスを使用している場合は、別の IP アドレスに変更してください。

• 同一アカウントで、同時に 5 ユーザーまでログインできます。5 ユーザーを超えてログインすると、エラーが通知されます。

• ユーザーセッションの無通信状態が 16 時間続いた場合、セッションを自動切断します。
• パスワードは有効期限（90 日）経過後 15 日以内であれば、変更できます。
有効期限（90 日）を経過した場合の通知と対処は以下のとおりです。
有効期限（90 日）経過後
15 日以内に接続した場合

SSL-VPN 接続【通知】
パスワードの設定
パスワードを設定してください。
【対処】
通知画面上で変更してください

左記以降に接続した場合【通知】
パスワードの期限切れです。
【対処】
ヘルプデスクへお問合せください

L2TP/
Windows 【通知】【通知】
IPsec VPN
リモートネットワークのパスワードの有 指定したユーザー名またはパスワードが接続

効期限が切れています。
認識されていないか、選択した認証プロ【対処】
トコルがリモートアクセスサーバーで許通知画面上で変更、または可されていないため、リモート接続が拒「2.1 Web API サービス」の否されました。
「1 事前準備」(P.9) の注意に記載の方法 【対処】で変更してください
ヘルプデスクへお問合せください

Mac 端末 【通知】

【通知】
なし
なし
【対処】
【対処】
ヘルプデスクへお問合せください「2.1 Web API サービス」の「1 事前準備」(P.9) の注意に記載の方法で変更してください- 24 -

■ L2TP/IPsec VPN 接続の場合• Digital Annealer サーバと L2TP/IPsec クライアントの間にファイアーウォールが設定されている場
合は、以下のパケットをすべて通過させる設定にしてください。
対象パケット説明UDP/500

IKE で使用される

ESP（IP: プロトコル番号 50）

NAT トラバーサルが使用されない場合は、ESP パケットが使用される

UDP/4500

NAT トラバーサルで使用される• クライアント環境がインターネットと通信する際に IP マスカレード変換している場合は、NAT ト
ラバーサル機能対応のルータが必要です。

■ SSL-VPN 接続の場合● レイヤー 2 フォワードマネージャー使用に関する注意事項• 初回接続の場合、SSL-VPN Client のインストールが要求されます。クライアント上で動作しているほかのアプリケーションをすべて終了させてから、指示に従ってインストールしてください。SSL-VPN Client をインストールすると、レイヤー 2 フォワードマネージャーもインストー
ルされます。なお、SSL-VPN Client のインストールには管理者権限が必要です。Internet
Explorer を管理者権限で実行してください。

• インストール完了後に、レイヤー 2 フォワードマネージャー画面に以下のエラーメッセージが表示された場合は、［接続］ボタンをクリックして接続操作を行ってください。
状態
切断理由

接続失敗
SSL-VPN 仮想 LAN アダプタとの接続に失敗しました。

• 他社製品との競合、他社セキュリティ製品によるブロックやアクセス権限不足などが原因でインストールに失敗し、以下のエラーメッセージが表示されることがあります。
この場合は、レイヤー 2 フォワードマネージャーを終了して、失敗原因を取り除いたあと、再インストールしてください。
状態
切断理由

接続失敗
仮想 LAN アダプタが正常にインストールされていません。

• インストール完了後に以下のメッセージが表示された場合は、コンピュータを再起動してく
ださい。

状態
切断理由

接続失敗
コンピュータの再起動が必要です。

• 利用するネットワークカードや、すでにインストールされているソフトウェアなどのシステム構成によっては、インストール完了後にシステムの再起動が必要な場合があります。

• インストールするクライアント環境によっては、「SSL-VPN クライアントのインストールに失敗しました。コンピュータを再起動した後に、SSL-VPN クライアントを再インストールしてくだ
さい。
」のメッセージが表示されることがあります。メッセージに従って、コンピュータを再起
動し、SSL-VPN Client を再インストールしてください。

• レイヤー 2 フォワードマネージャーのアンインストールは、［コントロールパネル］-［プログラムのアンインストール］-［SSL-VPN Client］を選択して行ってください。

- 25 -

• PPPoE クライアントソフトウェア（フレッツ接続ツールなど）や AIR-EDGE などの通信ソフト
ウェアを使用したクライアントからポータルにログインしたあと、レイヤー 2 フォワードマ
ネージャーをインストールした場合、レイヤー 2 フォワードマネージャーのインストール処理
中に、通信切断や通信異常が発生することがあります。
この場合は、レイヤー 2 フォワードマネージャーのインストール完了後、接続ツールで回線に再接続し、レイヤー 2 フォワードマネージャー画面の［接続］ボタンをクリックすると、SSL-VPN
アクセスが可能になります。
接続ツールで回線に再接続し、レイヤー 2 フォワードマネージャー画面の［接続］ボタンをクリックしても接続に失敗する場合は、クライアントを再起動して、再度ログインしてください。

• レイヤー 2 フォワードマネージャーをインストールするクライアントに、マイクロソフト社以外のベンダーが提供している通信ソフトウェア（PPPoE クライアントソフトウェアや VPN クラ
イアントソフトウェアなど）がインストールされている場合、レイヤー 2 フォワードマネー
ジャーのインストール処理が途中で停止することがあります。
この場合は、御使用の通信ソフトウェアの接続ツールで回線を一度切断すると、レイヤー 2 フォ
ワードマネージャーのインストールが再開されます。

• レイヤー 2 フォワードマネージャーをインストールするクライアントの LAN 環境（LAN チッ
プ、LAN カード、LAN ドライバ、または LAN ドライバの版数）によっては、インストールに失敗したり、インストール後に正常に通信できなかったりするなど、問題が発生する場合があります。レイヤー 2 フォワードマネージャーをインストールするクライアントの LAN ドライバが古い場合は、最新の LAN ドライバに更新することで問題が回避されることがあります。

• レイヤー 2 フォワードマネージャーは、OS のユーザー切替え機能を使用して、同時に複数のユーザーで使用することはできません。
● クライアント環境に関する注意事項• 日本語および英語以外の言語は動作保証していません。また、コントロールパネルで、使用 OSと異なる言語を設定すると、SSL フォワードマネージャーが正常に動作しないことがあります。
• 他ソフトウェアで ActiveX コントロールや Java アプレットの動作を禁止している場合、SSLVPN クライアントは動作できません。ActiveX コントロールや Java アプレットの動作を許可してください。

• Web ブラウザのタブ設定で、ポップアップ発生時の動作が「常に新しいタブでポップアップを開く」に設定されている場合、SSL-VPN 接続を行うと既存のタブも含むブラウザのウィンドウが非表示になります。SSL-VPN 接続を行う場合は、「常に新しいウィンドウでポップアップを開く」を有効にしてください。

• Windows の DHCP Client サービスが停止している場合、レイヤー 2 フォワードマネージャーは動作しません。Windows の DHCP Client サービスが実行中の状態で運用してください。
• Internet Explorer の［拡大］および Windows の［カスタムの拡大率］は、以下の方法で 100%に設定してください。

Internet Explorer/Windows

設定方法

Internet Explorer［表示］-［拡大］で 100% を選択します。

Windows

Windows 10［設定］-［システム］-［ディスプレイ］-［テキスト、アプリ、その他の項目のサイズを変更する］で、100% を指定します。

Windows 8.1［コントロールパネル］-［ハードウェアとサウンド］［ディスプレイ］-［すべての項目のサイズを変更する］で、［小 -100%( 規定 )］を選択します。

Windows 7［コントロールパネル］-［ハードウェアとサウンド］［ディスプレイ］-［画面上の文字を読みやすくします］で、［小 -100%( 規定 )］を選択します。

- 26 -

● Web ブラウザ（Internet Explorer）の環境設定上の注意事項• Internet Explorer を保護モードで使用すると、ファイルアクセス、レジストリアクセス、ソケットアクセスなどが制限されるため、SSL フォワードマネージャー機能、クライアントチェッ
カ機能、およびキャッシュクリーナー機能は、正常に動作しません。
これらの機能を使用する場合は、以下の手順でセキュリティを設定してください。

1 ［ツール］-［インターネットオプション］を選択し、インターネットオプション画面を表
示します。

2

セキュリティ画面で［信頼済みサイト］を選択し、［サイト］ボタンをクリックします。

3

信頼済みサイト画面の［この Web サイトをゾーンに追加する］に、仮想 SSL サーバのアドレス（URL）を入力し、［追加］ボタンをクリックします。

4 ［閉じる］ボタンをクリックし、セキュリティ画面に戻ります。
5 ［このゾーンのセキュリティのレベル］を以下に設定します。
• ［このゾーンで許可されているレベル：すべて］を「中（既定）」または「中高」に設定する。
• ［保護モードを有効にする（Internet Explorer の再起動が必要）］を無効にする。

［レベルのカスタマイズ］ボタンをクリックして詳細設定を行う場合は、以下の設定を変更しないでください。
設定項目

設定内容

ActiveX コントロールとプラグインの実行有効にする

スクリプトを実行しても安全だとマークされている
ActiveX コントロールのスクリプトの実行有効にする

署名された ActiveX コントロールのダウンロード

ダイアログを表示する、または有効にする

アクティブスクリプト

有効にする

6 ［OK］ボタンをクリックして、設定を終了します。
• ポップアップブロックが有効な場合、SSL-VPN 機能は正しく動作しません。
以下の手順でポップアップブロックの設定を変更してください。

1

以下のどちらかの手順で、ポップアップ ブロックの設定画面を表示します。
• ［ツール］-［ポップアップブロック］-［ポップアップブロックの設定］を選択する。
• インターネットオプション画面の［プライバシー］タブ画面で、［ポップアップブロッ
ク］の［設定］ボタンをクリックする。

2

ポップアップ ブロックの設定画面で、［許可する Web サイトのアドレス］に SSL-VPN の仮想 SSL サーバのアドレス（URL）を入力し、［追加］ボタンをクリックします。

3 ［閉じる］ボタンをクリックして、設定を終了します。
● そのほかの注意事項• DHCP を使用した環境で以下のどちらかの操作を行うと、Windows の起動時に SSL トンネルを確立していた NIC アダプターの IP アドレスが 169.254.*.* などのリンクローカルアドレスに変更され、通信できなくなることがあります。

• SSL トンネルを確立した状態で、Windows を休止した場合• SSL トンネルを確立した状態で、Windows 8.1 の高速スタートアップを有効にして、シャットダウンを行った場合この現象が発生した場合は、Windows を再起動してください。

• 環境依存文字（Unicode に存在し、Shift-JIS に存在しない文字）を含むユーザー名で Windowsにログインしている場合、SSL-VPN クライアントを使用できません。SSL-VPN クライアントを使用する場合は、環境依存文字を含まないユーザー名で Windows にログインしてください。

- 27 -

Web API 使用時の注意
Web API 使用時の注意事項について説明します。
• API は、リクエスト後に中断することはできません。
間違ってリクエストしてしまったり、処理に時間がかかったりしている場合でも、処理が終了するまでお待ちください。処理が終了してから、次のリクエストが開始されます。

• アニーリングにかかる時間（anneal_time）は、number_iteration パラメーター、
number_replicas パラメーター（FujitsuDAPTSolver の場合）、number_runs パラメーター（FujitsuDASolver の場合）に指定する値で決まります。例えば、number_iterations = 10000000、
number_runs = 100 を指定した場合、20 秒程度かかります。
値を 10 倍、100 倍 … すると、anneal_time もそれに比例して 10 倍、100 倍 … に増加するため、注意して指定してください。

• FujitsuDAPTSolver を使用した場合、問題の種類や難易度によっては、anneal_time がFujitsuDASolver の 10 倍程度長くかかることがあります。
• 以下のパラメーターに、上限値および下限値が設定されています。上限値および下限値は、契約のタイプによって異なります。
上限値
ソルバー

パラメーター

FujirsuDAPTSolver number_replicas

FujitsuDASolver

プレミアム
（専有型）

下限値
トライアル
（共有型）

プレミアム
（専有型）

トライアル
（共有型）

200

200

20

20

number_replicas ×
number_iterations

429496729400

1000000000

100000100000

number_runs

1000

1000

20

20

number_runs ×
number_iterations

2147483647000 10000000000

100000100000• リクエスト時に、キーやパラメーターの指定誤り（スペルミスを含む）などがあった場合でも、その指定値は無視され処理が続行されることがあります。それにより期待する処理結果が得られないことがありますので注意して指定してください。

- 28 -

用語集
D
Digital Annealer（デジタルアニーラ）
量子の振る舞いをデジタル回路で表現し、組み合わせ最適化問題を高速に解くハードウェアです。

F
FujitsuDAPTSolver
Digital Annealer でレプリカ交換機能を使用して QUBO を解くためのソルバーです。
FujitsuDASolver
Digital Annealer で QUBO を解くためのソルバーです。

H
HOBO（Higher Order Binary Optimization）
組み合わせ最適化問題を高次単項式または高次多項式で表したものです。

Q
QUBO（Quadratic Unconstrained Binary Optimization）
組み合わせ最適化問題を二次多項式で表したものです。

W
Web API
HTTP プロトコルを用いてネットワーク越しに呼び出す、アプリケーション間、システム間イン
ターフェースです。

- 29 -

あアニーリング方式
金属工学における「焼なまし」を模したシミュレーション手法です。
金属の「焼なまし」では、高温に加熱して金属の原子が動きやすいようにしてからゆっくりと冷却することで、金属の結晶が安定した状態（＝エネルギーが低い状態）になり、金属内部の欠陥やひずみを取り除くことができます。
アニーリング方式によるシミュレーションは、金属の「焼なまし」と完全に同じ動作をするわけ
ではありませんが、「焼なまし」と同じように、初めは「温度」に相当する擾乱（じょうらん）を決めるパラメーターを大きく取ることで状態が変化しやすい状況にしてから、「温度」を少しずつ下げていくことで最低エネルギー状態に近づけていく方法です。
与えられた初期状態からエネルギーが低い状態への変化は、乱数を用いて発生させた（温度により決まる）擾乱により確率的に起こります。このため、有限時間で必ず最低エネルギー状態が得られる保証はありませんが、時間をかけて温度を下げていくことで、最低エネルギー状態が得られる確率が時間とともに増加し、1 に近づいていきます。

さシミュレーテッドアニーリング
焼なましと呼ばれる過熱炉内の個体の冷却過程をシミュレートするアルゴリズムに端を発し、最適化問題（特に組み合わせ最適化問題）を解くための汎用近似解法の 1 つです。

ら量子アニーリング
量子力学的な効果を利用して、組み合わせ最適化問題を解く手法です。
量子コンピュータ
量子力学的な「状態の重ね合わせ」を利用して、並列性を実現するとされるコンピュータです。
レプリカ交換parallel tempering（並列焼きもどし）法としても知られ、緩和が遅く、かつ局所解に陥りやす
いシミュレーテッドアニーリング（焼なまし法）を改善する方法です。
方法としては、複数の初期化された異なる温度でアニーリングを並列に実行し、メトロポリス法（乱数発生により作った新しい状態を棄却するか採択するかの基準の与え方）の基準で、それぞれの温度間で状態を交換することで最適解を求めるものです。

- 30 -

FUJITSU Quantum-inspired Computing
Digital Annealer ユーザーズガイド
発行日 2018 年 4 月

Copyright 2018 FUJITSU LIMITED● 本書の内容は、改善のため事前連絡なしに変更することがあります。
● 本書の無断転載を禁じます。