IPA


開発成果一覧へ





2004年度第2回未踏ソフトウェア創造事業  採択案件評価書


 



1.担当PM

 

 中島 秀之  (公立はこだて未来大学 学長)



2.委託金支払額


 代表者

 田沼 英樹 (東京大学 医科学研究所 ゲノム医療情報ネットワーク分野・産学官連携研究員)

共同開発者

 小野 功 (徳島大学 工学部 知能情報工学科 基礎情報工学講座・助教授)



3.プロジェクト管理組織


 日本エンジェルズインベストメント株式会社



4.採択金額

 

 7,059,000円



5.テーマ名

 

 エージェントベース社会シミュレーション言語SOARSの開発



6.関連Webサイト


 なし



7.テーマ概要


 本開発プロジェクトでは、従来Java 言語上でインタープリターとして実装されていたエージェントベースシミュレーション言語SOARS の処理系を、独自開発のプロセッサアーキテクチャ用のコンパイラとして実装した。実装用のプロセッサはSOARS に特化した独自のマルチプロセッサコアアーキテクチャCPU をFPGA 用のIP コアとして開発し、市販のFPGA 評価ボードを用いて実装を行った。




8.採択理由

 

 新しい種類のマルチエージェントシミュレーション言語の提案として採択したい.提案者のプログラム実装能力は認める.あと一歩欲しいのはその概念をまとめ,表現する能力である.

  なお,本提案は 共同提案者の1人 が中心となったCOEとの関連づけて提案されているが,本制度はそのような性格のもの(プロジェクトの資金かせぎの場)ではない. 共同提案者の一部の研究協力者をメンバーからはずし,提案者独自のソフトウェアプロジェクトとして推進して欲しい.従って,COE関連予算と思われる部分を減額した.基本的には外注費を削り,本人に頑張ってほしい.




9.開発目標


 SOARS(Spot Oriented Agent Role Simulator)は、社会システムをマルチエージェントシステムとしてボトムアップにモデル化するために、エージェントの役割構造などを容易に記述できるようにデザインされた新しいマルチエージェントモデリングのためのシミュレーション言語である。この言語は、エージェント集団の役割構造に基づいた動的なプロセスを、対象領域の知識を十分に持った専門家が容易にモデル化できることを目的にして開発されている。

 

 SOARS は当初、SARS 院内感染のモデル化というテーマで東工大の出口教授が概念設計、当時フリーランスであった田沼(当プロジェクトの開発者)が実装を行い、二ヶ月という驚異の短期間で基本的なモデル概念および実行可能なシミュレーション環境をほぼ構築したという言語である。SOARS の処理系はJava により実装され、独自のスクリプト言語を実行するインタープリターとして動作する。

 

 このようにSOARS 言語自体は別プロジェクトで実装されたものである。本プロジェクトにおいてはこの言語の実装の見直しと、それに伴って前実装において効率の要請から犠牲にされていた言語仕様の見直しをテーマとする。

 SOARS には、設計段階から実装とは独立なモデル概念がある。現在のJava 実装はいわばその一部を実現したものといえるが、Java 実装では実現困難なものに、エージェントルールの同時並列実行がある。現状のJava 実装では、マルチスレッドによる並列実行のメリットはほとんど期待できないので、エージェントルールは逐次的に処理されている。
 そこで、本開発プロジェクトでは東工大におけるJava ベースの開発とは独立に、ハードウェアを用いたSOARS 処理系の実装を行い、その有効性を実証する。実装ハードウェアには、安価かつ入手が容易な市販のFPGA 評価ボードを利用する。エージェントベースシミュレーションにおいて、性能向上の鍵を握るのは処理の並列度である。本プロジェクトでは、機能を最小限に絞り込んだ独自アーキテクチャのCPU を多数実装することにより、性能の向上を目指す。




10.進捗概要


 SOARS 言語処理系の並列化においては、既存の言語概念の弱点がもとで効率的な実装機構の設計に困難が生じた。結局、既存との互換性を保ったままの実装は断念し、言語概念の本質的な部分から検討を始め、積極的に非互換性を導入した上で既存の仕様の弱点を克服した新たな言語仕様を確立した。これは、あえて制約の多い環境での実装を試みることにより、かえって言語概念の整備が進んだものと考えられる。ただし、この概念整備に多くの時間が割かれたため、システムの実装が大幅に遅れる結果となってしまった。



11.成果


 FPGA への実装は一応完了し、エージェントシミュレーションの実行は可能となったが、実装の完成度が低く、性能評価ができる段階にまで至らなかった。

 

 SOARS の言語概念の整理は行われた。従来の実装ではエージェント動作を逐次実行することが前提となっていた。このため、全体の状態変化は実行順序に依存する。並列実行モデルにおいては、順序依存は好ましくない上に、状態変更のためのロック機構が必要となる。本実装においては状態変化を直ちには反映させず、1サイクルの並列実行の終了ごとに状態を書き換える手法をとってこれを解決した。




12.プロジェクト評価


 SOARS の言語仕様はそれ自体ユニークなものであるが、前述のように本プロジェクトのオリジナルではない。そのため、初期より開発者には本プロジェクトの独自性の主張を要請して来た。最終的にはその主張があまり明確な形でなされていないことが残念である。開発者が優秀なプログラマであることは間違いないのだが、同時にプログラマにありがちな、概念の整理と提示の不器用さを感じている。

 



13.今後の課題


 折角のハードウェア実装であるから、SOARS プロジェクトの一部として実用稼動することを目指して欲しい。


  ページトップへ   





  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004