アニーリングマシン向け - ipa · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0...
TRANSCRIPT
![Page 1: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/1.jpg)
アニーリングマシン向け
プログラミング言語 SpoonQ
小津 泰生 (担当: 棚橋 PM)
2020/02/09
名古屋大学 理学研究科 St研
![Page 2: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/2.jpg)
0 10 20 30 40 50 60
0
10
20
30
40
50
602.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
2.0
2
行列の例a11 a12 a13 · · · a1Na21 a22 a23 a2Na31 a32 a33 a3N
.... . .
...
aN1 aN2 aN3 · · · aNN
![Page 3: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/3.jpg)
H =A1
∑v∈V
(1−
N∑j=1
xv,j
)2
+ A2
N∑j=1
(1−
∑v∈V
xv,j
)2
+ A3
∑(u,v)̸∈E
N∑j=1
xu,jxv,j+1 + A4
∑(uv)∈E
Wuv
N∑j=1
xu,jxv,j+1
3
![Page 4: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/4.jpg)
4
⃝ citiesの定義
⃝
distanceの定義} 最小化
なんとなく分かる
※最新版とは仕様が異なります
![Page 5: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/5.jpg)
高輪ゲートウェイ
5
![Page 6: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/6.jpg)
6
鹿島サッカースタジアム駅
空港第 2 ビル駅
行川アイランド駅
千葉みなと駅八王子みなみ野駅 四ツ谷駅
さいたま新都心駅
あしかがフラワーパーク駅
41.1km
119km
74.2km139km 99.3km
106km
123km
86.4km
37.9km110km 70.0km
78.7km
113km
67.4km121km 108km
125km
174km
81.1km 41.5km
57.6km
107km
40.6km
45.1km
88.9km
26.6km
81.7km
54.9km
KS
KD
NI
CMHM YT
SF
AF
※道のりは正確ではありません c⃝CC-BY-SA c⃝OpenStreetMap
![Page 7: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/7.jpg)
巡回セールスマン問題とは
制約条件
すべての を 1度ずつ訪問し戻ってくるルートの中で
最適化項
道のりが最短なものを 求める。
制約条件+最適化項= 組合せ最適化問題
7
![Page 8: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/8.jpg)
8
⃝ citiesの定義
⃝
distanceの定義} 最小化
※最新版とは仕様が異なります
![Page 9: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/9.jpg)
9
KS
KD
NI
CMHM YT
SF
AF572.5km
c⃝CC-BY-SA c⃝OpenStreetMap
![Page 10: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/10.jpg)
組合せ最適化問題
世の中の多くの問題は
組合せ最適化問題 で記述される
アニーリング によって
組合せ最適化問題を早く解けるようになると期待されている
10
![Page 11: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/11.jpg)
他の組合せ最適化問題の例
• グラフ分割問題
• 集合詰め問題
• 頂点被覆問題• 最小最大マッチング問題• グラフ彩色問題• ハミルトン閉路問題• ...
11
type group A | B | Cgroup [ @NODE_1, @NODE_2, @NODE_3, @NODE_4, @NODE_5, @NODE_6, @NODE_7, @NODE_8 ] : pminimize {
1 : @NODE_1 == @NODE_21 : @NODE_1 == @NODE_31 : @NODE_1 == @NODE_51 : @NODE_1 == @NODE_61 : @NODE_1 == @NODE_81 : @NODE_2 == @NODE_41 : @NODE_2 == @NODE_51 : @NODE_2 == @NODE_71 : @NODE_3 == @NODE_41 : @NODE_3 == @NODE_51 : @NODE_3 == @NODE_61 : @NODE_3 == @NODE_81 : @NODE_4 == @NODE_51 : @NODE_4 == @NODE_71 : @NODE_5 == @NODE_71 : @NODE_6 == @NODE_7
}solve(p)print(p)
type bool := yes | nobool [ @v1, @v2, @v3, @v4, @v5, @v6, @v7, @v8 ] : subsets@v1 != yes || @v4 != yes@v1 != yes || @v6 != yes@v2 != yes || @v5 != yes@v2 != yes || @v8 != yes@v3 != yes || @v7 != yes@v4 != yes || @v5 != yes@v4 != yes || @v8 != yes@v5 != yes || @v7 != yes@v7 != yes || @v8 != yesmaximize {
1 : @v1 == yes1 : @v2 == yes1 : @v3 == yes1 : @v4 == yes1 : @v5 == yes1 : @v6 == yes1 : @v7 == yes1 : @v8 == yes
}solve(subsets)print(subsets)
type colored := yes | nocolored [ @v1, @v2, @v3, @v4, @v5, @v6, @v7, @v8 ] : vertices@v1 == yes, @v4 == yes@v2 == yes, @v5 == yes@v4 == yes, @v5 == yes@v5 == yes, @v7 == yesminimize {
1 : @v1 == yes1 : @v2 == yes1 : @v3 == yes1 : @v4 == yes1 : @v5 == yes1 : @v6 == yes1 : @v7 == yes1 : @v8 == yes
}solve(vertices)print(vertices)
type color red | orange |pinkcolor [@BC, @YK, @NW, @AB, @SK, @NV, @MT, @ON, @QB, @NB, @NS, @PE, @NL] : p@BC != @AB, @BC != @YK, @BC != @NW@YK != @BC, @YK != @NW@NW != @YK, @NW != @BC@AB != @BC, @AB != @NW, @AB != @SK@SK != @AB, @SK != @NW, @SK != @MT@NV != @NW, @NV != @MT@MT != @NV, @MT != @SK, @MT != @ON@ON != @MT, @ON != @QB@QB != @ON, @QB != @NB, @QB != @NL@NB != @QB, @NB != @NS@NS != @NB@NL != @QBsolve(p)print(p)
※最新版とは仕様が異なります
![Page 12: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/12.jpg)
12
![Page 13: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/13.jpg)
古典コンピュータとアニーリングマシン
ノイマン型コンピュータ
ADD %rbp
EOR %rax
アニーリング
0 10 20 30 40 50 60
0
10
20
30
40
50
602.0
1.5
1.0
0.5
0.0
0.5
1.0
1.5
2.0
13
機械語アセンブリ言語
構造化プログラミング言語
QUBO ライブラリ(PyQUBOなど) ??
![Page 14: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/14.jpg)
SpoonQの紹介
14https://github.com/SpoonQ/
![Page 15: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/15.jpg)
SpoonQの紹介
問題を記述する1
答を教えてくれる2
無料ですぐ使える
15Image: CC0 license
![Page 16: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/16.jpg)
デモ
16
![Page 17: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/17.jpg)
プログラミングに詳しい方向けの説明
17
![Page 18: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/18.jpg)
開発者の方へ
構文解析構文木
ハミルトニアン生成
QUBO生成
シミュレーテッドアニーリング
外部アニーラ
解の検証
出力 パラメタサーチ
最適化項 制約項
QUBO
結果外部API
OK NG
ソースコード
やり直し
START
GOAL
OR
18
⃝
⃝
重要
※現時点で実装されていない機能もあります
![Page 19: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/19.jpg)
開発者の方へ
現状の SpoonQでは大きな問題は解けない
ハミルトニアン生成 パラメタサーチに改善の余地
19
![Page 20: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/20.jpg)
開発者の方へ
アニーリングへの敷居を下げることで利用人口を増やし · · ·
2020年を///////////////////////////////東京オリンピックアニーリング元年
に!
20
![Page 21: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/21.jpg)
開発者の方へ
201X年は機械学習元年?
• 機械学習の初期 ... 研究者が独自にアルゴリズムを開発• 限られた人しか機械学習を活用できない
• 機械学習ライブラリの発展• 利用人口の増加• 新しいパラダイムの出現• さらなる機械学習ライブラリの出現
SpoonQでアニーリング
業界 に火 をつけたい21
2020年現在
アニーリングはこの段階
![Page 22: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/22.jpg)
開発者の方へ
問 1.
処理系をつくることの困難さ
≒Programming Language
is one of
22
![Page 23: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/23.jpg)
新しい道具をつくり,初めて見える世界を探検したい
23Image: CC0 license
![Page 24: アニーリングマシン向け - IPA · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0 ト5 ト0 べ5 べ0 べ5 ト0 ト5 レ0 2 行列の例 a11 a12 a13 ··· a1N a21](https://reader033.vdocuments.site/reader033/viewer/2022042713/5fae94698e406227f227d3cd/html5/thumbnails/24.jpg)
まとめ
• SpoonQはアニーリング向けプログラミング言語
• 有名な組合せ最適化問題だけでなく、より一般的な問題を記述できることを目指している
• ユーザーの方へ アニーリングをもっと身近に!
• 開発者の方へ 「道具」をつくることでアニーリングの発展に貢献!
第 41回量子情報技術研究会(QIT41)
口頭発表
情報処理学会第 82回全国大会
口頭発表 (予定)
https://github.com/SpoonQ/
24