幾何の計算にコンピュータを使う

易しくない計算幾何学

著者 : 名古屋大学名誉教授・埼玉大学名誉教授 工博  島田 静雄 

掲載誌 : 橋梁&都市 PROJECT

目次へ

0. はじめに
 幾何学は、数学の一分野とされています。しかし、幾何学と代数学とは別の学問体系でした。幾何学に代数学的な方法を応用するようになった歴史は比較的新しく、デカルト(Des-cartes,1596-1650)に始まるとされています。座標系を使うことから座標幾何学(coordinate geometry)と言います。代数学的な方法も取り入れますので解析幾何学(analytical geometry)として研究され、代数学との境界をあまり問題にしなくなりました。この反対に、ずっと抽象的に図形を捉える位相幾何学(topology)も、数学者に興味を持たれています。コンピュータは、代数学的な方法で数値計算をする道具です。幾何の問題を処理するとなると、簡単な初等幾何学の問題であっても、面倒な数式と数値計算技術が必要ですので、学問的な名称を付けて計算幾何学(computational geometry)と言うようになりました。これは、実学の性格が強いので、真理追究の方に興味を持つ学者は、あまり手を染めません。つまり、計算原理の説明(アルゴリズム)には熱心であっても、実践的な計算手順の組み立て(プログラミング)を評価しない傾向があります。この部分を解説しようと言うのが、この報文の目的です。

 幾何学は、既に紀元前300年頃に著されたユークリッドの「原論」に基本的な公理が述べられているように、歴史の古い学問です。幾何学の英語はgeometryです。geoは土地の意味、metryは測る意味ですので、原義は実学的な意義を持った測地学(測量学)です。文字の「幾何」は、英語とほぼ同音のラテン語を中国語で読みに当てたものだそうですが、面積は幾らか(何)と通わせたものと推定されています(新明解国語辞典)。都市計画や土木構造物の建設は地球上の作図と造形です。紙の上で作図するのと違って、スケールが大きいので一般の人の共感が得られないのです。土木工学では測量学が必須の実学的な知識です。しかし、中学・高校で習う初等幾何学が、構造物の設計で役に立っていると言う実感がありません。工業製図は、幾何学が応用され、定規やコンパスなどの道具の利用と、形状と寸法を数値で表す方法を使います。計算幾何学は、作図の道具と数値計算にコンピュータを利用する実学寄りの学問です。

 科学や哲学などの知識は、総称で学問と言います。社会生活にすぐに役に立つ知識と言うよりは、真理の追究を目的として、世俗的で余分なものを除いた、抽象的・教養的な知識を指します。商学・医学・工学・農学などは、すぐに役立つ知識の性格がありますので、これらを実学と言い、差別的な見方をすることがあります。学問的知識があっても、あまり実益を感じませんので、「職人に学問は要らない」と言う場合すらあります。実学では、何かの課題を解決するときに、学問的な知識を役に立つように応用します。そこで、純粋科学と応用科学と区別する場合もあります。数学は典型的な学問ですが、日常の社会生活で数学的な知識を応用する有難味は、あまり実感しないと思います。初等幾何学の知識も、学問的な性格があります。身近には幾何学的な図形を多く眼にしますので、幾何学は、本来、親しみの持てる内容があります。しかし、幾何学は、学問的な知識として抽象的に扱われるか、受験技術を磨くことに焦点を置いた実用知識として扱われ、社会生活とはかなりの距離を持つようになっています。

数学の基本的な要素は「数」です。幾何学の基本要素は「点・直線・平面」です。これらの幾何学的要素間には代数学的な加減乗除の算法がありません。平面二直線の交わりは二直線が共有する点ですが、二直線の掛け算とは異なって、論理積の概念で計算します。面倒なことに、二直線が平行であったり重なったりする例外もあります。コンピュータは算術的に数を処理する道具ですので、一般的なプログラミング言語は、幾何の計算に向くようには設計されていません。そこで、幾何計算の方法に、直感的な算法が使えるようなプログラミング言語Geometry Basic、詰めてGBASICの開発から考えることにしました。プログラムの本体とそのソースコードなどは、WEB上で公開します。
目次へ