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
On Space Filling Curves: Its Beauty and Applica...
Search
cannorin
July 25, 2019
Science
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
On Space Filling Curves: Its Beauty and Applications
cannorin
July 25, 2019
More Decks by cannorin
See All by cannorin
AltJS を作るなら型変換を入れた方がいい
cannorin
0
1.5k
A Journey to Type-safe Vectors in F#
cannorin
6
11k
Audio Experience is greatly improved in VR: A Worked Example
cannorin
0
1.8k
TidalCycles - Haskell meets Music
cannorin
0
1.6k
Making Indian Curries - at Home!
cannorin
2
1.6k
A brief introduction to type inference
cannorin
4
2.6k
Other Decks in Science
See All in Science
機械学習 - ニューラルネットワーク入門
trycycle
PRO
0
1.1k
Build your own LLM, Live, with MicroGPT
ianozsvald
0
110
AIPシンポジウム 2025年度 成果報告会 「因果推論チーム」
sshimizu2006
3
550
コーヒー豆様核 (Coffee-bean nuclei) における形態学的サブタイピングと精選・焙煎特性の同定
jagupath
PRO
0
120
「遂行理論の未来」(松島斉教授最終講義記念セッションの発表資料)
shunyanoda
0
930
先端因果推論特別研究チームの研究構想と 人間とAIが協働する自律因果探索の展望
sshimizu2006
3
960
20251212_LT忘年会_データサイエンス枠_新川.pdf
shinpsan
0
300
TypeScript で WebAssembly を用いた 型安全なプラグイン設計
nagano
2
570
Van Dare naar Durf
voginip
0
260
白金鉱業Vol.21【初学者向け発表枠】身近な例から学ぶ数理最適化の基礎 / Learning the Basics of Mathematical Optimization Through Everyday Examples
brainpadpr
1
760
データベース10: 拡張実体関連モデル
trycycle
PRO
0
1.2k
Wet Active Matter
rajeshrinet
0
120
Featured
See All Featured
Test your architecture with Archunit
thirion
1
2.3k
4 Signs Your Business is Dying
shpigford
187
22k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
A Soul's Torment
seathinner
6
3.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
The SEO identity crisis: Don't let AI make you average
varn
0
510
Designing for Performance
lara
611
70k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
490
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.6k
Transcript
VRCLT #3 空間充填曲線,その魅力と意義 cannorin
だれ • Twitter: @cannorin_vrc • Study: 数理論理学 プログラム言語の理論 • Job:
F# プログラマ • in VRC: VOLT Enthusiast VRCLT Speaker (#2~)
空間充填曲線とは ペアノ曲線 (0) ヒルベルト曲線 (1)
空間充填曲線とは(再帰的に細かくしていく) ペアノ曲線 (1) ヒルベルト曲線 (2)
空間充填曲線とは(再帰的に細かくしていく) ペアノ曲線 (2) ヒルベルト曲線 (3)
空間充填曲線とは(再帰的に細かくしていく) ペアノ曲線 (3) ヒルベルト曲線 (4)
空間充填曲線とは → 空間を充填する曲線(それはそう) ペアノ曲線 (∞) ヒルベルト曲線 (∞)
空間充填曲線とは / 一般化 n 次元への一般化もできる(これは 3D ヒルベルト曲線)
空間充填曲線とは / 定義 n 次元の単位(超)立方体を “埋め尽くす”(一次元の)曲線 ↓ 形式的には (一次元の)単位区間 [0,
1] から n 次元の単位(超)立方体 [0, 1]ⁿ への連続写像
なぜ埋め尽くせるのか? ゲオルク・カントール (1845 - 1918) 実数 ℝ の濃度と n- 次元ユークリッド空間
ℝ ⁿ の 濃度は等しい + ( non-degenerate な)区間 (単位区間 [0, 1] など)も等しい
なぜ埋め尽くせるのか? / 濃度とは? 全単射が存在(=1対1対応を作れる)⇔ 濃度が等しい 「濃度」=「要素の個数」概念の一般化(無限もOK) |X| = |Y| (
ちなみに |ℝ| > |ℕ| )
なぜ埋め尽くせるのか? ゲオルク・カントール (1845 - 1918) | [0, 1] | =
|ℝ| = |ℝⁿ| [0, 1] ℝ と と ℝ ⁿ の間の全単射の存在を証明
なぜ埋め尽くせるのか? ジュゼッペ・ペアノ (1858 - 1932) 全単射が存在するなら, 連続にできるのだろうか? || 空間を一本の曲線で 埋め尽くせるのだろうか?
なぜ埋め尽くせるのか? ジュゼッペ・ペアノ (1858 - 1932) → 全単射にはならなかったが,埋め尽くせた! (ペアノ曲線)
なぜ全単射にならない? ℝ と ℝ ² は同相ではない ↓ 一点を取り除く 分離する→ ←
分離しない
なぜ全単射にならない? 一点を取り除いても分離しない ⇔ 自己交叉がある ⇔ 同じ点を何度も通る場所がある ⇔ 単射ではない! ※ 詳しくは解析学や位相空間論の知識が必要.
A.P.M Kupers, On Space-Filling Curves and the Hahn-Mazurkiewicz Theorem とか参照 ↑ 実は自己交叉してる
おもしろい応用例が色々ある • Google Maps のキャッシュの最適化 • 巡回セールスマン問題の高速なヒューリスティック手法 • 小型で高性能なアンテナの設計 •
大規模並列計算のロードバランシング • 衝突判定やレイトレーシングの高速化 • etc...
応用 / Bounding Volume Hierarchy 物体同士の衝突判定や,物体とレイの交差判定を効率化する ために,近くにある物体同士をグループ化して扱いたい 二分木にする → 判定回数を減らせる:
O(n) → O(log n)
応用 / Bounding Volume Hierarchy / 二分木構築の高速化 近くにある物体同士を検出して二分木を作るのが大変 → 空間充填曲線を使って走査する
空間充填曲線は右から左へと 走査するのに比べて, 平面上で近くにあるものが 直線上でも近くになりやすい → 順番に辿ればOK!
応用 / 空間充填曲線の locality 「平面上で近くにあるものが直線上でも近くになりやすい」 性質 (locality) が様々な分野に応用しやすい 実装が楽なのでヒルベルト曲線がよく使われるが, 使う曲線によって効率化の度合いが変わることもある
ところで・・・ 今回のスライドで使われている空間充填曲線の画像は, 私が所属している「株式会社ぺあのしすてむ」で 業務の一環として開発しているスマホアプリ 「 Peano Curves 」で作成されています ・現在オープンベータテスト中 ・アプリ名
: Peano Curves ・対応 OS: iOS/Android ・公式 Twitter: @PeanoCurves
Thank you for listening!