平成12年度未踏ソフトウェア創造事業


採択案件評価書

1.担当PM  6.竹内 郁雄
2.採択者氏名  小藤 哲彦 (電気通信大学電気通信学研究科博士前期課程)
3.プロジェクト実施管理組織  株式会社キャンパスクリエイト
4.委託金支払額  5,942,806千円
5.テーマ名  大規模災害救助の分散シミュレーションカーネルの開発
6.テーマ概要

阪神・淡路大震災をはじめとする近年の大災害をみるに,防災・救命救助システムに対する最先端技術の適用と研究はきわめて緊急性が高い.本提案では,大規模災害救助のシミュレーションを行なうシステムの,核になるプログラム (カーネル) の開発を提案する.本提案のシステムは,

(1) 大規模災害救助シミュレーションにおいて最良のパフォーマンスを発揮するように,大規模災害救助シミュレーションに特化する.

(2) PCクラスタの上で分散して動作し,シミュレーションの規模が大きくなったときに,PCを増やすことで処理時間の増大を抑える.

(3) 地震,火災,交通などのサブシミュレータをプラグインできる.すなわち,個別に開発された多数のサブシミュレータの中から,必要なもの,用途にあったものだけを選択・結合することで,シミュレーションシステムを構成できる.後から,まったく新しいドメインをシミュレーションするサブシミュレータを作成し,接続できるようにする.

(4) 市民,消防士,救急隊員などの,知的な個体一つ一つに対してサブシミュレータを用意することで,大規模なマルチエージェントシステムとして動作する.

という特徴をもつ.このシステムにおいて,カーネルは,サブシミュレータ間の通信を管理し,シミュレーションを進行させる役割を果たす.このシステムによって,世界中の研究者が開発したサブシミュレータをプラグインし,様々な現象が複雑に絡み合った大規模災害救助シミュレーションシステムを作成することができる.そして,そのシミュレーションシステムによって,災害時の被害予測,救助戦略の立案支援,災害に強い都市計画の支援,防災訓練時における仮想的な災害の提供,分散人工知能の新しい研究フィールドの提供,などの効果が期待できる.
7.採択理由

提案者はPMの大学研究室の学生であるが,スーパークリエータの発掘という本事業の重要な趣旨に合致していた.現在,国際的プロジェクトになりつつあるRoboCup Rescue Project (朝日新聞9月18日朝刊『天声人語』で,日本から発信して国際的な表彰対象になったRoboCupプロジェクトの一つとして紹介された) のプロトタイプシステム開発 (1999年度) において,分散シミュレーションカーネルの設計・実装を独りで行ない,中心的な役割を果たした.

 RoboCup Rescueは,大規模災害における,救命救助活動の質を情報技術によって飛躍的に高めようという長期研究開発プロジェクトである.当面は阪神淡路大震災の諸データをもとにして,救命救助エージェントの最適行動をシミュレーションによって探るというフェーズの研究が進められる.プロトタイプ (第0版) で,各種シミュレーションプログラムの統合や,膨大な数のエージェントのプログラミングにおいて,いろいろな問題点が明らかになっている.本申請は,第1版のシステムを構築するために必要な分散シミュレーションカーネルを新たに開発する提案である.

 PMのみならず,Rescueプロジェクト関係者すべてが彼のプログラミング能力を高く評価・信頼している.提案されているソフトウェアの有用性の期待も高い.なお,シミュレーションシステム自身も国際的な協調競争によって切磋琢磨されながら開発されるので,RoboCupサッカーと同様,タイミングよく日本がイニシアティブを取ることが重要である.
8.得られた成果の概要

小藤君が1999年度に開発したプロトタイプの分散シミュレーションカーネルに対して,以下の点で優れたカーネルとそれを中心としたシミュレーションアーキテクチャを開発した.

(1) 空間的なスケーラビリティの向上
 プロトタイプカーネルは,1.5Km四方の範囲 (神戸市長田区にほぼ相当し,30,000オブジェクトが存在し1,000エージェントが活動する) での災害救助シミュレーションを行なうことを目標としたが,1分間を1ステップとしたシミュレーションに1分以上を要するという性能しか出なかった.これはアーキテクチャ上元来無謀な計画であったといえる.

 このプロジェクトで開発した新しいアーキテクチャでは,カーネルを論理的に多数のサブカーネルに分割することにより,地域分割に対応できるようになった.地域分割によって分割の境界付近でシミュレーション結果が狂わないように,分割のノリシロのアルゴリズムを考案した.実験によれば,500m四方を2分割してもオーバーヘッドは10パーセント程度に収まっている.これにより,プロセッサを増やせば,ほぼ線形の台数効果のある地域分散シミュレーションが可能になる.

(2) 可変時間粒度と非同期的シミュレーション
 プロトタイプでは1分を1ステップとして同期した分散シミュレーションを行なっていたが,シミュレーション対象によっては1分が粗すぎる場合や細かすぎる場合がある.開発したカーネルでは統合される (地震,火災,交通流などの) 各サブシミュレータが自分に必要な時間粒度を設定できるようにした.すなわち,シミュレーションが全体として非同期的な動き方をするようになった.これは長時間シミュレーションの実行時間の減少にも寄与する.

