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
AI駆動開発を事業のコアに置く
tasukuonizawa
1
160
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
130
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.4k
Azure Durable Functions で作った NL2SQL Agent の精度向上に取り組んだ話/jat08
thara0402
0
180
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
190
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
150
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
540
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
4
1.2k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.8k
StrandsとNeptuneを使ってナレッジグラフを構築する
yakumo
1
110
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.8k
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
64
Ethics towards AI in product and experience design
skipperchong
2
190
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
56
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
Everyday Curiosity
cassininazir
0
130
It's Worth the Effort
3n
188
29k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
YesSQL, Process and Tooling at Scale
rocio
174
15k
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