冬の研究課題・・・グラフシミュレーター

db4o2007-11-01

さて、今年の冬は研究課題を作ることにした。どんなものをやるかというと、グラフシミュレータープロジェクト。グラフ構造のデータを使って、様々なシミュレーションができるというもの。発想の元はカーナビ(写真はカーナビのエンジンを使って作成したインタラクティブなデモアプリで、JavaOne2007に使った)だが、将来目指す脳のようなデータベースのためにもじっくり勉強しておこうというわけだ。

主要な部品は3つを予定。

  1. ドメイン・・・グラフオブジェクトを操作
  2. アルゴリズム・・・最短経路や最大流量、スパニングツリーなど
  3. GUI・・・グラフオブジェクトの属性や接続性の変更や追加、その他各種アルゴリズムに応じたもの

このプロジェクトの目的は私自身の学習が第一だが、各種フォーラムなどで発表して触ってもらうなどして、学生など他に学習したい人、または新しいアルゴリズムを作り上げる際の視覚化ツールとしても使えるようにする予定。

2008年2月公開予定です・・・。

2007/11/3 ポイントは永続化とアルゴリズムの視覚化

グラフの視覚化プロジェクトがかなりあるのには驚いたが、それだけニーズがあるってことだ。基本的にはどれも単にグラフをいろんな形式で表示してくれるというもの。今回作りたいのは、アルゴリズムの最適化などを行う際に、果たしてアルゴリズムがどのように計算されて動いているのか、間違っているのか正しいのか、それを視覚化して見えるようにしようというもの。

以前カーナビのプロジェクトでも欲しかったのは、計算過程の一時停止や巻き戻しみたいなもの。例えば東京都庁から大阪府庁まで、高速を使わないとどういうルートをたどるのか、なんてやってみると、不思議なルートを通ったりするわけだ。常に最短、みたいな単純なものならいいのだが、カーナビは”道なり”のようなコンピュータには不思議な最適化を必要とするので、この交差点でなんでこっちの道を選んでしまったのか、この瞬間に他の選択肢はなんだったのか、などなどを細かく検討しなくてはならないのです。

さんざん調査したあげく、実はデータが間違ってました、なんて落ちもある。

つまり、こういったリアルなデータを使って、高度なアルゴリズム最適化を行う時には、アルゴリズムの計算過程の視覚化と再生機能が欲しいわけで、このプロジェクトではそんなのを作ってみようというわけです。