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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
GitLab Duo Agent Platform × AGENTS.md で実現するSpec-Driven Development / GitLab Duo Agent Platform × AGENTS.md
n11sh1
0
130
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
210
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
180
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
440
会社紹介資料 / Sansan Company Profile
sansan33
PRO
15
400k
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
150
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
300
What happened to RubyGems and what can we learn?
mikemcquaid
0
280
SREチームをどう作り、どう育てるか ― Findy横断SREのマネジメント
rvirus0817
0
200
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
5
5.2k
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
700
The Curious Case for Waylosing
cassininazir
0
230
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Designing for humans not robots
tammielis
254
26k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
410
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
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