山本研究室で は計算幾何の手法を中心として,種々の幾何的計算とその応用について研究します.幾何的といっても,数学で扱う幾何学ではなくて,直感的な2次元や3次元 の図形を思い浮かべてください.それは,現実には2次元平面上に書かれた地図であったり,3次元空間中の物体だったりします.このような図形をどのように 計算するか,どうすれば効率的に計算できるかが興味の対象です.また,そのような手法を現実の問題に応用する方法について考えます.
現在の私が興味をもっているテーマについていくつかをピックアップしてみます.このうちのどれかを選択しなければならないということではなく,あくまでテーマの例であると考えて下さい.
これらのテーマについて以下に簡単に解説します.
グラフィックスハードウェアはいわゆる「グラフィックスボード」のことです.現在ではよくコンピュータゲームなどで使われることがあると思います.
このハードウェアを載っているコンピュータを用いると3次元図形のイメージを高速に描画することができます.リアルタイムに変化する3次元図形をリアルタイムに表示することが可能になります.たとえば,つぎのような図形を表示させることができます.
3次元図形を高速に描画できるという性質を用いて図形を表示するのではなくて,幾何的な性質をそこから引き出すことを考えてみます.
ここでグラフィックスハードウェアを用いて一番簡単に計算できるものとして,2次元のボロノイ図を考えます.いくつかの平面上に与えられた点のボロノイ図はどの点に一番近いかということで平面上を塗りわけたものです.
それぞれの黒い点が母点と呼ばれるあらかじめ与えられた点です.与えられた点のうちある点に一番近い場合にその点の色でその場所を塗るということを平面上のすべての点について行うと上の図のようになっています.これは実は,上の3次元曲面の描画と同様に3次元の図形を書くことによって得られます.この考え方を押し進めると,3次元の球面上のボロノイ図を描くこともできます.
この図形もグラフィックスハードウェアによって計算することができます.さらにこのようなことを押し進めるといろいろなものを計算することが可能となります.ここでは,この方法論をいろいろな問題に応用することと,効率良くこのような図形を表示,計算する手法の開発などを考えます.
このような計算はさらに平面の三角形メッシュ分けなどに応用することもできます.
スポーツ選手を評価するということは難しいことです.特にチームで戦うタイプのゲームや相手がいるゲームの場合にはなおさら難しくなります.水泳でも短距離でも基本的にはその選手の能力が問題となり,別の選手の行動がその選手の行動に影響を与えるということがありません.ところが,サッカーやバスケットなどはチームとしてどのように戦うかということが問題になりますし,テニスでも戦う相手の動きによって自分の動きを常にかえなければなりません.
ここではテニスを題材として考えます.テニスの選手の動きが良い,強いとはどういうことでしょうか.良く訓練された選手とそうでない選手で動きにどのような違いがあるのでしょうか.この問題をテニスの試合のビデオ画像から抽出した画像から調べようとするのがこの研究です.
たとえば,つぎのような画像があるとします.
この画像から選手の位置を抽出することを考えます.この場合には,画像処理の手法を用いて選手のいる部分だけを抜き出します.
この情報からさらに選手のコート上での位置を割り出して,そこから,時々刻々選手がどのように動いているかを算出し,選手の動きを解析してみます.現在のところ画像の解析までしかできていません.これから,選手の解析を行う段階にはいっています.
図形の計算を行うとき,誤差はつきものですこの誤差を克服したいのであれば,図形の座標などをすべて分数などで表現すればよいのですが,そのようにすると,別の問題が発生します.それは「退化」と呼ばれる現象です.普通平面上の3線は1点では交わりません.ところが,交わることも起こり得ます.同様にして平面上の3つの点は1直線上には普通は並んでいませんが,並ぶこともあり得ます.すべてを分数で表現すると「正確に」一直線上に並んでいる3点が発生します.このような場合に,計算をすると,0分の0のような破たんした計算をすることになる場合があります.これを止めさせるには点や直線をちょっとだけずらせば良いのです(このようにちょっと図ずらすことを摂動と呼びます).ところがそれをやると結果が正確になりません.
そこで考え出されたのが記号摂動です.記号摂動はちょっとずらすのですが,ずらす量は限り無く0に近くします.それが可能なのは「限り無く0に近い量」という記号を数の世界に導入するからです.このような考え方で計算すると,退化は起こらなくなります.これは非常に汎用的な手法なのですが,このための演算パッケージで一般的なものはまだありません.それぞれの計算プログラムで独自にインプリメントしているのが現状です.
平面上の点の集まりを図形と呼ぶことにします.2つの図形の足し算とは,それぞれの点をベクトルだと思った時に足したベクトルのあらわす点のすべてと定義します.このような2つの図形の和のことをミンコフスキー和と呼びます.たとえば,黄色い図形と赤い図形の足し算はつぎのようになります.一番外側の包絡線が足し算の結果となります.
このように足し算ができるというのはよいのですが,それではこの図形の引き算はできるでしょうか.すなわち逆が計算できるでしょうか.この問題は非常に難しい問題です.この問題に一つの解答を与えるのが超図形です.もともとミンコフスキー和に関する逆の操作は不可能です.ただ,図形という枠を多少ひろげてやることによって限定的ではあるのですが,逆を計算することができるようになります.この場合,我々の知っている図形もあるし,解釈不能な図形もあります.逆が計算できるということは,数の計算でいうと負の数が計算できるということです.負のお金を相手に払うことはできませんが,計算の途中で負の数を考えることは有用です.超図形に関しても同じで,超図形を描くことはできなくても,それを計算の途中に用いて最終的にいろいろな図形を設計することは可能です.