Interactive Design/Development Methodology of Agent System

Takahiro Uchiya, Akira Takagaki, Hideki Hara, Tooru Abe, Tetsuo Kinoshita · IEICE technical report. Artificial intelligence and knowledge-based processing · 2004

The agent-based computing systems have been design and developed using recent agent technologies. However, the design/debugging of these system is difficult due to the situational and nondeterministic behavior of the agents, and the effective design method and design support technologies have not been proposed. In this paper, to realize the efficiency of the development of agent system, we propose a new method of interactive design/development and support technologies based on repository-based agent framework. Keyword interactive, agent system, repository-based agent framework, design/development methodology 1. はじめに 次世代情報処理システムの基盤技術の一つとして エージェント技術がある.エージェントそのものの捉 え方は様々であるが,本稿では,自律性や社会性など の新しい特性を備えたソフトウェアをエージェントと 呼び,こうしたエージェントを構成要素とする新しい 知識情報システムをエージェントシステムと呼ぶこと にする.現在,エージェントやエージェントシステム の実現に関わる様々な研究開発が進められ,実問題へ の適用も試みられるようになってきている.しかしな がら,エージェント技術に基づく新しいソフトウェア システムを系統的に設計開発するための方法論や,そ れに基づく支援環境などは充分に整備されていない. 本稿では,エージェントシステムの設計開発効率の 向上を目指して,リポジトリ型エージェントフレーム ワークを基盤とするインタラクティブな設計開発方法 論とその支援技法を提案する. 2. エージェントシステム設計開発の現在 2.1 エージェントの設計開発 エージェントシステムは,種々のエージェントによ って構成され,要求された情報処理 (以下問題解決と呼 ぶ )を実行するソフトウェアシステムと捉えることが できる.こうしたエージェントシステムの構築におい て,設計開発目標となるのは,様々な機能や用途を持 ったエージェントと,それらが構成する問題解決のた めのエージェント組織である. エージェントシステムの設計開発過程では,従来の ソフトウェアシステムの場合と同様に,設計目標を規 定する仕様,例えば,設計目標の全体的構造 (アーキテ クチャ ),エージェントとして実現される機能,エージ ェントのタイプ/粒度/制御構造/知識,エージェン ト協調方式,エージェント間通信方式などが決定され, 目標とする問題解決を遂行するエージェントシステム が実現される. エージェントシステムの構成要素となるエージェ ントの設計開発においては,エージェントの類型化や 実現法が工夫されつつある.例えば,類型化に関して は,エージェントの性質や機能に基づいて,(a)基本型, (b)リアクティブ型, (c)熟考型, (d)複合型の 4 つに分 類することができる. 一方,実現法に関しては,大別して, (i)プログラミ ングアプローチ,(ii)フレームワークアプローチの 2 つ に分類できる. (i)プログラミングアプローチ: Java 等の既存のプロ グラミング言語系や専用のエージェント記述言語 系などを用いて,設計開発目標のエージェントの動 作や知識を直接記述し,エージェントを実現する手 法である.設計の自由度が高く,基本型やリアクテ ィブ型のエージェント設計開発には適しているが, 高度な機能や知識が要求される塾考型や複合型の 場合には設計開発工数が増大する. (ii)フレームワークアプローチ: 特定のエージェント アーキテクチャに基づくエージェント開発支援環 境 (フレームワーク )を利用するもので,プログラミ ングアプローチを強化・拡張するアプローチといえ る.そこでは,エージェントの基本メカニズム (通信 機構,協調機構,推論機構など )が予め与えられるの で,問題解決や協調動作のための知識やモデルを記 述するだけで,種々のエージェントを比較的少ない 工数で実現することができる. 近年,フレームワークに関する研究開発事例として は,ADIPS[1],AgentBuilder[2],JADE[3],JATLite[4], ZEUS[5]等がある. このように,エージェントの実現法は徐々に整理さ れつつあるが,多数のエージェントが互いに協調し, 動的に組織を形成して問題解決を実行するエージェン トシステムの場合には,設計開発上の課題がいくつか 残されている. 2.2 エージェントシステムの設計開発 エージェントシステムの設計開発は大きくトップ ダウン型とボトムアップ型に大別できる.各々の性質 と設計開発上の課題について考察する. (1)トップダウン型設計開発 a.問題特定:解決すべき問題やその前提条件などを 特定する. b.要求仕様定義:特定された問題を解決するために エージェントシステムに必要とされる機能と構造 に関する要求仕様 (問題分割・部分問題割り当て・問 題解決制御構造 )を定義する. c.エージェントシステム設計:要求仕様を満たすエ ージェントシステムとそこで必要とされるエージ ェントを設計する. d.エージェント実装:部分問題を解決する個々のエ ージェントの実装,エージェント組織構成,及びエ ージェントシステム全体としての動作のテスト・デ バッグを行う. e.運用試験:エージェントシステムの運用試験を行 い,問題解決に有効であるかどうかを検証する. 上記の手順に基づくトップダウン型設計開発は,近年 のエージェントシステム設計開発の主流であり,その 基盤となる設計開発方法論も徐々に策定されてきてい る (ZEUS[5], MaSE[6],Tropos[7]).これらの手法の特 性として,エージェント設計開発者により一連の工程 が行われるため,設計開発の自由度が高い反面,設計 開発工程数の多さから,エージェント設計開発者の作 業負担が大きいという課題も内在する. (2)ボトムアップ型設計開発 多数のエージェントが利用可能な状態で存在して いることを前提としてエージェントを設計開発する手 法である.問題解決の状況に即して,開発済エージェ ントが問題分割や部分問題の割り当てを自律的に実行 するため,エージェント設計開発者は部分問題のうち の必要なエージェントのみを実装し,エージェント組 織構成,結合テスト・デバッグを行えばよい. 上記に基づくボトムアップ型設計開発は,エージェ ントシステムの再利用を前提としているために,設計 開発効率を向上させる可能性を含んでいるものの,分 散環境におけるエージェントシステムの保持機構や, 問題解決の過程でエージェントが動的に組織を形成す るためのメカニズムが必要であるため,あまり実現さ れていない.しかしながら,トップダウン型設計開発 と比較して,設計開発者の作業負担が大きく削減され ることから,効果的な方法論の確立が求められている. 3. エージェントシステムのインタラクティブ 設計開発方法論の提案 3.1 基本コンセプト 本稿では,フレームワークアプローチの観点から, 特にリポジ トリ型エー ジェントフ レームワー ク ADIPS[1],DASH[8]をベースとした,エージェントシ ステムのインタラクティブな設計開発方法論とその支 援機構を提案する. リポジトリ型エージェントフレームワークは,エー ジェントリポジトリ (以下,リポジトリと略記 )と呼ば れるエージェントシステムの蓄積・管理機構を備える ことが大きな特徴である.現状では,リポジトリを中 核とするフレームワークは少ないが,エージェントシ ステムの設計開発過程では,リポジトリに集積された 資産の効果的な活用を支援・促進することにより,設 計開発作業の高度化が期待できる. 本稿で提案する設計開発方法論は,上述した特徴を 活かしたボトムアップ型設計開発を支援する方法論 であり,既存のトップダウン型のエージェントシステ ム設計開発方法論と比較し,以下の特徴を持つ. ・再利用性 リポジトリに集積された開発済エージェント等の 資産の利用/再利用による設計開発効率向上 ・インタラクティブ性 設計者とエージェントの相互補完的な役割分担と 協働による設計開発の柔軟性向上や円滑化 3.2 インタラクティブ設計開発方法論の提案 本節では,リポジトリ型エージェントフレームワー クをベースとするインタラクティブ設計開発方法論を 提案する. リポジトリ活用に立脚したエージェントシステム の設計開発は,以下の A~D のプロセスで進行する. A.問題特定: 解決すべき問題やその前提条件などを特定する. B.要求仕様定義: 特定された問題を解決するためにエージェントシ ステムに必要とされる機能と構造に関する要求仕 様を定義する. C.エージェントシステム設計・実装: 要求仕様を満たすエージェントシステムとそこで 必要とされるエージェント群を設計・実装する.以 下の工程順に進められる. C-1 開発済エージェントシステムの再利用 要求仕様から導出された部分機能の要求仕様それ ぞれを,開発済エージェントシステムが保持されて いるリポジトリに投入し,開発済エージェントシス テムの再利用を図る.リポジトリに保持されている エージェントは,知識ベースに格納されている組織 構成知識を利用して,自律的に与えられた仕様を満 たすかどうかを判断・応答する.再利用可能なエー ジェントシステムが見つかった場合には,適宜必要 なエージェントを設計開発者の環境に取込み,部分 機能を満たすエージェントとして再利用する. C-2 エージェント知識/機能のプログラミング リポジトリ型エージェントフレームワークは,協調 機構,ルール型知識処理機構,タスク処理機構から なるエージェントアーキテクチャと,ルール型エー ジェント知識記述言語をエージェント設計開発者 に提供する.即ち,エージェント設計開発者の作業 は,ルール型知識記述言語を用いたエージェントの 知識記述,及び,エージェントの機能 (ベースプロセ ス )記述に帰着される.エージェントの知識記述にお いては,ルールの状態遷移やルール間の繋がりを考 慮し知識記述を行う必要があり,ある程度のノウハ ウを必要とするために,初期の設計開発者にとって プログラミングの負担は大きい.この課題を解消す るために,リポジトリ内の開発済エージェントの利 用を図る.即ち,必要に応じて,リポジトリ内の開 発済エージェントの種々の知識,例えば,問題解決 を実行する知識,エージェント組織を形成するため の知識,他のエージェントや外界の状況を認識する 知識等を参照してプログラミングを進める.また, リポジトリに格納されている知識記述テンプレー トを参照して,必要な知識を効率よく記述する. C-3 インタラクティブな動作シミュレーション プログラミングが一段落した際には,エージェント の協調動作の観測や分析を通して,設計開発された エージェントの知識/機能の検証・評価を実行する. 設計開発途上のエージェントシステムを対象とし て,エージェント単体もしくはエージェント組織の レベルで,それらを試験的に動作させ,その動作結 果を参考にし,設計の変更や修正を迅速に進める. 例えば,エージェント組織構成・メッセージ通信 や同時並行的な動作を確認したり,単一エージェン トの知識の内部状態を確認する.上記の作業におい て,エージェント相互間でのみ送受信される協調メ ッセージを,エージェントシステムに対し外界の設 計開発者も適宜送受信/補完することにより,エー ジェントの動作知識が一部未完成な場合であって も,その後のシステムの挙動/性質の確認や,操作 /制御を実行することができる.このように,エー ジェント設計開発者とエージェントシステムが相 互補完的に協調しながら,動作シミュレートを実行 してゆく.シミュレートの際に,不具合やエラーが 発見された場合には,工程 3-2 に戻り,知識記述等 の修正/デバッグを実行する. C-4 開発済エージェントシステムの登録/更新 設計開発したエージェントシステムの分散環境上 での利用と,次回以降のエージェントシステム設計 開発の再利用を想定して,エージェントシステムを 分散環境上のリポジトリに登録する.既にリポジト リ内に同一のエージェントが保持されている場合 には,エージェントの更新をリポジトリに通知する. D.運用試験: 実環境で,エージェントシステムの運用試験を行い, 問題解決における有効性やエージェント知識の妥 当性などを検証し,システムを洗練してゆく. 設計開発者 (M1)エージェント検索・ 取込み支援機構 (M2)エージェントプログ ラム編集支援機構 (M3)動作シミュレート・ デバッグ支援機構 (M4)エージェント登録・ 更新支援機構 エージェントリポジトリ

Read the paper · More papers on PaperTik