Awesome Computational Geometry
Computational Geometryを扱う資料や関連プロジェクトをまとめたAwesomeリストです。
目次
アルゴリズムの可視化
- Convex Hull - 形状を含む最小の凸集合である凸包。
- Convex Hull Algorithms - gift wrapping、Graham’s scan、quickhull、分割統治法、monotone chain、Chan’s algorithmなど、多数の凸包アルゴリズムを可視化するウェブサイト。
- Chan’s Algorithm - 2次元または3次元の点集合の凸包を計算する、出力サイズに応じて最適なアルゴリズム。
- Kirkpatrick’s Point location - 三角形分割を用い、O(n)空間とO(log n)クエリ時間で点位置を求めるデータ構造と手法。
- Voronoi Diagrams - 平面を、与えられた点集合に近い領域へ分割したもの。
- Fortune’s Algorithm - O(n log n)時間、O(n)空間でボロノイ図を生成する走査線アルゴリズム。
- k-d tree - 最近傍探索などの検索を効率的に行うための、k次元空間の分割方法。
- Configuration Space - ロボットのような物体が取り得る構成の空間。
- CGViz: Computational Geometry Interactive Visualizations (GitHub) - 探索、教育、出力可能な視覚表現の作成を目的に設計された、多数のアルゴリズムを段階的に可視化するFOSSウェブアプリ。
書籍
- Computational Geometry: Algorithms and Applications - Mark de Berg、Otfried Cheong、Marc van Kreveld、Mark Overmarsによる教科書(2008年)。
- Computational Geometry in C - Joseph O’Rourkeによる、コンピュータグラフィックス、ロボティクス、工学設計などで生じる幾何アルゴリズムの設計と実装への、広く読まれている入門書(1998年)。
- Computational Geometry: An Introduction - Franco P. PreparataとMichael I. Shamosによる入門教科書(1993年)。
- Algorithmic Geometry - Jean-Daniel Boissonnat、Mariette Yvinec、Herve Bronnimanによる教科書(1998年)。
- Discrete and Computational Geometry - 純粋数学の比較的新しい発展である離散幾何学と、応用主導のコンピュータサイエンスで新興の分野である計算幾何学の交わりを、包括的かつ親しみやすく紹介するSatyan L. DevadossとJoseph O’Rourkeの書籍(2011年)。
- Interactive Computational Geometry - A taxonomic approach - Jim Arlowによる、Mathematicaを使った計算幾何学の基本アルゴリズムの対話的入門(2014年)。
ノート
- Lecture Notes - David Mountによるメリーランド大学のCMSC 754 Computational Geometryの講義ノート(2002年)。
- Handbook of Discrete and Computational Geometry - Jacob E. Goodman、Joseph O’Rourke、Csaba D. Tóthによるハンドブック(2017年)。
- Handbook of Computational Geometry - J. R. SackとJ. Urrutiaによる、計算幾何学の主要概念と結果の概観(1998年)。
- Computing in Euclidean Geometry - Ding-Zhu DuとFrank Hwangによる、計算ユークリッド幾何学分野の近年の発展を扱う調査と探索的記事の集成(1995年)。
ライブラリ
- CGAL - 効率的で信頼性の高い幾何アルゴリズムへC++ライブラリの形で容易にアクセスできるソフトウェアプロジェクト。このウェブサイトにはこれらのアルゴリズムの多くに関する解説もある。
- Wykobi - 非常に効率的で堅牢、かつ使いやすいC++の2D/3D指向計算幾何学ライブラリ。
- geometry3Sharp - 幾何計算のためのオープンソース、BoostライセンスのC#ライブラリ。
- Computational Geometry Software Libraries - Jeff Ericksonによる、UIUCの大規模な幾何ソフトウェアのコレクションとライブラリ。
- The Stony Brook Algorithm Repository - The Algorithm Design Manualに基づくアルゴリズムのリポジトリ。
- Geometric Tools - 数学、グラフィックス、画像解析、物理学の分野で計算するためのソースコードのライブラリ。いくつかの計算幾何学アルゴリズムを含む。
- GeoLib - C++、C#、Javaで利用できる高速かつ効率的な計算幾何学ライブラリ。
- hull.js - 点集合の凸包を構築するJavaScriptライブラリ。
- S2 Geometry Library - 幾何形状を操作するパッケージ。多くの幾何ライブラリとは異なり、S2は主に、平面の2D地図ではなく球面上に描かれた形状、すなわち球面幾何学を扱うよう設計されている。このため地理データの処理に特に適している。
- Computational Geometry Unity Library - Unity向けの計算幾何学アルゴリズムのライブラリ。
会議
純粋な計算幾何学
- Symposium on Computational Geometry - 年次シンポジウム。
- The Canadian Conference on Computational Geometry - 計算幾何学と組合せ幾何学の分野における新たな成果の普及を目的とする年次国際イベント。通常は8月中旬のカナダの都市で開催される。
- Japan Conference on Discrete and Computational Geometry, Graphs, and Games - 2008年を除き1997年から毎年開催されている会議。
より広範な分野
- Symposium on Discrete Algorithms - ACM-SIAMによる年次開催の会議。
- Annual ACM Symposium on Theory of Computing - STOCはアルゴリズムと計算理論におけるすべての研究分野を扱う。
- IEEE Symposium on Foundations of Computer Science - IEEE Computer Society Technical Committee on the Mathematical Foundations of Computing(TCMF)が主催する旗艦会議で、理論計算機科学の幅広い分野を扱う。
- Annual Allerton Conference on Communications, Control and Computing - 産業界、学界、政府から優れた人材を集め、通信、制御、コンピューティング分野のイノベーションを議論する。
ジャーナル
- arXiv - 計算幾何学に関するarXivの最近の投稿。
- Elsevier - 計算幾何学の理論的・応用的側面に関する研究の場。
- Journal of Computational Geometry - 計算幾何学のあらゆる側面における最高品質の独創的研究の出版に専念する国際オープンアクセスジャーナル。
競技プログラミング
- HackerEarth - 計算幾何学に関する記事集。
- TopCoder - 計算幾何学に関する記事集。
- HackerRank - 計算幾何学を用いるプログラミング問題集。
- GeeksforGeeks - 幾何アルゴリズムでよく問われる多数の問題と一般的なトピックの実装・解説。
コース
公開コース
- MIT OCW - Nicholas PatrikalakisとTakashi Maekawaが2013年に教えたコース。
- Udemy - C++で計算幾何学アルゴリズムを実装するコース。
- edX - 計算幾何学のコース。
- Brilliant - 計算幾何学の基本概念を扱う練習問題。
大学コース
- Brown University - Roberto Tamassiaが2005年に教えたコース。
- Washington University in St. Louis - Tao Juが2017年に教えたコース。
- The University of Maryland - Dave Mountが2002年に教えたコース。
- UC Santa Barbara - Subhash Suriが2021年に教えたコース。
- UIUC - Jeff Ericksonが2022年に教えたコース。
- UC Berkeley - Jonathan Shewchukが2019年に教えたコース。
- Tufts - Diane Souvaineが2022年に教えたコース。
- KIT - Tamara MchedlidzeとChih-Hung Liuが2018年に教えたコース。
その他
- The Open Problems Project - 計算幾何学および関連分野における重要な未解決問題を記録することを目的とするプロジェクト。
- Wolfram - Wolfram言語に実装された計算幾何学アルゴリズムのドキュメント。
- Matlab - Matlabに実装された計算幾何学アルゴリズムのドキュメント。
コントリビュート
貢献を歓迎します。コントリビューションガイドラインを参照してください。