高度な問題を一般のパソコンでも解けるようにするコンピューターに計算させるには、計算の仕方の設計図、つまりアルゴリズムが不可欠です。高性能なコンピューターを使わなければ解けないような問題を、アルゴリズムを書き換えることで、一般に普及しているコンピューターでも十分解けるようにする、それが私の夢です。理論的な研究では、解こうとする問題について、いちばん厳しい、言い換えれば最悪の条件を想定して、それでも解ける工夫を考えます。私が考えているのは、理論的な研究の成果を十分理解しながら、現実の問題をうまく解く方法を見つけ出すことです。データマイニングの効率化を図るデータベースの世界では、「データマイニング」という分野があります。コンビニエンスストアで販売戦略を立てる場合、まず過去の販売データから「弁当を買う人はお茶も買う」というような組み合わせを探すことがよく行われます。別のある本も買う頻度が高い、という組み合わせを探し出して、お薦めの本として表示するのも同じ手法(協調フィルタリング)が基になっています。このときに、たくさんの組み合わせを調べるのは大変です。結果が多すぎても使いにくい。最初から、意味のある組み合わせになりそうなものを調べたほうが効率的です。そのための独自のアルゴリズムをいくつか考案してきました。アルゴリズム研究の可能性アルゴリズムの研究では、その研究成果のユーザーが他の分野の研究者であることが多く、私も積極的に協力しています。ユーザーから問題を提供してもらうことが自分の研究にも役立つからです。最近は、人間の遺伝情報を解析するヒトゲノム解析の計算量を減らすためのアルゴリズム作成にも協力しています。ゲノムを構成する塩基の配列を解析するときは、制限酵素を使って数百塩基単位に切ってから調べるのですが、先頭から順番に切っていく、ということはできません。部分でゲノムが切り刻まれて、無数の断片が混ざった状態になります。そのため、各断片の配列をまず確定してから、それぞれの端を見て、どの断片同士がつながるかを調べて貼り合せ、元のゲノムを再構成していました。この一連の作業を行うのに、数百台のコンピューターが何日もフル稼動しなければならないほどでした。そこで、私はこの作業に使われているアルゴリズムを見直して、似ている断片をまず分類してから比較するようにしたところ、作業時間をなんと数時間程度に抑えることができました。このように、アルゴリズムの側面からデータ処理を見直すと、ブレークスルーがあり、今後もいろいろな問題に取り組みたいと思っています。