(3) カーネル負荷の軽減
 プロトタイプではシミュレーション統合のために,ほとんどすべての情報流通が単体カーネルを経由しており,かつ単体カーネルがシミュレーション空間のほとんどの情報の管理を行なっていた.新しいアーキテクチャでは,カーネルをオブジェクト集合に対応させて論理分割することにより,個々のカーネルの負荷に上限を設けることが可能になった.また,従来カーネルが行なっていたエージェント行動管理を新しく導入するサブシミュレータへの仕事とするなど,カーネルの役割分担を減らし,一極集中的な負荷がかからないようにした.これはエージェントの数に関するスケーラビリティを向上させた.

(4) サブシミュレータの機能強化
 従来はカーネルがすべてを掌握していたが,新アーキテクチャではサブシミュレータが災害空間の情報を陽に自分にフィードバックしないといけないようにした.このことにより,実災害の観測データの実時間の取り込み,簡易ロールバック,サブシミュレータ間の協調などを容易にすることができた.

(5) 競合解消
 多様なサブシミュレータの柔軟なプラグインを実現するため,カーネルに負荷のかからない新しい (シミュレータ間の) 競合解消メカニズムを導入した.

これらの特徴はプロトタイプで見つかった諸問題を解決している.


[新しくつくった分散シミュレーションの概念図.この図だけではわかりにくいが,従来に比べるとKernelと書かれた中心部分が身軽になっている.特にこれまでは行動主体であったエージェント (agent) とkernelが直結していたが,Agent Will Simulatorを一段かましているところが特徴的.]

従来カーネルはC++で書かれていたが,新しいカーネルはJavaで書かれ,保守性・読解性が高い.C++からJavaへの移行により速度は半分になったが,これは現状では望みうる最小の速度低下であろう.
9.プロジェクトや成果に対するコメント

プロトタイプのカーネルで発見された数々の問題点を一つ一つ緻密にしかも大胆な方法論で解決していった能力には大いに感服させられるものがある.5ヵ月という短期間で,大きなアーキテクチャ変更を行なったにもかかわらず,むしろすっきりとした構造のカーネルを作成し,簡単なサブシミュレータまで自作して評価実験まで行なったからである.

 PMは小藤君の指導教官という立場でもあったが,概念的な指導を行なっただけである.ここで作成されたアーキテクチャとカーネルの具体的な設計・実装はほとんど彼自身の業績である.実装だけでなく,アーキテクチャ設計まで含めて一人で完遂したという意味で,彼のスーパークリータ度は高い.

 当初最も心配されたのが,プロトタイプで使ったC++言語をJava言語にしたことによる速度低下であった.PCクラスタによってスケーラビリティを上げることができてもベースの性能が数分の一に落ちてしまったのではまったく意味がないからである.実際,2月始めの時点では,プロトタイプの約1/10の性能しか出ていなかった.それを最終的に1/2の性能までアップできた.ただし,その結果アーキテクチャ上の若干の歪みを入れてしまったようである.今後の改良でそれを解決しつつも,さらなる性能向上が果たせるものと信じている.

 この成果を踏まえて,1999年から日本国内の10以上の研究機関が主導的に進めてきた国際研究プロジェクトRoboCup Rescueに弾みがつくことが期待される.
10.今後の展開に向けてのコメント

上述の通り,RoboCup Rescueの基本アーキテクチャとして採用されるように,さらに完成度と性能を上げることが肝要である.RoboCup Rescueは競争的協調研究のスタイルで行なわれるので,たとえば米国からもっと優れた分散シミュレーションのアーキテクチャが提案されれば,そちらが採用される可能性があるからである.そのためには,日本のRoboCup Rescueの研究グループのうち基本アーキテクチャ周辺の研究者たちとさらに緊密に連携して研究を進めていく必要がある.

 今回作成した分散シミュレーションカーネルの可搬性をさらに高めることも重要であろう.分散シミュレーションは多数の計算機を必要とするため,仮定しているハードウェアやネットワーク構成がどこでも得られるわけではない.低性能から高性能まで多様なプラットフォームに対応できるような構成にしておきたい.たとえば,PMが採択した別プロジェクト「IEEE1394を用いたPCクラスタシステムのためのシステムソフトウェアの開発」の成果とのドッキングなどは有望と思われる.こういった作業により,RoboCupRescueにさらに多数の研究者が集まれるようにしたい.

 この研究はこれまでに見たとおり,ビジネス指向とは対極のソフトウェア発信型であり,公共的資産を形成するタイプのプロジェクトである.それはそれで戦略的な活動が必要だが,現在すでにそのような運動が活発に展開されている.PMもそれに加わっているので,PM自身も気を引き締めないといけないと考えている.
11.評価の定量的なまとめ

[1] 未踏性 A 米国によく似たSLAがあるが,これは災害救助シミュレーションに適合
[2] 発展性 A- 災害空間の多様性への対処にはさらなる工夫が必要
[3] 完成度 A- 公開できるまでにはもう少し作業が残っている
[4] 生産性 A エレガントなアーキテクチャとコードを短期間で仕上げた
[5] 戦略性 A- RoboCup Rescueプロジェクトの長期戦略にうまく乗っている
[6] 意外性 B+ 提案時になかった機能がいくつか追加されている