(cache) Message to Geometric Programmers
幾何計算でお困りの方へ
幾何計算のソフトウエアを作ったはずなのに、
うまく動かなくて落ち込んでいる方へ
ご心配なく、落ち込む必要はありません。
うまく動かないのは、あなたのせいではありません。理論家の
責任なのです。
「計算幾何学」という名のもとに作られているアルゴリズムは、
そのままプログラムに書きなおしても、正常に走るわけではありません。
なぜなら、それらのアルゴリズムは、「誤差は生じない」と
仮定した架空の世界で設計されているからです。誤差の生じる
現実のコンピュータで動作が保証されているわけではありません。
だから、そんなアルゴリズムをそのままプログラムへ翻訳しても、
うまく走らないのは当たり前です。プログラミングの腕が悪いからでは
ありません。
正常に動作するソフトウエアを作るためには,
誤差を考慮した別の技法が必要です。
実際、二つの強力な方法があります。
その1 誤差も例外もない世界を作る方法
(厳密計算と記号摂動の利用)
多倍長計算を利用して、誤差の発生しない閉じた世界を作ります。
さらに、無限小を表す記号を導入して、例外のない世界を作ります。
したがって、誤差も例外もないと思って、一般の場合の
プログラムを作るだけで十分です。出来上がったプログラムは、
例外があっても安定して動作します。ただし、多培長計算を
使うので、処理速度は落ちます.これは、初心者向け技術と言えるでしょう。
解説書
- 杉原厚吉:「FORTRAN 計算幾何プログラミング」, 岩波書店,東京,1998.
- 杉原厚吉:「計算幾何工学」,培風館.東京,1994.
- 杉原厚吉:幾何アルゴリズムの数値誤差対策.伊理(監)、腰塚(編):「計算
幾何学と地理情報処理」,第2版,共立出版,東京, 1993, pp. 259-269.
- 佐々木,今井,浅野,杉原:「計算代数と計算幾何」.岩波講座応用数学,方法9,
岩波書店,東京,1995 pp. 146-152.
適用例
- 多面体の集合演算
杉原、伊理:計算誤差による暴走の心配のないソリッドモデラの提案.
情報処理学会論文誌, vol. 28 (1987), pp. 962-974.
- 2次元ボロノイ図の構成法
K. Sugihara: A simple method for avoiding numerical errors and degeneracy
in Voronoi diagram construction. IRICE Transactions on Fundamentals of
Electronics, Communications and Computer Sciences, vol. E75-A (1992), pp. 468-477.
- 3次元凸の構成法
K. Sugihara:
- 4次元凸の構成法
K. Sugihara:
- そのほかにも,参考文献はありませんが,2次元ラゲールボロノイ図,球面ボロノイ図、
3次元ドロネー図などに適用したプログラムソースコードを
幾何計算ソフトウエア
で公開しています.
その2 誤差が発生しても正常に動くプログラム(位相優先設計法)
対象の位相的性質の保持を、数値計算結果より優先させることに
よって、破綻を防ぎます。浮動小数点計算が使えるので、計算速度が
早いという利点をもっています。ただし、対象の位相的性質を
抽出しなければなりませんから、問題ごとの個別の工夫が必要です。
中級技術といえます。
解説書
- 杉原厚吉:「計算幾何工学」,培風館.東京,1994.
- 杉原厚吉:幾何アルゴリズムの数値誤差対策.伊理(監)、腰塚(編):「計算
幾何学と地理情報処理」,第2版,共立出版,東京, 1993, pp. 259-269.
- 杉原厚吉:幾何アルゴリズムの位相優先設計法.室田(編):「離散構造と
アルゴリズム III」,近代科学社,東京,1994, pp. 35-76.
- 佐々木,今井,浅野,杉原:「計算代数と計算幾何」.岩波講座応用数学,方法9,
岩波書店,東京,1995, pp. 152-157.
適用例
- 2次元ボロノイ図の逐次添加構成法
K. Sugihara and M. Iri: Construction of the Voronoi diagram for "one million"
generators in single-precision arithmetic. Proceedings of the IEEE, vol. 80 (1992),
pp. 1471-1484.
K. Sugihara and M. Iri: A robust topology-oriented incremental algorithm for
Voronoi diagrams. International Journal of Coputational Geometry and Applications,
vol. 4 (1994), pp. 179-228.
- 2次元ボロノイ図の分割統治構成法
Y. Oishi and K. Sugihara: Topology-oriented divide-and-conquer algorithm for
Voronoi diagrams. Computer Vision, Graphics, and Image Processing, vol. 57 (1995),
pp. 303-314.
- 2次元線分ボロノイ図の構成法
今井,杉原:誤差による破綻の心配のない線分Voronoi図の構成算法.情報処理学会
論文誌,vol. 35 (1994), pp. 1966-1977.
- 2次元一般図形ボロノイ図の構成法
K. Sugihara: Approximation of generalized Voronoi diagrams by ordinary Voronoi
diagrams. Computer Vision, Graphics, and Image Processing, raphical Models and
Image processing, vol. 55 (1993), pp. 522-531.
- 3次元凸包の分割統治構成法
T. Minakawa and K. Sugihara
- 3次元凸包の包装法
K. Sugihara: Robust gift wrapping for the three-dimensional convex hull.
Journal of Computer and System Science, vol. 49 (1994), pp. 391-407.
- 3次元ボロノイ図・ドロネー図の構成法
稲垣,杉原,杉江:3次元ボロノイ図構成のための数値的に安定な逐次添加法.情報処理
学会論文誌,vol. 35 (1994), pp. 1-10.
稲垣,杉原:3次元ドロネー図の構築における退化に起因する問題点とその対策.電子
情報通信学会論文誌, vol. J79-D-II (1996), no. 10, pp. 1696-1703.
- 凸多面体の平面切断
K. Sugihara: A robust and consistent algorithm for intersecting convex polyhedra.
Computer Graphics Forum (EUROGRAPHCS'94, September 1994, Oslo, Norway), vol. 13
(1994), pp. C45-C54.
現場でお困りのソフトウエア技術者の皆さん、
どうぞ、気軽にご相談ください。
杉原厚吉 sugihara@mist.i.u-tokyo.ac.jp