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
170
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
130
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
260
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
210
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.4k
20260204_Midosuji_Tech
takuyay0ne
1
150
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
720
ZOZOにおけるAI活用の現在 ~開発組織全体での取り組みと試行錯誤~
zozotech
PRO
5
5.3k
AWS Network Firewall Proxyを触ってみた
nagisa53
1
220
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
AI駆動PjMの理想像 と現在地 -実践例を添えて-
masahiro_okamura
1
110
Featured
See All Featured
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
770
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Ruling the World: When Life Gets Gamed
codingconduct
0
140
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
420
The Cult of Friendly URLs
andyhume
79
6.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Code Review Best Practice
trishagee
74
20k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
170
Raft: Consensus for Rubyists
vanstee
141
7.3k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
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