Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RIG#2-1
Search
RIG
October 01, 2019
Technology
0
56
RIG#2-1
2019/10/01に実施されたRIGの第2回勉強会で使用した発表資料「Barnes-Hutのアルゴリズムを用いた多体問題シミュレータ」です.
RIG
October 01, 2019
Tweet
Share
More Decks by RIG
See All by RIG
RIG#3-1
sfcrig
0
75
RIG#2-3
sfcrig
0
100
RIG#1-2
sfcrig
0
230
Other Decks in Technology
See All in Technology
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
150
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
550
データの整合性を保ちたいだけなんだ
shoheimitani
8
3.1k
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
410
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
110
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
220
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
130
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.3k
Azure Durable Functions で作った NL2SQL Agent の精度向上に取り組んだ話/jat08
thara0402
0
180
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
110
ブロックテーマ、WordPress でウェブサイトをつくるということ / 2026.02.07 Gifu WordPress Meetup
torounit
0
180
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
17k
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
80
Skip the Path - Find Your Career Trail
mkilby
0
54
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Code Reviewing Like a Champion
maltzj
527
40k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
51
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
66
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
430
Become a Pro
speakerdeck
PRO
31
5.8k
How to make the Groovebox
asonas
2
1.9k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
53
Transcript
Barnes-Hutのアルゴリズムを用いた 多体問題シミュレータ RIG#2-3 (2019/10/01) martian
多体問題 (N-body Problem) とは? • 互いに相互作用する3体以上からなる系を扱う問題 ◦ 恒星と惑星が万有引力により相互作用し合う場合の惑星運行 ◦ 電子の電子状態を求める、量子多体問題
• 今回は天体間の重力の相互作用をシミュレーションする
多体問題をシミュレートするために • 一般に多体問題では解析的な解 (厳密解) を求めることができない ◦ 制限三体問題などの特定の条件下では解析的な解が存在する • でもシミュレートしたい ◦
数値解 (近似解) を求めたいが,計算量が膨大 ◦ 計算を省略して計算量を削減するしかないが,誤差を増やしたくない ◦ 誤差の大きさに応じて計算を省略する程度を決定するアルゴリズムが必要 • Barnes-Hutのアルゴリズム ◦ * Barnes-Hutのアルゴリズムは上の要件に合致しているが,計算があまり厳密でないため精 度の要求される多体問題シミュレーションでは他の手法が用いられる.
多体問題の計算量 • 定義通りに解くと,物体から2つ選ぶ組み合わせについて全ての関係を計算 しなければならない→計算量はO(N^2)! 4 物体の数: 6個 物体の数: 12個
Barnes-Hutのアルゴリズムとは? • 多体問題のシミュレーションに用いられるアルゴリズム • 空間を1つの範囲内に1つの物体のみが存在する状況となるまで再帰的に等分 割し,木構造を生成 (次項で解説).生成された木構造から多体問題の数値解 を計算していく.
空間分割とBarnes-Hut Treeの構築 1. 空間を4等分割し(3次元空間であれば8等分割),そ れを元に4分木を生成. NW NE SW SE root
SW SE NE NW
空間分割とBarnes-Hut Treeの構築 1. 空間を4等分割し(3次元空間であれば8等分割),そ れを元に4分木を生成. 2. 4等分割した空間の中に,物体を1つしか含まない ものがあれば,その空間のノードに物体を割り当 てる. NW
NE SW SE root SW SE NE NW
空間分割とBarnes-Hut Treeの構築 1. 空間を4等分割し(3次元空間であれば8等分割),そ れを元に4分木を生成. 2. 4等分割した空間の中に,物体を1つしか含まない ものがあれば,その空間のノードに物体を割り当 てる. 3.
4等分割した空間の中に,物体が2つ以上存在する 空間があれば,その空間について1. から再びこの ルーティンを実行する. NW NE SW SE root SW SE NE NW NW NE SE SW NE SW NW SE
ノードに働く力の近似 ノード に働く力を求める rootの各象限から再帰的に以下の操作を行う 1. 子ノードが「子ノードを持つ象限を示すノード」であれ ば,該当象限を構成する辺の長さsをノードとの距離dで 割り,”s/d < 任意の閾値(θ)”
について a. 真であれば,その象限を1つの物体として捉え に及ぼす力を計算 b. 偽であれば,その象限内で1~の処理を再帰的 に実行 NW NE SW SE root SW SE NE NW NW NE SE SW NE SW NW SE
ノードに働く力の近似 ノード に働く力を求める rootの各象限から再帰的に以下の操作を行う 1. 子ノードが,「子ノードを持つ象限を示すノード」であ れば... 2. 物体を示すノードであれば,その物体が に及ぼす力を
計算する. NW NE SW SE root SW SE NE NW NW NE SE SW NE SW NW SE
ノードに働く力の近似 ノード に働く力を求める rootの各象限から再帰的に以下の操作を行う 1. 子ノードが,「子ノードを持つ象限を示すノード」であ れば... 2. 物体を示すノードであれば,その物体が に及ぼす力を
計算する. 3. 子ノードを持たない象限を示すノードであれば,無視す る. NW NE SW SE root SW SE NE NW NW NE SE SW NE SW NW SE
None
問題点 粒子同士の力の働きが非対称なので系全体の重心が移動する • このような問題において系全体の重心が不変であることは証明可能 • c.f.https://hannan-u.repo.nii.ac.jp/?action=repository_action_common_downloa d&item_id=522&item_no=1&attribute_id=18&file_no=1 遅い • 計算量はO(nlogn)だがオーバーヘッド
(木構造の生成) が大きい • 最悪の場合,総当たりするよりも計算回数が多くなることがある
知見 • 厳密解の存在しない問題→対処不可能ではない • 様々なアルゴリズムを使用することで数値解を求められる
参考文献 • 多体問題 -Wikipedia Retrieved 2019/09/30, from https://ja.wikipedia.org/wiki/%E5%A4%9A%E4%BD%93%E5%95%8F%E9%A1%8C • N-body
simulation -Wikipedia Retrieved 2019/09/30, from https://en.wikipedia.org/wiki/N-body_simulation • N-body simulations (gravitational) -Scholarpedia Retrieved 2019/09/30, from http://www.scholarpedia.org/article/N-body_simulations_(gravitational) • The Barnes-Hut Algorithm Retrieved 2019/09/30, from http://arborjs.org/docs/barnes-hut