...

pdfファイル - 東北大学 電気通信研究所 木下・北形研究室

by user

on
Category: Documents
14

views

Report

Comments

Transcript

pdfファイル - 東北大学 電気通信研究所 木下・北形研究室
論
文
エージェントシステムのインタラクティブ開発環境
打矢 隆弘†
前村 貴秀††
菅原 研次†††
木下 哲男††
Interactive Design Environment for Agent-based System
Takahiro UCHIYA† , Takahide MAEMURA†† , Kenji SUGAWARA††† , and Tetsuo
KINOSHITA††
あらまし 状況依存的,非決定的に振舞うエージェントシステムの開発を効果的に行う上で,エージェントシ
ステムと開発者が相互補完的に協調する,及び,既存資産のエージェントシステムの効果的な再利用を可能とす
ることが必要かつ重要な要素となる.そこで,本研究ではエージェントシステム開発におけるこうした性質に着
目し,リポジトリ型エージェントフレームワークの特徴を活かしたインタラクティブな開発方法論と,それに基
づくインタラクティブ開発環境を提案し,エージェントシステム開発の効果的な支援を目指す.
キーワード エージェント開発環境,開発方法論,再利用性,インタラクティブ性,エージェントリポジトリ
リポジトリ型エージェントフレームワーク [1] [8] を提
1. は じ め に
案し,種々のマルチエージェントシステム運用・開発
次世代情報処理システムの基盤技術の一つとして
事例 [9] [10] [11] [12] を蓄積してきている.リポジトリ
エージェント技術がある.エージェントそのものの捉
を核とするシステム運用・開発事例を通して,我々は,
え方は様々であるが,本論文では,自律性や社会性な
多数のエージェントやエージェント動作知識の開発を
どの新しい特性を備えたソフトウェアをエージェント
系統的に支援することの重要性を認識してきた.
と呼び,こうしたエージェントを構成要素とする新し
本論文では,種々の運用・開発事例から得られた知
い知識情報システムをエージェントシステムと呼ぶこ
見を有効に活用し,エージェントシステム開発の効率
とにする.現在,エージェントやエージェントシステ
化・円滑化を図るために,上記のリポジトリ型エージェ
ムの実現に関わる様々な研究開発が進められ,実問題
ントフレームワークの特徴を活かしたインタラクティ
への適用も試みられるようになってきている.しかし
ブ開発方法論に基づくインタラクティブ開発環境を提
ながら,エージェント技術に基づく新しいソフトウェ
案し,評価実験によりその有用性を検証する.
アシステムを系統的に開発するための方法論や,それ
に基づく開発環境などは充分に整備されていない.
これまで,我々はエージェントリポジトリに開発済
2. エージェントシステムの開発とその課題
2. 1 エージェント開発に関する課題
エージェントシステムを集積し,これを活用してエー
エージェントシステムは,種々のエージェントによっ
ジェントシステムの動的な構成/再構成を可能とする
て構成され,要求された情報処理(以下問題解決と呼
ぶ)を実行するソフトウェアシステムと捉えることが
†
東北大学電気通信研究所, 仙台市
できる.こうしたエージェントシステムの構築におい
Research Institute of Electrical Communication, Tohoku
て,具体的な開発目標となるのは,様々な機能や用途
University, 2-1-1 Katahira, Aoba-ku, Sendai-shi, 980-8577
Japan
††
東北大学情報シナジーセンター/大学院情報科学研究科, 仙台市
Information Synergy Center,
Tohoku University,
2-1-1
Katahira, Aoba-ku, Sendai-shi, 980-8577 Japan
†††
せて問題解決を実行するエージェント組織である.
エージェントシステムの開発過程では,従来のソフ
トウェアシステムの場合と同様に,設計目標を規定す
千葉工業大学情報科学部情報ネットワーク学科, 習志野市
Dept.
を持ったエージェント群と,それらを動的に組み合わ
Information and Network Science, Chiba Institute
of Technology, 2-17-1 Tsudanuma, Narashino-shi, 275-0016
る仕様,例えば,設計目標の全体的構造,エージェン
トとして実現される機能,エージェントのタイプ/粒
Japan
電子情報通信学会論文誌 X
Vol. Jxx–X No. xx pp. 1–11 xxxx 年 xx 月
1
電子情報通信学会論文誌 xxxx/xx Vol. Jxx–X No. xx
度/制御構造/知識,エージェント協調方式,エージェ
設計の自由度が高く,基本型やリアクティブ型のエー
ント間通信方式などが決定され,目標とする問題解決
ジェント開発には適しているが,高度な機能や知識が
を遂行するエージェントシステムが実現される.
要求される塾考型や複合型の場合には開発工数が増大
エージェントシステムの構成要素となるエージェン
する.
トの開発においては,エージェントの類型化や実現法
(ii)フレームワークアプローチ: 特定のエージェント
が工夫されつつある.例えば,類型化に関しては,エー
アーキテクチャに基づくエージェント開発支援環境 (フ
ジェントの性質や機能に基づいて,(a) 基本型,(b) リ
レームワーク) を利用するもので,プログラミングア
アクティブ型,(c) 熟考型,(d) 複合型の 4 つに分類す
プローチを強化・拡張するアプローチといえる.そこ
ることができる.
では,エージェントの基本メカニズム (通信機構,協
(a)基本型: 最も単純な構成をもつもので,サブルー
調機構,推論機構など) が予め与えられるので,問題
チン的ソフトウェアモジュールと捉えることもできる.
解決や協調動作のための知識やモデルを記述するだけ
定型的なタスクを担当し,手続き的コーディングに
で,種々のエージェントを比較的少ない工数で実現す
よって実装される.一般に,自律性や社会性は弱く,
ることができる.
組織を形成したり,種々の状況に適応したりする機能
近 年 ,フ レ ー ム ワ ー ク に 関 す る 研 究 開 発 事
は持たないものが多い.
例として,ADIPS [1],AgentBuilder [2],JADE [3],
(b)リアクティブ(データ駆動)型: 外部環境や他の
JATLite [4],ZEUS [5] 等がある.このように,エー
エージェントからのメッセージに応じて反射的に動作
ジェントの実現法は徐々に整理されつつあるが,フレー
するタイプのエージェントである.エージェント間通
ムワークを利用した場合でも,先に挙げた課題 (P1)
信に基づく他エージェントや外部環境との協調動作が
とともに,
可能であるが,一般に明示的な知識記述やモデルを持
(P2) エージェントに与える各種知識・機能のプログ
たないものが多い.
ラミングのためのノウハウの習得が必要である.
(c)熟考(目標駆動)型: エージェント内部の知識と
といった課題が残されている.
知識処理機能に基づいて高度な問題解決や協調動作を
2. 2 エージェントシステム開発に関する課題
行うタイプのエージェントである.問題解決や協調動
複数のエージェントからなるエージェントシステム
作のための明示的な知識やモデルを持ち,プランニン
の開発は大きくトップダウン型とボトムアップ型に大
グ機能などを含む推論機能を備えるものもある.知識
別できる.まず,各々のアプローチの特徴について考
表現言語と推論機構を備えた開発環境や知識システム
察する.
開発ツール/シェルを用いて実装される.
(1) トップダウン型開発
(d)複合型: 目標駆動型とデータ駆動型の双方の機能
問題特定,要求仕様定義,エージェントシステム設
を備えたエージェントで,一般に,複雑な構成となる.
計・実装,運用試験がトップダウン的に進行する.要求
高度で専門的なタスクを自律的かつ知的に処理する際
仕様定義では,特定された問題を解決するためにエー
に用いられることが多い.
ジェントシステムに必要とされる機能と構造に関する
上記に挙げた複数の型を目的に応じて選択して,種々
要求仕様 (問題分割・部分問題割り当て・問題解決制
のエージェントが開発される.このとき,
御構造) を定義する.エージェントシステム設計・実
(P1) エージェントの高度化/高機能化に伴い,エー
装では,要求仕様を満たすエージェントシステムとそ
ジェント知識の記述量が増加する.
こで必要とされるエージェントを設計し,部分問題を
という課題が顕在化し,開発者の負担も増加する.
解決する個々のエージェントの実装,エージェント組
一方,こうしたエージェントの実現においては,大
別して,(i) プログラミングアプローチ,(ii) フレーム
ワークアプローチの 2 つが知られている.
(i)プログラミングアプローチ: Java 等の既存のプロ
織構成,及びエージェントシステム全体としての動作
のテスト・デバッグを行う.
上記の手順に基づくトップダウン型開発に関しては,
現在,その基盤となる開発方法論が徐々に策定されて
グラミング言語系や専用のエージェント記述言語系
きている (ZEUS [5], MaSE [6],Tropos [7]).これら
などを用いて,開発目標のエージェントの動作や知識
の手法ではエージェント開発者が一連の工程を一貫し
を直接記述し,エージェントを実現する手法である.
て進められることから,開発の自由度が高まり,エー
2
論文/エージェントシステムのインタラクティブ開発環境
ジェント間の競合の回避も行い易くなる.しかし,設
計終了後の知識や組織の変更・追加が困難となり,大
3. エージェントシステムのインタラクティ
ブ開発方法論の提案
規模システムのテスト・デバッグやシステム再設計に
おける開発者の負担が大きくなる傾向がある.
3. 1 リポジトリ型エージェントフレームワーク
利用者
(2) ボトムアップ型開発
多数のエージェントが利用可能な状態で存在するこ
要求
エージェント タスク
ワークプレース 通知
インスタン
シエート
サービス
とを前提としてエージェントシステムを開発する手法
エージェント
リポジトリ
である.問題解決の状況に即して,エージェント自身
が問題分割や部分問題の割り当てなどの組織構成を自
エージェント
ワークプレース
律的に実行するため,それに適した協調プロトコルの
設計や通信機能が必要となる.しかし,エージェント
エージェント
ワークプレース
分散環境
エージェント
図 1 リポジトリ型エージェントフレームワーク
Fig. 1 Repository-based Agent Framework
開発者は既存エージェントでは担当できない部分問題
を処理するエージェントのみを開発するだけでよい.
協調
リポジトリ型エージェントフレームワーク(図 1)
また,組織設計の変更や外部環境の変動などにも柔軟
は,エージェントリポジトリ(以下,リポジトリと略
に対応できる.
記する)と呼ばれるエージェントシステムの蓄積・管
これらの特徴を活かして,ボトムアップ型開発では,
理機構を備えることが大きな特徴である.このフレー
エージェントシステムの再利用を前提として開発者の
ムワーク上で動作するエージェントは複合型のモデル
作業負担が軽減できる可能性がある.しかし,そのた
を想定しており,状況依存的かつ非決定的に動作する
めには,分散環境におけるエージェントシステムの設
複数のエージェントからなるエージェントシステムが
計結果や設計情報の保持機構,問題解決の過程でエー
開発対象となる.現状では,リポジトリを中核とする
ジェントが動的に組織を形成するメカニズムなどの設
フレームワークはほとんどないが,エージェントシス
計支援機能を整備する必要も生じる.現状では,これ
テムの開発過程では,リポジトリに集積された資産の
らの機能をもとにボトムアップ型開発を効果的に支援
効果的な活用を支援・促進することにより,トップダ
する手段はほとんど与えられていない.
ウン/ボトムアップ双方の開発作業を支援する.
上述したように,各アプローチの特徴を活かした
本論文で提案する開発方法論は,上述した特徴を活
エージェントシステム開発が可能であるが,いずれの
かしてボトムアップ型開発を支援する方法論であり,
アプローチにおいてもその開発工程の最終段階では,
既存のトップダウン型のエージェントシステム開発方
(P3) 非決定的に動作するエージェントシステムの動
法論と比較して,以下の特徴を持つ.
作テスト・デバッグが困難である.
・再利用性
ことが課題となっている.これはエージェントシステ
ント等の資産の利用/再利用による開発効率向上
ムの状況依存的・非決定的な振舞いに起因する事項で
・インタラクティブ性
あり,試行錯誤的な開発作業の効果的な支援が必要と
補完的な役割分担と協働による開発の柔軟性向上や円
なる.
滑化
そこで,本論文では,上述した 3 つの課題,すなわ
リポジトリに集積された開発済エージェ
開発者とエージェントの相互
3. 2 インタラクティブ開発方法論
ち,(P1),(P2) に起因する「エージェント知識・機能
本節では,リポジトリ型エージェントフレームワー
のプログラミングの難しさ」及び,(P3) に起因する
クをベースとするエージェントシステムのインタラク
「エージェントシステムの動作テストやデバッグの難
ティブ開発方法論を提案する.
しさ」を解決するために,フレームワークアプローチ
リポジトリ活用を前提とした本方法論におけるエー
に基づくボトムアップ的なエージェントシステム設計
ジェントシステムの開発は,以下の A∼D のプロセス
に着目し,リポジトリ型エージェントフレームワーク
で進行する.
ADIPS [1],DASH [8] に基づく,エージェントシステ
A.問題特定: 解決すべき問題やその前提条件などを
ムのインタラクティブな開発方法論とこれに基づくイ
特定する.
ンタラクティブ開発環境を提案する.
B.要求仕様定義: 特定された問題を解決するために
エージェントシステムに必要とされる機能と構造に関
3
電子情報通信学会論文誌 xxxx/xx Vol. Jxx–X No. xx
する要求仕様を定義する.
トとして,組織構成・再構成動作の確認,複数ワーク
C.エージェントシステム設計・実装: 以下のサブプ
プレースでのエージェント間通信テスト等を実行する.
ロセスを併用して要求仕様を満たすエージェントシス
従来のトップダウン型開発手順では,エージェント
テムとそこで必要とされるエージェント群を設計・実
組織を構成するすべてのエージェントプログラム及び
装する.
ベースプロセスを記述するまで動作テストを実施でき
C-1.開発済エージェントシステムの再利用: 要 求 仕
ないことが多く,デバッグ作業が非常に煩雑なものと
様から導出された部分機能の要求仕様を,開発済エー
なっている.この問題を解決するために,本手法では
ジェントシステムが保持されているリポジトリに投入
開発者が必要に応じて協調動作におけるエージェント
し,開発済エージェントシステムの再利用を試みる.
の機能や役割を果たしながら,開発中のエージェント
すなわち,リポジトリに保持されているエージェント
システムを対象として段階的に動作テスト・デバッグ
は,自身の知識ベースに格納されている組織構成知識
を実行する手法をとる.具体的には,
を利用して,与えられた仕様を満たすかどうかを自律
•
未開発の機能(ベースプロセス)の返り値を
的に判断・応答する.再利用可能なエージェントやエー
エージェントが必要とした場合に,その返り値を開発
ジェントシステムからの応答が得られた場合には,こ
者が補完する(ベースプロセス補完),
れらを開発者の環境に取込み,部分機能を満たすエー
•
未開発のエージェントとの協調動作が必要と
ジェントとして再利用する.
なった場合に,開発者が協調メッセージを適宜送受信
C-2.エージェント知識/機能のプログラミング: リ
して補完する(エージェント補完),
ポジトリ型エージェントフレームワークは,協調機構,
•
動作知識に不具合を発見した際には,エージェ
ルール型知識処理機構,タスク処理機構からなるエー
ントを再起動することなく即座にその知識を修正する.
ジェントアーキテクチャと,ルール型エージェント知
これらにより,組織構成・再構成動作の確認を実行
識記述言語をエージェント開発者に提供する.即ち,
する場合などに,エージェントの機能あるいは協調す
エージェント開発者の作業は,ルール型知識記述言語
るエージェントが一部未完成な場合であっても,その
を用いたエージェントの知識記述,及び,エージェン
場で協調動作シミュレートを中断することなく,その
トの機能(ベースプロセス)記述に帰着される.エー
後のシステムの挙動/性質の確認や,操作/制御を継
ジェントの知識記述においては,ルールの状態遷移や
続して実行する.また,動作シミュレートの際に不具
ルール間の繋がりを考慮し知識記述を行う必要があり,
合やエラーが発見された場合には,動作中のエージェ
ある程度のノウハウを必要とするために,初期の開発
ントを再起動することなくその知識を即座に修正し,
者にとってプログラミングの負担は大きい.この課題
一連の協調動作シミュレーションを円滑に実行する.
を解消するために,リポジトリ内の開発済エージェン
シミュレーション終了後は C-2 の工程に戻り,未実装
トの利用を図る.即ち,必要に応じて,リポジトリ内
部分のプログラミングを行う.
の開発済エージェントの種々の知識,例えば,特定の
C-4.開発済エージェントシステムの登録/更新: 開
タスクに関する問題解決知識,エージェント組織を形
発したエージェントシステムの分散環境上での利用と,
成するための知識,他のエージェントや外界の状況を
次回以降のエージェントシステム開発の再利用を想定
認識する知識等を参照してプログラミングを進める.
して,エージェントシステムを分散環境上のリポジト
また,リポジトリに格納されている定型的な動作知識
リに登録する.既にリポジトリ内に同一のエージェン
の記述テンプレートをもとに,必要な知識を効率よく
トが保持されている場合には,エージェントの更新を
記述する.
リポジトリに通知する.
C-3.インタラクティブな動作シミュレーション: プ
D.運用試験: 実環境で,エージェントシステムの運
ログラミングが一段落した際には,エージェントの協
用試験を行い,問題解決における有効性やエージェン
調動作の観測や分析を通して,開発されたエージェン
ト知識の妥当性などを検証し,システムを洗練して
トの知識/機能の検証・評価を実行する.具体的には,
ゆく.
エージェント単体の機能テストとして,エージェント
単位での応答性の確認や,ベースプロセスの動作確認
を実行する.また,エージェントシステムの機能テス
4
上記の開発方法論に基づくエージェントシステムの
インタラクティブ開発フローを図 2 に示す.
本開発フローでは,開発初期段階においてボトム
論文/エージェントシステムのインタラクティブ開発環境
開始
た要求仕様を充足する開発済エージェント/エージェ
既開発エージェ
ントの取得
問題の特定
ントシステムをリポジトリから検索/取込み,再利用
エージェントリポジ
トリに機能情報を投入
要求仕様の定義
F: すべての機能
/流用設計の実行を支援する
応答したエージェント
の情報取得/動作
シミュレーション
既開発エージェ
ントの取得(F)
yes
F
(R2) エージェント知識記述に適した専用プログラ
ミングエディタを提供し,また,開発済エージェント
流用可能?
no
の知識参照やテンプレート提供により,知識記述の円
no
機能分割可能?
滑な実行を支援する
yes
機能を分割:F1, …,Fn
エージェントプログ
ラムを取得
機能を実現する
ベースプロセスを設計
F:F1, …, Fn
既開発エージェ
ントの取得(F)
レーション(エージェント組織構成・再構成・協調・
F
移動テスト等)を支援する
戻る
F: 条件ファクト
援機構,すなわち,(M1) エージェント検索・取込み
F
支援機構,(M2) エージェントプログラム編集支援機
協調動作開始
未実装部あり?
no
システム停止?
A
開発者による
エージェント/
ベースプロセス補完
yes
no
エージェントリポジ
トリに登録
運用試験
yes
エージェント知識
の即時修正
終了
エラー発生?
no
協調動作終了?
戻る
録・集積を実行することにより,それらの効果的な活
上記の各設計方針に準拠して,IDEA の 4 種類の支
ファクトF を入力
動作シミュレー
ション
(R4) テストを完了したエージェントシステムの登
用や再利用を支援する
エージェントシステム読み込み
エージェントプログラム
/ベースプロセスの
記述/修正
yes
ボトムアップ型開発
開始
A: 全てのエージェント
(R3) 開発者とエージェントシステムの相互補完的な
役割分担と協働によるインタラクティブな動作シミュ
構,(M3) 動作シミュレート・デバッグ支援機構,(M4)
エージェント登録・更新支援機構を設計する(図 3).
(M1)検索・取込み支援機構
no
エージェント
リポジトリ
yes
インタラクティブ開発
図 2 インタラクティブなエージェントシステム開発フロー
Fig. 2 Interactive Development Flow of Agent System
取得
登録
(M4)登録・
更新支援
機構
エージェント
検索・取得
エージェント
登録
(M2)プログラム編集支援機構
エージェント
プログラム
分散シミュレーション環境
エージェント
リポジトリ
エージェント
アップ的に既存資産のエージェントシステムの効果的
(M3)動作シミュレート支援機構
な再利用を図り,開発の効率向上を図る.また,動作
シミュレーション段階においては,エージェントシス
エージェント
ワーク
プレース
図3
エージェント
プログラム編集
開発
エージェント
補完
エージェント
内部状態
表示・編集
開発者
インタラクティブ開発支援環境IDEA
インタラクティブ開発環境 IDEA の構成
Fig. 3 Construction of IDEA
テムと開発者が相互補完的に協調し,開発をインタラ
クティブかつ円滑に進めてゆく.
4. インタラクティブ開発方法論に基づく
エージェントシステム開発環境 IDEA
の設計・実装
4. 1 設
計
以下,各機構について説明する.
(M1) エージェント検索・取込み支援機構: 本 機 構
では,既存エージェント検索機能,検索結果表示機
能,エージェント各種知識プレビュー機能,エージェ
ント取込み機能,取込みエージェントのツリー表示機
能,エージェントシステムをプロジェクト単位で管理
前節で提案した開発方法論に基づいて,開発者に
する機能等が提供される.以下,本機構の主要な機能
よるエージェントシステム開発作業を効果的に支援
であるリポジトリを活用した既存エージェントの検索
するために,インタラクティブエージェント開発環境
機能について説明する.
(IDEA:Interactive Design Environment for Agent
system) を提案する.
IDEA では,以下の 4 つの設計方針に基づいて,前
節で述べた工程 C-1∼C-4 を支援する.
(R1) リポジトリと連携し,新たに開発者が定義し
リポジトリには,各種エージェントの動作知識ファ
イル・各種プロトコルファイル・ベースプロセスファイ
ル等が蓄積されており,リポジトリはそれらを用いて
エージェントシステムを活性化させて能動的なプロセ
スとして保持している.そして,開発環境からリポジ
5
電子情報通信学会論文誌 xxxx/xx Vol. Jxx–X No. xx
トリに機能情報を含む検索メッセージ(例えば,エー
い等,複数のエージェント間の協調動作に起因するエ
ジェント名や機能名)を投入すると,リポジトリの組
ラー.開発者がエラーの原因となったエージェントの
織構成支援機能により,各々のエージェントが自身の
動作を一時的に代理することにより動作テストが継続
組織構成知識を利用して,当該メッセージに含まれる
できるもの
機能仕様を充足するか否かを自律的に判断し,充足す
タイプ 3.エージェント動作知識の不整合や知識の
るエージェントが応答する.これにより,リポジトリ
欠如,実行時の動作状況に起因するエラー.開発者が
に集積された開発済エージェント群から,目的とする
動作知識の矛盾や不整合を充分に分析した上で知識
再利用の候補となるエージェントを系統的に抽出する
の修正が必要となるため,動作テストは継続できない
ことができる.また,開発者は新規に開発すべきエー
もの.
ジェントの選別も素早く行うことが可能となり,開発
(M2) エージェントプログラム編集支援機構:
本研究では,エージェントシステムの設計過程で特
に頻繁に発生する1及び2のタイプに焦点を絞り,そ
効率の向上が期待できる.
動作
のデバッグ作業の支援を目指す.一般的な動作テスト
知識の記述支援を行うエディタ機能,記述内容を補
では,上記エラーが発生した場合,当該エージェント
完するコードインサイト機能,開発済の資産を利用し
の処理が停止するため,動作テストは中断となる.し
たテンプレート提供機能・各種知識参照機能,記述内
かし,システム全体が非同期的に動作している場合,
容の文法的なエラーをチェックするコードチェック機
エラーの原因となったエージェントを除けば,多くの
能等を提供する.以下,エージェントプログラムの作
場合,システム全体としての動作テストが継続可能な
成を強力に支援するテンプレート提供機能・各種知識
状態が保持されている.そこで,本機構では,エラー
参照機能について説明する.
発生により動作テストが中断された時点で,開発者が
これは,(M1) と連動して,リポジトリに蓄積され
その原因を特定し,上記のタイプ1か2に該当する場
ている各種ファイルを参照・利用し,資産である開発
合には,開発者が即座に動作知識の修正や処理代行を
済エージェントの有効利用を図る機能である.リポジ
行うことにより,中断時点までのシステムの状態情報
トリには,組織構成プロトコル/組織再構成プロトコ
を活かして動作テストが継続できる環境を提供する.
ル/各種動作プロトコル等の汎用的な知識記述がテン
上記コンセプトに基づき,本機構はエージェントシ
プレートとして保管されている.エージェントがそれ
ステム開発における試行錯誤的なプロセスをインタラ
らのプロトコルを利用する際には,テンプレートを読
クティブに支援する以下の 3 つの機能を中心として構
み込み当該エージェントに固有の知識記述を付加する
成される.
事によりエージェントプログラムを記述することがで
・開発者の介在/協調機能
きる.また,設計中に,必要に応じてエージェントの
動作テストの段階でエージェントの動作知識等が一
持つ各種知識を参照・利用するために,任意の時点で
部未完成な場合であっても,開発者はエージェントシ
リポジトリ内のエージェントに対して要求を発行する
ステムに対してメッセージ送受信 (エージェント対話
機能を実現し,初心者のエージェント開発者に対して
機能),ベースプロセスの代理応答 (仮想ベースプロ
エージェント各種知識を記述するためのノウハウや方
セス機能),及びエージェント動作知識の即時修正を
策を提供し,作業の円滑化を図る.
行うことができ,設計途上にあるシステムの挙動/性
(M3) 動作シミュレート・デバッグ支援機構: はじめ
質を視覚的に確認しながら,エージェント知識記述の
に本機構の基本コンセプトについて述べる.
チューニングを進めることができる.
本研究ではエージェントシステムの動作テストの過
程で発生するエラーのタイプを 3 つに分類し捉えてい
る.すなわち,
タイプ 1.エージェント動作知識の記述ミス等,エー
・単体エージェントの動作確認機能
個々のエージェントを単体で動作させ,その内部状
態をエージェント内部状態表示・編集機能を用いて確
認し,必要に応じて編集を行いながら単体エージェン
ジェントプログラムが原因となっているエラー.エ
トの動作テスト・デバッグが進められる.
ラーの原因を訂正することにより動作テストが継続で
・エージェント組織の動作確認機能
きるもの.
タイプ 2.協調する相手のエージェントが応答しな
6
開発環境内に,仮想的なリポジトリと動作環境 (ワー
クプレース) を導入することにより,従来では実環境を
論文/エージェントシステムのインタラクティブ開発環境
用いて行っていたエージェントシステムの組織構成や
手法を以下に述べる.
挙動テスト等が開発の途中段階で実行可能となる.こ
1.開発者がリポジトリから開発済エージェントを
れにより,煩雑になりがちなテスト・デバッグ作業の
開発環境に取り込む方法は A. ディレクトリ検索,及
円滑化を図る.また,動作テスト時には,エージェン
び,B. ネームサーバ検索の 2 通り存在する.
トシステム全体の動作を確認するエージェントビュー
2.A の場合,開発者が検索条件設定部のインタ
ア機能や,エージェント間のメッセージ系列を監視す
フェースを利用して,ディレクトリ(フォルダ)の名
るメッセージ監視・検出機能等を提示し,エージェン
前を基にリポジトリ内のディレクトリを探索し,適当
ト組織の試行錯誤的な動作確認及び不具合の発見と解
なディレクトリを選択する.IDEA は当該ディレクト
決の作業を支援する.
リ内に存在するエージェントの一覧を表示し,再利用
(M4) エージェント登録・更新支援機構: 開発済エー
可能なエージェントの取り込みを可能とする.
ジェントシステムのリポジトリへの登録・更新機能を
B の場合,検索条件として「エージェント名」や「機
提供する.更新機能では,リポジトリと連携し,エー
能名」を検索条件設定部に提示すると,IDEA は,ネー
ジェント名の重複チェック,知識の上書き制御,バー
ムサーバから得られる情報をもとに検索条件に合致す
ジョンアップ時の既存ファイルのバックアップ等を自
るエージェントの一覧を生成・表示する.このネーム
動的に行い,リポジトリ内エージェントの管理を支援
サーバでは,リポジトリに登録されたエージェントの
する.
組織構成知識を予め解析することにより,各エージェ
4. 2 実
装
IDEA の実装は Java2 SDK を用いて行い,Win-
ントが提供可能な機能名を取得し,利用者の検索要求
に対して即座に対応する機能を実現している.
dows XP 環境,Red Hat Linux 環境での動作確認を
3.A,B の検索結果として提示されるエージェン
行った.また,IDEA と連動して開発済エージェント
トのうち,組織構成の親となるエージェントに対して
の再利用を促進するエージェントリポジトリについて
は,そのエージェントの組織構成知識を利用し,子と
は,先行研究 [1] [8] で提案・実装されているものを利
して組み込み可能となるエージェント群を特定する.
用した.
そして,当該エージェント組織をツリー表示すること
次に,各機構の実装の概要を述べる.
により,再利用の候補となるエージェント組織を分か
り易く提示すると共に,それらをまとめて開発環境に
検索条件設定領域
取り込む機能を実現している.
上記実装について,IDEA の設計段階においては各
エージェントがリポジトリに投入された要求メッセー
エージェント組織
表示領域
プレビュー領域
ジを満たすかどうか自ら判断・応答する方式を採って
いたが,リポジトリ内エージェントに要求メッセージ
が頻繁にブロードキャストされることによるリポジト
リの負荷の上昇及び応答速度の低下を回避するため,
プロジェクトツリー
現在の実装では,前述したネームサーバ機構を活用し
た検索処理を実装している.
取得結果表示領域
図 4 検索・取込み支援
Fig. 4 Support of retrieve phase
(M2) エージェントプログラム編集支援機構 (図 5):
ルール型の知識記述に特化した専用プログラミングエ
ディタや,ベースプロセスのプログラミングに特化し
たエディタを提供する.エディタ領域に複数のウィン
(M1) 検索・取込み支援機構 (図 4): リポジトリに保
ドウを開き,複数エージェントの平行開発を円滑に実
持されているエージェントを検索するための検索条件
行することができる.また,コードチェック等の機能
設定部と,その検索結果表示部,エージェントプログ
により,ルールの記述形式や記述内容における不整合
ラムのプレビュー部の各インタフェースが表示されて
を即座に発見し,整合性や統一性を確認しながらエー
いる.
本機構を用いたエージェントシステムの再利用支援
ジェントプログラムの開発が進められる.
(M3) 動作シミュレート・デバッグ支援機構 (図 6):
7
電子情報通信学会論文誌 xxxx/xx Vol. Jxx–X No. xx
するためのインタフェースを提供する.登録時にエー
エディタ領域
ジェントの重複が生じた際は,更新処理を実行する.
5. 実験と評価
本論文で提案したインタラクティブ開発方法論に基
づくインタラクティブ開発環境 IDEA の有効性を検証
するために,以下の評価を行った.
5. 1 エージェントプログラム記述支援の評価
プロジェクト
ツリー
本論文が提案する,リポジトリを用いたボトムアッ
プ型開発によるエージェント知識記述量の削減率の評
コードチェック領域
価を行った.
・実験内容
図 5 エージェントプログラム編集支援
Fig. 5 Support of editing phase
1.IDEA を利用しないでエージェントシステムを開
発し,その記述量(エージェント知識となるルール知
識と手続き知識(ベースプロセス)の双方の記述行数
の合計)を測定した(再利用なし).
エージェント内部状態
表示・編集領域
2.IDEA を用いてシステムの開発を行った.ここで
は,開発されるシステムが上記1のシステムとほぼ同
等の知識記述内容となるように設計開発を進めた.そ
分散シミュレーション環境
の後,開発したエージェント総数,リポジトリの開発
済エージェントを基に作成したエージェント数,新規
プロジェクト
ツリー
開発したエージェント数,ルール知識・手続き知識の
記述行数の合計[n],流用された記述行数[n-r],設
計行数 (修正を加えた行+新規に記述した行)[r],お
よび記述削減率[((n-r)/n)× 100]を測定した(再
利用あり).
図 6 動作シミュレート・デバッグ支援
Fig. 6 Support of simulation/debugging phase
実験に利用した事例は以下の通りである.事例 1∼
5 はエージェントシステムの開発経験が一年未満の被
開発目標のエージェントやエージェント組織の動作を
験者 5 名,事例 6∼8 では開発経験が一年以上の被験
観測するためのエージェントビューア,エージェント
者 3 名がそれぞれ各システムを開発した.
内部状態表示・編集機能であるエージェントインスペ
[事例 1]ホテル選定システム:黒板モデルを用いた
クタが表示されている.
また,開発者とエージェントシステムとのエージェ
ホテル選択{構成:ホテル Ag × 3,個別評価 Ag ×
3,総合評価 Ag,秘書 Ag,黒板 Ag}
ント対話手段となる ACL エディタが提供される.両
[事例 2]会議日程調整システム:複数ユーザの日程
者の間で交換されたメッセージは履歴として保持され,
調整{構成:秘書 Ag × 3,会議室 Ag}
過去に送信したメッセージを再度入力・送信すること
[事例 3]ホテル予約システム:契約ネットを利用し
も簡単に行える.
た予約処理{構成:ホテル Ag × 3,旅行代理店 Ag,
さらに,仮想ベースプロセス機能により,仮想ベー
スプロセスダイアログが提示され,ベースプロセスが
秘書 Ag}
[事例 4]UNIX コマンドの逆引きシステム:協調的
未開発の状態であっても,開発者がベースプロセスの
検索処理{構成:インタフェース Ag,コマンド知識
代理として応答を投入することにより,エージェント
Ag × 59}
の動作を継続させることができる.
[事例 5]所在情報検索システム:協調的検索処理{構
(M4) エージェント登録・更新支援機構:
成:検索 Ag,部屋 Ag × 5,移動管理 Ag,外出管理
完成したエージェントシステムをリポジトリに登録
8
Ag}
論文/エージェントシステムのインタラクティブ開発環境
事例1 事例2 事例3 事例4 事例5 事例6
ホテル 会議日 ホテル UNIXコ 所在情 井戸端
選定 程調整 予約 マンド 報検索 LAN
逆引き
[事例 6]井戸端 LAN システム:アドホック環境向
けマルチメディア通信サービス{構成:サービス Ag
× 4,サービス起動・管理 Ag × 3,名前解決 Ag,通
信路確立 Ag,接続 Ag,ミドルウェア Ag}
[事例 7]ネットワーク管理支援システム:知識分散
型ネットワーク管理支援{構成:動的情報管理 Ag ×
72,静的情報管理 Ag × 8,組織形成 Ag × 8,イン
タフェース Ag}
[事例 8]やわらかい非同期メッセージングシステム:
メールの知的配送処理{構成:マネージャAg × 6,タ
スク処理 Ag × 16,秘書 Ag}
・実験結果
再利用 ルール知識・手続き知 655
なし 識の記述行数の合計
9
再利用
開発した
あり
エージェント総数
3
リポジトリの開発済
エージェントを基に作
成したエージェント数
6
新規開発した
エージェント数
ルール知識・手続き知 655
識の記述行数の合計
[n]
流用された記述行数 316
[n-r]
設計行数(修正を加え 339
た行+新規に記述した
行)[r]
48%
記述削減率
[((n-r)/n)×100]
事例7
ネット
ワーク
管理
事例8
非同期
メッセー
ジング
385
266
1863
839
12991
15479
4
5
60
8
11
89
35927
23
1
4
60
7
10
84
23
3
1
0
1
1
5
0
385
266
1861
839
13018
15479
35996
107
107
1331
419
6894
12596
24635
278
159
530
420
6124
2883
11381
28%
40%
71%
50%
53%
81%
68%
図 7 既存エージェント流用による記述量削減の評価
Fig. 7 Evaluation of reduction of editing work by
reusing agent system
実験結果を図 7 に示す.IDEA を用いずに開発を
行った場合,開発者はエージェント毎にプロトコルや
ルールセットを独自に作り込み,試行錯誤的な動作確
認を繰り返しながら,それぞれ目標とするシステムを
完成させた.
一方,IDEA を用いて開発した場合,エージェント
検索・取込み支援機構を用いてリポジトリに蓄積され
た開発済エージェントに対して機能名等の検索を行い,
開発済エージェントのうち流用可能なものを単体また
は組織レベルで取得した.この際,当該エージェント
が必要とする契約ネットプロトコルの実装部のテンプ
5. 2 動作シミュレート・デバッグ支援の評価
エージェントシステムにおける一連の協調動作テス
ト・デバッグ(図 8)に要する作業量を比較すること
によって,IDEA の動作シミュレート・デバッグ支援
に関する有効性を評価する.なお,本実験で対象とす
るエラーのタイプは,4.1 節で述べたタイプ 1 に属す
る「エージェント動作知識の記述ミス」に限定し,実
験を行った.
まず,協調動作のデバッグ作業を行う際の状況とし
て,以下を仮定する.
エージェントA
レート等は自動的にインポートされた.
エージェントB
条件となるファクト
検証実験により,エージェントシステムの開発経験
が 1 年未満(事例 1∼5)の場合の記述削減率の平均が
ACLメッセージ
条件となるファクト
47.4 %,一年以上(事例 6∼8)の場合の記述削減率
エラー発生
(ベースプロセス
不足)
ら,システムの開発経験を問わずに,IDEA の再利用
支援の効果が確認された.更に,事例 6∼8 のような
述削減率が高まることが確認された.
条件となるファクト
エラー発生
(知識記述の誤り)
の平均が 67.3 %という結果が得られた.上記結果か
比較的大規模なエージェントシステムの開発では,記
エージェントC
エラー発生
(協調エージェント
不足)
図 8
エージェントシステムにおける一連の協調動作テ
スト
Fig. 8 Cooperative Action Test of Agent System
また,再利用なしにゼロから開発した場合と比較す
ると,IDEA を利用した場合の最終的な総記述量はほ
•
協調動作の開始条件となるファクトの数:N
ぼ同等となった.しかし,設計対象システムが大規模
•
エラー発生回数:k
になるほど,総行数に占める流用行数の比率が常に設
•
協調動作開始から i 番目のエラーの修正完了ま
計行数を上回るようになるため,エージェント組織レ
ベルでの再利用を支援する IDEA 環境の効果が確認さ
れた.
これらの結果から,IDEA を用いてエージェント検
でに要する時間:Ti (i ≦ k)
•
エラーがない場合の協調動作開始から協調動作
終了までに要する時間:Tmin
•
IDEA を用いた場合の協調動作開始から協調動
索機能/テンプレート提供機能等を利用したボトム
作終了までに要する時間:Ta
アップ開発を行うことにより,エージェント開発者の
上記のような協調動作のテスト・デバッグに要する作
記述作業の負担を軽減し,効率的にエージェントを開
業量を図 9 に示す.
発できることを検証した.
本実験では,5.1 の事例 2 におけるエージェントシ
9
電子情報通信学会論文誌 xxxx/xx Vol. Jxx–X No. xx
IDEAを用い
ない場合
IDEA
エージェントシス 条件となるファクト
テムの起動回数 の入力作業
k+1
(k + 1)× N
1(最初のみ)
N(最初のみ)
実行時間
ΣT + Tmin
テムの開発過程においては,動作シミュレート中に協
Ta
(Tmin < Ta << ΣT + Tmin)
インタラクティブな修正によりシステム全体の再起動
i
調動作の不具合を発見する場合が多々あることから,
i
図 9 エージェントシステムのデバッグにおける作業量削
減の評価
Fig. 9 Evaluation of reduction of debugging work of
agent system
を低減させることの効果が確認された.また実験結果
から,エラーが動作テストの終盤に集中している場合
には,IDEA を用いない場合と比較して,より顕著に
その効果が現れることも確認した.
ステムに対し,動作テストの序盤,中盤,終盤で計 3
今後は,動作テスト・デバッグ時における作業速度
回のエラー (k=3) が発生するように設定しデバッグ時
や,ファクト入力速度等を計測する機能などを IDEA
間を測定した結果を以下に示す.
に付加し,より木目細かなデバッグ支援に向けた検討
まず,エラーがない場合の協調動作開始から協調動
作終了までに要する時間 Tmin を測定した結果,約 75
秒であった.動作工程は,ファクト入力(約 23 秒)→
システム動作(約 2 秒)のプロセスを 3 度繰り返す形
であった(N=3).
次に,IDEA を用いない場合のデバッグにかかる時
間を測定した.エラーが発生してから発見・修正する
を行う予定である.
6. 考
察
本研究で提案したエージェントシステムのインタラ
クティブ開発方法論,及びその支援環境 IDEA は「再
利用性」及び「インタラクティブ性」を特徴とするも
のである.
までにかかる時間の平均が約 20 秒,エージェントシ
これまでオブジェクト指向プログラミングの分野で
ステムの再起動時間の平均が約 2 秒であり,3 回のエ
は,JavaBeans などの粒度の細かいクラス単位での
ラーそれぞれを修正するまでにかかった時間は,T1
オブジェクトの再利用が試みられてきており,ライブ
が 47 秒(ファクト入力 23 秒,システム動作 2 秒,エ
ラリの形で既存オブジェクトの再利用が可能となって
ラー修正 20 秒,再起動 2 秒),T2 が 72 秒,T3 が 97
いる.一方,本提案手法に基づくエージェントシステ
秒となり,総計は T1 +T2 +T3 +Tmin =291 秒となっ
ム開発では,エージェント自体がルール知識の集合,
た.これはエージェントを修正する度に,システムを
Java 等のベースプロセス,或いは契約ネットプロトコ
再起動して初期状態からファクト入力作業を行い,動
ルを処理する知識テンプレートなどの構成要素からな
作テストを最初から再実行しなければならないためで
る粒度の大きい処理体であること,また,複数のエー
あり,エラー数,及び,ファクト入力回数の増加に比
ジェントが要求や状況に応じて組織を形成して種々の
例して,デバッグ時間が増大してしまう状況が確認さ
機能を動的に実現するため,オブジェクトの再利用法
れた.
など,既存手法をそのまま適用することは極めて困難
最後に,IDEA を用いた場合のデバッグにかかる時
間を測定した.エラー発見・修正時間の平均は上記と
であり,エージェントシステム開発の特徴を考慮した
新たな手法の確立が望まれている.
同様に約 20 秒であった.エージェントシステムの再起
本研究では,リポジトリに蓄積されているエージェ
動は必要なく,エラーを発見した場合も他のエージェ
ント群が,開発者から投入される機能仕様の要求に能
ントの内部状態に影響を与えずに動作知識を修正する
動的に反応し,所与の仕様を満たすエージェントシス
ので,引き続きシステムの動作テストを継続すること
テムを自律的に形成する手法を採用している.さらに,
ができた.
新たな要求に対して既開発のエージェントシステムが
この結果,ファクト入力時間の平均約 23 秒× 3 回+
適合する場合には,エージェントシステムの構成要素
システム稼働時間約 8 秒+エラー修正時間約 20 秒×
(エージェント知識,ベースプロセス,プロトコル等)
3 回を合計して,約 137 秒となり,IDEA を用いない
をリポジトリから開発環境に自動的に取り込んで開発
場合と比較して,大幅に作業時間を短縮できることが
を進めることにより,エージェントシステムそのもの
示された.
のボトムアップ的な再利用も可能となる.
上記比較から,IDEA を用いることで動作テスト・
デバッグ作業にかかる時間を短縮し,作業が柔軟かつ
円滑に行われることが確認された.エージェントシス
10
7. お わ り に
本論文では,リポジトリ型エージェントフレーム
論文/エージェントシステムのインタラクティブ開発環境
ワークを基盤とする,インタラクティブにエージェン
ジェント指向ミドルウェアにおける利用者指向流量調整
方式の設計と実装”, 情報処理学会論文誌, Vol.44, No.3,
トシステム開発を行うための開発方法論,及び方法論
に基づきエージェントシステムのインタラクティブな
pp.789-798, (2003).
[12]
A. Takahashi, T. Suganuma, T. Abe, T. Kinoshita,
開発を支援する開発環境 IDEA を提案した.本開発環
”Implementation and Evaluate of MultiMedia Net-
境の試作と実験を通して,エージェント利用/再利用
work Middleware based on Multiagent Framework”,
の支援やインタラクティブ動作シミュレート・デバッ
Proceedings of the Third Joint Agent Workshop,
グ支援の強化により,エージェント開発効率が改善で
pp.173-180, (2004).
(平成 xx 年 xx 月 xx 日受付)
きることを確認した.今後,エージェントの組織設計
に対する機能分割支援機能,検索機能の高度化,テン
プレート機能の充実,デバッグ機能の拡張(タイプ 3
に属するエラーに対応するためのシステム全体の動作
状態のスナップショット機能,エラー分析支援機能,協
調動作状況の再現・再開機能など)について更に検討
を進めてゆく.また,提案手法に基づくエージェント
システムの開発事例を増やし,開発方法論の枠組を拡
充させる予定である.
文
献
打矢
隆弘 (正員)
1976 年生.2004 年東北大学大学院情
報科学研究科博士後期課程了.現在,東
北大学電気通信研究所助手.博士(情報科
学).エージェント指向設計開発方法論,
エージェント指向コンピューティングに興
味を持つ.PRIMA 2002 Student Poster
Award,2002 年度電子情報通信学会学術奨励賞受賞.
[1]
藤田茂,菅原研次,木下哲男,白鳥則郎,”分散処理シス
前村
[2]
テムのエージェント指向アーキテクチャ”,情報処理学会
論文誌,Vol.37,No.5,pp.840-851,(1996).
AgentBuilder, http://www.agentbuilder.com/
[3]
JADE, http://sharon.cselt.it/projects/jade/home.htm
1979 年生.2004 年千葉工業大学大学院
工学研究科情報工学専攻博士前期課程終
[4]
JATLite, http://java.stanford.edu/
[5]
Hyacinth S. Nwana, Divine T. Ndumu, Lyndon C.
貴秀 (学生員)
ing Distributed Multi-Agent Systems”, Applied Ar-
了.現在,東北大学大学院情報科学研究科
博士後期課程在学中.エージェント指向コ
ンピューティングに興味を持つ.情報処理
tificial Intelligence Journal, Vol.13 (1), pp.129-186,
学会学生会員.
Lee and Jaron C. Collis, ”ZEUS: A Toolkit for Build-
(1999).
[6]
Scott A. DeLoach, Mark F. Wood and Clint H. Spark-
菅原
研次 (正員)
man, ”Multiagent Systems Engineering”, The International Journal of Software Engineering and Knowledge Engineering, Vol.11 No.3, (2001).
[7]
J. Mylopoulos, M. Kolp and P. Giorgini, ”Agent Oriented Software Development”, Proceedings of the 2nd
Hellenic Conference on Artificial Intelligence (SETN02), (2002).
[8]
H. Hara, K. Sugawara, T. Kinoshita, T. Uchiya,
1980 年東北大学大学院博士課程中退.同
年,千葉工業大学助手.現在,千葉工業大
学情報科学部情報ネットワーク学科教授.
工博.1992 年日本工業教育協会功績賞,
1994 年本会山下記念賞,1996 年情報処理
学会論文賞,2000 年度本会業績賞各受賞.
情報処理学会,人工知能学会,IEEE 各会員.
”Flexible Distributed Agent System and Its Application”, Proceedings of the Fifth Joint conference of
Knowledge-based Software Engineering, IOS Press,
pp.72-77, (2002).
[9]
S. Imai, G. Kitagata, S. Konno, T. Suganuma, T
Kinoshita,”Developing a Knowledge - Based Videoconference System for Non-Expert Users”, Journal of
Distance Education Technologies, Vol.2, No.2, pp.1326, (2004).
[10]
今野将, 北形元, 原英樹, 菅沼拓夫, 菅原研次, 木下哲男,
[11]
”エージェントによるアプリケーション間コネクション
の動的構成手法”, 情報処理学会論文誌, Vol.43, No.2,
pp.465-477, (2002).
北形元, 今野将, 加藤貴司, 菅沼拓夫, 木下哲男, ”エー
木下
哲男 (正員)
1979 年東北大学大学院修士課程了.同
年沖電気工業(株)入社.知識情報処理技
術の研究開発に従事.1996 年東北大学電
気通信研究所助教授,2001 年同大情報シ
ナジーセンター教授.知識工学,エージェ
ント工学,知識型設計支援システム,エー
ジェント応用システム等の研究開発に従事.情報処理学会 1989
年度研究賞,1996 年度論文賞,電子情報通信学会 2000 年度
業績賞など受賞.工博.情報処理学会,人工知能学会,日本認
知科学会,IEEE,ACM, AAAI 各会員.
11
Fly UP