アニーリングマシン向け - ipa · 0 ナ ヮ æ 僧 醯 請 0 ナ ヮ æ 僧 醯 請 レ0...
TRANSCRIPT
アニーリングマシン向け
プログラミング言語 SpoonQ
小津 泰生 (担当: 棚橋 PM)
2020/02/09
名古屋大学 理学研究科 St研
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
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
4
⃝ citiesの定義
⃝
distanceの定義} 最小化
なんとなく分かる
※最新版とは仕様が異なります
高輪ゲートウェイ
5
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
巡回セールスマン問題とは
制約条件
すべての を 1度ずつ訪問し戻ってくるルートの中で
最適化項
道のりが最短なものを 求める。
制約条件+最適化項= 組合せ最適化問題
7
8
⃝ citiesの定義
⃝
distanceの定義} 最小化
※最新版とは仕様が異なります
9
KS
KD
NI
CMHM YT
SF
AF572.5km
c⃝CC-BY-SA c⃝OpenStreetMap
組合せ最適化問題
世の中の多くの問題は
組合せ最適化問題 で記述される
アニーリング によって
組合せ最適化問題を早く解けるようになると期待されている
10
他の組合せ最適化問題の例
• グラフ分割問題
• 集合詰め問題
• 頂点被覆問題• 最小最大マッチング問題• グラフ彩色問題• ハミルトン閉路問題• ...
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)
※最新版とは仕様が異なります
12
古典コンピュータとアニーリングマシン
ノイマン型コンピュータ
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など) ??
SpoonQの紹介
14https://github.com/SpoonQ/
SpoonQの紹介
問題を記述する1
答を教えてくれる2
無料ですぐ使える
15Image: CC0 license
デモ
16
プログラミングに詳しい方向けの説明
17
開発者の方へ
構文解析構文木
ハミルトニアン生成
QUBO生成
シミュレーテッドアニーリング
外部アニーラ
解の検証
出力 パラメタサーチ
最適化項 制約項
QUBO
結果外部API
OK NG
ソースコード
やり直し
START
GOAL
OR
18
⃝
⃝
重要
※現時点で実装されていない機能もあります
開発者の方へ
現状の SpoonQでは大きな問題は解けない
ハミルトニアン生成 パラメタサーチに改善の余地
19
開発者の方へ
アニーリングへの敷居を下げることで利用人口を増やし · · ·
2020年を///////////////////////////////東京オリンピックアニーリング元年
に!
20
開発者の方へ
201X年は機械学習元年?
• 機械学習の初期 ... 研究者が独自にアルゴリズムを開発• 限られた人しか機械学習を活用できない
• 機械学習ライブラリの発展• 利用人口の増加• 新しいパラダイムの出現• さらなる機械学習ライブラリの出現
SpoonQでアニーリング
業界 に火 をつけたい21
2020年現在
アニーリングはこの段階
開発者の方へ
問 1.
処理系をつくることの困難さ
≒Programming Language
is one of
22
新しい道具をつくり,初めて見える世界を探検したい
23Image: CC0 license
まとめ
• SpoonQはアニーリング向けプログラミング言語
• 有名な組合せ最適化問題だけでなく、より一般的な問題を記述できることを目指している
• ユーザーの方へ アニーリングをもっと身近に!
• 開発者の方へ 「道具」をつくることでアニーリングの発展に貢献!
第 41回量子情報技術研究会(QIT41)
口頭発表
情報処理学会第 82回全国大会
口頭発表 (予定)
https://github.com/SpoonQ/
24