Comments
Description
Transcript
Untitled - 東京大学学術機関リポジトリ
。 マルチエージェントシステムにおける 協調メカニズ、ムの研究 1 9 9 7年 3月 桑原和宏 圃 量←← a圃 一一一一一一一一一一一一一一一一一一一一一一 序文 マルチエージェントシステムは自律的に動作するエージェントとよばれるプログラム 群から構成されるシステムで,新しい分散システム構築のモデルとして注目を集めて いる.マルチエージェントシステムではエージェント関の協調をいかに実現するかが 大きな課題となっている.本論文ではこのような背景のもとマルチエージェントシス テムにおける協調メカニズムにおいて筆者が行なってきた以下の研究をまとめたもの であるー - マルチステージネゴシエーションプロトコル -市場モデルに基づく分散資源割当・均衡的アプローチ genTalk -協調プロトコル記述言語 A 第 1主主において本研究の背景を概説するとともに本研究の目的を明確にする. 第 2章ではマルチエージェントシステムにおける協調メカニズム研究状況の概要を 述べ,本論文の位置付けを明確化する . 第 3, 4章ではエージェント問の協調を実現するためのプロトコル(協調プロトコル) の一例としてエージェント間にまたがる制約を満足した資源割当を実現するマルチス テージネゴシエーションを取り上げる.まず,第 3 j 聖においてマルチステージネゴシ エーションで扱っている問題の定式化を与え ,その中で複数のゴール聞の競合を検出 するための手法を提案する.さらに第 4章でマルチステージネゴシエーションにおけ る探索戦略 ( 3フェーズプロトコル)の評価を行なう. 第 5章では市場モデルに基づく分散資源割当の試みを述べる.マルチステ ージネゴ シエ ーションでは資源の割当をするかしないかを選択する問題を扱っていた.これに 対し,マルチエージェントシステムの中に市場の構造を導入することによって,資源 序文 u の量 を扱えるようにする.それと同時にエー ジェント問の限られたメッセ ージの交換 のみでエージェント間の協調を笑現することを目指す.ここではその第一段 1 ; 皆として 均衡的アプローチと呼ぶ市場モデルに基づくアプローチを提案し, シミュレーション 実験結果を中心に述べる. 第 6章ではマルチエージェントシステムにおける種々の協調を実現するための“協 目次 調プロトコル"を記述するための言語 AgenTalkを提案する. AgenTalkではプロト レ記述にオブジエクト指向言語に見られるような継承機能を導入し,プロトコルの コJ 段階的な定義を実現しているのが特徴である.さらに AgenTalkのアーキテクチャに 基つ'いた協調プロトコルのメタレベル告J I 御機構についても言及する. 第 7章では結論と今後の課題について述べる.また,最後に付録として AgenTalk の仕稼概要を述べる 目 1 序論 1 2 マルチエージェントシステムにおける協調メカニズムの研究状況 5 2 . 1 はじめに ..• • 2 . 2 協調問題解決 ー ・・ーー・・・・・・ 2 . 2 . 1 結果共有 .. ・ ・ ・ ....・・・・・. ...• 5 ・ ・ ・ ・ ・・・・・・・・ 7 ・・ ・ ・ ・ ・・ . .....• ..• 2 . 2 . 2 タスク共有. ..........• ................ • 2 . 2 . 3 分散探索. ................... 2 . 3 交渉と均衡化 ーーーー ・ ・・・・・・・ 2 . 3 . 1 ゲ ー ム 理 論 的 手 法 ・ ・・・ 2 . 3 . 2 市場モデルの応用 .• .. ・ 2. 4 協調プロトコル記述言語 0 ・ ・ ー ・ ・ . . ー ー- ・ ・ ・ ・ 7 9 1 0 1 2 1 2 .• .. 1 4 ・ ・・ • ...• • ........• ..・ ・ 2. 5 まとめ 1 8 2 3 3 マルチステージネゴシエーションにおけるゴール間競合の検出 25 5 3 . 1 は じ め に . ....• • .• .... . • • • . . • . . . • . • .. .. . . . 2 3 . 2 マルチステージネゴシエーションの定式化 3 . 2 .1 探 索 空 間 ... ...... ・・. • 2 6 ......• ..• .• ....• 27 3 . 2 . 2 エージェントの持つ情報 3 . 2. 3 資源割当における制約 3. 2. 4 起動エージェント ............... 2 6 .............. ... . 2 8 ・ ・ ・・・ 28 3 . 2 . 5 問題設定の変更 • • • ..• .• • ..• ....• ..• .• • .•. 2 9 ・ 3 . 2 . 6 例 題 . • .. 3 . 3 競合関係の表現 a ・・・・・・・・・・ ・・・・・ ・ ..• .. ・ .. ・ 0 .... ... 2 9 ・. • . ・ .• • .... ー ・ ・ ・ー. 3 1 I I I 面L一 一一一一一一一一一一一一一一一一一一一一一一一一一-d置 目次 lV 3 . 3 . 1 無効ゴール集合 白.....• • • ..• .• • ...• • .• .•. 3 1 3 . 3 . 2 ゴール排除集合 ........• .• • ......• ...•. 3 3 ・・・・・ 田・ ・. . .目 . 4. 2 グローパルプランの表現 3. . . ............... . 36 3 . 4 . 3 排除集合の結合. .• ....• .•. .•...•••. ...・・・・ ・・ ・ ・ 3. 4. 5 ゴール排除集合. .• . ー ー ・ .. 4 0 ......... .4 1 ー ・ ・・・・ ・ ・ ・ .. 4 3 - 3. 4. 6 無効ゴール集合 ........... .. . ............ 4 3 3. 4. 7 例題 ..... ..... ............. .. ..... 4 5 3 . 5 議 論 ... 3 . 6 まとめ ー. . . .. . . . . . . . . . . . . . . . . .. .,.• ..• • .• • • .• ..• • 0_ ' • . . • • • • • • • ・・ー. 4 8 in4 市ム市 R d kυ p a 4 マルチステージネゴシエーションにおける探索戦略の評価 4 . 1 はじめに 4 . 2 3フェーズプロトコル. .• 4 . 2 . 1 非同期探索フェーズ. .. 唱 ・ 4 7 ..... 5 4 • .... . ...• • 7 0 5 市場モデルに基づく分散資源割当:鈎衡約アプローチ 5 . 1 はじめに t 句 ー. .• • .• .• • • .• .• • • ..• .. 3 4 6 8 旬。訓告 3. 4. 1 競合集合. .. 4 . 4 導出排除集合 3. ー・ー. 3 3 ・・・・・・・・・ ・ ・ ・・・・ー. 3 4 4 . 5 . 5 考察 4 . 6 まとめ qd ・ v "'ηt 3 . 3. 3 排除集合. • • • ..• • 3 . 4 無効ゴール集合の計算. .. 目次 5. 2 マルチエージェントシステムにおける資源割当 5 . 3 市場モデルに基づいた分散資源割当. ..• ..・・・ ・ 5 ふ 1 分散資源割当 .7 6 ・ . . . . . • . • • . • • . . . • . . • . •.• . • . . % 5 . 3 . 2 市場モデル. ..• ...• .• ...........• ......• 7 7 5 . 4 例題 1-感度系数の影響 . 7 8 5. 4. 1 エージェントの戦略 ... ・ .............. 7 9 ー 4. 2 シミュレーションのノ Tラメータ ..................80 5. 5. 4. 3 シミュレーション結果. ....• .. ・ ・ ・ ・ ・ 5 . 5 例題 I I一価格情報の伝達における通信遅延の影響 ・・ ・ ・ ーー・・・ 8 2 ・・ . 8 2 3 5. 5. 1 エージェントの戦略.. ... ....... ........... 8 5 . 5 . 2 シミュレーションのノTラメータ. ......• ......• .•. 8 5 5 . 5 . 3 シミュレーション結果............ ..........85 5 . 6 まとめ 8 8 4 . 2 . 2 協調探索フェーズ. ..... .. • . . .• ... ... ... ... 5 4 4 . 2 . 3 過制約解消フェーズ 4. 3 分散制約充足問題 4 . 3 . 1 問題の表現 ー ・ 0 ・ 0 一 . ••••••.• ..• • ...・. ... ・・ ・ 0 4 . 3 . 2 非同期パックトラックアルゴリズム 4. 4 ・ ・ ・ ・ ・ . .... 5 5 ・ ・ ・ e ・ ・ .5 5 ...... 5 6 ー 7) レチステージネゴシエーションの分散制約充足問題へのマッピング.. 4 . 4 . 1 変数とその領域 ・ ・・・・・・ ・・. . 4 . 5 通信網のデータを用いた評価実験 _ .., . . . ・ ・ 4 . 5 . 2 評価用例題の作成 ...• .• • .......... 4 . 5 . 3 実験内容. .・ー・ .: .・ a ・ ・ ・ 5 8 .・・・・. .. 5 9 t .. ...........白・ 4 . 5 . 1 簡単な通信網における伊l 4 . 5. 4 実験結果 5 7 ・・. ..• ......• .... 5 7 . 4. 4 . 2 制 約 ・ 5 5 ・・・.. 6 0 ・ー. 6 3 ...• .....• .. 6 6 .....• • ....• .• .• .....• .• .. 6 7 89 6 協調プロトコル記述言語 AgenTalk 6 . 1 は じ め に . ..• ,• • • • • .• • 6 . 2 設 計 方 針 . .........• 6 . 3 基本機能 ・ ・・ 6. 3 . 1 スクリプトの構成 断 一- - ・・・・・・・ ・・ ー ・ ・ ー・・・・・・・ 6 . 3 . 2 エージェントとスクリプト ・・ ・ ・・・・. • 8 9 ・ ・ ・ ・・ー・ 9 0 ・ ..• ..... 9 2 ・ぃ ・ … •• 9 2 ............• • ..... 9 2 6 . 3 . 3 状態遷移規目Jj . . • . . . . . . . . . • . • . . . . .•. ・ 9 3 4 複数スクリプトの同時実行 ..噂........ .. ....... 9 4 6. 3. 6 . 3 . 5 スクリプト記述のシンタックス • .......• ...... 9 5 6. 4 メタレベル制御 • ..・......................... 9 5 6. 4. 1 スクリプト実行制御のプリミテイプ 6. 4. 2 例外の通知 ... .. ......... 9 6 ............... ..... ..... 9 7 自次 VI 6. 4. 3 プロトコルの動的変更. ... ・ ・ ・ ・ 6. 4. 4 スクリプト動的変更の契機 6 . 5 記 述 例 ..• .・・ ・ 9 8 ー ・ .........• .• .....•. 9 9 ・. .........1 0 0 ー・・・ ・・ ー ・ 6. 5 . 1 契約ネットプロトコルの記述. .....~ ... ・ ..• ..• 1 0 0 6 . 5 . 2 契約ネットプロトコルの拡張 ...• ... ・ ・ ・ 6 . 5 . 3 マルチステージネゴシエーシヨンの記述 6 . 5.4メタレベル制御の例. .• . ・ ー 図一覧 1 0 6 ..• .• ..• • ...1 08 ・ ー. • .1 1 0 - ・ ー 6 . 6 議論 • ..・・・・ ー ・ ・ ・ ・ ・ ・ ・・・ ・ ・ .. ・ ー ・ 6 . 7 まとめ .......• ., ー ・ ....1 1 3 ・- ・ 2 . 1 DVMTにおけるセンサ情報の例 [ 1 0]..... ...114 2 . 2 協調的状況と競合的状況 [ 6 5 ] 1 5 ー. 4 Spawnにおける資金の流れ [ 5 9 ]. 2. A AgenT a Jk仕犠慨要 133 A . 2 エージェント 2. 6 協調促進器の例 [ 1 3 ] e A. 3 メッセージ ... ・ e ・ e ・ ・ ....ー・ A.5 スクリプトー ・・・・・・・・・・ .1 4 4 A . 5 . 1 スクリプト定義 .1 4 4 A.6 スクリプト実行コンテキスト .1 4 9 A . 6. 1 状態遜移規則 A. 7 リードマクロ ー・・ ..... ・ ・ 0 ・ ・ e ・ ー ・ ・. • .. • .. ..... 3 9 ・ ー... .... ... 5 3 4. 2 簡単な通信ネットワークの例 .• . ・. . ・ ・ ・ ーー・・・・ー 5 .1 通信ネットワークにおけるパス割当の例 .1 5 1 5 . 2 資源の使用率の分散(九)(例題 1 ) ーー. 6 0 5. 4 チャネル割当のモデル . 67 ー ・6 9 • ..• .• ..• ... 7 8 ・・・ ・ ) ............• .・・ 5 . 3 買い手の効用の平均(例題 1 1 5 3 nt e r a c t o r ..... A . 8 . 2 I .. 3 0 ・・・・ 4. 4 処理時間(ステージ数)一過 制 約 の 場 合 . ....• ....... .1 5 3 A . 8. 1 トレース ー ・ 4 . 3 処理時間(ステ ージ数).....• • ..• ......• ....• .• • " ・・・・. • ...• 1 5 2 A . 8 デバック機能 ・ ・・ ・ ・・ ・ 4 . 1 3フェーズプロトコル. . .1 4 9 A . 6 . 2 エージェント/スクリプト関数 ・・・・ 2 7 3 . 3 通信ネットワークの別例.…・・・・・・ ー ー ・ ー . ..• ...• • ..• .1 3 8 .1 3 9 A . 8 . 3 その他の関数 3 . 2 通信ネットワークの例 .....• .1 3 6 ..• .• .... ・. .. ・ ー ..1 3 6 A.4メッセージ;,タン 2 1 ー・・・ー. 3 . 1 マルチステージネゴシエーションにおける探索空間 A. 2 . 1 エージェントクラス. .......................1 3 5 A . 2 . 2 エージェント名 1 9 ..・ ー ー・・. ..• .....................• .1 3 5 A . 2 . 3 エージェント関連の関数 1 7 1 3 ] 2 . 5 KQMLにおける階層犠造 [ .1 3 3 A . 1 はじめに 9 1 4 ーー・ーーー・ 2 . 3 プロセッサ問のジョプの移動 115 7 結論 ー. ... ・ ー ・・..• ー・・・ ・・. .. … e ・. .... 8 1 e ・ ・ 81 .• ..... 8 3 5 . 5 資源の使用率の分散(九)(例題 I I ) ................... . 8 6 ー・. • • .1 5 5 5. 6 買い手の効用の平均(例題1I)・. ..・・ • • .• .• • ..• • • ....• .......1 5 6 6. 1 スクリプトの構成要素 • ...・・・・・ 6 . 2 スクリプトとエ ージェントの関係 .. ・ ・ ・ ・ ....... 8 7 ・・ ー ・ ・ ・ ・ ・ ・ ・ 92 ・・・ .• .. • • • 9 3 VlI , 一 一 一 一 一 ー し 図一覧 VJJJ 5 ・・.. 9 6 . 3 スクリプト定義のシンタックス(部分) • .• • ........ I 衝 ) ....... ............ ......... .. 9 6 6. 4 メタレベル需J スクリプトの動的変更に用いられるプリミテイプ . . . • . • . . • • . 9 9 6 . 5 ー・ ・ 1 0 1 6 . 8 契約ネットプロトコルにおけるマネージャのスクリプト定義 ..• • .1 0 3 6 . 9 契約ネットプロトコルにおけるコントラクタのトップレベル ...• • .1 0 4 6 . 1 0契約ネァトプロトコルにおけるコントラクタの状態遷移(例) • ..• ..1 0 5 6 . 1 1 指定落札を導入した契約ネットプロトコルの拡張 世見 ・・・・ 表 6 . 6 トップレベルスクリプトの例(一部) . . . • • • . 0 2 6 . 7 契約ネットプロトコルにおけるマネージャの状態遷移. • .....• ..1 2 . 1 分散システムの形態. .• • • ....白・ .....• • ...... 8 ...• ...・. • .1 0 6 6. 1 2指定落札を導入した場合のスクリプト定義. ..,.. ・ ・ ・ ...1 0 7 6 . 1 3 タスク割当における再試行の導入. .• .• ..• • • ...• • .• •• • 1 0 9 3 . 1 例におけるグロー パルプラン ー ー ..• • ・ p .3 1 ・ 3 . 2 例における各エージェントの資源,サブゴール,プラ ンフラグメント .3 2 6 . 1 4 逆提案を導入した契約ネットプロトコルの拡張. • • ...• ..• • • • .1 1 0 C h o i c eLi s t ),排除集合 ( E x c l u s i o nSe t ) .... 4 6 3 . 3 例における選択リスト ( 6 . 1 5逆提案を導入した場合のスクリプト定義 3 . 4 例におけるゴール排除集合 ( G o a lE x c l u s i o nS e t ) 6 . 1 6 スクリプトの動的変更例. A . l AgenTalkの構成 ・ ・ ー ・ ...• ..• • ........1 1 1 ・・ ・ ・・・・ ・・・・ 1 1 2 • • • ............• .• .........1 3 4 ,. , A. 2 ネ ッ ト ワ ー ク を 用 い た 構 成 例 .. ー .• .... ....1 3 4 4 . 1 例におけるグローパルプラン ・ e ・ ・ .4 6 ...........• ........ 6 1 4 . 2 例における各エージェントのサブゴール・・・・・・・・ .... 6 1 2 4 . 3 例における各エージェントのサブゴール,プランフラグメント,資源.. 6 4. 4 例 に お け る エ ー ジ ェ ン ト 内 制 約 . .• .. 4 . 5 例におけるエージェント悶制約 ー ー ・ ... 6 4 ・ ・ ー 4 . 6 例におけるグローパル制約 ・ .. . . 6 4 6 4 7 6 . 1 スクリプト実行制御プリミテイプ..................... 9 6 . 2 スクリプト実行コンテキストへアクセスのプリミティプ. lX ・ーー. 9 7 X 表一覧 第 1章 序論 近年,計算機技術の発展により高性能な計算機が安価に入手できるようになってき た さらに, ATM(AsynchronousTr a n s f e rMode)網,移動体通信など,ネットワー ク技術の進歩に伴い,多くの計算機がネットワークを通して逮携できるようになって いる.特に多くの計算機がネットワークで結ぼれた分散システムでは外部環境に対し てオープンなシステムとなり,システム全体をー箇所に集中して,設計,運用するこ とが不可能となりつつある.このような背景のもと,新たな分散システムの設計手法 が求められている. このとき新しいシステムの設計手法として考えられるのがマルチエージェントシス テムの考え方である すなわち,自律的に振舞うエージェントを複数集めてシステム 全体を構成しようとするものである マルチエージェントシステムの考え方を採用す ることにより , システム全体を集中して設計するのではなく,個々に設計されたエ ー ジェントと呼ばれるプログラム群の集まりとしてシステム全体を構成する ことにな る.マルチエージェントシステ ムとして実現することによ り,種々のエージェン トを 必要に応じて追加することで,システムの柔軟性を実現したり,また ,一つの エー ジェントが仮に故障したとしても,他のエージェントによって機能を肩代わりするな ど,システムの頑強性を達成できることが期待される. このようなマルチエージェントシステムを実現する上での中心的な課題のーっと c o o r d i n a t i o n )を達成するかということがあげられ していかにエージェント聞で協調 ( る. “協調"という言葉はいろいろな意味に用いられるが,ここでは複数のエ ージェ ントがそれぞれの自分の目標を効率よく達成するために(共に)行動するという意味と してとらえる.このときエージ ェントの自標が共通の場合もあれば,必ずしも共通で 圃L一一一一一一一一一一一一一一一一一一一一一一一一一一一d圃 第 1主主序論 2 3 契約ネットプロトコ J レは極めて基本的なプロトコルであり,多くの問題領域に応用 ない場合も考えられる. エージエントの目標が共通であるときマルチエージェントにおける協調は分散協調 問題解決と呼ばれる分野で研究されてきた [ 2,1 1 J . そこ ではエージェントが達成する 4 4 J, トラ ック されている.例えば.分散システムにおけるタスクスケジューリング [ の配車問題 [ 5 3 Jなどがあげられる. 共通の目標を複数の副問題に分割し,個々の富J I問題を解いた結果を統合して最終的な 契約ネットプロトコルにおいてはエージェントの出す入札,落札を取り消すことが 結果を導<.いかに副問題に分割するか,それぞれの副問題の問題解決をいかに制御 存在する場合,グローパルな制約を満足するよう できないため,グローバルな制約かτ するか,また,副問題の結果をいかに統合するかか潔題となる また,エ}ジェ ント にタスクの割当を行なうことができないという問題がある.これに対して,グローパ の目標が異なる場合はエージェント間で交渉し,必要に応じて目標関の貴重合解消を行 ルな制約のもとで複数のエージェントが協調して資源の割当を行なうためのマルチ まず第 2章ではマルチエージェン ステージネゴシエーションプロトコルが提案されている.マルチステージネゴシエー い,それぞれの目標を達成することが必要になる トシステムにおける協調メカニズムの研究状況を概説する ションでは,返信網において通信路が故障した場合の代替パスの探索が最初の例題と このようなエージェント間の協調を実現するために,一般にエージェントはお互い して取り上げられた[司.そこでは,通信網は複数の地域に分割され,各々のエージェ にメッセージを交換する . ここではエージェント聞の協濁を達成するための 一連の ントが担当地域内の通信路の割当に責任を持つ.どのエージェントも通信網全体の情 メッセージの交換のプロセスを協調プロセス ( c o o r d i 目前i o np r o c e s s )とよぴ,協調プ 報を持たず, 自分の担当区域内の局所的な資源の割当を他のエージェントに通信す ロセスにおけるエージェント聞の(アプリケーション層の)プロトコルを協調プロトコ る.そのとき他エージェントにおける局所的な資源の割当が自分の担当区域内の資源 c o o r d i n a t i o np r o t o c o l )と呼ぶことにする. ル( 割当に及ぼす影響を互いに通知しあうことによって全体として制約を満足した資源の 従来,分散人工知能の分野を中心として多くの協調プロトコルが提案されてきた. その代表的なものは契約ネットプロトコル ( C o n t r a c t Net P r o t o c o l )[ 9,5 5,5 6 Jで ある.契約ネ y トプロトコルは分散協調問題解決においてタスク割当を行なうため に提案されたものである ωk 基本的な契約ネットプロトコルでは,タスク公告(T. 割当を行なうのが特徴となっている. このマルチステージネコ.シエーションは契約ネットプロトコルの一種の拡張・一般 化として考えることができる.契約ネットプロトコルでは一回のタスク公告,入札, 落札というメァセージの交換でタスクの割当を行なっているのに対し,マルチステー An n o u n c e m e n t ),入札 (Bid),落札 (Aω即が)などのメ yセージによってタスクをエー ジネゴシエ ーションでは,局所的な資源割当の影響に関して交換した情報をもとに, ジェント聞に分配する. 他のエージェントに割り当てたいタスクを持つエ ージ ェント 必要に応じて資源割当をやり直す. m a n a g e r )となりタスク公告を他のエージェントに対して放送する はマネージャ ( タ 本論文の第 3章では,まず,このマルチステージネゴシエーションで扱われている スク公告を受けとったエージェントは提示されたタスクを自分のところで笑行しよう 問題の定式化を行う.続いて,グローパルな目標問の競合関係,すなわち,制約が強 とする場合は入札をマネージャに対して送る.マネージャは送られてきた入札の中か 過ぎて,すべての制約を満足することができないという競合関係を検出する手法を述 ら最も適当と判断するエージェントに対して落札を送る.落札を受け取ったエージエ べる .さらに第 4重きではマルチステージネゴ シエ ーションにおいて制約 を満足するた ントはコントラクタ ( c o n t r a c t o r )としてタスクを実行することになる めの解を探索する探索戦略を述べ,その評価を行う. e このような メッセージの交換を通してタスクの分配が笑現される. 契約ネットプロトコルではエージェントでは各自の観点からタスク割当の情報を評 マルチステージネゴシエ ーションの扱った問題では資源の割当について,割り当て るか,喜iiJり当てないかのゼローの問題を扱っている.しかし,通信路の割り当てとい 価し,最終的に得られるタスクの割当は,マネージャとコントラクタが相互に選択 う例題を考えると資源の量を扱えることが必要になる.そこで次に資源割当を資源の ( m u t u a ls e l e c t i o n )したものになるのが特徴といえる.いわばエージェント簡の情報 売買という形で実現する市場モデルの導入を試みる 交換の結果,タスク割当に関するエージェント問の協調が実現されたと考えることが できる. 人間の経済活動はもともと情報・制御が分散している中で,大規模な資源割当を行 なっていると考えることができ,マルチエージェン トシステムのモデルと親和性が高 第 1章 序 論 4 い.特に競争市場の考え方においては,協調のためのエージェント問の明示的な通信 無しに資源割当が実現できることが期待できる . そこで第 5章では.そのような試みのーっとして(競争)市場のモデルをマルチエー ジェントシステムにおける資源溜j 当に応用した例を述べる.ここでは均衡的アプロー e q u i l i b r a t o r ya p p r o a c h )と呼ぶ手法を提案し .そのシミュレーション実験の結果 チ( 第 2章 について考察する. さらに,このような協調メカニズムを用いて実際にマルチエージェントシステムを 構築するためにはエージェント問のプロトコルを記述するための言語が望まれる.特 に契約ネットプロトコル,マルチステージネゴシエーションプロトコルを初めとする 協調プロトコルは,応用領域には独立なプロトコルである.これらのプロトコルを用 マルチエージェントシステムにおける協調メカニ ズムの研究状況 いて実際にアプリケーションを構築するためには,各アプリケーションに特化したプ ロトコルとすることカf必要となる. genTalkを提案する.この言 第 6童書では,協調プロトコルを記述するための言語 A 誇ではオプジヱクト指向言語に見られるような継承機能を導入し,プロトコルの段 階的な定義を実現じているのが特徴である.また,プロトコル定義のうちアプリケー ション依存の部分を容易にカスタマイズするためのインタフェースを設けている. 最後に第 7章で本論文の内容を総括するとともに今後の課題を述べる .最後に付録 として第 6章で提案する A genTalkの仕様概要を述べる. 2 . 1 はじめに 本章の目的は 7 )レチエージェントシステムにおける協調メカニズムに関する研究状 況を概観し,本論文の研究内容の位置付けを明確にすることである. d i s t r i b u t e da r t i f i c i a li n ω凶マルチエージェントシステムの研究は分散人工知能 ( g e n c e )の研究から出発したといえる .分散人工知能は人間社会をはじめとする集団の 諸活動を自律的に判断する複数の計算主体(エージェント)の相互作用としてモデル化 し,工学的応用を図る研究分野である [ 2 1 ] . 初期の分散人工知能の研究の多くは,全 d i s t r i b u t e dp r o b l e ms o l v てのエージェントが一つの目標を対象とする分散問題解決 ( 申 i n g )を対象としていた.その後,エージェントの自律性が意識されるようになり,必 ずしもエージェントの目標が共通ではない場合が取り上げられ,マルチエージェント システムの研究として発展している [ 2 ] . マルチエージェントシステムの研究では,情報をー箇所に集中することができない 場合,ないし,集中することが得策でない場合を対象としている.情報を分散させ, 並列性をあげることで性能を向上させるのが目的ではない.情報をー箇所に集めるこ とができない場合として例えば次のような場合が考えられる. -通信の遅延が問題になる場合・ 制御信号の伝達には光速度の限界が存在する .例えば,高速ネットワークにお Bの 2地点、間を給ぶ通信路でパケットの送出制御を行なうことを考えよ いて A, 5 第 2主主マルチエージェントシステムにおける協調メカニズムの研究状況 6 2. 2 . 協調問題解決 7 う.仮に A点で処理能力が限界になったため A点へ向けたパケット送出を止め 以下,マルチエージェントシステムにおける協調メカニズムにおける従来の研究を 二 る命令を B点に送るとする. A, B地点問の距離が離れているとすると A点か つの観点から述べ,本研究の位置付けを明確にする. ら出た制御命令が B点に到達する前にすでに多数のパケットが A, Bの 2地点聞 を結ぶ通信路上に存在していることになる.この場合 B点に制御命令が届いて 2 . 2 協調問題解決 からパケットの送出を停止するのでは時間的に間にあわないことになる.さら に極端な例では,地球より速く離れた宇宙探索機から送られてくるセンサ情報 従来から複数の計算機が通信ネットワークによって接続された分散システムの研究 を地球で受けてから一つ一つ命令を送るのでは,通信遅延から制御命令が間に が行なわれている.分散システムには,並列かつ非同期的に計算を実行することに 合わない場合が考えられる.このような場合は通信遅延が問題となり情報をー よる性能の向上,環境の変化にしたがってシステムを段階的に機能を拡張できる拡 箇所に集めて集中的に制御することができない. 張性.システムの一部が故隊しでも,他の部分で代用することによって機能を継続可 能とする耐故障性などの潜在的な特長がある.このような分散システムを通信ネット -エージェントのプライパシー,セキュリティーが問題になる場合 すべての情報を他のエ ージェントに対して公開することがプライパシー,セ キュリティーを確保する上で問題となる場合がある.例え 1 1会合スケジューリ ワークを介して情報を交換する複数のプロセスとしてモデル化し,複数プロセスを効 2 3 J . 果的に協調動作させるための分散アルゴリズムも研究されている [ 分散システムにおける情報に関して L e s s e rらは情報の正確性とエージェントの自律 ングシステムでは,参加者のすべてのスケジュール,好みを他のエージェント 性を二つの勅として次のような分類を提案している に公開するのは好ましくないであろう.適当なスケジュールを決定するのに必 C o m p l e t e l yA c c u r a t e,N e a r l yAutonomous-CA/l、~A) , 全に正確で,ほぽ自律的" ( 要な情報のみを他のエージェントに公開したいという要求が出てこよう.この すなわち,各エージェントは独立に副問題を解くことができ,他のエージェントの情 ような場合は通信の遅延というよりも問題の性質から情報を ー箇所に集 めるこ 報が必要な場合にも正確な情報が得られるとの仮定のもとで議論を展開してきたとい とができない. [ 4 0 J . 従来の分散システムは“完 . 1) これに対して分散協調問題解決においてエージェントが不完全な情報 える(表 2 このような要求条件のもとでは,情報をー箇所に集めて ,問題を解くことができな のもとで副問題を解き,部分解をお互いに交換することが必要になってくる.上記の いことになる.そこで,複数の情報処理主体(これをエージェントと呼ぶ)の聞で情報 F u n c t i o na J l yA c c u r a t e,Cc ト 分類では“(完全ではないが)機能的に正確で,協調的" ( のやりとりを行ない,問題を解くことが必要となる o p e r a t i v e-FAjC)といえる.従来の分散システムがエージエント聞でデータが矛盾 すなわち,マルチエージェント システムの適用分野となる. このようなマルチエージェントシステムにおける課題は次の二つ にわけで考えるこ とができる [ 2 0 J. することを許容しなかったことと大きく異なっている.すなわち,すべての情報を持 たない中でエージェントは必要に応じて他のエージェントとメッセージを交換し,自 分の行動を決定していくことが必要となる .こ のときの協調メカニズムとして結果共 有,タスク共有,分散探索の考え方が提案されている [ 21 J . 1.協調問題解決・複数のエージェントが共通の目標を持つ場合に,エージ ェン ト間 で協力し,組織を構成し,共通の目標を達成する 2. 2 . 1 結果共有 2 . 交渉と均衡化:複数のエージェントあるいはエージェントからなる組織群が独立 マルチエージェントシステムにおいてはエージェントが問題すべての情報を得るこ の目標を持つ場合に,それらエージェント(組織)群の目標間に生じる競合を解 とができない .そこで,エージェントが副問題の中間結果をお互いに持ち寄ることで 消し,全体として好ましいバランスを維持しながら,それぞれの目標を達成す 最終的な目標とする解に到達しようとする結果共有 ( r e s u l ts h a r i n g )の考え方が提案 る. されている [ 5 6 J . 音声認識を行なう分散型 H e a r s a y -1 J[ 4 2 Jや,複数の基地局が協力し 第 2章マルチエージェントシステムにおける協調メカニズムの研究状況 8 2 . 2 協調問題解決 9 表2 . 1 :分散システムの形態 完全に正確 │ 機能的に正確 ( c o m p l e t e l y a c c u r a t e )I ( f u n c t i o na l J ya c c u r a t e ) ほほ自律的 且 (e a r l y CA/NA ( F A / N A ) ( C A / C ) FA/C 七o nomous) au 協調的 ( c o o p e r a t i v e ) て乗物を追跡する DVMT( D i s t r i b u t e dV e h i c l eMonitoringTes 七b e d )[ 4 1 )がその代表 的な例である A g e n t 4 これらのシステムでは,エージェントが問題のすべての情報を集める ことができず,局所的情報をもとにエージェントが判断を下す必要がある.例えば, DVMTでは,エージェントは複数の地域に分けられた担当区域のセンサ情報を有す 図2 . 1・DVMTにおけるセンサ情報の例 [ 1 0 ] るものの,他の地域のセンサ情報をもたない.そのため,エージェントの簡で適切に 情報を交換し,複数の担当区域をまたがる乗物の軌跡を求める必要がある. ける局所的な計画としてエージェント 1に対して送信する エージェント 1では仮に 結果共有の考え方では,複数のエージェントが整合 ( c o h e r e n c y )のとれた判断を行 d ' l ' ' ' ', d~ を先に処理していたとしても,エ ージェ ント 3 から局所的な計画を受けと なうか否かが効率に大きく影響してくる.例えば,解が存在すると思われる方向に ると d4, ., ・ d12の処理を優先する.これは,エージェント lにとっては d ' l '・ . , d~ が 会エ ージェントが協力して探索を行なわれなければ,効率よく探索を行なうことがで ノイズであることも考えられ,これらの信号よりもエージェント 3から来た信号につ P a r t i a lG l o b a lP l a n n i n g )の考え方が提案されている [ 1 0 ] . きない.そこで PGP ( ながる d ・ ・, dl2 を先に処理した方が効率がよいと考えられるからである.このよう 4, PGPでは,エージェントは相互に問題解決の計画の概略を送る にして系全体の効率をあげることができる.すなわち,エージェントの自律性と系金 エージエントは他 のエージェントの計画を考慮に入れ,システム全体の動きを把握する.必要に応じて 体の効率性という,相異なる要求を満足する枠組を提供している. 各自の計画を修正し,システム全体の方向と自分の局所的な計画が合うようにする. . 1は DVMTにおける 修正した計画の概略を再度他のエージェントに送信する.図 2 2 . 2 . 2 タスク共有 センサ情報の例である.この図では多少の重複を持ちながら,四つの地域に分割さ 一方 ,問題解決に要する負荷を複数のエー ジェン トに分割 して割り当てる協調の方 れた各地域にエージエントが割り当てられている.図中のノードがセンサからの信号 式はタスク共有 ( t a s ks h a r i n g )と呼ばれている [ 5 6 ] . タスク共有という l 呼称、は,複数 を表し,ノード聞を結ぶ線がセンサからの信号をもとに解析された乗物の軌跡を表し のエージェントが一つのタスクを“共有しへエージェント問の合意の下にサプタスク d12 と d ;, . . ., d~ の信号が あり,エー ている.ここでは,エージェント lでは d4γ ・ ・, ジェント 2ではめ 0, . . ., dl , •• •, d6の信号があ 5の信号があり,エージェント 3では dl に分割して分担するところから付けられている.タスク共有では副問題をエージェン る.このときエージエント 3は d . . ., d 1, 6 を処理していることを自エージェン トにお の考え方はお互いに独立のものというよりもむしろ相補的なものである.一つの問題 ト群にいかに割り当てるかが問題となる.先に述べた結果共有の考え方とタスク共有 車 L一一一一一一一一一一一一一て プ一一一一一一一一一一一一通圏 1 0 2 . 2 協調問題解決 第 2j聖マルチエージェントシステムにおける協調メカニズムの研究状況 り当てられたあと中 に対して,タスク共有の考え方に基づいてサプタスクに分割,容l 1 1 ジェント聞の情報に何らかの矛盾があることになる. 間結果をまとめる際に結果共有の考え方を適用するということも考えられる. A s s u m p t i o n b a s e dTr uthMaintenanceSystem)[ 4 5 Jの手法では,エー 分散 ATMS( 5 5 Jはタスク共有を実現するためのプロトコ 第 1章で述べた契約ネットプロトコル [ ジェン トはそれぞれ ATMSの機能を持ち n e g o t i a ルと考えることができる.契約ネットプロトコルは人関社会における交渉 ( エージェント聞で交換するメッセージに u m p t i o n )を付加する.受信したエージェントはす おいて情報の板拠となる仮説(田s t i o n )過程をエージェント問の合意形成に応用したもので,タスク(あるいはサプタス でに持っている情報と矛盾が発見したときは矛盾が生じる原因となる仮説の組合せを ク)を分配するエージエントはマネージャ ( m a n a g e r )と呼ばれ,タスクの分配におい n o g o o d )として検出し,他のエージェントに送信する .エージェント問で 無効集合 ( てはタスク提示 ( T ω ,kAn n o u n c e m e n t )を行なう. タスクを処理するエージェントは 無効集合を共有することによって共有情報の無矛盾性を維持する . コントラクタ ( c o n t r a c t o r )と呼ばれ,提示されたタスク(あるいはサプタスク)の中か 分散 ATMSではすべての無矛盾な仮説の組合せを保持するのに対し,分散 TMS ら各自の評価基準で選択し入札 ( B i d )を送る.マネージャは多くの入札の中から,各 自の評価基準で選択し落札 ( T ruthMaintenanceS y s t e m ) [ 1 8 Jの手法では,エージェント問の情報で無矛盾な仮説 ( A凹 a r d )を送る.このように契約ネ y トプロトコルで最終 の組になるように維持する手法を提案している. TMSと同様に情報に I N,OUTのラ 的に得られるタスクの割当は,マ不ジャとコントラクタが相互に選択 ( m u t u a Is e l e c - ベルをつける.このときエージエント閥の情報の無矛盾性の度合を 1 )各エ ージェント t i o n ) した結果となっているのが特徴である. i n c o n s i s t e n t ), 2 )各エージェントの内部で の内部で情報が矛盾している場合(矛盾 契約ネットプロトコルは,多数のセンサを用いて広範囲を監視制御する分散センシ は無矛盾(局所無矛盾 ングシステムやロ ーカルエリアネ ットワ ークの負荷分散 [ 4 4 Jなどに適用されている. l o c a lc o n s i s t e n t ), 3 )エージェント内部の情報とエージェン ト関の共有情報は無矛盾(局所共有無矛盾 また,本論文でとりあげるマルチステージネゴシエーションは契約ネ γ トプロトコル ジェントの情報が無矛盾(大域無矛盾 を拡張し,複数の契約問に大域的な制約が存在する場合を対象としたものであると考 l o c a l a n d s h a r e dc o n s i s t e n t ), 4 )会エー g l o b a lc o n s i s t e n t )の 4レベルに分類してい る.マルチエージェントの枠組では局所共有無矛盾が一つの妥当なレベルであるが, えることカずできる. その局所共有無矛盾を満足するメカニズムを提案している. 2 . 2 . 3 分散探索 また, "7)レチエーシーェントシステムにおける問題解決を問題空間の探索として定式 化した分散探索の考え方が提案されている 分散制約充足 [ 2 0 J . 分散探索は高速化を目的とする並列 探索とは異なり,エージェント問の情報に矛盾がある場合や,副問題の間に大域制 さらに,分散探索のーっとしてエージエント問の大域制約を満足させる分散制約充 象となっている.分散探索として定式化することにより,エー 約が存在する場合カサf d i s t r i b u t e dc o n s t r 出n ts 抗i s f a c t i o np r o b l e m )が提案されている.解法として 足問題 ( ジェント聞で交換する情報を規定することができる.分散探索として具体的にはエー は,非同期パックトラックアルゴリズム c o n s i s t e n c y )を維持する手法,エ ージェント聞の状態 ジェント問の情報の無矛盾性 ( [ 6 3 Jなどが提案されている.これはエージェ I約を満足する ような ントの局所変数のとる値の聞に満足すべき制約があるときに,市J 聞に制約がある場合に制約を満足するような状態を見つける手法が提案されている 値の組合せを見つけるアルゴリズムである 特に非同期パックトラックアルゴリズム c omplete n e s s )を満たすアルゴリズ は解が存在すれば必ず解を見つけるという完全性 ( エージ工ン卜聞の情報の無矛盾性の維持 ムとなっている.詳しくは第 4章で述べるが,基本的にはエージェントが局所解を他 エージェントがあるエージェントから受信した情報をもとに Pを演縛したとしよ う.同時に他のエージエントから受信した情報をもとに 一→=Lー 』一一一一一一一一一一一一一一一一一一 , - nogoods e t )を通知することを繰 のエ」ジェントに通知し,かつ矛盾となる無効集合 ( pをi 寅鯵したとするとエー り返す. ← ← 哩 1 2 第 2望者マルチエージェントシステ ムにおける協調メカニズムの研究状況 2 . 3 . 交渉と均衡化 1 3 ゲーム理論を用いて.エージェント聞の交渉プロトコルが研究されている. 本論文ではマルチステージネゴシエーシヨンの枠組 [ 7 ]を題材としてとりあげる. これは第 1章でも述べたように大域的な制約を満足しつつ資源割当を行なうための枠 組である.契約ネ y トプロトコルの拡張,一般化という観点からはタスク共有を行な 満足させる害l t 当を笑現する うための手法としても考えられ,また,大域的な制約を i という観点からは一種の分散探索の手法としても考えることができる 本論文では マルチステージネゴシエ ーションで扱っている問題における探索空間を明確にし,探 索空間の定式化に基づいてエージェン ト聞で交換する情報を明確にする 詳細情報す べてを他のエ ー ジェントに送るのではなく ,いかに情報を抽象化して送るかが問題と p a y o f fm a t r i x )でエ ージェントの行動の選択肢と ゲーム理論では一般に利得行列 ( その行動をとったとき得られる利得 ( p a y o f f )を定義する.交渉を行なうとき,各エー o f f e r ジエントは,自分の行動と自分が受け入れることのできる交渉相手の行動の組 ( g r ou p )を,交渉相手に提示する .こ こで,すべてのエージェントの提示案に含まれる d e a l )とする.そのような行動の組が複 行動の組が存在すれば,それを交渉の妥結点 ( 数ある場合には,適当な調停者が一意に決定する.この交渉モデルを用いてエージェ ントの合理性 ( r a t i o n 叫l t y )に種々の定義を与えることにより ,協調的行動を実現する メカニズムが提案されている また,ゲー ム理論はマルチエージェントプランニングにも応用されている.例えば なり ,ここでは送るべき情報を明確にする.マルチステ ージネコ・シエ}ションでは複 数のグローパルなゴールが存在するときに大域的な制約を満足させる割当を求めるの が特徴である .グローパルゴール を考慮に入れて定式化した探索空間に基づいてエー ジェントかち交換すべき情報を規定することによりグローパルゴール問の競合が正しく 認識できるようにする . さらに分散制約充足アルゴリズムとの定量的性能の比較を行 ない,分散探索という観点からの比較評価を行なう.ここでは探索空間の定式化に基 づいて交換する情報を規定しているので,制約が強過ぎるときに複数のゴールのうち どのゴールをあきらめれば残りのゴールについて解を求められるかを明らかにできる [ 5 2 ] . エージェントの目標が必ずしも一致 しない場合の共同プランの作成の可能性について 検討されている [ 6 5 ] 図2 . 2はこれを模式的に表現したものである.図の各点が状態 に対応しており,領域 01, 2の目標が満足される状態の O2はそれぞれエージェント 1, 集合を表す sは初期状態を表し,エ ージェントが単独で目標を満足させる時のコス トは sと B標を表す領域との距離で示されている.三重線は両エージェントの共同プ ランを表している.ここでは,エ ージェントの利得を,プランの実行によって達成さ れる目標の価値とプランの実行に要するコストの差として定義する. 協調的状況では図 2 . 2 (1 )に示す ように 2エージェントの目標領域の共通部分が初期 という特徴を持っている 状態に近<.エージェン ト問で協力するのが有利であることがわかる 2. 3 交渉と均衡化 そこで共同プランを次のように拡張する.まず初期状態 sからある状態 Sに移行する 協調問題解決ではエージェントはある一つの問題を複数のエージエントで協調して 解くことが対象となっていた 一方,競合的 状況では 2エージェントの目標領主主問に共通部分がなく ,共同プランが成立しない. さらにエ ージェントが個々の目標を持っている場合, エージェン ト間の目標の競合を解消し ,システム全体として適当な状態を維持するこ とが必要になってくる. 混合共同プラン ( mは e dj o intp la n ) Jを考える .混合共同プランとは共同プランの どの部分をどのエ ー ジェントが実行するかを確率的に決定するものである. ここで は,エージェン トの能力 は同じで,どちらのエージェン トもプランの任意の部分を実 行できる と仮定し ている.さらに状態 tにおいて確率 qでどちらか一方の目標を選択 することにする 2. 3 . 1 ゲーム理論的手法 このような共同プランは ( t, . 1 , q )で表され,図 2.2( 2 )に示すように なる .これ によ りエージェント聞で 目標が一致しない場合(例えば. 2エージェント が一つの荷物 を異なる場所に運ぼうと す る)においても ,共同作業が成立する(途中 ま エージェントの合理的な行動基準を与える数理的手法としてゲーム理論がある . で協力し て荷物を運ぶと双方の期待効用が増大する)ことになる .なお,このように ゲームは,意思決定主体としてのプ レイヤ(エージエントに相当).プレイヤのとる行 拡張さ れ た共同プラン は協調的状況にも適用可能である (t ε~ 動, プレイヤの行動に対して得られる 利得(実数値で表現)でモデル 化 される . この ので,こ の考え方に基づいて協調的状況,競合的状況共に適用可能な統合交渉プロ ト 一 一 = ‘ ー ー 一 一 一 ー 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 一 ー ←ー n02とすればよい) ~ γ 第 2章マルチエージェント システムにおける協調メカニズムの研究状況 2 . 3 交渉と均衡化 1 5 i 一 f 少 結 果 ジョブ 'G 一 7q 一 ・2一 S 5 、晴、一一 : 1 4 寸注言件孟右戸 -ジョブ ( 1 ) 1 品調的状況 ( 2 )隊合的状況 図2 . 3 プロセッサ間の ジ ョブの移動 . 2:協調的状況と競合的状況 [ 6 5 ] 図2 コル(叩i f i e dn e g o t i a t i o np r o t o c o l )が提案されている [ 6 5 ] . このように グーム理論は 独自の効用を持つエージェントの合理的行動基準を提供してくれる. ムにおける OPU時間という資源をいかにジョブに割り当て,負荷分散させるかが諜 題となっている.これらの研究では競争市場の持つ理論的な性質を活用するというよ り,分散して資源割当を行なうためのヒュ ーリステイクスのよりどころを市場モデル に求めている. 2. 3 .2 市場モデルの応用 人間の経済活動は極めて大規模な資源割当を非集中制御のもとで行なっていると考 えることができる.経済活動における人間の行動は分散人工知能において自律的な ジョブの移動による 負荷分散 エージ ェントを実現する上で有用なモデルを提供してくれる.経済活動の中でも,市 この例は複数のプロセッサが通信路で結ぼれており,プロセ ッサに到着したジョブ 場( m a r k e t )は分散資源割当を実現する具体的なメカニズムを提供している.ここで がプロセ γ サ問を移動し実行されることでプロセ ッサ聞の負荷分散を実現しようとす [ 1 2 ] エージェントは独自の効用(関数)を持ち,エージエントは自分の効用を最大にするよ るものである うに振舞う.競争市場においてはいわゆる “ 神のみえざる手"にしたがってシステム 信路の帯域が財として扱われる 全体としてパレート最適な均衡状態が笑現できる. この枠組では CPU時間の他にプロセ ッサ間を移動するときの通 PU時間と他のプロセ ッサへジョ 各プロセッサが C ブを移動するための通信路の帯域を提供する生産者となる . また,システムに入力さ さらに市場において,財・サーピス(以下では財で代表させる)に価格がつけられ, れる各ジョブがそれらのサービスの消費者となる .ジョブには資金があらかじめ与え CPU時間を購入し,また, 貨幣と交換される .市場に参加する経済主体(消費者,生産者)は財につけられた価格 られ,これを用いてプロセ ッサからジョブ実行に必要な を基に何をどれだけ購入し,また,何をどれだけ生産するかを決める.価格を用いる 他のプロセッサに移動するときはプロセ ッサ問の通信路の帯域を購入することにな ことにより経済主体の選好をはじめとして種々の情報を極めて簡潔な形式に抽象化し る.他のプロセッサに移動したときでも最終的な結果はジョプが到着したプロセッサ て表現している に戻るという前提がおかれている . したがって,別のプロセ ッサへ移動するときは結 これにより ,エージェント問で交換する情報を抑えつつ,適当なシ ステムの振舞いを実現できることが期待される 果を返すためにもとのプロセッサに戻るための資金をとっておく必要がある . また, このような市場の考え方を応用して,計算機上に仮想的な計算的市場 ( c o m p u t a - t i o n a lm a r k e t )を構築し,種々の資源の割当を集中制御ではなく分散制御のもとで実 3 ] 以下では,動的な分散資源割当へ応用した研究例 現することが試みられている [ を述べる.ここにおける資源は主としてプロセッサの CPU時間であり,分散システ ここでは価格の概念を導入していることにより, CPU時間と通信路の帯域という異 . 3 ). なる資源を同列に扱うことが可能になっている(図 2 CPU時間と通信路の帯域の価格は競売 (auctio且)によって決められ,プロセァサ CPU時間と通信路の帯域を販売する.これに対し は自分の手I J i 閣を最大にするように 1 6 第 2章マルチエージェントシステムにおける協調メカニズムの研究状況 2 . 3 交渉と均衡化 1 7 ジョブの目的は与えられた資金を用いてジョプを完了させることである. ここでは ( 1 )できるだけ安〈ジヨプを実行する価格優先方式,及び, ( 2 )ジョブの ^~/ij'寸J 終了時間をできるだけ短くするサービス時間優先方式が検討されている. 二つの方式 案の混合も考えられるが,その性質は 2方式の中間的なものになる. 9台のプロセ yサが 3x3の裕子状に接続されたプロセッサネットワークを対象にシ ミュレーションを行った結果,いずれの方式を採用した場合でも,従来手法に比べ, ジョプの平均待ち時間が同等か,多くの場合,短くなることがわかっている.このシ ミュレーションでは個々のジョプの完了に要する時間は指数分布にしたがうとし,ま た,最初に与える資金の額は同じという仮定をおいている 方式では,ジョプは その結果, CPU時間が安いプロセッサへ移動しようとする ( 1 )価格優先 そのため,通 信路の価格が上昇する.震初に与える資金の額は同じなので,処理時間の短いジョプ ‘ は,単位時間あたりの資金が多くなり,通信路の帯主主の競売に勝ってプロセッサ聞を 移動する傾向が見られる ( 2 ) サービス時間優先方式では ,プロセッサ閲の移動に サブ ?^7資金 よるジョプ終了の遅れを少なくするために,ジョプは同じプロセッサに留まろうとす る.処理時間の長いジョプは,単位時間あたりの資金が少ないため, CPU時間の競 図2 . 4 :S p a w nにおける資金の流れ 売に負けることが多くなり,プロセッサ聞を多〈移動する傾向が見られる. このように,ジョプの入札の方針を変更することで移動するジョブの種類を変える ことができる.このことはエージェントの局所的な方式を制御することでシステム全 体の振舞いを制御できる可能性を示している. [ 5 9 ] ネージャが存在し,マネ ージャは必要に応じて自分のタスクをサプタスクに分解し, サプタスクを実行するマネージャを新たに起動する. ジョプの実行に際してユ ーザがスポンサとなってサプタスク階層のツリーの根に相 当するトァプレベルのマネージヤに資金を与える.各マネージャは手持ちの資金を優 資金量の制御による負荷分散 先度にしたがって自分のサプタスク聞に分配する(図 2 . 4) .ま た,サプタスクに渡さ LANでつながれたワークステーションの CPU時間の割当において市場モデルを導 入した S p a w 且と呼ばれるシステムが提案されている [ 5 9 ] . ここではワークステーシヨ ン(プロセッサ)が生産者(売り手)に対応し,自分の余っている C PU時間を売る 応 PUI 時間を売り手より買 用プログラム(ジョプ)が消費者(買い手)に対応し,必要な C い求める. れずに余った資金は一旦資金貯蔵庫に蓄えられ将来の使用に備えられる. 売り手のプロセッサは空きの CPU時間を販売するために競売を行なう S p a w nの 競売では入札者は他の入札者の入札価格を知ることができず,また,一番高い価格を 提示した入札者が入札に勝つが,支払う価格は 2番目に高い入札価格とする V i c k r e y の入札方式 [ 5 8 ]を採用している.この方式では入札者は自分にとって本来の価値に S p a w nではジョプがいくつかの 1,入札に勝てない危険をおかして本来の 見合った金額を入札するようになる.例え 1 サプタスクに分解され,並行に実行される.サプタスクは必要に応じてさらにいくつ 価値より少ない価格で入札するとしよう.もし,入札に勝てなかったとすると,他の かのサプタスクに分解される.したがって ,ジョプはツリー状の階層構成をとるサプ 入札者が支払う金額を少なくする可能を増やすだけになり,自分の得にはならない . タスク群によって実行されることになる.各サプタスクごとに(アプリケーシヨン)マ したがって,入札に勝てなくなる危険をおかしてまで,本来の価値より少ない価格で 前述のジョプの移動による負荷分散とは異なり, 一 主z‘圃』ーーーーーーーーーーーーーーー一一一一一一一一一一一一-ー一一- -j.- 1 8 第 2章マルチエージェントシステムにおける協調メカニズムの研究状況 入札する意味はないことになる 2 . 4 協調プロトコル記述言語 1 9 さらに,この方式は,他で良〈見られる競売の方式 (公開の場で,他により高い価格を提示する入札者が現れなくなるまで,入札価格を Communi c at i o n( me ch a n ic s0 1c ommun ic a t i o n ) 徐々にあげていく方式)と比べて,少ない通信のオーバヘッドで同じような価格に決 M e s s a g e( I o g i c0 1c om m u n i c a t i o n ) まることが知られている 1c o m m u n i国 t i o n ) Con t e n t( c o n t e n t0 Sp 剖叩ではシミュレータを用いたシミュレーションだけではなく,性能の異なる ワークステーションが接続された実際の LAN環境にお いて実験が行なわれている. 例題としてモンテカルロシミュレーションを行なうプログラムが取り上げられ,与え る資金の量を制御することによりジョプやサプタスク問の優先度を制御できることが 図2 . 5 : KQMLにおける階層構造 [ 1 3 ] 示きれている.性能の違うプロセッサが存在する異機種環境においてはプロセッサ間 の性能の差は CPU時間の価格の差に現われる . このように価格を導入することによ り,プロセツサ聞の性能の違いを考慮する ことなくジョブ /サプタスクの優先度を与 第 1章でも述べたように分散人工知能の分野では契約ネットプロトコル えることカまできる また ,緊急性の高いジョプが発生したとしよう るような言語が望まれる. その緊急ジョブに多くの資金を与 えて笑行させると CPU時間の価格が一時的に上昇し,今まで実行していたジョブは [ 5 5 ]を初め 多くの協調プロトコルが提案され,分数システムにおけるタスクスケジューリング [ 4 4 ] . トラァクの配車問題 [ 5 3 ] . ミーテイングスケジューリング [ 5 4 ]など種々の領域 CPU時間を得ることができず,緊急ジョプが優先的に実行されるようになる.緊急 に応用されている ジョプが終了すると. CPU時間の価格がもとに戻り,もともと実行していたジョブ 調が注目を集めており,知識ベース簡の通信言語も提案されている また,一方,知識ベースの分野では複数の異種知識ベース聞の協 [ 5 0 J . が CPU時間を使用できるようになる.このように動的なジョプの発生に対しても柔 軟に対応できる. KQML DARPA の知識共有プロ ジェクト(Knowledge Sharing E伽 ) [ 5 1 Jの枠組の中で KQMLと呼ばれるエージェント通信言語が提案されている [ 1 3 ] . KQML (Knowlこのように価格という概念を導入することにより,種々の要素が価格という 一つの edge Query and Manipulation Language)ではエージェント問で交換されるメッ 尺度で表現できるという利点が生まれる.前述の研先では価格か1 読売によって決定さ l a y e r )から構成されていると考える(図 2 . 5 ) 一つは セージを次のような三つの層 ( れる.したがって競売機構のオーバヘッド(処理時間,処理能力)が問題になる場合 内容層 ( c o n t e n tl a y e r )であり,笑際のメッセージ内容を記述する. KQMLではどの が予想される.それに対し,本研究では売り手が価格を自律的に決定する機構を想定 ような表現形式で内容が表現されるかには関与せず,実装上はメッセ ージ内容の始 ま し,競売のオーバヘッドをなくすアプローチ(ここでは“均衡的アプローヂ'と呼んで c o r r u n u且i c a t i o nl a y e r )では りと終りの境界を知っているだけである.また,通信層 ( いる)を提案し ,そ の性質をシミュレーション実験によって明らかにする J エージエント問でメッセージを実際に伝達するのに必要な低位の通信パラメータ(f9i えば. メッ セー ジの宛先,送り手など)に関する記述を行なう 2. 4 協調プロトコル記述言語 messagel a y e r )ではメッセージ行為を記述する.ここが KQMLの核 メッセ ー ジ層 ( p e r f or m a t i v e )を送り手が与えること となるところで,メッセージ内容に関し遂行語 ( 以上述べたような協調メカニズムを用いて,実際にシステムを構築するにあたって レ(協調プロトコル)を記述でき はエージェントのインタラクションにおけるプロトコ J ができる ここで遂行語はメッセージ内容が例えば問い合わせ ( q u e r y ) . 命 令 (com- mand)かなどを示す KQMLでは多くの遂行語 ( p e r f o r m a t i v 巴)を定義しており,発 量」 一一一一一一一一一ーでプ一一一一一一一一一一週 2 0 第 2章マルチエージェントシステムにおける協調メカニズムの研究状況 s p e e c ha c t )論に基づいて意味を与えている 話行為 ( 2 .4.協調プロトコル記述言語 2 1 1 4,3 8 J KQMLのメツセ」ジではメッセージ内容の記述に用いられている 言語や語棄を記述 することができる.例えば関西国際空港 ( K I X )の緯度,経度を問い合わせする場合の メッセージの一例は次のようになる. f … 白 川 ( a s k o n e: c o n 七e n t "location(kix.[Longitude.Latitude])" : l a n g u a g eprolog : o n t o l o g yg e o m o d e 1 3 ) R戸市 , X ) 己ゴク/ db ( 1 )s 山s c r i b e これは遂行語が a sk-oneで. p r o l o g言語で記述された問い合わせが・ content以下に 記述されている.また,語集として g eo-mode13が使われていることを示している, ここでの KQMLのシンタ y クスは S式ベースのものを使用しているが,必ずしもこ れに拘る必要はない. f a c i l i t a ω r )と呼ばれる特殊なエージェ ン トを提案 また. KQMLでは協調促進器 ( している 協調促進器はエージェント間の仲介の役割を果たすものである.例えば 他のエージェントは問い合わせたい事項をあらかじめ協調促進器に通知する ( s ub - s c r i b e ) . 協調促進器がそれ対する答えを得ると s u b s c r i b eのメ ッセー ジを送ったもと のエージェントに対して通知する.その他にもエージェントが自分の能力をあらかじ め協調促進器に i 通知する ( a d v e r t i s e )ことにより,エージェント聞の仲介をすることが できる.この他にも. b r o k e r.recommendなどの遂行諾が定義されている(図 2 . 6 ) . COOL KQMLにおける遂行語を定義しただけではエージェントの意図を表現することは できるものの協調プロトコルの記述としては必ずしも十分でない.そこで, KQML ベースのメ ッセージに基づいて協調プロトコルを記述するための 言語 COOLが提案 1 J . COOLでは状態遷移機械に基づいた会話ルール ( c o n v e r s a t i o nr u l e ) されている [ でプロトコルを記述するのが特徴になっている. また,到着したメッセージが現在の状態における会話ルールで処理できない場合に レールによっ 対応するためにエラー回復ルールを定義することができる.エラー回復 l て単にメァセージを無視するとか,メッセージについて問い合わせを発するような新 たな会話を起動するなどのエラー処理方法を記述することが可能となる.さらに,稜 図2 . 6 協調促進器の例 [ 1 3 J 2 2 第 2章 マ J レチエージェントシステムにおける協調メカニズムの研究状況 c o n t i n u a t i o nr u Je )を定義でき 数の会話を切替えながら進行できるように継続 jレール ( 2 . 5 . まとめ 2 3 2 . 5 まとめ るようになっている. 本論文の研究の位置付けを以下にまとめる. -協調問題解決においてはエージェント聞でどのような情報を交換すべきが大き CooL な課題となっている.本論文では契約ネットプロトコルの拡張として考えるこ E S PR1Tの IMAGINEプロジェクト [ 1 4 ]において提案されたマルチエージェント L [ 5 7 ]から発展した OooLと呼ばれる 7 )レチスレッドの手続き システム記述言語 MAI2 型言語が提案されている [ 2 5 ] . OooLでは協調メソッド ( c o o p e r a t i o nmethod)とし て協調プロトコルが記述され,協調メソッドは領域独立なマルチエージェントプラン (手続き)として表現される.具体的にはエージエント聞のメ ッセージの交換と個々の エージェントによって実行される手続きから構成される マルチエージエントプラン における個々の手続きにはどのエージェントが実行するかが記述されることになる. したがって . OOOLが一つのエージェント内の状態遷移を表現しているのに対し, OooLでは複数のエージェントの動作を一つにまとめて書くのが特徴になっている. とのできるマルチステージネコ・シエーションを取り上げ,そこで対象としてい る問題の定式化を行ない,問題の構造に応じてエージェント聞で交換すべき情 報を規定する.生の情報すべてを他のエージェントに送るのではなく,いかに 情報を紬象化して送るかが問題となる.マルチステージネゴシエーションでは 複数のグローパルなゴールが存在するときに大域的な制約を満足させる割当を 求めるのが特徴であるが,グローパルゴールを考慮に入れて定式化した探索空 間に基づいてエージェントが交換すべき情報を規定することにより,グローパ ルゴール問の競合が正しく認識できるようにする.さらにここでは,分散探索 という観点から定量的な評価も合わせて行なう. -続いて,市場モデルを分散資源、割当に応用し,資源割当を資源の充実として実 このような協調プロトコル記述言語を使うことによりマルチエージェントシステム 現する.マルチステージネゴシエーションでは資源の割当を行なうか行なわな の構築が容易になるものの,前述の言語では協調プロトコルを段階的に定義すること いかのいわばゼローの問題を扱っているが,これを割り当てる資源の量を扱え を言語機能としてサポートしていない るようにする.さらにはエージェントに効用関数を導入し,エージェントは自 マルチエージェントの考え方を使って,種々 多様なアプリケーションを実現しようとするとそれぞれの応用領域に適した協調プロ トコルが必要になろう.特にユーザの代わりとなって働くエージェントの実現では, 分の効用を上げるように振舞う これらは市場モデルを導入することにより, 自然に実現できる.売り手と買い手というエージェントの種類を考え,エー ユーザ自らプロトコルを記述することも考えられる.このためには,プロトコルをー ジェント問でやりとりされる情報は資源の価格通知と割当要求に限定する.従 から記述していくのではなく,既存のプロトコルをベースにして段階的にプロトコル 来の研究では価格の決定に際し競売機構の存在を仮定しているが,ここでは売 を定義することにより,応用に適したプロトコルを容易に実現できることが望まれ り手のエージェントが競売機構の存在無しに独自に価格を設定するようなメカ る ニズム(“均衡的アプローチつを提案し,その振舞いを調べる. そこで,本研究ではプロトコル記述にオフ'ジェクト指向言語に見られるような継 承機能を導入し,段階的なプロトコル定義を可能にした協調プロトコル記述言諸 AgenTalkを提案する [ 3 1,32,3 3,3 4,3 7 ] . 段階的なプロトコル定義機能により,あ らかじめ設計したプロトコル群をライプラリーとして保存しておき,新たなプロトコ ルを記述する時は既存のプロトコルとの差分だけを定義すればよいという特徴がうま れる. 量一 一一竺 - さらに,このようなエージェント聞の協調メカニズムを実際に実装するために はエージェント問のプロトコルを記述するための言語が望まれる.そこで,シ ステムの構築を念頭においた協調プロトコル記述言語 AgenTalkを提案する . AgenTalkでは従来のこの稜の言語に見られなかったプロトコルの段階的定義機 構を導入することを目的とする. 一一一一一て で一一一一一一一一一一週 圏 24 第 2章マルチエージェントシステムにおける協調メカニズムの研究状況 第 3章 マルチステージネゴシエ-ションにおけるゴール 間競合の検出 3 . 1 はじめに 本章では分散ネットワークにおいて複数のエージェントが資源の割当を協調して行 なうマルチステージネゴシエーションにおいて,グローパルなゴール聞の競合を検出 する手法を提案する. マルチステージネゴシエーションの概念的な提案は C onryらによってなされている 同.第 1章で述べたようにマルチステージネゴシエーションは,通信網において通信 路が故障した場合の代替パスの探索を例題として取り上げている .そこでは,通信網 は複数の地域に分割され,各々のエージェントが担当地域内の通信路の割当に責任を 持つ .通信路が資源、割当における資源に対応、する. ここでは,どのエージェントも通信網全体の情報を持たず,各エージェントは他の エージェントに対して自分の局所的な選択(通信路の割当)の是非を問い合わせ,その 問い合わせに対して各エージェントは自分のところにおける影響を返答として返す. 文献 [ 7 Jでは,このようなメッセージの交換を通してエージェントがお互いに満足す る資源(通信路)の割当に到達するという枠組が示されている.そこでは単に枠組が提 案されただけで,その前提となる条件,対象としている問題が明確には定義されては いなかった.また,交渉の過程で実際にどのような形式で情報を交換をすべきかも十 分には明らかになっていなかった. さらに,エージェントの局所的な資源割当の選択がグローバルにどのような影響を 25 -a 園 L 一一一一三二二一一て 二一 ー ー ー 一 一 2 6 第 3章マルチステージネゴシエーションにおけるゴール間競合の検出 3 . 2 . マルチステージネゴシエーションの定式化 2 7 与えるか評価する手法が提案されている同.そこではエージェント内における局所的 点、¥公三 E x c l u s i o nS e t )という形で表 な選択とグローパルなゴールとの競合関係を排除集合 ( し,それをエージェント簡で交換することによってゴール間の競合の検出を試みてい る. しかし,そこで提案された手法では一つのゴールを満足するのにグローバルにみ Global Plans て複数の方法(後述するグローパルプランに相当)がありうることを考慮に入れてい ないため,ゴール問の競合関係が正しく認識できない場合があった 本章ではまず,文献 [ 3 5 ] . [ 7 ]で提案されているマルチステージネゴシエーションの概念 を基にして,その扱っている問題の定式化を与え,マルチステージネゴシエーション がどういう条件の下で何を解こうとしているかを明確にする.次にその定式化に基づ いてどのような情報をエ ージェントが交換すべきかを明らかにする g p , . そして,交換さ n た¥ Sub Goals 、 Pl an t s Fragnen れた情報を用いてどのようにゴール聞の競合を検出するかを述べる 図3 . 1 :マルチステージネゴシエーションにおける探索空間 3. 2 マルチステージネコシエーションの定式化 3. 2. 1 探索空間 ここで g i,g P i, j,S g i, j, k,p J i, j, k, 1はそれぞれが満足される,または選択される時に真, マルチステージネゴシエーションにおいては図 3 . 1に示すようにグローパルなゴー ルがいくつか存在する .グローパルゴールはいわば全体として解くべき目標である. iはグロ ーパルプラン g P i, jの集合を持つ グローパルゴール g グローパルプランとはグ そうでない時に偽の値をとるものとする. 3 .2 . 2 エージ工 ン 卜の持つ情報 ローパルゴールを満足するためのエージェントにまたがる仮想的なプランである.グ 各エージェントは自分のところのサブゴールとそれを満たすプランフラグメントの ローパルプランはエージェントが局所的に解けるいくつかのサブゴールに分解され 集合,また,そのサブゴールのグローパルゴールは知っているものの,そのサブゴー g i d l P i, jに対する k番目のサブゴールとする る.ここで s kをグローパルプラン g それぞ ルがどのグローパルプランに属するかは知らないという状況を考える.これはエー れのサブゴールはある唯一のエージェントに属している .一つのサブゴールがいくつ ジェントの集合全体としてのゴールが定まっていて,各エージェントがそのゴールに かのグローパルプランに同時に属する場合もある.エージェントはそのサブゴールを 対してどのようなことをするべきかがわかっているが, しかし,エージェントの聞の 満足するためのいくつかの方法,すなわちプランフラグメント P , ; Jj, k, 1を持つ.プラン 連係をどのように取って全体としてうまくゴールを満足できるかがわかっていないと フラグメントはある唯一のサブゴールに属するものとする . いう場合と考えることができる. このためエージェントは自分のサブゴールがどのグローバルプランに属するかを求 これらの関係を論理表現を用いて次のように表現することができる . める必要がでてくる 仇 特 Vg P i, j 3 g P i, j 特 S g i, j, k 特 八 s g ., j, k k Vp j ; 品 t すなわち, ( 3 .1) - エージェントはそのサブゴールとそれを満足するためのプランフラグメントの ( 3 . 2 ) ( 3 . 3 ) 集合,さらにそのサブゴールが属するグローパルゴールを知っている. -エージェントはサブゴールがどのグローパルプランに属するかは知らない こ 圃」 一 一 一 一一一 一 一 一 一て= 一 一 一 一 一 一 一 一 一-a 2 8 第 3章 7) レチステージネゴシエーションにおけるゴール間競合の検出 のためサプゴールがどのグローパルプランに属するかを求める必要地fある. 3 . 2 . マルチステージネゴシエーションの定式化 2 9 ( p 門 m aryg o a l-p g oα 1 )として扱い,その解の探索の責任を持つ.また,起動エー iのすべてのグローパルプランに関してそれに属するサブゴールが一つ以 ジェントは g 3 . 2 . 3 資源割当における制約 上含まれているという仮定をおく.したがって .g .を満足するためには起動エージェ ここではプランフラグメントの実行において一定の資源を確保する必要があるとす ントにおいてなんらかのサブゴールが満足されなければならないことになる. る.資源の割当に関し,エージェント内に閉じた資源使用の制約(エージェント内制 約) .エージェントにまたがった資源使用の制約(エージヱント間制約)の二種類の 制約を考える. 3 . 2 . 5 問題設定の変更 ここでは問題解決の途中においては問題の設定条件が変化しないという仮定をお -エージェン卜内制約:プランフラグメ ン トを実行するには 一定の資源を確保す る必要があり,資源の量には限りがあることから同時に選択できるプランフラ グメントの組には制限がでてくる , 除されたりすることはないとしている. 具体的にはプランフラグメントの集合 PF 3 . 2 . 6 例題 が同時に選択できるためには 乞 く すなわち,途中でエージェントが追加削除されたり.グローパルゴールが追加削 ne e d s( p f ;, T j )壬c o p 悶(r;) ( f o ra l lj ) ( 3. 4 ) p !EPF が成立する必要がある.ここで n eeds( p , ; J Tj)は P f iの実行に必要な資源りの マルチステージネゴシエーションを通信ネットワークに応用した例を示す.この応 用ではグローパルゴールはある地点からある地点への通信路を設定することに相当す る.エージェントにはそれぞれある地域が割り当てられ,その地域内の通信路の設定 ∞' p i e s ( T j )は資源 T jのエ ージェ ントにおいて使用可能な数を表す . に責任を持つ.資源はエージェント地域内の中継点 ( S t a t i o n )または地域聞の境界点 (簡明に記述するためプランフラグメント,サブゴールの表記を単に添字をつけ の問を結ぶ通信路のパスに対応する.また,サブゴールは各エージェント内における たものにしている.以下同様) 地域開の境界点から他の境界点(または,最終目的の通信路の始点ないしは終点)の 数,また, - エージェント間制約:複数のエージェントに関係する資源使用の市Ij約であり, 問を結ぶ通信路の設定に相当する.さらに最終目的となる始点と終点聞を結ぶグロー 例えぱエージェント Aで資源問が使用される時 .B では資源ゆが使用きれなけれ パルな通信路がグローパルプランに相当する ばいけないというようなものである,ここで自エージェントとエージェント開 れたものになる. 制約があるようなエージェントを=関連するエージェント'と呼ぶ.エージェン トはすべての自分と関連するエーシーェントを知っているものとする . これはいくつかのサブゴールが接続さ ここでのエージェント内制約とは各通信路の容量の制約に基づく制約である.通信 路という性格から地域間の境界点に逮する通信路はその境界点の両側でそれぞれ通 信路が割り当てられる必婆がある.これがエージェント聞における資源.の割当の制約 マルチステージヰゴシエーションで扱っている問題はこのような資源の割当に制約 があり,全体として満足するべきグローパルゴールが複数存在する時に,グローパル ゴールを達成するための資源の割当を決めることであるといえる. 3 . 2. 4 起劃エージェント で,エージェント間制約になる. 図3 . 2にg l,g 2,g 3の三つのグロ ーパルゴールがある通信ネ ッ トワークの例 [ 2 6 ]を 示す.ここでは八つのエージェント A,B,C,D,E,F,G,Hがある.それぞれの l, g 2, g 3の起動エージエント エージェントは各々の地域の通信路の設定を行なう .g はそれぞれA,B,Cである.ここでg 1とはエージェント Aから Fに到達する通信路を iは,その g iの解の探索を開始するエージェント(これを起動 グローパルゴール g エージェントと呼ぶ)を一つ持っているとする.起動エージェントは g iを主要ゴール 2はエージエント Bから Gに到達する通信路を求めるもので, 求めるもので,また .g また • g 3はエージェント Cから Hに到達する通信路を求めるものである. 第 3章マルチステージネコヘンエーションにおけるゴール間競合の検出 30 3 . 3 . 談合関係の表現 3 1 表 3 . 1 :例におけるグローパルプラン I Glob 凶 G oal 。 A g e n t - gl g1 gpll g2 gp21 1 b-2d-19 gp22 2b-1 e-2g I g3 Goal コ Station ζ 1a-1d-1f gp31 gp32 R e s o u r c e ( j _ l o b a l Gl 伽 1P lanI Su 句 o山 2 c-3d-2 九 r51cとr51d, r12dとTl2f, r22dとr22g, r52dとr52h, r 3 2 eとr32g, r 4 2 eとr42hの資源 の組はそれぞれ同時に使用しなければならない.これは,エージェント問の境界につ ながる通信路については,境界点で通信路が切れてしまわないようにその境界の先 のエージェントにおいても資源(通信路)が割り当てられる必要があることに対応す 図3 . 2 :通信ネットワークの例 グローパルプランとそれを構成するサブゴールを表 3 . 1 1こ示す る. この例の場合 ,g1に 3.3 競合関係の表現 対して一つ ,g2,g3に対してそれぞれ二つのグローパルプランがある.それぞれの . 2に示すような資源,サプゴールおよびそのプランフラグメント エージェントは表 3 前節においてマルチステージネゴシエーションが扱っている問題を定義した.交渉 を持っている.表には各プランフラグメントが必要とする資源の数もあわせて示し を進めていく上でグローパルゴール,グローパルプラン,サブゴール聞の競合関係を である 各エージェントが認識することが必要である この例では一つのサブゴールに対し 一つのプランフラグメントが存在してい る. 本節では競合関係の表現形式を述べ, さらに次節でどのように競合関係を計算するかを述べる. また,この例では次のようなエージェント内制約がある. ・ エージェント D プランフラグメント p1dとp2dはともに資源 r d 1を使用するため 同時には選択できない 3 d ' まともに資源rd2を また,プランフラグメント p1dとp 使用するため同時には選択できない. - エージェント E プランフラグメント p1eとp2eはともに資源問 lを使用するため 同時には選択できない ここでのエージェント開制約は同時に使用しなければならない資源の組があると l l d, r21bとr21d,r31bとr31e,1 . 4 1 cとr41e, いうことである.この例では rllaとr 3 . 3. 1 無効ゴール集合 u グローパルゴールが複数存在する時,問題の帝 約が強過ぎであるグローパルゴール を満足させると他のグローパルゴールを満足させられないという場合が出てくる. NogoodGoal このようなグローパルゴール聞の関係を示したものが無効ゴール集合 ( S e t )である .g iをグローパルゴールg iが満足された時に真,そうでない時に偽の論理 値を持つとして,無効ゴール集合を論理表現を用いて次のように表現する . V 八 ~gi ( 3 . 5 ) 量 一一一一一_ - 一一一一工ご一一一一一一一一ー-4置 3 2 第 3主主マルチステージネゴシエーションにおけるゴール間競合の検出 3 . 3 . 競合関係の表現 3 3 例えば ^ ' g ]v( . g 2 ' 9 3 ) 表3 . 2 :例における各エージェントの資源,サブゴール,プランフラグメント AgentA Re 坦o u r c e G o a l S u b g o a l p f l R e s o u r ceCount pla l 1 α AgentB gl g2 1 1 b p1b 1 2 b p2b AgentC g3 R e s o u r c e r22g 1 ' 3 2 g g2 l R e s o u r c e R e s o u r c eCoun も l c p1c 2 c p2c 1 る.もし,同時にすべてのグローパルゴールが満足できるのであれば無効ゴール集合 は空となる . A g e n tG R e s o u rc eCount 1 l ジェントの問に分散して存在するのでエージェントの間で情報を交換する必要があ p2g る. R e s o u r c e R e s o u r c eCount lh 2 九 AgentD 1 1 g l l d pld 1 g2 2d p2d g3 3d p3d 1 1 1 プランとの相互関係を求め,それを交換しあうことで無効ゴール集合を求めることが p2h 1 1 1 l g2 l e ple l g3 2 e p2e 1 1 1 ( 3 . 7 ) Hi 1 ジェントは無効ゴール集合を計算する. 3 . 3 . 3 排除集合 Goal S u b g o a l p f r31e r41e r e l 1 ' 32e r42e 1 ( V八-.gpi,k ) l R e s o u rc e 1 . g iV l l l R e s o u r c eCou 且t る ゴール排除集合は起動エージェントの問で交換され,この情報をもとに起動エー 1 AgentE iと競合関係にあるグローパルプランg P i, k ( j手 i ) ここでグローパルゴール g をゴール排除集合 ( G o a lE x c l u s i o nS e t )と呼ぶ.この競合関係の意味は次のようにな l 1 起動エージェントは自分の主要ゴールに関して他のグローバルゴールのグローノ{ レ ) できる Re s ou r c e l 3 . 3 . 2 ゴール排除集合 plh 1 G o a l S u b g o a l p f ァ11d r21d r51d rdl rd2 r12d r22d r52d R e s o u r c eCount の関係を調べる必要がある.また,このようなグローパルプランに関する情報はエー 2g r42h r52h g3 したがって,無効ゴール集合を求めるためにはグローパルプランのレベルで p1g 1 A g e n tH 1 グローパルゴールを満足させるにはそのグローパルプランのうち一つを満足させれ ばいい 1 9 G o a l S u b g o a l p f l はg lをあきらめるかまたはのおよびg 3を同時にあきらめる必要があることを示す.最 終的には無効ゴー J レ集合が求められればグローパルゴール聞の関係がわかり,例えば 制約が強過ぎるような場合でもどのグローパルゴールをあきらめればよいかがわか l G o a l S u b g o a l p f 1 G o a l S u b g o a l p f r41c r51c r12f p1] l 1] R田 o u r c e G o a l S u b g o a l p f r21b r31b R e s o u r c eCou 且t R e s o u r c e G o a l Subg o a l p f rlla R e s o u r c eCount gl AgentF ( 3 . 6 ) 1 1 グローパルゴールのゴール排除集合はそのグローパルゴールに含まれるサブゴール E x c l u s i o nS e t )から計算される の排除集会 ( このサブゴールS g i , j ,kの排除集合とはそ のサブゴールと競合関係にあるグローパルプランの集合である.この競合関係の意味 l 1 は次のようになる. ' S g i J , kV ( V八-.gPI,m) t “ ヲ ( 3 . 8 ) 第 3章マルチステージネゴシエーシヨンにおけるゴール閉鎖合の検出 3 4 排除集合はサブゴールに対してそれと競合関係にあるグローパルプランを表したも 3.4.無効ゴー J レ集合の計算 また 3 5 , SGAをエージェント Aのサブゴールの集合とする.サブゴールs gのグロー のであり,その競合は自分のエージェントの中で発生するものと他のエージェントに o αl ( s g , )で表す.さらにサブゴール s g , のプランフラグメントの集合を パルゴールを g おける競合によって起こるものとがある P ( s g ; )とする . それを区別して表す時は排除集合をさらに 細かく次のように分類する.まず自分の中に閉じた競合だけに基づく排除集合をロー カル排除集合 ( L o c a JEx c Ju s i o nS e t )と呼ぶ.これに対して他のエージェン卜におけ ここで SG Aの部分集合で,その要素のサブゴールのグローパルゴールがすぺて相 異なる集合 SSG kを考える .すなわち, る競合が直接の原因になるものも含めて考える時は導出排除集合(In ducedE x c l u s i o n a l( SSGk={sg ‘ 1 90 S 9 , )ヂ90al ( S 9 j )f o ra l li , j } S e t )と呼ぶ ( 3 .1 0 ) ここで k はこのような集合が一つのエージェントに複数存在することを示すために 3 . 4 無効ゴール集合の計算 つけた添字である . SSG kが互換性があるとは SSG kのサブゴールのすべてを満た すような互換性があるプランフラグメントの集合かτ 存在することと定義する.すなわ 前節で定義した無効ゴール集合を求める手法を以下説明する .マルチステージネゴ ち , シエーションにおいて各エージェントはどのサブゴールを選択したかを関連するエー ジェントに送信する.ここでどのサブゴールを選択したか通信する際にその選択した SSGkが互換性がある骨 ヨ P , [ P , が互換性がある八 V S 9 iESSGk[ ( P ( S 9 i )nP , )宇佐世 I サブゴールのグローパルプランに関する情報(後述する選択リスト)を付け加える. ( 3 . 1 1 ) エージェントはその情報を基に自分のサブゴールのローカル排除集合を計算する.さ らに,自エージエントのサブゴールのローカル排除集合から相手のエージェントの選 論理表現を用いると SSG k 択したサプゴールの排除集合の情報を計算し,それを相手のエージェントに通知す うに表せる. { S 9 1, S 9 2, . . ,S 9 n . }が互換性がないということは次のよ , (八 S 9 , ) . g ‘ εS S G . る , ( 3 .1 2 ) ここで ,サブゴール S 9を含み,かつ,互換性がないすべての SSGkの集合 SS. 釦を 3 . 4. 1 競合集合 考える .すなわち, サプゴールのロ ー カル排除集合を求めるために ,そのサブゴールとは同時には選 C o n f l i c tS e t )と呼ぶ)を考える 択できないサブゴールの集合(これを競合集合 ( ず,その準備としてプランフラグメントの集合九 ま ={ p f i }は以下の条件が成り立っ SS 相 ={SSGkI s 9 , ESSGk八SSGk古さ互換性がない} この集合の意味は とき , “互換性がある ( c o m p a t i b l e ) "と定義する 1 八 S S G k E S S91 , (八 S 9 j ) s g JεS S G . / f 2 ε : = 附nεeι ゐ d 吻 S s ( 3 . 9 ) p f i 正 εP. , ここで n eeds( p j ; , Tj)はプランフラグメント pjの実行に必要な資源 Tjの数 ( 3 .1 4 ) , である . SSG S s g ;はS 9を含んでいるのでこの式は次のように変形できる. kεS , , -s 9V( c 明白(r;) v ,-(s釣)) 八 SSG . ε 55. 9 • はこのエージェントによって使用可能な資源 η の数を表す. l文献 [ 8 Jではサブゴールの考え方がないため,こことは巡った意味で“互換性がある ( c o m p a t i bl e ) " という言葉を用いている ( 3 .1 3 ) S9i の競合集合 , s g jεS S G ., j 肖 v ( 3 .1 5 ) CS. ( 八 , (S釘))をサブゴールの否定の選言標 g; ま S S G . E S S .例 3 g }εS S G ., j ヲ 訂 準形に変換した形で表現する . 3 6 第 3章マルチステージネゴシエーションにおけるゴール間競合の検出 3 . 4 . 無効ゴール集合の計算 3 . 4 . 2 グローパルプランの表現 3 7 一方,起動エージェント以外のエージェントにおける選択を表す l o c a l i dは次のよ 競合集会からローカル排除集合を計算するためにはサプゴールがどのグローパルプ うな形式で表される. ランに属しているかを記述できるようにする必要がある .ここ ではサブゴールの性 (叩t r y i di n d e xt o t a ι number) 質として選択リストというものを導入し,グローパルゴールと選択リストの組でサブ ( 3 . 1 9 ) ゴールの属するグローパルプラン(場合によっては複数の場合もある)を表現する. ここで e n t r y i dはエージェントの内部テープルのエントリを示す I Dである.この内 サブゴール s g ;の選択リストを c 1( s g ; )と表し t S g iの属するグローパルプランを次のよ 部テープルとは他のエージェントから送られてくる選択の確認のメッセージに対し うに番<. て,自エージェント内で選択するサブゴールの候補を得るのに用いられるものであ くg o a l ( s g i ), c l ( s g ; ) > ( 3 . 1 6 ) る このメッセージには選択されたサブゴールとサブゴールを選択した時に割り当 てられた資源のうちエージェント開制約に関係する資源が含まれている.内部テー この記述をここではゴール記述と呼ぶ. エージエントはどのようなグロ」パルプランがあるかはあらかじめ知らず,選択リ プルの各エントリはグローパルゴール(メッセージ中のサブゴールから求められる) ストを交渉の過程で段階的に作成することによってどのようなグローパルプランがあ とエージェント間制約の資源をキーとしてそれに対する自エージエント内で選択可能 るかを認識できるようになる. なサブゴールのリストを与える . i n d e xはサブゴールのリストの中で選択されたサブ ゴールが何番目のものかを示す.また , t o t a l n 匂m berはその候補のリストの要素の数 選択リストの情成要素 o c a l i dそのものが省略される を示す.ただし,候補が一つしかない場合は l 選択リストは各エージェントにおけるいくつかあるサブゴールのうちどのサブゴー o c a l i dの選言標準形で表される . l o c a l ルを選択したかを表したもので,具体的には l i dとはそれぞれのエ ージェントでどのサプゴールを選んだかという選択を表すもので ある.ここでは起動エージェントにおける選択と起動エージェントでないエージェン トにおける選択とを区別して考える. 選択リストの生成 o a l )を調べ,どのサブゴールを まず,起動エージエントは自分の主要ゴール(p-g 用いるかを決め,それを関連するエージェントに送信する.この時の選択を表した l o c a l i dがそのまま選択されたサブゴールの選択リストとなる. 起動エージェントにおける選択を表す l o c a l i dは次のような形式で表される. 起動エージェント以外のエージェントにおいては他のエージェントからその仮の選 ( αg .e n ti n d e xt o t a l n u m b e r ) ( 3 . 1 7 ) ここで a g e n tは起動エー ジェント , i n d e x( 1三 i n d e x三 t o t a l n u m b e r )はその選択が o t αl n u m be rは選択 全部で何通りかある選択枝のうち何番 目のものかを表し,そして t o t a l n u m b e rが含まれているのはどのエージェントにおいても 肢の全体の数を表す . t すべての選択肢と競合しているかを容易に識別できるようにするためである.もし, 択の確認のメッセージを受け取った時はまず,その内部テープルを参照して自分の中 のどのサプゴールを選択するか決める.この時メッセージに含まれているサブゴール をs g o, 自エージェント内での選択を表す 1 0 ωl i dを l i d h,自エージェント内で選択さ g hとする.この時,s g hの選択リスト c 1( S g h )は次のように更新さ れたサブゴールを S れる. c l ( S g h )= c l ( S g h )V( c l ( s g o )八 l 叫 , ) n d e xと t o t a l n u m b e rは省略され,単に エージェントの選択肢が一つしかない場合は i ( αg e n t ) ( 3 . 1 8 ) ( 3 . 2 0 ) ここで自エージェント内での候補が一つしかく l o c a l i dが省略された時は l i dhは真と して計算する.また,サブゴールの選択リストの初期値は偽の値を持つものとして計 と書かれる 事草する. 38 第 3主主マルチステージネゴシエーションにおけるゴール間競合の検出 3 . 4 . 無効ゴール集合の計算 c h oi c el i st )は次のようになる 形式的には選択リスト ( c h o 悶 l i s t= v 八local-id 。 ( 3 . 2 1 ) l o c a l i d= ( a g e n t[ i 叫 e xt o t a l number]) または (e n t r y i d[ i n d e xt o t a l n u m b e r ] ) 39 ( 3 . 2 2 ) g l A B A g e n t となる.ここで[. ]は省略される場合があることを表す ー- 2 k . . C Re s o u r c e 0・・-0呈且担E虫 量L 選択リストの簡単化ルール 選択リストは l o c a l i dの選言標準形で表現され,さらに同じ選択に関してすべての インデックスが集められた時,それらは次の簡単化ルールにしたがってまとめられ g l G l o b o l G o a l 〈コ S t a t i o n 。 る. v ( { a ge n tIe n t r y i d }i n d e xt o t al -numb e r) 図3 . 3 :送信ネットワークの別例 i n d e x = : l, .,.t o 曲 l 一 間 前b e r キ(α {g e n tIe n t r y i d} ) ただし,ここで{a g e n t ( 3 . 2 3 ) Ie n t r y i d }は a g e n tか e n t r y i dのどちらかであることを示 図3 . 3のような通信路の一部では選択リストは次のようになる.起動エージェン トAにサブゴール l aと2 aがある.この時, α 2の選択リストは c l ( 2 a ) = (A22 ) l o c a l i dは t o t a l n u m b e rを含んでいるのでこの簡単化はどのエージェントにおい す ても行なうことができる. ここで選択リストを選言標準形に変換した時そのすべての連言要素が ' ( a g e n t )• の ( 3 . 2 5 ) となる.エージェント Bにはそのサブゴールと同じグローパルプラン(この場合二つ bと2 b がある.これらのサブゴールの選択リストは ある)に属するサブゴール 1 形式の表現を含む時,その選択リストを t主要ゴールを含む z と呼ぶ.これは起動エー ジェントにおけるすべての選択を含むことを意味する .問題設定の仮定から起動エー c l ( l b ) = ( A22)八(B112) ( 3 . 2 6 ) ジェントにはすべてのグローパルゴールに関してそれに属するサプゴールが一つ以上 c l ( 2 b )= ( A22 )八( B 122 ) ( 3 . 2 7 ) 含まれているので,起動エージェントにおけるすべての選択とはすべてのグローパル となる.ただし, プランの選択を意味している ことになる .言い変えれば Blはエー ジヱン トBにおいて 2 aと接続する場合の e n t r y i dであ る.さらにエージェント Cにはエージェント Bのサプゴール 1 b, 2 bとそれぞれ同じグ V( ( a g e n t )[ ハ(八 l o c a l i d )] ) 主要ゴールを含む 3選択リスト ( c h o i c el i s t )= t ( 3 . 2 4 ) のように表せる . 選択リストの計算例 ローパルプランに属するサブゴール l c,2 c がある.ここではエージエント Cにおい て Bでサブゴールが決定してしまえば選択の余地が残されていないので選択リストは 変化しない.すなわち, c l ( l c )=c l (l b ) ( 3 . 2 8 ) c l ( 2 c )= c l ( 2 b ) ( 3 . 2 9 ) 4 0 第 3主主マルチステージネゴシエーションにおけるゴール間競合の検出 c が選択されたとするとエージェン となる.ここでまずエージェント Cでサブゴール 1 3 . 4 無効ゴール集合の計算 4 1 ゴール記述で置き換えたものである .すなわち , CS ,= V 八 ~sのである時, S 9 dが選択され,1 dの選択リストは トDではサブゴール 1 LES S 9 i= c l (l d ) = c l (l b ) v , ( 3. 3 5 ) 八 「く g o a l ( s g j )c l ( 5 g j ) > ( 3 . 3 0 ) となる . となる.さらにエージェント Cで新たにサブゴール2 c が選択されたとするとサブゴー dの選択リストは ル1 c l (l d ) 3.4. 4 導出排除集合 =c l (l b )vc l ( 2 b ) ( 3 . 3 1 ) = ((A22)^(B112))V((A22 )ハ ( B l22 ) ) ( 3 . 3 2 ) g ;に対する導出排除集合 J ES g ;を選択した時の局所的かつ非局所 サブゴール s S 9 iは5 的な影響を表しているものと考えることができる 導出排除集合は最初はローカル排 除集合と同じ値に設定され,他のエージェントから情報を受け取るにしたがい変化し となり, ( 3 . 2 3 )の簡単化ルールを適用すると c l (l d ) = (A22 )八( B l ) ていく.この時,どのような排除集合の情報を他のエ ージェントに送ればよいか,そ ( 3 . 3 3 ) して ,他のエージェントから送られてきた排除集合の情報をどのように結合すればよ いかが問題となる . となる.ここで l dは二つのグローパルプランに属しており,この例からもわかるよう に選択リストはそのような場合に対しでもコンパクトな表現形式を与える. 送信する排除集合の情報の計算 エージェント Xのサブゴール s g . ,に対して,エージェント Aでは 5 g と同じグロ ーパ 3. 4. 3 排除集合の結合 " , g l, ' ", s g nがあるとする.これは s g . ,が複数のグ ルプランに属する π個のサブゴール S 前節で述べたようにサブゴールの属するグローパルプランはゴール記述を用いて表 現される .排除集合はサプゴールと競合関係にあるグローパルプランを表したもので あり,具体的にはゴール記述の否定の選言標準形で表現する ローパルプランに属し,エージェント Aではそれらのグローパルプランが π偲のサ g . ,の導出排除集合を言十算するために ブゴールに分かれている場合に相当する .Xが s g l,. . . , s g nの導出排除集合を結合し ,Xに通信する必要がある. はAはS このとき排除集合において同じグローバルゴールに関してはゴール記述は次のよう エージェント Aでは次の式が成り立つ. な7 ージルールにした治安ってまとめる. V 八 ~<g;, c l ( s g j ) >キ 「 く 9 i, 八Vc l ( s g j )> ~S gi VJ ES 1三t三η ) S 9 o( ( 3 . 3 4 ) ここでゴール記述の選択リストが‘主要ゴールを含む'であれば,そのゴール記述も同 主要ゴールを含む ' で あればそ 様に t主要ゴールを含む'と言う . もし,ゴール記述が ‘ れはグローパルゴールと意味的には等価である もし ,S 9 , r :が最終的な解として選択されるならばS g iのどれかが選択されることにな g ;のどれかが最終解で選択されるならば,s g . ,も選択されることにな る 逆にもし s る したがって,次の式が成り立つ. s g . ,特 Vs g i ローカル排除集会 ローカル排除集合はエージェント内に閉じた競合を表したものである.サブゴー ルS g iのローカル排除集合 LES g ;の競合集合 CS に現れるサブゴールをその s g iはs s g, ( 3 . 36) ( 3 . 3 7 ) ( 3 . 3 7 )から ~sg. v( Vsg;) ( 3 . 3 8 ) 42 第 3章マルチステージネゴシエ ー ションにおけるゴール間競合の検出 3 . 4. 無効ゴール集合の計算 4 3 が導ける.したがって S9α の導出排除集合 I ES. g • は次のようになる ( 3 . 3 6 )と ( 3 . 3 8)から次の式が導ける. ' 8 9 zV ( V1ES ) sg. ( 3 . 3 9 ) したがって,エージェ ン トAは次の排除集合の情報 ES A をエージ ェ ント Xに送ればい v ' . ESA=VI ES 叩 ( 3. 40 ) I ESsg• =(八 ESx.) 八 LESsg• ( 3 . 4 7 ) 3. 4. 5 ゴール排除集合 ここでグローパルゴール9 jがその起動エージエントに π個のサブゴール S 9 1 ' S9nを持っているとする.これらの関係は次のように表現できる. これはエージェント Xからみると Aに仮想的な一つのサブゴール S 9 Aが存在し , S 9 A骨 S9z ( 3 . 4 1 ) ' S 9 AVES A ( 3. 42 ) 9 i=今 VS9; ここで I ES , をS 9 jの導出排除集合とする.すなわち, sg の関係にあると考えることができる. ' S 9 ;V 1ES sg ( 3 . 4 9 ) ( VS9;) ( 3 . 5 0 ) ( VIES叫) ( 3 . 5 1 ) ・ 受け取 った排除集会の情報の合成 ( 3. 4 8 ) ( 3. 48)から. ' 9 ;V エージェント AにおいてサブゴールS 9 .の導出排除集合を計算するのにエー ジェン トXベ 1: : ;i: : ;n )とエージェント間制約があり,これらエージェントから排除集合の をもらう必要があるとする .この時これらの情報をまとめ ,s 9 aの導出排除 情報 ES x, ( 3 . 4 9 )と ( 3 . 50)から, ' 9 jV 集合を更新する必要がある . はエージェント Xjの仮想的 それぞれのメッセ ー ジに含まれる排除集合の情報 ES x, したがって,グロ ーパルゴール9 jのゴール排除集合 GES は次のように計算される. g, なサブゴール S 9x , と次のような関係がある. V GE ら = IESsg, ' S 9 x .V ES x ‘ ( 3. 43 ) ここで S 9 .が選択された時,すべての iに対し S 9 x, も同時に選択される.逆にすべての zに対し S9x, が震終的に選択されるならばS 9 .も同時に選択されることになる GES はg ‘を満足させることが与える他のグローパルゴールのグ ロー パルプランへの g, 影響,すなわち 1 9 iとの競合関係にあるゴール記述を示しているといえる. した がっ て. 次の式が成り立つ. 3. 4 . 6 無効ゴール集合 S 9 .特八S9x , ( 3. 4 4 ) 起動エージェントはまず自分のグローパルゴールに関しゴール排除集合を計算し, ' S 9 .V ( 八89x, ) ( 3 . 4 5 ) エージェントの中で導出ゴール排除集合に追加されていく .この導出ゴール排除集合 ( 3. 44)より, ( 3. 43)と ( 3. 45)から, ( 3. 5 2 ) それを 他 の関連する起動エージェントに送る.送られてきたゴール排除集合は起動 ( ^ ' S 9 .V ESx;) とは起動エージエン トに一つできるもので,他の起動エージェントから送られるゴー ( 3岨) ル排除集合を蓄えるものである.ここでゴール排除集合を送る相手の起動エ ージェン トと はこ の導出ゴール排除集合の中に出てくるグローパルゴールを e主要ゴール'とし 44 第 3主主マルチステージネゴシエーションにおけるゴール間競合の検出 て持つ起動エージェントのことである.なお自エージェント内で求められたゴール排 除集合もそのエージェント内の導出ゴール排除集合に追加される 3. 4 無効ゴール集合の計算 45 3 . ここでグローパルゴール以外のものが残ったならば無効ゴール集合は空とす マに関して る.そうでなければ書き換えられた各連言 J 起動エージェント Aに対する導出ゴール排除集合 IGES A は次のように計算され F f =F ;( iヂ j ) 今 る. , IGES . g vGE ら))八(八 ( . g jvGE ら , ) ) A = (八 ( ぁε JGA . ( 3 . 5 3 ) ( 3 . 5 7 ) となる F {をすべて取り除く.これは無効ゴール集合に関して最小のもの,すな わち,満足されないグローパルゴールが最小になる場合を考えるためである 9 J ε PGA ここで IG A は起動エージェント Aの主要ゴールと直接,間接的に関係するグローパル ゴール,すなわち , IGES A に出現する自分の主要ゴール以外のすべてのグローパル ゴールの集合を示す.また PG A はエージェント Aの主要ゴールの集合を示す. 各起動エージェントは,この導出ゴール排除集合に次のような操作を施すことによ り無効ゴール集合を計算する. 3. 4. 7 例題 第 2節の通信路の例題における無効ゴール集合を計算してみる.この場合の各エー ジェントにおける選択リスト,排除集合は最終的には表 3 . 3のようになる.そして, 各起動エージェントにおけるゴール排除集合は表 3.4のようになる.このゴール排除 集合は他の起動エージェントに送られて,結局すべての起動エージェントの導出ゴー 1 導出ゴール排除集合を選言標準形 Fj VF2V. . .VF n ル排除集合 IGESは ( 3 . 5 4 ) IGES =( . g lv(-.<g2, (B12)>八 「 く g3, (C22 ) > ) ) 八( ' g 2v .く g l, (A)>V-.く g3, (C12)>) に直す.ただし, Fi=(八. g j )八 ( 八 GES ) g. ( 3 . 5 5 ) 八 ( ' g 3v. < g 2, (B22)>V -,く g 1, (A)>) ( 3 . 5 8 ) ( . g lV<g2, (B12 ) > ) である. 2 選言標準形中の各連言尽に次の操作を施す. ( a ) 同じグローパルゴールに関して ( 3 . 3 4 )のマージルールにしたがいまとめ 八 ( ' g lV く g3, (C22)>) 八 , (g2V-,く gl, (A)>V-.<g3, (C12 ) > ) 八 , (g3V-,く g2, (B22)>V-.く g l, (A)>) る となる.各起動エージェントはこれを次のように変形する. ( b ) 各選択リストに関して ( 3 . 2 3)の簡単化 J レールにしたがって簡単化する. 選言標準形に変換(ステップ 1) ( c ) ,主要 ゴールを含む'ゴール記述をグローパルゴールに置き換える. ( d ) もし,各連言 F i中に一つでもグローパルゴールが含まれれば F ;の中から グローパルゴールでないものを取り除く.これは一般に命題。 , b , cの問に IGES = , (gl八 ' g 2^ , -g 3 )V .. ^ V ( ' g l -.<g1, (A)>)V V(-,くg2, (B12)>八 「 く g3, (C22)> は次の式が成り立つことによる. ^-'<g2, (B22 ) > )V 八. g 2 ( a八 b )Vc司 αVc ( 3 . 5 6 ) (B12)>八 -.<g3, (C22)> V ( .<g2, ( 3 . 5 9 ) 第 3章マルチステージネゴシエーションにおけるゴール間競合の検出 46 3 . 5 . 議論 4 7 ^ . く9 3, (012)>^' 9 3 )V. . . 3 :例における選択リスト ( C h o i c eL i s t ),排除集合 (Ex c J u s i o nS e t ) 表 3 Agent G l o b a l Sub - C h o i c eL i s t L o c a l Goal A 91 g o a l ( A ) 1 α グローパルゴールに関してマージ(ステップ 2 a ) I n d u c e d c Ju s i o nS e t Ex 当 Exc Ju s i o nS e t C D 92 1 b (B1 2 ) 92 2 b ) (B22 93 1 c (012) 93 2 c (022) 91 1 d ( A ) , . < g3 , (012)> 「く9 2, (B22)> 「く 9 1, (A)> 2, (B12)^(B22)>八 「 く g 3, (022)>^' 9 2 )V. . V ( .くg V ( .く g 2, (B12)>^--.く g 3, (012)^(022)>^' 9 3 )V. . . ( 3 . 6 1 ) 「く 9 1(A)> 選択リストの簡単化(ステップ 2 b) キ ^ 2 V ( .く 9 , (B)>^--.く g 3, (022 )> . g 2 )V. . . ^. く9 3,(022)> 2 d ) (B12 ' < g1 , (A)> 93 3 d (022) 「く 9 1( A ) > 92 1 e (B22 ) 「く9 3,(012)> 93 2 e (012) 「く 9 2(B22)> F 91 1 f ( A ) G 92 1 9 ( B12) 92 2 9 (B22 ) 93 1 h (012) 93 2 九 (022) E H V ( .<g2, (B12)>八 . < g 3, (0)>^. g 3 )V. .. ( 3 . 6 2 ) グローパルプールへの置き換え(ステップ 2 c ) 宅 キ ( . g l^, -g 2^. g 3 )V. . .V' g lV. . . V ( . g 2^--.く 93, (022)>)V... , V ( .く g 2, (B12)>^ . g 3 )V... ( 3 . 6 3 ) グローパルゴール以外のものの除去(ステァプ 2 d) キ ( . g l^ . g 2八 . g 3 )V V . g1V. . .V. g 2V. . .V. g 3V. . ( 3. 6 4) 最小化(ステップ 3 ) キ 表 3 . 4 :例におけるゴール排除集合 ( G o a lE x c l u s i o nSe 七 ) . g lV. g 2V' 9 3 ( 3 . 6 5 ) このことはこの例題では制約が強過ぎてすべてのグローパルゴールを同時には満た すことができなく,どれか一つのグローパルゴールをあきらめることが必要なことを I │Agen 七│同; o a l G o a lE x c lu s i o nS e t 1 A19 ^ ( . g l . g 2 ^' g 3 )V . . . V ( . g l^--.く g l, ( A ) > )V , 「く 9 2( B1 2 )> 92 ^ ( . g l八 . g 2 . g 3 )V V ( . g l^--.く 9 1, ( A ) > )V... , 「く 9 2(B12)> ^ . く9 3,(022)> B ( 3 . 6 0 ) 示している. 払2 丸, (B1恥 ^--'< 品 9 丸, 3 (02幻 1 .く g 「 <91, ( A ) >v .く93, (01勾 2 ) > v--.く 91,(A)> . < g2 , (B22 )> 3 . 5 議論 ここで提案した手法ではエージェントのすべての情報を一個所に集中する場合に比 べ,起動エージェントに排除集合という形式で抽象化された情報が集まるので他の 4 8 第 3章マルチステージネゴシエーションにおけるゴール間競合の検出 3 . 6 . まとめ 4 9 エージェントの内部に関して知る必要がないという利点がある.また,逆にエージェ (仮想的な)グローパルプランを考え,各グローパルプランは各エージェントにおい ントはその内部情報を洗いざらい他のエージェントに通信する必要もない.起動エー てサブゴールに分解される.エージェント内のサブゴールは各エージェ ン ト内のプラ ジエントがゴール排除集合を計算するため起動エージェントに対する負荷が大きくな ンフラグメントを実行することによって満足されるとした. るおそれがあるものの,グローパルな競合関係を認識するためには,ここで述べたよ うな情報を集める必要がある. し.グローパルプランの情報をやりとりすることにより ,グローパルゴールの競合を また,各エージェントにおいてはその排除集合の内容から自分の局所的な選択の影 響を認識することができ,無駄な試みを減らすことが可能になる.例え l ;f無効ゴー ル集合からどのグローパ J レゴールを同時に満足すべきかを決定した後,どのグロ」パ ルプランを用いてそのグローパルゴールを満足させるか決定するときゴール排除集合 からグローパルゴールと競合関係にあるグローパルプランが何かわかるので,その情 報より選択すべきグローパルプランを決めることが可能になる.さらにエージェント 内でどのサブゴールを選択するか決める場合,サプゴールの導出排除集合からどのグ ローパルプランと競合しているかわかるので,談合関係にあるサブゴールを避けるこ とができる. また ,制約が強過ぎる場合は無効ゴール集合からどのグローパルゴールを解いたら よいかを決めることができる.ここでは無効ゴール集合が求まった後はどのグローパ ルゴールを解くべきかは起動エージェントの間で合意されている何らかの基準で一意 に決まるものと仮定している .例え ば解くべきグローパルゴールの数を最大にする , または,グローパルゴールにエージェント問で合意のとれた効用があらかじめ決まっ ているとして,効用の絞冴日が最大になるように決めるなどである 例題では無効ゴー ,g 1V ,g 2V ' g 3であり,仮にgl,g2,g3の効用がそれぞれ 10, 20, 30 ル集合が - だとすると ,glをあきらめることによってg2とg3が満足でき,解くグローパルゴール 0と最大にすることができる . したがって ,glをあきらめるべきと決 の効用の和を 5 めることができる.もし,このようなエージェント間で合意のとれた基準がない場 合は ,どのグローパルゴールを解くかについて無効ゴール集合の情報に基づいて起動 エージェントの関で別の交渉を行なう必要がでてくる. 3. 6 まとめ 本章ではマルチステージネゴシエーシヨンを定式化し,エージェント間で交換すべ き情報の形式を明らかにした ここでは,ゴール記述というものを取り入れグローパルプランをコンパクトに表現 この定式化ではグローパルゴールを満足させるための 正しく認識できるようにした. 5 0 第 3章マルチステージネゴシエーションにおけるゴール間競合の検出 第 4章 マルチステージネゴシエ-ションにおける探索戦 略の評価 4 . 1 はじめに 前章で述べたようにマルチステージネゴシエーションではエージェント間で資源の 割当及びその影響に関する情報の交換を行なう必要があり.どのような情報を交換し 3 6 J.さ たらよいかがマルチステージネコ'シエーションにおける課題の一つであった [ らにエージェント聞で交換した情報に 1 毒づいてエージェントがどのように振舞うべき かも問題となる .マルチステージネゴシエーションではその探索戦略として 3フェー 6,2 6,3 5 J このプロトコルはマルチステージネゴシ ズプロトコルを提案している [ エーションで定義されているグローパルゴール,グローパルプランなどの概念に基づ いている . さらにこのプロトコルを一種の探索戦略と見なした場合どのような性質を 持っか ,定量的評価を行なう ここではマルチステージネゴシエーションで扱ってい る問題をより一般的な枠組でとらえなおし,その枠組で用いられている汎用のアルゴ リズムと性能を比較することにより 3フェーズプロトコルの性質を明らかにする. マルチステージネゴシエーションで扱っている問題は制約充足問題 [ 4 3 J ; が複数の 6 3,6 4 J . そこ エージェントに分散している分散制約充足問題と考えることもできる [ でマルチステージネゴシエーションで扱っている問題を分散市Ij約充足問題へマッピン グする.同ーの問題をマルチステージネゴシエーションおよび分散制約充足問題とし てとらえ,各々の手法で解いてみることにより, 3フェーズプロトコルの定量的な性 質を比較・評価する.ここでは次のような評価方針を立てた 51 5 2 第 4章マルチステージネコ・シエーションにおける探索戦略の評価 4 . 2 . 3フェーズプロトコル 5 3 5,6 3,6 4 )が提案されているが,その中の -分散制約充足問題ではいくつかの解法 [ 奉本的な解法の つである非同期パァクトラ γ ク [ 6 3,6 4 ]との比較を行なう.こ レリズムを選んだのはこのアルゴリズムをベースに性能評価例が報告 のアルゴ J 4 8 ),分散制約充足問題において比較の基盤を与える基本的なアル されており [ ゴリズムの一つであると考えられるからである . -実際の応用に近い問題で評価するため NTTの返信網のデータより作成した通信 網のパスの設定問題を例題とする まず,マルチステージネゴシエーシヨンとその探索戦略の概略を述べ,次に分散制 約充足問題とその解法である非同期パックトラックの概略を述べる.さらに,マルチ ステージネゴシエーシヨンで扱われている問題が分散制約充足問題にどのようにマッ ピングされるかを述べる.そして,性能比較の実験の結果を基にマルチステージネゴ シエーションと非同期パックトラックの両者の性能を比較し,その得失を議論する. 4 .2 3フェーズプロトコル マルチステージネゴシエーションではエージェントはあるサブゴールを選択する場 合そのサブゴールを満足するのに必要なプランフラグメントが必要としている資源 を調べ, 1 也のエ ージェントとエージェント間制約となっているものがあればそのエー ジェントに対し,その資源を使用して問題がないかの確認のメァセージを送る.メッ セージを受け取ったエージェントはエージェント問制約を満足するようにサブゴール を選択できるか調べる.ここでもし可能ならば OKを返答し,だめならばその競合情 報を逸知する.このようなメ y セージのやりとりを一つのステージとしてこれを何回 も繰り返すところがマルチステ ージネゴシエーションの基本的な考え方である. しか 図 4. 1 : 3フェーズプロトコル しそれだけではグローパルゴールを満足させる解があるにもかかわらず見落としてし まう危険がある .そこでマルチステージネゴシエーションにおける探索戦略として非 同期探索,協調探索,過制約解消の三つのフェーズからなる 3フェーズプロトコルを 導入している(図 4. 1) . ここでの基本的な考え方はまず複数のグローパルゴールに関してばらばらに解を求 めようとして,すべての解が求まればその時点で終了する . もし,求まらなければ 前述のエージェント問の競合関係をすべて計算するというものである さらにここで 量一一一一一一一一ーって三三三三三三三三一a 54 第 4章マルチステージネゴシエーションにおける探索戦略の評価 4 . 3 . 分散制約充足問題 5 5 は,無効ゴール集合が空でなく,制約が強過ぎることがわかったならば適当なグロー ゴールが満足されないことがわかった時は制約が強過ぎるということなので過制約解 パルゴールをあきらめて残りのグローパルゴールのみを満足させるという方針をとっ 消フェーズへ移行する. ている. なお,もし,エージェントが完全なゴール排除集合を他のエージェントから受け 取った時は非同期探索フェーズにいたとしても協調探索フェーズに移行する.ゴール 4 . 2 . 1 非同期探索フェーズ 排除集合は主要ゴールを持っすべての起動エージェントに送られるのではなく関連す 非同期探索フェーズ ( A s y n c h r o n o u sS e a r c hP h a s e )では起動エージェントはその主 るエージェントにのみ送られるので協調探索フェーズに移行するエージエントを限定 要ゴール(p-g o a l )を満足させる解の探索を始める.もし,すべてのグローパルゴール することが可能である.すなわち,ここでは相互関係のないグローパルゴールに関し が満足されたならばネゴシエーションは終了する. てはエージェントの問の協調はとらない.したがって,あるエージェントは非同期探 ここではエージエントはまず仮にサブゴールを選択し,そのサプゴールを満足する ためにプランフラグメントを選ぴ,それが必要としている資源を調べる.エージェン 索フェーズにあり,また他のエージェントは協調探索フェーズにあるということがあ りうる. ト間制約が存在する資源を持つエージェントに対し,その資源使用の是非を確認する メッセージ (Ok?メッセージと呼ぶ)をそのサブゴールのグローパルプランの情報と 4 .2 . 3 過制約解消フェーズ ともに送る.メッセ ー ジを受け取ったエージェントはエージェント間制約を満たすよ うにサブゴールを選択できるか調べ,可能ならば Okメッセージを返し,だめならば O v e r c o n s t r a i n e dR e s o l u t i o nP h a s e )では前のフェーズで求め 過制約解消フェーズ ( Co η βi c tメッセージとともにその競合情報,すなわち . Ok?メッセージを受け取った られた無効ゴール集会に基づいてあきらめるべきグローパルゴールを決定する.あき 側のエージェントのサブゴールの排除集合を送る このようにして,このフェーズで は探索と同時に排除集合の情報が次第に集められる エージェントが同じサブゴールを二度目に選択する時に前と同じ状況で試みても意 味がないので他のエージェントの選択を強制的に変更させる必要がある.これがパァ らめるゴールについて合意が得られた時は残り のグローパルゴールに関してどのグ ローパルプランを用いて解くかをゴール排除集合の情報に基づいて決定する 目この段 階でゴール排除集合,排除集合にはサブゴールに関して競合情報が集められているの で,パックトラック無しに解を見つけることができる. e t r yメッセージにより実現され, 一度選択されたサ クトラックに相当する.これは R ブゴールのプランフラグメントに対して割り当てられた資源を解放して,要求された サブゴールを満足しようとする. 4 . 3 分散制約充足問題 4 . 2 . 2 協調探索フェーズ 4. 3 . 1 問題の表現 C o o r d i n a t e dS e a r c hP h a s e )では起動エージェントは無効ゴー 協調探索フェーズ ( ル集合 ( NogoodGoal S e t )を計算する そのために主要ゴール(p-g o a l )のゴール排 lE x c l u s i o nS e t )を t完全'にする 除集合 (Goa ここで完全とはこれ以上値が変化しな E x c l u s i o nS e t ) くなるということで,この判断は他のエ ージエントにおける排除集合 ( 一般に制約充足問題は m 個の変数九九・ "X m とそれらの変数カ叩りうる値の領 域D 1 . D 2 . . . . . D ' "および,その上で定義された制約 , . Pk(Xk Xk2' ・.X匂)が与えられ た時にすべての制約を満たすように変数の値を決める問題と定義できる.分散制約充 足問題は変数,制約が複数のエージェントに分散された問題として定式化できる.す が完全になったという通知によって行なわれる.ゴール排除集合が起動エージェント なわち,変数があるエージェントに割り当てられ,エージェントは割り当てられた変 悶で交換されることによって,無効ゴール集合が求められ,同時に後数のグローパル 数の値の決定を行なう. 5 6 第 4宣 言 7 ルチステージネコ・シエーションにおける探索戦略の評価 4 . 3 . 2 非同期バック トラ ックアルゴリ ズム 4. 4 . マルチステージネゴシエーションの分散制約充足問題へのマッピング 57 一つのエージェントに複数の変数が割り当てられる場合はエージェントに対して i d 分散制約充足問題のアルゴリズムはいくつか提案されているが,ここではその中で も基本的なものの一つである非同期パックトラックのアルゴリズム [ 6 4 Jを取り上げ る.このアルゴリズムの基本的な考え方は次のとおりである(ここでは文献 [ 6 4 Jにな らい一つのエージエントに対し一つの変数が割り当てられると仮定する).まず,この を割り綴るのではなく,変数に対して i dを割り振り,変数単位に上で述べたアルゴリ ズムを動かせばよい この時エージェント内でのメッセージのやりとりは手続きの呼 び出しになる.また, NoGoodに関しては単調に地加するので,エージェント内に一 つだけ設け,エージェント内のすべての変数から共通にアクセスされるようにするこ とができる. アルゴリズムでは次のような前提条件を仮定している. - エージェントに対してユニークな識別子 ( i d )が振られており,全順序がつけら dを持つエージェントを高位のエージェントとする. れている i より大きい i 4 .4 マ ル チ ス テ ー ジ ネ ゴ シエ ー シ ョ ン の 分 散 制 約 充 足 問 題 へ の マ ッ ピ ング - 市J I 約に対しそこに含まれる変数のエージェントのうち一番 i dが大きいエージェ ントがその制約を評価する.制約に含まれる変数のエージェントから制約を評 マルチステージネゴシエーションではグローパルゴール,グローパルプランといっ た概念を扱っている.そのため全体で複数のゴールがいくつかの方法で満足されるよ 価するエージェントへ向かつて論理的なリンクが張られている うな問題のマッピングは自然な形で行なうことができる.さらに制約が強過ぎる時に エージェントは自分に向かつて張られたリンクを持つ他のエージェントの局所解の 組合せ (AgenLView)と制約違反を起こす変数と値の組合せ (NoGood)を保持する . これらの値は最初は空である. どのグローパルゴールをあきらめればよいかなどアプリケーションから見て意味のあ る情報の抽出を解法の中に含めることが容易にできる . しかし,それらのグローバルゴールなどの概念の意味を無視し,サブゴール聞の関 _ View及び NoGoodと矛盾しないように自分の変数の債 各エージェントは Agent 係を制約として表現することで,マルチステージネゴシエ ーションで扱っている問題 を決めその値(局所解)を外に向かつて張られたリンク先のエージェントに対し送る を分散制約充足問題としてとらえることができる.この時,マルチステージネゴシ (Ok?メッセージ).このメ エーションの問題を分散制約充足問題の一般的な形式にどのようにマッピングをとっ 7セージを受けとったエージェントは Agent _ Vi ewを更新 t _ Viewと矛盾しないように自分の変数の値を決め,変更した時 し,この新たな Agen はその値(局所解)を外に向かつて張られたリンク先のエージエントに対し送る . も たらよいかを明らかにする必要がある. 分散制約充足問題は変数とその領域,制約,さらに変数がどのようにエージェント し,そのような変数の値が決められない時はその原因となる変数と値の組合せ ( N c ト に分散されるかによって定義される. したがって,マルチステ ージネゴシエー ション Good)を計算し,その NoGood中の一番大きい i dを持つエージェントに対し,その の問題が分散制約充足の変数,領域,制約 ,エージェントにどのようにマッピングし NoGoodを送信し (NoGoodメァセージ),変数の値の変更を要求する たらよいかを決める必要が出てくる . NoGoodメッ セージを受けたエージェントは自分の NoGoodを更新し,新たに自分の変数の値を変 更する.もし,それが不可能な場合はさらにその原因となる変数と値の組合せ ( N 仔 4. 4. 1 変数とその領減 Good)を計算し ,その NoGood中の一番大きい i dを持つエージェントに対し,その NoGoodを送信する . NoGoodは単調に増加するので無限ループを避けることができ る. 変数にはマルチステージネゴシエーションにおけるサブゴールを対応させる.この 理由は次のとおりである .グローパルゴール,グローパルプランはエージェントにま たがって定義さ れる (すなわち,グロ ーパルに見て定義される)ものであるから ,変数 例えばエージヱントの i dを名前と見なして,その苦手容式順序をとれば良い 1 へのマッピングには恩1染まない 一方サブゴール,プランフラグメントは一つのエ ー 昌 一一一一一一一一一一一一て 7一一一一一一一一一一一一a 5 8 第 4章マルチステージネゴシエーションにおける探察戦略の評価 ジェントに閉じているものである分散制約充足問題の枠組とも相性がよい 4 . 5 . 通信網のデータを用いた評価実験 マルチ 5 9 tはそのような集合が複数あることを示すための添字である.これを用いると ステージネゴシエーションにおけるエージェント聞の競合関係を表現する排除集合は エージェント内制約は形式的には次のように書ける. サブゴールをベースとして定義され,基本的にはエージェントにおいてどのサブゴー 八 ルを選択するかが他のエージェントとの関係で決定される.サブゴールが決定してし (X j. k f悶 L ) S9i, ( 4. 3 ) S 9 i . j . k佳VA, f まえば,どのプランフラグメントを選択するかはエージェントの中に閉じることにな る.もし,プランフラグメントを変数に割り当てると変数の数が必要以上に多くな - エージェント開制約・エージェント聞において資源の使用に制約があるため,あ レを満足させた時に同時に満足させなければいけない(他のエージェ るサプゴー J り,適当ではない. ン トにおける,同 じグロ ーパルプランに属する)サブゴールがあることである . 変数をサブゴールに対応させた場合,変数の領域はサブゴールを選択しない(これ エージェント間制約があるサブゴール s9 で表すとする)か,選択する時はそのサブゴールに含まれるどのプランフラグ をNIL メントを選択する(選択されるプランフラグメントをその値とする)かになる.すなわ ~((XS9i.j.k ヂ NIL) f f i(XS . i . 1 手間 L ) ) 9 i g i. i . kに対して ち,サブゴール s s9 仙 骨 V p f ; . i . k, l と書ける.ここで@は排他的論理和を表す ( 4. 1) ここで排他的論理和を使ったのは 両者のサブゴールが同時に満足されるかまたは満足されないかのどちらかであ るからである. という関係がある時,これに対応した変数を X S 9 i . j. kとするとその領域は {NIL, Pf i , j, k. l, ・ ・, pfi.i.k•1..;..} ( 4. 4 ) ( 4. 2 ) さらに,マルチステージネゴシエーションでは暗黙のうちにすべてのグローパル ゴールが満足されなければならないとしていたが,分散指1]約充足へマッピングすると となる. これにより変数の値の選択はマルチステージネゴシエーションにおけるエージェン ト内で行なうことができるのでエージェントの対応、は分散制約充足とマルチステージ ネゴシエーションとで同じとすることができる. 4. 4. 2 制約 きにはこれを明示的な制約として表現する必要がある.ここでは,これをグローパル 制約と呼ぶ.このグローパル制約はすべてのグローパルゴールに関してどれか一つの グローパルプランが満足されるということになる.あるグローパルプランのサブゴー ルのうち満足されるサブゴールが存在すれば上記のエージェント間制約により,その サブゴールが属するグローパルプランは満足されることになる. したがって,グロー パル制約は形式的には次のように書ける. マルチステージネゴシエーションでは制約としては資源の使用に関する制約とし ヨ 1ヨ kX S 9 i品 kヂ NIL て.エージエント内市1約とエージェント間制約を考えた.これらの制約は分散制約充 f o r叫1i ( 4 . 5 ) 足へマッピングした場合,それぞれ次のように対応付けられる. - エージェント内制約・資源の容量の制約によりエージェント内で選択できるプ ランフラグメントに制限ができ,そのため,エージェント内で満足できるサブ 4. 5 通信網のデータを用いた評価実験 ここでは,実際の応用に近い問題で評価するため NTTの通信網のデータより作成 ゴールに制約が生じることである .これは同時にはサブゴールに対応する変数 した通信網のパスの設定問題を例題としてとりあげた の値がNIL でない値がとれない組合せがあるということになる.ここで九 . tを にまず,簡単な通信網の例をとりあげ,それがどのようにマルチステージネゴシエー エージェント Aにおいて同時には満足できないサブゴールの集合を表すとする ションと分散制約充足問題として考えることができるかを示す. 評価実験の例題を述ぺる前 量一一一一一一一一一ーって一一一一ーーー a 6 0 第 4章マルチステージネゴシエーションにおける探索戦略の評価 4 . 5 通信網のデータを用いた評価実験 。 6 1 表 4 . 1 :例におけるグローパルプラン 一O R e g l o n 1a-a c-1 c-2 c-む: d-1 d 1 b-bc-1 c-2 c-c e-1 e , GtobatG回 1 :l a -d 1b 10 噂 表4 . 2・例における各エージェントのサブゴール Agent G l o b a lG o a l G l o b a lP l a nI S u b g o a l S t a t i o n st obeConnected 図4 . 2・簡単な通信ネットワークの例 4 . 5. 1 簡単な通信網における例 A g l g p 1 1 a B g 2 g p 2 1 b 1 b-bc C g l g p 1 1 c a c-c d g 2 g p 2 2 c b c-c e D g l g p 1 1 d c d-1d E g 2 g p 2 1 e c e-1 e 図4 . 2に通信網の例を示す.ここでは A, B, C, D, Eの五つの地域 ( R e g i o n )に分か れており,中継点 ( S t a t i o n )として 1 a,1 b,1 c,2 c,1 d,1 eがそれぞれ地域内にあり,ま c,bc,c d,c eがそれぞれ地域間の境界点として存在する.図に示すように中継 た, a 1 a-a c Ch 剖 m e l ))が存在し,これが資源 ( R e s o U I c e )に相当する. 点問に通信路(チャネル ( それぞれ容量は 1であるとする ここでのゴールは l aと 1 d間 , 1 bと 1 e問にそれぞ "3 が両者のゴールを れ容量 lのパスを確保することである.この例では資源(通信路)1 満足させるのに必要なため,両方のゴールを同時には満足できない 2 ゴールに対するプランフラグメントとプランフラグメントが使用する資源の量を示 す.なお,この例では一つのサブゴールに対し一つのプランフラグメントが存在して いる. マルチステージネゴシエージョンへのマッピング 上で述べた問題はマルチステージネゴシエーションでは次のように考えることが できる.まず,それぞれの地域がエージェントに対応する.グローパルゴールはある . 1のよう 地点からある地点へのパスを設定することであり,グローパルプランは表 4 な中継点を透るものとなる.次に各エージェントにおけるサブゴールは表 4 . 2に示す ようになる.また,表 4 . 3は各エージェントにおける資源とその総量,ならびにサプ 2笑際の通信網では r 3を二重化するなどの冗長橋成をとることが考えられるが,ここでの例題はあく までもマルチ λ テージネゴシエーションの分散制約充足問題への 7 ツピングを説明するために非常に簡 単化したものである, ここでのエージエント内制約とは各通信路の容量の制約に基づくものである .エー ジェント Cにおいてプランフラグメント p 1 cとp 2 cはともに資源1"3を使用するため同時 には選択できない cと2 cは同時には満足できないという したがって,サブゴール l エージェント内制約が存在することになる. また,通信路という性格か ら地域間の境界点に達する通信路はその境界点の両側で それぞれ通信路が割り当てられる必要がある 通信路が資源に相当することから,境 界点をはさんで資源が同時に使用されるというエージェント聞の制約があることにな る.エージェ ント間の資源使用の制約からサブゴール聞の制約が生 じ,この例題で は エージェント間制約として,次のサブゴールの組はどちらか一方が満足されたら残り 6 2 第 4章 マ J レチステージネゴシエーションにおける探索戦略の評価 4 . 5 . 通信網のデータを用いた評価実験 6 3 のサブゴールも満足されなければならないことになる. ( l a, 1 c ), ( l c, l d ), ( l b, 2 c ), ( 2 c, 1 e ) . 3・例における各エージェントのサブゴール,プランフラグメント,資源 表4 ( 4. 6 ) また,ここでは AがglのBがg2の起動エージェントとして考えることができる. 分散制約充足問題へのマ ッピング 先の例題の分散制約充足問題へのマッピングを行なう. - 変数・マルチステージネゴシエーションにおけるサブゴールに対応して存在す る -変数の領域選択すべきプランフラグメント(この例では各サブゴールに対して L)かののどちらかになる. 一つ決まる)か,何も選択しない (NI ・ 制約次のような種類の制約になる. A g e n tC R e s o u r c e I 叫 I P l a nF ragm 回 Subg R e s o u r c eC o u n t 1 c 1 l 1 1 1 l cとp 2 cは同時には選択できな プランフラグメント p いため,エージェント Cにおいてサブゴール l cと2 cは同時には満足できな 1 い.したがって,エージェント内制約は表 4 . 4に示すようになる . 1 1 1 2 c ー エ ージェント内制約 r l cr 2 cr 3 r 4 cr 5 c ー エ ージェ ント間制約 1 エージェント問で隣接する通信路が接続されなけれ . 5に示すようになる ばならないという制約に対応し,具体的には表 4 ーグローパル制約 各グローパルゴールに関してグローバ Jレプランは一つず つ存在する.それらのグローパルプランから選んだサブゴールの一つに対 p1 d I 1 I 以外の値をとらなければならない.この時,通信路の始 応する変数がNlL I 点のサブゴール出ことによってグローバル制約は始点のエージェント の中に閉じた制約とすることができる.例えば表 4 . 6に示すようになる. 4 . 5 . 2 評価用例題の作成 p l e ここでは NTT伝送システム研究所で開発されたネットワーク構成管理データベー ス( CMDB:C o n f i g u r a t i o nManagementDa t a b 鎚 e )[ 6 1,6 2 )のデータを利用して例題 を作成した 0万本の通信 このデータベースには NTTにおける通信網を反映した約 2 6 4 K回線相当で約 6 0万回線分のデータ)が登録されている. 路( 64 第 4章マルチステージネゴシエーションにおける探索戦略の評価 4 . 5 . 通信網のデータを用いた評価実験 6 5 このデータベースのデータより情報を抽出し,性能評価周の問題を作成した.こ こではまずマルチステージネゴシエーションの枠組に基づいた問題を作成し,次に 4 . 4節で述べた手法にしたがって分散制約充足問題への変換を行なった.使用した 表 4.4例におけるエージェント内制約 │ A g 回│白nstraint c l 1. ( ( 1c州 データは基本的には交換局(中継点に相当)とその局間を結ぶ通信路のデータである. 1 叫八( & c州 孔 ))1 ここで作成した問題は前章で述べた例題を複雑にしたものであり,例題の作成方針は 以下の通りである. 0の地域に分割し,各地域にエージェントを割り当て - エージェントー日本全国 1 た.具体的には北海道,東北,関東,信車!.北陸,東海,関西,中国,四国, 九州の地減に分けた 3 - グローパルゴール:通信路として 5 7 印回線の容量を持つ通信路を用いて各地 域を代表する交換局を結ぶパスを求めることをグローパルゴールとする.各々 表4 . 5 : 例におけるエージェント開制約 dの一番若いものを の地域の中に代表となる交換局は単純にデータベース中の i │ G ω l o 凶 b 叫 alP凶 I c 白b ns 凶 選んだ n ここで 5 7 6 0回線容量のものを選んだのはネットワークにおける主要な パックボーンのパスの設定を行なう問題とするためである. べ 「( ( υ 1 α宇 fNI叫 L )E D( 1 μ cヂNI 乱 L ) 日 ) α (( l cヂ N I L )E D( 1dヲ # 正 N I L ) ) べ 「( υl bヂ N I L )E D伊 ( & cヂN I L ) ) に分かれることから IOC2 0の地域 また. 1 =4 5個のグローパルゴールが考えられる.この中か 「 . ( ( & cヂN I L )E D( 1e手N I L ) ) らそれぞれの問題について異なる三つのグローパルゴールを設定した. レプランに相当)し,グローパルプ - グローバルプラン・パスの候補が(グローパ J ランとしては代表点問を結ぶパスにおいて通過する交換局の数が最小となるも のすべてを選んだ - サブゴール,プランフラグメントーグローパルプランからエージェントごとにサ プゴールに分割した.また,ここではサブゴールに対してプランフラグメント を一つ対応、させた. 表 4. 6・例におけるグローパル制約 この通信網の例題では制約が弱<.比較的容易に解が求まる場合と制約が強過ぎて すべてのグロ ーパル ゴールが満足できない場合の二通りが作成できる.ここでの実験 に使用した問題の数は次の通りである. - グローパルゴールがすべて満足できるもの: 1 3 1個. - すべてのグローパルゴールは満足できないもの 2 4個. この地域は東京支社を関東に含めた以外は NTTの各支社に対応している. 3 6 6 第 4重量マルチステージネゴシエーションにおける探索戦略の評価 4. 5 . 通信網のデータを用いた評価実験 6 7 4 . 5 . 3 実験内容 450 司1 つのエージェントに対し,一つの変数が対応していることを前提としており,ここで ・ [ 6 4 Jに基づいて実装した .そこでは一 ~. , ' . , . . J ~'・"“. . . . AU 非同期パノ ‘ クトラックのアルゴリズムは文献 4E もっており,受けとったメ ッセージは一旦キューにつながれ,各ステージにおいて一 つずつメッセージがキューから取り出され.処理される. 内 ζ エー ジェントに送ることは可能である .エージェントはそれぞれメ ッセー ジキューを , , • u 内 n U U 内 E u n u らえることができる . なお,エージェントは 1ステージ内で複数のメ ッセー ジを他の . ー .. AsynchronousBacktracking 一 ー -MullistageNegotiation 内 ζ 通信に時間がかかるような場合,ステージ数を実際の処理時間の第一次近似としてと 斗 u 内 n u 内 z a u ができる仮想的時間を表している 4 したがって,エージェント内における処理に比べ dnd いて各エージェントがメッセージの種類によらず, 一つのメ ッセージを処理すること (ω82的FEZEコ g@8 Z@£E}@E戸田C £ 定した.処理時間はステージ数で測定した.ここでいうステージとは lステー ジにお 凋怜内 に作成された問題を分散制約充足問題へと変換し,各々の問題について処理時間を測 nu U 内 nur D 上記方針に基づいてマルチステージネゴシエーションの枠組での問題を作成し,次 r〆 50 。 ・. _ . . 且 ・ .r^ んへ人 明以凶G . . . . の実験のように 一つのエージエントに複数の変数が存在する場合に対処するために次 c o n s t r ai n t のような実装を行なった. o v e r c o n s t r a i n e d ExampleProblems - 一 つのエージェン卜内に複数の変数が存在する場合,自エー ジェント内の変数 . 3・処理時間(ステージ数) 図4 に対するメッセージは前述したように仮想的に自分自身に対してメッセージを 送るように実装したが,測定においてはステージ数においては仮想的なメッ セージの処理に対しでも単位ステージの処理がかかるとした.これはステージ 4 . 5 . 4 実験結果 数が実際の処理時間の近似としてとらえているからである. 図4 . 3にステージ数の測定結果を示す.横軸には例題をとり,縦軸には各々の問題 -非同期パックトラックにおいては変数の全順序をつける必要があるが,ここで に対するステージ数をとった. t 黄軸は,まず制約が弱くグローバルゴールがすべて満 は属するグローパルゴールでまず順序付けをし,その中では変数の対応するサ 足できるものについて非同期パックトラ ックにおけるステージ数の少ない順に問題を プゴールのグローパルプラン(パスの候補)にしたがって順序付けをおこなっ 並べ,次に過制約の問題について非同期パックトラックにおけるステージ数の少ない た.これにより,同じグロ ーパルゴールの変数は全順序をつけた中で固まって 願に問題を並べた.過制約の問題についてはマルチステージネコ.シェーションでは過 出現することになるので ,あ るグローパルゴールの中でのパスの探索は同じグ 制約であることを認識する協調探索フェーズまでのステージ数をプロットしている. ローパルゴールの中で行なう可能性が高くなると考えられる. ただし,フェーズ自体はすべてのエージェントで一斉に切り替わるものではないの で,ここではどれか一つのエージェントが次のフェーズに移行した時をもってフェー 4マルチステージネゴシエーショ ンの “ ステー ジ"とは異なる ズが切り替わったとしている. 6 8 第 4章マルチステージネゴシエーションにおける探索戦略の評価 4 . 5 . 通信網のデータを用いた評価実験 すべての解が求まる問題 最初の種類の問題に関してはマルチステージネゴシエーションではすべて非同期 探索フェーズで解を見つけることが可能であった.非同期パックトラ yクではー苦5 1は パックトラック無しに(すなわち. NoGoodのメッセージが流されることなく)解を 見つけるものとパックトラックを含むものとが含まれている. このグラフからわかるようにマルチステージネゴシエーションではステージ数にそ れほど大きなばらつきがないものの,非同期パックトラックにおいては問題によって 過制約の問題 図4 .4は図 4 . 3の過制約の問題の部分を見やすくするために拡大したものである. . 3と違ってマルチステージネゴシエーションに関してはフェーズごとの ここでは図 4 ステ ージ数を示しである.また .過制約解消フェーズもあわせてプロットしている. 過制約の問題においては 7 ルチステージネゴシエーションの方が非同期パックトラッ クに比較して多くの場合.過制約であることを認識するのにステージ数が多くなって いること 7 ) ぎわかる. 4 . 5 . 5 考察 ω 図口図 1 5 0 ステージ数が大きく異なる結果が得られた. AsynchronousSearchPhase CoordinaledSearchPhase OverconslrainedR e s o l u l i o nPhase & Z ・ . .AsynchronousBac racking 司 附 C J l ~ 1 00 2 E コ Z E C @ E 忌 50 c " ' " ' 3 且 以上の実験結果より. 3フェーズプロトコルに関して次のようなことがいえる 性能上の比較(非同期探索フェース'の効果): 非同期分散パックトラックは基本的に 。 ExampleProblems はパ ック トラ ック はより高位の変数に対して行なわれる. パックトラックを行なう前 にはそれより i dの小さい変数の中ですぺての組合せを 尽くすことが必要となる . した がって,たまたま,高位の変数において後で制約違反を引き起こすような債の割当を した場合,パ ックトラックを起こすために大きな処理時間がかか ってしまう . 一方,マルチステージネゴシエーションの非同期探索フェーズにおけるパックト ラックに相当する処理では非同期バックトラックにおける i dを意識しているわけでな く,競合が起こった時にローカルに競合を回避するように別のサブゴールが選択され る. したがって非同期パックトラックのように高位の変数に対してパックトラックす るために低位の変数であらゆる組合せを試すことはしない.非同期パックトラックに 図4 .4処理時間(ステージ数)一過制約の場合 69 第 4章マルチステージネゴシエーションにおける探索戦略の評価 7 0 4 . 6 . まとめ 7 1 おいて高位の変数で制約違反を起こすような値に設定されてしまうとなかなか制約違 もとにした例題を使って,マルチステージネゴシエーションと分散制約充足問題の基 反の原因となる変数に対しパックトラックがかからず,問題によって解をみつける時 本的な解法である非同期パックトラックとの性能の比較を行なった.その結果,すべ 間に極めて大きなバラツキがでてしまったと解釈できる.したがって制約が比較的弱 てのグローパルゴールの解が求まるような比較的容易な問題に対してはマルチステー くすべての解カ帯在する時にはマルチステージネゴシエ ー ションにおける非同期探索 ジネゴシエ ーショ ンにおける非同期探索フェーズが効果を発揮し,非同期パックト 効果を発揮することがわかる. フェーズカt ラックに比べ,少ない処理時間(ステージ数)で解を求めることができることがわかっ た.また,制約が強過ぎてすべてのグローパルゴールの解が求められないような問題 過制約の問題における後能と性能のトレードオフ: 非同期パックトラ γクにおいては に対しては,マルチステージネコ・シエーションがすべての組合せの情報を集めている どこかのエージェントで釜の NoGoodが生成された段階で制約が強過ぎることが認識 ことになり,非同期パックトラックに比べ,多くの場合時聞がかかる される. したがって,すべての制約違反の組を挙げるわけではない.一方,マルチス 期パックトラックで求められる NoGoodの情報だけでは必ずしも,どのゴールをあき しかし,非同 テージネゴシエーションではすべての競合関係を調べた結果,過制約であることを認 らめれば残りのゴールに関して解くことができるかはわからないというトレードオフ 識している カずある すべての競合関係を調べたかどうかは無効ゴール集合が‘完全'になった かで判断している完全'になったか判断するためにエージェント問で受取通知 ( a c - k n o w l e d g e l l l e n t )のメッセージを交換している.すべての鏡合関係を調べることに加 え,このメッセージ処理のオーバヘッドのため,過制約であることを認識するのに時 間がかかっていると考えられる. しかし,一方,マルチステージネゴシエーションにおいて得られる無効ゴール集合 にはグローパルゴール聞の競合関係の情報が入っているのでどのグローパルゴールを あきらめれば残りのグローパルゴールに関しては解くことができるかが無効ゴール集 合を調べればすぐわかる. (分散制約充足問題においてはグローパルゴールという概 念が傘いので,どのグローパルゴールをあきらめたらよいかは自明ではない. )さら に,その時点において各グローパルプラン,サブゴールのレベルにおける競合に関し ても情報が得られているのでどのグローパルゴールについて解くかを決定した段階で パックトラック無しに解を求めることが可能になっている . したがって,マルチステージネゴシエーションにおいては過制約状態を雷、識するの に時間がかかるものの,一旦認識した後はどのグローパルゴールをあきらめたらよい かなどの情報が得られているという特徴がある 4 . 6 まとめ 本章ではマルチステージネゴシエーションの枠組を分散制約充足問題として見た 時,どのようにマッピングされるかを明らかにし,さらに,実際の通信網のデータを 72 第 4章マルチステージネゴシエーションにおける探索戦略の評価 第 5章 市場モデルに基づく分散資源割当:均衡的アプ ローチ 5 . 1 はじめに 本章ではマルチエージェントシステムにおいて市場モデルに基づいた資源割当につ いて述べる ここでは,他の市場モデルに基づいたアプローチと区別するために均衡 的アプローチ ( e q u j l i b r a t o r ya p p r o a c h )と呼ぶ. 第 3, 4章で述べたマルチステージネゴシエーションでは資源の割当を行なうか行な うかのいわばゼローの問題を扱っていた. したがって通信路の割当という例題の観点 から考えると資源の量がうまく扱えない 1 それに対して本章では,量を扱えるような モデルの構築を自指す. 具体的には,マルチエージェントシステムにおける分散資源割当の問題を定式化 し,そこに人間社会における(競争)市場の考え方を導入することによって,資源の量 を扱えるようにするようにする. マルチステージネゴシエーシヨンでは問題の構造に対応してエージェント間で交換 すべき情報を規定した.これに対し,本業では市場の考え方を資源割当に導入するこ とによって資源割当を資源の売買として実現する.エージェント悶の通信は資源の売 り手 ( s e le r )と資源の買い手 ( b u y e r )問の通信に限定され,資源の売買のメッセージ ある単位量ごとに別の資源として扱うことでむりやり扱えるようにすることも考えられるが,ある 1 量の割当を表現するのにいくつもの解の候補を考えることになり,余計な組合せを試みる必要が出てく るので効率的ではない. 7 3 7 4 第 5章市場モデルに基づく分散資源割当・均衡的アプローチ 5 . 2 マルチエージェントシステムにおける資源割当 7 5 の交換として規定されることになる.ここではエージェント問の情報の交換を価格情 いとする.エージェント関の通信は資源の割当要求(買い手から売り手への通信).実 報(売り手から買い手へ)と資源割当要求(買い手から売り手へ)に限定し,エージェ 際に割り当てられる資源の量と価格の通知(売り手から買い手への通信)に l 浪られると ント簡の明示的な協調のためのメッセージ交換をなくすことを目指す. する. さらに,ここではエージェントは自分の効用関数 ( u t i l i t yf u n c t i o n )を持ち,効用を このようにエージェン トは システムに関する限られた情報に恭づいて行動を決める 上げるように行動を決定する.すなわち,エージェントが限られた局所的な情報をも ので,ヒュ ーリ ステイクス(戦略)を導入することが必要になる.売り手の戦略はいか とに自分の効用を上げるように振舞うことで,いかにシステム全体として適当な状態 に対応づけられた資源の価格を決定するかに関わり,また,買い手の戦略はどの資源 を達成できるかという問題になるー に対し,どれだけの畳を要求するか決めることに関わることになる. 5 . 2 チについて述べ,その性質をシミュレ ーシヨンを通して調べる 本章ではこのような考え方にもとづいた市場モデルに基づいた資源割当のアプロー マルチエージェントシステムにおける資源割当 [ 3 0 J . 具体的には通信 ネァトワークにおけるネットワーク制御に関するこつの例題を取り上げる .通信ネッ r e s o u r c e )をアクテイピティ ( a c もi v i t y )に割り当てる問題と ここで資源割当を資源 ( トワークは本質的に分散しており,多くの要素(ネットワークノード,交換機,通信 考える.マルチエージェントシステムにおける資源割当は資源とアクテイピティを チャネルなど)が存在し,それらが独自の効用を持っていると考えられる.したがっ エージェントに対応づけることによって達成することができる.アクティピティに対 て,マルチエージェントシステムを考える上で有効なプラットフォームの一つを提供 応づけられたエー ジェント(アクテイピテイエ ージエント)は資源に対応づけられた してくれると考えられる エージェント(資源エージェント)に対して資源の割当要求を出す.それに対して資源 二つの例題のうち,例題 Iでは資源の価格の変化に対応してどれだけ資源の要求の エージェントは割当要求を認めるかどうか決定する.エージェントには効用関数が与 変化させるかを決める感度系数について調べa 例窓口では売り手から買い手に提示 えられ,各エージエントはそれぞれ効用を最大にするように振舞う エージェントは される価格情報に関して通信遅延の影響について調べる.後で述べるように,通信遅 システムのグローパルな状態を必ずしも知らず,エ ージエントの限られた情報に基づ 延はシステムの振舞いに振動を引き起こすので,振動を押える手法についても言及す いて行動を決定することになる る. マルチエージェントシステムにおける資源割当における問題は , “エージェントが 第 2章で述べたように分散システムにおける資源割当に市場モデルの考え方を応用 限られたシステムに関する情報をもとに自分の効用を最大にするように行動を決める した例はいくつか報告されている ときにシステム全体としてグロ ーパルな目標を達成することができるか"ということ われている である .本掌で導入する市場モデルにおいては,エージェント問の資源の売買を過し 輸送問題に応用されている て資源はアクテイピテイに割り当てられる.アクティピテイエージェントは資源の買 e q u i めら れるこ とが仮定されている .これに対し本章で提案する均衡的アプロ ーチ ( い手となり ,資源エージェントは資源の売り手となる.売り手のエージェントはその l i b r a t o r ya ppro a ch)においては資源の価格はそれに対応する資源エージェントが資源 収入を最大にしようとし,買い手のエージェントはその支出を最小にしようとする 2 の需要をもとに独自に決定する 本章のモデルにおいては買い手同士間は直接相互の通信 は行なわな い なくすことを目標としている. 買い手は他の買い手がどのよう な行動をとるかは直接には知らない したがって また,同様に売 [ 3 J . そこでは CPU時間や記憶領域が資源として扱 [ 1 2,4 4,4 7,5 9 J . また,市場指向プログラミングの手法が提案されており [ 6 0 J . これらの手法では資源の価格は競売機構を通して決 [ 2 9 J . これにより入札機構に付随するオーバヘッドを また,通信遅延が存在する場合のシステムの振舞いは計算生態学(c o m p u t a t i o n a l り手同士の相互の通信がなく,売り手は他の売り手がつけている資源の価格を知らな e c ol o g i e s )[ 1 η にお いて調べられている.通信遅延が存在するとき,エージェントは 2買い手の効用関教を例えぽ支出の逆数ないしは負となるように設定すると,支出を最小にすること 古くなった情報を もとに行動を決定する ことになり , システムの振舞い は振動現象 は買い手の効用を最大にすることに相当する を示す [ 1 7 J . このようなカオス的な鍍舞いを抑止するメカニズムも提案されている ー一一一一一一つ一一一一一一一一一. . . a 第 5章市場モデルに基づく分散資源割当均衡的アプローチ 7 6 [ 1 5 ] . 計算生態学では個々の エー ジェント戦略というよりむしろシステム全体として 5 . 3 市場モデルに基づいた分散資源割当 7 7 する . V u ( t )は次のように与えられる . の振舞いに注目している.これに対し本章では具体的なエージェントの戦略がどうな ε~l(Ui(t) 一(2::::~1 U ; ( t ) ) j m ) 2 V u ( t )一 ー るかについて考える. ( 5. 4 ) 円1 すなわち,グローパルな目標は九 ( t )の値を最小化することになる. 5 . 3 市場モデルに基づいた分散資源割当 5. 3. 2 市場モデル 5 . 3. 1 分散資源割当 原割 ここでは m 個の場所に存在する資源を π個のアクティピティに割り当てる資 i 次に市場モデルを導入する それぞれの場所ごとに売り手が存在し ,売り手が自分 の資源に対して価格をつける 場所 2の資源の時刻 tにおける単位量当たりの価格を 当問題を考える.ここで時刻 tにおいてアクテイピテイ jが出す資源割当要求の総量: p, ( t )で表すことにする.場所包における売り手は過去の需要 (ε?L=1民 zi, j ( j ( t )で表す.ここでは R j ( t )は時刻 tによって変化するとする . R j ( t )の中から をR i, j ( t )の資源割当要求を出すものとする.す アクテピテイ 3は場所 zの資源に対して X 1 基まづいて資 j 源原の価格 P 仇ベ i ( ο の)を決定する ω t .買い手 3は場所 zの資源に対する時刻 tにおけ P i (t ' )( t 'く t ) )に基づいて決める.ここでのモデルでは買い る割当要求を過去の価格 ( Xis)は時刻 tにおけるアクティピテイ 1の場所 zの資源、に対する需要を表 手同士,売り手同士の直接の通信は無いものとする.したがって,売り手は価格を決 R ;( t )で表すことから ,次式が 定する際に自分の場所以外の資源の価格は知らない .また,買い手は資源の苦手j当要求 なわち している.アクテイピテイ Jの資源割当要求の総和は を出す際に他の買い手がどのような資源の割当要求を出すかを知らないとする . 成立する. ( 5 . 1 ) LX iJ ( t )=R j ( t )( 1三1三n ) i = l ;の値は一定であるとする 場 ここで場所 tの資源の総量を川で表す ここでは N 所 4の資源に対する割当要求の総和は川より小きくなるべきであるから次式が成立 売り手の目標はその収入を最大にすることである.ここで場所 tの資源に対応づけ ; ' ( t )を次のように定義する られた売り手 iの時刻 tにおける効用 U i, j ( t )は実際に割り当てられる資源の量をも表すことになる. 要求 X 買い手の効用 買い手の目標はその支出を最小にすることである .アクティピテイ 1に対応づけら れた買い手 j の時刻 t における支出は 2::::~1 ここで,場所 tの資源の時刻 tにおける使用率を u ; ( t )で表すとする.叫 ( t )は次式 u 4t 戸 一町内 ! J ,1 . , 網 " =一 乞一 u ) t ( a ( 5 .3 ) ここではグロ ーパルな目標として異なる場所における資源の使用率を均等化する ( 5 . 5 ) 同 れば資源の割当要求は常に満たされるとする.したがって場所 zの資源に対する割当 z n r ( 5 . 2 ) ここでは N;の値は十分大きく,上の制約はいつも満足されると仮定する.言い換え で定義される. 一 一 U L x, , i (t )三九日 ( 1 三 i~m) n Z することが必要となる. 売り手の効用 P i ( t )X ;, j ( t )で与えられる ここで買い手 J ( t )は次のようになる . の効用を支出の負の値とする .すなわち,買い手 jの効用 U U J ( t )= - L P ; ( t )旬 ( t ) ( 5 . 6 ) したがって買い手の効用を最大にすることは支出を最小にすることになる . ことを考え る.本章の後半で述べるシミュ レー ションにおいては資源の使用率の分散 売り手の効用 は買い手の資源割当要求 ( X i, j( t ) )によって変わってこよう.同様に貰 九( t )を用いて異なる場所の資源の使用率の均等化が実現できるかを表現することに i ( t )に影響される.しかし,買い手と売り手の い手の効用は売り手が設定する価格 P 7 8 第 5章市場モデルに基づく分散資源割当・均衡的アプローチ c 5. 4 . f ? i J 題 1-感度系数の影響 7 9 アクテイピテイ Jはこれらの物理的なコネクションに関して資源の割当婆求を出すも r"¥ のとする すなわち, (Z J ( t )三o iESj x ;, j ( ( 5. 7 ) グローパルな目標は異なる物理的なコネクションの使用率を均等化することになる. 以下のシミュレーションでは時間は時間スロットに区切られたものとして扱う 買 い手と売り手間の通信は各時間スロットにおいて資源割当の対象となるコネクション とは別の(信号線専用の)通信チャネルを用いて行われることを仮定する.さらにここ A c t i v i t i e s : では通信において遅延はないものとする.買い手は現在の時間スロットにおける資源 の価格をもとに資源割当要求を出し,売り手は各待問スロットにおける資源の価格を それ以前の時間スロットにおける資源の需要をもとに決定する. 5. 4. 1 エー ジェントの戦略 図 5 . 1 :通信ネットワークにおけるパス割当の例 聞の通信は価格の通知(売り手から買い手).資源の割当要求(買い手から売り手)に限 られており,買い手/売り手がその効用を最大化するにはヒユーリステイクス(戦略) に頼ることになる. 売 り手の戦略 売り手の目標はその売上を最大にすることである.その戦略として,対応する資 源(物理的なコネクション)の需要が大きくなれば価格を上げ,需要が小さくなれば 価格を下げることが考えられる.コネクション 5. 4 例 題 1-感度系数の影響 g の時間スロァト tにおける需要は ( 1 )コネクション zの(全部ないし一部)をすでに使用している帯域幅と ( 2 )新たに割 当要求のあった帯域帽の和となる. ここでは割当要求はすべて満たされるという仮 本節では通信ネァトワ ークにおいてパスを設定する例を考える ここでは π個の出 j=1,2, ・ . . ,π )についてら個の物理的 発地点と目的地点の組を考える . J番目の組 ( 定( 5 . 2式)をおいているので,新たな割当要求はすべて満たされ,実際にアクティピ ティに寄lり当てられる資源の量は割当要求の総和と同じとなる したがって場所 tに な経路が存在し,この経路を使ってパスを設定する.各経路は複数のリンクから構成 t )は対応する資源に対する資源割当要求を用いて次のように おける資源の使用率向 ( されることもあり,また,同ーのリンクが複数の経路で共有されることもありうる . 書ける. ・ l :! = 1Xj ( t ) U j ( t )=ー可ι .1に示す. 例を図 5 ( 5 . 8 ) 本節ではアクテイピテイ jは 3番目の出発/目的地点の組に関するパスを設定する 域幅に対応する.帯域幅が N ;で表されることになる として表す.すなわち, よ主~I= 圃 一一 - 一一一一一一一一ー一一一一一ー一一一一一一一一一一一一一一一一一ーム』←ー ー 同 一町内 /目的地点の組に対する物理的なコネクシヨンの集合をごちで表すとする ( ISj l=l j )・ =一 ηr - nF j=1, 2, ・, n )で表されるとする . また . J番目の出発 は時刻によらず一定で . Rj ( )ι (φs u ) t ( e g 或の和 j番目の出発/目的地点の組に対するパスを設定するとき,パスの必要な帯J j t: ︹ 2 : 以下のシミュ レーションでは簡単化のために資源の使用率叫 ( t )を場所 iの資源の価格 一 Z ことに対応する.場所 tにおける資源は物理的なコネクシヨン i( i=1 , 2, . . ., m)の帯 ( 5 . 9 ) とする . . . . . . ~ 第 5章市場モデルに基づく分散資源割当均衡的アプローチ 80 5 . 4 . 例題 1-感度系数の影響 8 1 買い手の戦略 0. 0040 FhdnUFhu ~::"‘ 、、、 ミ 、・ ‘ な U 内 UF3 υ 内 内 U 内 n u oo ( t-1 )となり,時間スロット tにおける値はその直前の時間スロ ッ トにおける値 Xk, j と同じになる.また , α=1のときは 5 . 1 0式は 0. 0000 0 Xk, j( t )= R jとなり,すべての資源の 割当婆求はコネクション kに対して行なわれることになる ¥ 、 、 20 ~ 40 ・ ・ ・ α,,0. 012 α,,0. 0 0 5 - α,,0. 0 2 ト 一 一 、 、 } 、 、 、 、 • 『 一 " 同on-. 60 ト 一 一 、 . . ' α戸O . ∞2 一 一 α,,0. 0 1 、 、 、 ︽ 内 ここで, α(0 : : ; α 竺1 )は感度係数を表す.臼= 0のときは 5 . 1 0式 は ね , j( t )= ーー ﹄ ( 5 . 1 0 ) υnυ 内 1 )+ α( R j-Xk, j( t-1 ) ) Xk, j( t )= Xk, j ( t- 内 要求 XkJ(t)を次のように決める nununu 一番安いコネクションを kで表す.時刻 tにおけるコネクション kに対する資源割当 3u3 2 2 1 1υ P 3 nunU unU DDDO D ここで Sjの中で コ - に対する帯域幅の要求)を価格 p ; ( t )に基づいて決めることになる N eEコ0ωω E OZEoo C2F伺三 u C伺ce﹀ j ( t ) (すなわち,コネクション 4 時間スロ γ トtにおいて買い手 3は資源割当要求 Xi, 80 他のコネク シ ョン i ε Sj 一 ・ . ヘ . 14 3 ト1 T f 日 』 7 三 F│ f 二 100 120 140 160 180 200 Time 0ヂ k)については次式にしたがって割当要求が決定される =( 1-α )X X;, j ( X;, j ( t ) ここで割当要求の総和(l::::~l X;, j ( t ) )はアクテイピティが必要とする資源の . 2 :資源の使用率の分散 ( V t . J(例題 1 ) 図5 ( 5 . 1 1 ) (均)と 等しくなる. 5. 4. 2 シミュレーションのパラメータ 以下のシミュレーションにおいてはパラメータの値を次のように決めた.資源(コ ネクシヨン)の種類の数は 1 0 0(m = 1 0 0 ),また,アクティピテイ(出発/目的地点 0 0(η=1 0 0 ) . 各アクテイピティが必要とする資源の量は一定で の組)の数も同様に 1 5 0, 0 0 0( 烏 =5 0, 0 0 0) . 場所 4における資源の量(コネクション zの帯域幅に相当 )N ; は 1と 1 , 0 0 0, 0 0 0の問の一様分布とする . したがって川の平均値(可)は約 5 0 0, 0 0 0 -4500 正 予 言 -50∞ ω , _ 。 、 ・ 〉 コ 由 @ー . c 5500 0 8 3 . . 昂 ・ 6000 〉 〈 ヤ ジ ム ・ ・ ・ ・ 一 .・ . 一 . ' ー. ', 平均はおよそ 0 . 1 ( =(R π)/( 高 xm))となる.ここでは簡単のためそれぞれの出 jX p y; ともある. 1 _ │ に/ 田=0∞2 ・ ・ ・ α0.012 α,,0.∞5 ー 戸 αコ0 . 0 2 一 一 α,,0. 0 1 6 5 0 0 0 20 40 60 80 100 120 T ime 140 発/目的地点の組に関して 5個のコネクシヨンが利用可能とする(すべての 3に対し ).同ーのコネクションが異なる出発/目的地点筒の組で共有されているこ てら = 5 ー 一. .唱 さ - - ジY となる.システムに存在する資源の総量は高 xm = 5 0 0, 0 0 0x1 0 0となり,また, 資源の割当婆求の総和は R jxn= 5 0,0 0 0x1 0 0となる .したがって資源の使用率の = . : . .. . . : < ' > _ 図5 . 3 :買い手の効用の平均(例題 1 ) 160 180 200 8 2 第 5章市場モデルに基づく分散資源割当均衡的アプローチ 5 . 5 . 例題 I I一価格情報の伝達における通信遅延の影響 8 3 5. 4. 3 シミュレーション結果 [ Bu y er sA ct i vi t i e s ) . 2に示 資源の使用率の分散を時間スロットの関数としてプロットしたものを図 5 e 田 u r c e s ) [ S e l l e r s・R T r a f f i c Sour c e s す.ここでは感度定数 αの値を 0 . 0 0 2から 0 . 0 2まで変えている.この図からわかるよ Channels D e s t i n a t i o n s うに αの値が大きくなると資源の使用率の分散はより早く減少する.これは αの値が 大きい場合は資源割当における変化も大きくなり ,より早く収束するからと考えられ る. また,図 5 . 2は資源の使用率の分散があるレベルに遼すると ,使用率の分散が振動 を始めることを示している.これは次のように説明できょう.安い資源に対する需要 が大きくなると,その価格が上昇する.価格が上昇すると需要が減少し,価格が下が . 2に見られるような振 る.また,需要が元に戻る.このような繰り返しによって図 5 動現象が起こると考えられる白 2で 0 . 0 0 5以下のとき),撮動現象は無視できるく ここで日の僚が小さいとき(図 5. 図 5. 4:チャネル割当のモデル らい小さく,資源の使用率の分散は収束する.これがここでいう資源の市場の均衡点 になっているといえる そこでは資源はほぼ均等に使用されていることになる. また,買い手の効用の平均 うに αが大きくなると ( j=1, 2 , . . , n)に買い手 jが対応づけられる.買い手は新たに けられ,また,呼源 j bの時間的な変化を図 5 u . 3に示す.この図からわかるよ b も同様に大きくなる.これは aの値が大きいときは買い手 u にとって有利な結果になることを示している.これは買い手はできるだけ安い資源を 使うべきという直観と合致する . 発生した呼びのためにチャネルの帯域幅を購入する,ここで買い手 jが時刻 tにおい て必要とする資源の総量を局 ( t )で表す . R j ( t )は呼源 1から発生している呼びと時 刻 tにおいて呼源 Jから新たに発生した呼ぴの総和となる. ここでは各呼びを収容するために必要な帯域幅は固定とする.ただし.呼びの発生 する個数が時間とともに変動するため Rjの値は時間とともに変動することになる. 5 . 5 例題 I I一 価 格 情 報 の 伝 達 に お け る 通 信 遅 延 の影 響 第 2の例題(例題 I I)では価格情報の伝達における通信遅延の影響を調べる.ここで 5 . 5 .1 エー ジェン 卜の戦略 は売り手が買い手に価格情報を定期的に時間間隔 Tでブロードキャストするものとす 売 り手の戦略 る.また,価格情報が買い手に到達するまでに遅延 D が存在するものとする. 4 9 ] . ここでは この例題ではチャネルには発生した呼びが割り当てられる [ 源 η 個の l 呼 ( nアクテイピティ)が存在し ,そこから発生する l 呼びを m 個のチャネル (m個の J- となる. M バ一 ( i= 1, 2, ・ ー, m)に対して,売り手 zが対応づ の資源の量 N;に対応する .チャネル i 一 一 チャネル tの帯域幅が場所 tの資源に対応し,チャネ J レtの帯域帽の大きさが場所包 也 n r 5 . 4) . Z一 わち , 一 一 資源)のどれかに割り当てる.呼びにはチャネルの帯域の一部が割り当てられる(図 例題 Iと同様にチャネル tの帯域幅の価格をチャネル zの使用率と設定した.すな ( 5 . 1 2 ) 第 5宝雲市場モデルに基づく分散資源割当均衡的アプローチ 84 5 . 5 .f 7 i J 窓口一価格情報の伝達における通信遥延の影響 85 る資源の量を L 1x ; : s )で表す.さらに時刻 tにおいて呼源 3で新たな呼ぴが発生し, 買い手の戦略 ここでは価格情報が Tの一定間隔でブロードキャストし,また,価格情報の伝達に D の遅延が存在することを仮定している.そのため買い手は現時点の正確な価格を )に対 それがチャネル zに割り当てられたとする.このとき場所 tの資源(チャネル i する割当要求 Xis)は 必ずしも知ることはできない.ここで時刻 tについて一番最後に価格情報がプロード X i, j (t )=X i J ( t一 )+L 1R j ( t )-L 1x ゐ( t ) t )で表す.すなわち , ( t )= L t / T J Tとなる.ここでいJ はz キャストされた時刻を ( ( 5 . 1 5 ) を越えない最大の整数を表す.買い手にとって時刻 tにおいて知りうる最新の価格は と書ける.ここで t ーは時刻 tの直前の時刻を表す.買い手の戦略は支出を最小にする 時刻 (t-D)における資源の価格,すなわち ,p i((t-D))(i=l, 2 , . . . , m)となる. L 1R j ( t ) )に対 ことであるから,買い手 Jは現在の資源の価格を推定し,新たな呼ぴ ( i ( ( t D ) )の情報から現在の価格を推定することを考える必要があ そこで,買い手は P しては一番安いと判断する資源に対して資源の割当要求をだす .ここ で場所 kの資源 る.ここでは,その推定の手法として次の二つの手法を考える. が時刻 tにおいて一番安い資源と買い手が推定したとしよう.買い手 jの場所 kの資 源に対する割当要求は 0次推定 時刻 tにおける場所 iの資源の推定価格を仇 ( t )で表す. 0次推定では時刻 X k, j ( t )= X k j ( r )+L 1R j ( t )-L 1x : i t) tにおける場所 zの資源の価格は時刻 ( t-D)における価格から変わらないものとす る.すなわち, 。 ( 5 . 1 6 ) となる.また,これ以外の資源 i ( iヂk )に関しては時刻 tにおける割当要求は i ( t )=P i ( ( t-D ) ) ( 5 .1 3 ) X i, j ( t )=X i, j ( t )-L1x~j(t) 与 ヂk ) ( 5 . 1 7 ) となる. となる.ここで買い手は一番安いと推定する資源(めからのみ新たな資源の割当要求 1次推定 1次推定では ( ( t -D) , t )の間の価格の変化率が ( ( t-2D), ( t-D ) )の問の 価格の変化率から変化しないものとする を出すので , L 1R j ( t )の値は k以外の tについてはゼロになる. すなわち, t- ( t -D) ゑ( t )= P i ( ( t-D ) )+{ P i ( ( t-D ) )-P i ( ( t-2 D ) ) }I~ "n¥'" 1 . _ _ _ ''>n¥ (t-D)一( t-2D) 5 . 5 . 2 ( 5 . 1 4 ) となる. シミュレ ー ションの I~ ラメータ 以下のシミュレーシヨンでは,二つの呼源 (n=2 )と二つのチャネル (m=2)が存 5 6M b i t s / s e c(ATM( A s y n 在する場合を考える.それぞれのチャネルの帯域幅は 1 ra n s f e rMode)ネットワークにおける典型的な帯域幅に相当)とする.資 c r u o n o u s τ' 新たな呼ぴが発生したとき,チャネルの帯域幅がこの l 呼ぴに対して割り当てられる b i t s/ s e cとすると 1 5 6Mbiぬ/ s e cの帯域幅は資源の総量が 1 5 6, 0 0 0で 源の単位を 1k 1R j ( t )で ことになる.ここで時刻 tにおいて呼源 jから新たに到着する呼ぴの量を L 5 6, 0 0 0 ) . 呼ぴはそれぞれの呼淑から 0. 1 4秒に l個の割 あることに対応する (N i= 1 表すものとする.同様に呼びがl 持刻 tで終了したときには割り当てられていた帯成幅 合でポワソン過程にしたがって発生するものとする.また, P 乎ぴの保留時間は平均 6 0 を解放することになる.ここで時刻 t において解放される帯域幅の量を L1 x~;(t) で表 秒の指数分布にしたがうものとする.これらの値は典型的な電話の呼び‘に対応する. す.添字の iはこの帯域幅がどの呼源から発生した呼ぴに対して割り当てられたかを 4k b i t s / s e cの帯減を使用するものとする(資源の使用量は 6 4とな それぞれの呼びは 6 表している P u l s eCodeM o d u l a t i o n )によって符合化された音声に相当する. る).これは PCM( ここで呼源 3からの呼ぴが時刻 tで終了したとする.さらにこの終了した呼びが チャネル zに割り当てられていたとする.このとき時刻 tにおいてこの呼ぴが解放す 5 . 5 . 3 シミュレーション結果 一 「園田・ ・ 8 6 第 5章市場モデルに基づく分散資源割当均衡的アプローチ 1 一… … 卜 0.0014 α 0t - 伽 t 附 … 5. 5 . 例題日一価格情報の伝達における通信遅延の影響 8 7 c 川) 1 s 剖I Ord町 erEs 副l i m 作 ma 剖l i 悶 。 o 町n 、(0 コ =1口sec) 4 0 0 0 4 2 0 0 ; : ; i II .~J 門 II¥ { ! r ' 凡 図5 . 5 :資源の使用率の分散(九)(例題 I I ) 図5 . 5と図 5. 6においては価格情報がブロードキャストされる間隔は Tは十分小さ A.~ r 一│却 門 k im │¥ 1 ' ¥. 1l ' 1│仏 には O次推定の場合と l次推定の場合が含まれている.シミュレーションの結果にお -5400 いては最初の 10分間はシステムの過渡的な状態を除くため省いてある.この図に示 -5600 1 0. 0 osecの場合は資源の使用率の分散%はほとんどゼロである.こ /~n 1 0. 5 1 1. 0 11 .5 、 1 I1 ;可 Ij 1 ¥: l l l l l 守 Ml . A " J l ' 刊M . 5は資源の使用率の分散v,.の時間的な変化を示している.この図 いものとする.図 5 すとおり通信遅延が I 1 2 . 0 I~ 1 2 . 5 1 3 . 0 TIme(min) 1 3. 5 1 4 . 0 1 4 . 5 1 5 . 0 れは買い手が一番安い(すなわち一番使われていない)チャネルを正しく選択すること ができ,チャネルの使用率のバランスが崩れたとしても直ちに修正することができる からである . しかし,通信遅延が存在するとき (D= 10 sec)は. 0次推定を用いた 図 5. 6 ・買い手の効用の平均(例題 I I ) 場合,分散 V uの値が振動する.これは貰い手が古くなった価格情報をもとに割り当 てるべきチャネルを選択するからである.これに対し 1次推定が使われた場合はシ ミュレーションの結果によると通信遅延がある場合でも振動の度合いは少なくなって j ( t )の変化が小さいときは l次推定の効果が発揮さ いる.これは遅延時間 D の簡の R れることを示している. . 6は買い手の効用 Ub ( =~ L ] = lUJ)の平均を示している.二つの推定手法にお 図5 bには大きな遣いはなかった.このことは推定手法の途いは資源の使用率 ける効用 U 圃 回 8 8 第 5章市場モデルに基づく分散資源割当.均衡的アプローチ のバランスに効果を発揮することを示している. 5 . 6 まとめ 本章で 7 )レチエージェントシステムにおける分散資源割当について市場モデルに基 づいた試みを述べた .通信ネットワ ークを題材とした こつの例題を取り上げ,シミュ 第 6章 レーシヨンを用いた評価を行なった.シミュレーション結果はここで提案した手法が 資源の使用率の分散に振動を起こすことを示している. この振動現象は大きな感度係数(例題 I ),または価格情報の伝達における遅延(例 協調プロトコル記述言語 AgenTalk 題日)によって引き起こされている.感度係数を小さくすること(例題 I )によって, または推定手法を導入すること(例題 I I )によって援助の度合いを小さくすることがで きる. ここで提案した手法は,まだあくまでも試みの段階にあり,より現実に即した状況 においても実験を進めるとともに,詳細な解析的なモデルを構築をすることは今後の 課題の一つである. また,価格の決め方によりバラエティを持たせることも考えられる.本章では単純 に資源の使用率を価格としていたが,売り手が独自に価格を設定することも考えられ る[ 2 9 ] . 価格の設定の仕方によりシステム全体の振る舞いも変わってこよう . また, ここでのシミュレーション実験では資源の量を中心に考え,質まで考慮に入れなかっ た.エージェントの効用に質を反映させる(例えばある資源の割当に対してはより高 い効用を与える)ことにより,同じ枠組で資源の質も扱えるようにすることができょ っ. 6 . 1 はじめに マルチステージネゴシエーションでは問題の構造に対応した情報の交換を規定し た.また,市場モデルでは売り手,買い手と いう構造を仮定し,その構造に基づく情 報の交換を規定した.このような協調メカニズムを用いて実際のマルチエージェント システムを構築していくためには,エージェント問のインタラクションにおけるアプ リケーシヨンレベルのプロトコル(協調プロトコル)を記述できるような枠組が必要と なる このとき種々多様なアプリケーションを実現しようとするとそれぞれの応用領 域に適した協調プロトコルが必要になろう さらにユーザの代わりとなって働くエ ー ジェントの実現では.ユ ーザ自 らプ ロトコルを記述することも考えられる.このため には,プロトコルをーから記述していくのではなく,既存のプロトコルをベースにし て段階的にプロトコルを定義することにより,応用に適したプロトコルを容易に実現 できることが望まれる. ] 聖で述べたようにいくつかの協調プロトコル記述言語が提案されているが,こ 第2 れらの言語では協調プロトコルを段階的に定義することを言語機能としてサポートし ていない.そこで,本章ではプロトコル記述にオブジェクト指向言語に見られるよう な継承機能を導入し,段階的なプロトコル定義を可能にした協調プロトコル記述言語 AgenTalkを提案する [ 3 1,3 2,3 3,3 4,3 可 . AgenTalkの段階的なプロトコル定義機能 により,あらかじめ設計したプロトコル群をライブラリーとして保存しておき,新た なプロトコルを記述する時は既存のプロトコルとの差分だけを定義すればよくなる. 特にマルチエージェントにおける種々の協調プロトコルを実験.実装するにあたって 8 9 9 0 第 6j 者協調プロトコル記述言語 A genTalk 6 . 2 設計方針 9 1 は継承機能を用いて定義することにより,プロトコルの体系化を行なうこともできる たものである.ここではこの有限状態機械の表現をス クリプト ( s cr i p t)と呼ん と考えられる. でいる 1 genTalkの設計方針を述べ,次にその機能を説明する.さらに記 本章では,まず A 述能力を検証するために契約ネ ッ トプロトコル 第 [ 5 5 ]を記述し,さらにそれをベースに 3, 4章で述べたマルチステージネゴシエーション [ 6 ]におけるような多段階の交渉 genTalkの言語機能を用い を可能とするように拡張する.さらに,拡張機能として A たメタレベル制御の考え方 [ 2 8 ]についても述べる. 6 . 2 設計方針 2 . エージェントごとのプロトコルの容易な特化 エージェントは,基本的には共通のプロトコルにしたがうものの,部分的に エージェント独自の振舞いをすることが必重要になる.例えば契約ネ ッ トプロト コルでは,具体的なタスク公告の内容はエージェントごとに異なってこよ う. genTalkではエージェント関数というスクリプトを特化するための そこで. A インタフェースを設けることにした.エージェント関数とは後述するようにス AgenTalkは協調プロトコルの形式的仕様を定義するというよりも,むしろ実際に クリプト内の状態遷移規則から呼ぴ出されるー穫のコールパック関数で,エー 動くプログラムの記述を目標にしている . さらに,エージエント自体がさまざまな枠 ジェントが守主自に定義できるものである.エージェント関数を用いてエージェ 組(例えば黒板モデル,プロダクションルール)で記述できるように,エー ジェントの ント独自の振舞いを記述することが可能になる . 実現方法までは深〈関わらず,プロトコル記述に着目する立場をとっている. 以下,協調プロトコルを記述する上で必要な機能とそれに対する Ag e n T a l kの設計 方針を述べる . 1 プロトコルにおける状態の明示的な記述 第 3, 4章で述べたマルチステージネゴシエーションの研究において,エージェ 3 エージエント内の複数協調プロセスの実現 f . 契約ネ ァ トプロトコルにおいてエージェントが綾数のタスク公告に対 例え I し同時に入札する場合を考えよう.この時,エージェントは複数の協調プロセ スに係わっていることになる すなわち,エージェント内に複数の協調プロセ スを表現できることが必要になる. ント閲のプロトコルをエージエント聞で交換するメッセージのクラス(契約ネッ トプロトコルにおけるタスク公告など)とそのメッセージを受け取った時にエー AgenTalkでは,複数のスクリプトを一つのエージェント中に動作させること ジェントがとるべき行動(メッセージハンドラ)により定義した.これを一般の で,複数の協調プロセスを一つのエージェント内に実現することにした . オブジェクト指向言語による記述と対応させると,メッセージの種類を決め, それに対するメソッドを定義することに相当する.しかし,これだけでは,協 genTalkでは段階的なプロトコル定義を実現するためにオブジェ 以上に加えて. A 調プロセスにおけるエージェントの状態を明示的には記述できないため,メッ クト指向言語にみられる継承の考え方を導入している.具体的にはスクリプト問で継 セージハンドラを定義・拡張することは容易ではなかった.協調プロトコルの 承を実現し,既存のスクリプトを拡張する形で新たなスクリプトを定義できるように 記述としては協調プロセスにおけるエージェントの状態を明示的に表現できる genTalkでは状態を明示的に定義できるため,スクリプトの継承におい している. A ことが必要だと考えられる. ては,状態を単位とした継承が容易に実現できる.この点が一般のオブ ジェクト指向 genTalkでは通信プロトコル記述でよく用いられている拡張有限状 そこで. A 言語におけるメソッドなどの継承とは異なる点である. E x t e n d e dF i n i t eS t a t eM a c h i n e ) [ 1 6 ]をベースに協調プロトコルを記述 態機械 ( することにした.拡張有限状態機械は有限状態機械に変数を許すように拡張し iエージエ ントがプロトコ jレ にしたがって行動するのを演劇において俳優が台本(スクリプト )にした がって演じるということになぞらえている. 9 2 第 6牽協調プロトコル記述言語 AgenTalk 6 . 3 基本機能 9 3 ZE 屯一 - 町一 Ei - 陪一 r 回一 1一 S - 寸- - 一 a-e唱 m -u二 n 沼 4 一市立川 一 a-民 一 屯・ 判一 一 鈎, 一ιH-aa a V一 時 "一3一 肌一 川一 同一 一 1一 町t 一l w一 d ロ B 一・ hJ 回 一 図6 . 1 :スクリプトの構成要素 6 . 3 基本機能 図6 . 2:スクリプトとエ}ジェントの関係 6. 3. 1 スクリプトの構成 はスクリプトにしたがって動くものの,個々の振舞いはエ}ジェン ト独自なものとす genTalkでは一つの拡張有限状態機械の表現をスクリプト ( s c r i p t ) 前述のように A と呼んでいる.スクリプ トSCiは,状態の集合 S i,初期状態 S O iE S I・状態遷移規 ; , 変数(スクリプト変数と呼んでいる)の集合v;に加えて,スクリプトに 則の集合 R ,継承先のスクリプト ローカルな関数(スクリプト関数と呼んでいる)の集合 Fi .1).すなわち 組で表現される(図 6 Lの SCi= く 8 O i, ~1 , ; VF iIi> となる . 1 1S ることができる e もし ,対応するエ ージェント関数が定義されていない場合は同名の レトの振舞いを定 スクリプ ト関数が呼ばれる.すなわち,スクリプト関数がデフォー l 義していることになる.したがって,既存のスクリプトを継承した新たなスクリプト を定義し ,その中でスクリプト関数だけを定義し直すことによって,スクリプトを段 階的に定義することもできる. 1 ここで継承の対象となるのは ,スクリプトの構成要素である状態,初期状態,状態 6 . 3 . 3 状態遷移規則 遷移規則 ,スクリプト変数.スクリプト関数である.継承された定義はあたかも自分 のところで定義されたかのように扱われる .継承の具体例は後の例題で説明する . 状態遷移規則はその規則が起動する条件を定義した条件部と条件部が満足する時 1 )メ ッセージの到着に関する条件 (ms g に実行さ れ る実行部からなる .条件部には ( 6 . 3. 2 エー ジェン卜とスクリプト 2 )スクリプト変数に関する条件 ( s c r i p t v a r c o n d i t i o π ), ( 3 )時間経過 c o n d i t i o n ), ( t i m e o u t c o n d i t i o n )が記述できる. に関する条件 ( エージェン トのプログラムから見ると ,スクリプトは一種の手続き群としてみるこ とができる.エージエントがある協調プロト コルにしたがって行動するとき は,エー ここで,メッセージはメ ッセージクラスのインスタンスとして表現される .メ ッ セージクラスはインスタンスとなるメ ッセージのスロ ッ トを定義し,メ ァセージはス ジエントのプ ログラムから対応するスクリプトを起動する .一方,スクリプトから み ロットと その値の組として表現される .メッセージクラス関でスロット定義が継承さ ると,エ ージェントはスクリプトの状態遷移規則から呼ばれる関数(エージエント関 れる . 2 ) . 数)を提供する(図 6 前述のようにエージェントごとにエ ー ジェン ト関数を用意することにより ,大枠で メッセージ条イ牛はメッセ ージクラス(ないしは,そのサブクラス),送り手,スロッ ト値に関する条件を記述したメッセージパタンによって定義する メ ッセージクラス 9 4 第 6章協調プロトコル記述言語 AgenTalk 6 . 4. メタレベル制御 9 5 閑にも継承関係があることにより,特定のクラスだけではなく,サブクラスのメッ p t n a m e1 αm b d a l i s t{ s c r i p t o p t i o n s }つ ( d e f i n esc r i p t 町 村: セージも条件に含めることが可能になる. 1 )他の状態への遷移, また,実行部には ( ( 2 )スクリプト変数の更新. ( 3 )スクリ s c 門: p t o p t i o n sー =: i n itial-state i n i t i a l s t a t e -name I: script-vars ( {s c r i p t -叩 rI( s c r i p t -叩 プトの実行制御. ( 4 )メ yセージの送信. ( 5 )スクリプト関数,エージェン卜関数の ri n i t i a ι 叩 l u e )} つ I:i山 町 its-fromsc .pt-name 門 呼び出しをはじめとする手続きが記述できる.スクリプト実行制御に関しては後述す る. (define-script-state ( s t a t つ) ) r u l e::= (:油田 c o n d i t i o n: d oa c t i o η) I : inherited c o n d i t i o n::= m s g c o n d i t i o nI t i m e o u t 叩 n d i t i o n I[msg-conditionItimeout-conditionIscript-var-condition [・ 凶 e s( { r u l e } 6 . 3. 4 複数スクリプ卜の同時実行 スクリプトから他のスクリプトを起動することができる.ここで新たにスクリプト m s gm e s s a g e c l a s s[ s e n d e rJ { s l o t n a m ev a l u ep a t t e r n }つ m s g c o n d i t i o n::= ( を起動したスクリプトを親スクリプトと呼ぴ,新たに起動された方のスクリプトを子 t i m e o u t -∞n d i t i o n::= ( t i m e o u tl i s p f o r m ) スクリプトと呼ぶ.スクリプトは基本的には並行的に実行される 2 d i t i o n::= ( t e s tl i s p f o 門前 s c r i p t v αr -印 n 一つのスクリプトを一つの協調プロセスに対応させ,複数のスクリプトを同時並行 図6 . 3 スクリプト定義のシンタックス(部分) 的に実行させることで,一つのエージェントにおける複数の協調プロセスを表現でき る.さらに,ここでは起動元の親スクリプトのスクリプト変数を子スクリプトの状態 6 . 3 . 5 スクリプ卜記述のシンタックス 遷移規則からアクセスできるようにしている .各協調プロセスに対応する子スクリプ ト聞の通信を親スクリプトのスクリプト変数を媒介にして行うことで,協調プロセス 間の競合解決メカニズムが記述できる. エージェントはメッセージを受け取ったとき ,現在実行中のスクリプト群の中か ら,条件部を満足させる状態遷移規則を探し出し,そのその実行部を実行する.この とき探索の順序は子スクリプトから毅スクリプトへと行なわれる 現パージョンの AgenTalkは CornmonL i s p上に実装している. AgenTalk自体は Common L i s pで定義したマクロないし関数群として実装され. AgenTalkのプログ すなわち,起動の 若い l 頓に探索が行われる.したがって,最初に起動されたスクリプトが最後に探索さ れることになる.すなわち,条件部が成立する状態遷移規則が複数のス クリプトに存 在する場合は,子スクリプトの状態遷移規則を優先させるようにしている.これは 例えば子スクリプトで実行すべき状態遜移規則がない時に,親スクリプトがパックグ ラム中から CornmonL i s pの関数が呼び出せる define-scriptとい うマクロでスクリプトの宣言を行い define-script-state . 3にスクリプト定義のシン というマクロでスクリプトの各状態を定義している.図 6 タックス(一部)を示す. : on-entryオプションにより,状態に遷移した時に実行さ れる手続きを定義することができる.状態の定義の中に,その状態で有効な状態遷移 規則を : rulesオプションで定義している.なお,言語仕様の概要を本論文の付録と してつけている. ラウンドで何らかの処理を行うことを想定している. 6. 4 メタレベル制御 起動元の λ クリプトの実行が呼び出されたス世 1)プトの動作が終了するまで一時的 に中断するモー ドもある.プログラミングの便宜上スナリプトをサブルーチンコールのように使うようにするためであ 2 る. ここでは AgenTalkの拡張機能のーっとしてメタ レベル制御の導入について述べ る.具体的にはスクリプトの実行制御を他のスクリプトから行なうことを考える.す 9 6 第 6章協調プロトコル記述言語 AgenT. 乱 . l k 6 . 4 メタレベル制御 9 7 表6 .1 :スクリプト実行制御プリミテイプ M e t a . l e v e l p r i m i t i v e d田 c r i p t i o n c 門p t n a m e a n d 叩 t i o n s{ αT 仰 m ent}・ i run-scripts n v o k e sas c r i p t D o m a i n . l e v e l e t u r n ー 叩l u eJ[c o n t 田 t J exit-script[r t e rmin a t 田 t h es c r i p もe x e c u t i o n suspend-script[c o n t e x tJ s u s p e n c l st h es c r i p te x e c u t i o n o n t e x tJ resume-script[c T田 umest h es c r ip t目 白u t i o n 表6 . 2 :スクリプト実行コンテキストへアクセスのプリミテイプ 図6 .4:メタレベル制御 なわち,プロトコル記述と同様にスクリプトから他のスクリプトを起動し.その実行 を制御できるようにする.メタレベル制御自身をスクリプトとして記述することによ り,スクリプト記述における継承機能が活用できるという利点が生まれる p r i m i t i v e d田 c r i p t i o n current-statec o n t e x t r e t u r n st h ec u r r e 凶 s t a t ename o n t e x t parent-contextc r e t u r n sac o n t e x to faimmediatep a r e nも child-contextsc o n t口 t 位 t s r e t u r n sal i s to fc h i l dc o n t o n t e x t r decendant-conteχtsc e t u r 田 al i s to fd e c e n d a n tc o n t 阻むS 具体的には,エージェントにエ ージェ ントの実行全体を管理する一種のトァプレベ ルのスクリプトを設け ,このスクリプトが必要に応じて,他のスクリプトを起動する 6 . 4 . 2 例外の通知 ようにする.このトップレベルのスクリプトは一種のメタレベルの制御を実現してい ると考えることができる(図 6 . 4 ) 実際の応用システムにおいてはいろいろな例外的な状況が発生する .ここでは例外 的な状況に対処するためのメカニズムを考える 6 . 4 . 1 スクリプト実行制御のプリミティブ 前述のスクリプト起動のプリミテイプ run-scriptはその返却値として実行コンテ キスト ( c o n t e x t )を返す.この笑行コンテキストを元にスクリプトの実行の中.tI:,一 . 1) . 時停止,再開できるようにする(表 6 まず,例外が発生したことを通知 するためのメッセージクラスを設ける.基本のクラスとして exceptionというメッ セージクラスを設け.種々の例外に対してこのクラスから派生したメッセージクラス を設ける. 例外的な状況はメ y セージの配送エラーなどいろいろ考えられるが,ここでは予期 しないメッセージが到着した場合を考えてみよう.ここで,笑行中のスクリプトは現 また,実行コンテキストからは現在の状態,殺の実行コンテキスト,子の実行コン 在エージェントが処理可能なメ 7セージに対応する状態遷移規則l をもっているとの前 . 2 ).スクリプ テキスト,及び子孫の笑行コンテキストを求められるようにする(表 6 提をおく.したがって,メッセージが到着したときにそのメッセージに対応する状態 トでは実行コ ンテキストをスクリプト変数に代入することによって,スク リプト変数 選移規則が存在しない場合は例外(エラー)となる .このエラーが発生したときは例外 に関する条件として状態遷移規則の条件部に記述できる.これにより,スクリプトの 通知メッセージを自分自身に送ることによって,例外が発生したことをスクリプトが 実行状態をままにスクリプ トの実行を制御するようなスクリプトを記述することが可能 知ることができるようにする. になる. 具体的にはトップレベルのスクリプトにおいて,すべてのメッセージに満足するよ 第 6章協調プロトコ J レ記述言語 AgenT a J k 9 8 6. 4 . メタレベル制御 うなメッセージパタンを条件部に持つ状態遷移規則を書いておく.この規則の実行 9 9 f i n d s c r i p t sc o n t e x t[ m e s s a g eJ e x c e p t i o nクラスのサブクラス ( m e s s a g e u n m a t c h e d ) 部には例外通知のメッセージ ( c h 阻 g e s c r i p tc o n t e x tne 却s c 門: p t[ u n p r o c e s s e d m e s s a g eJ のメッセージ)を自分自身に送るようにしておく. トップレベルのスクリプトは一番 図6 . 5 スクリプトの動的変更に用いられるプリミテイプ 最後に探索されるので,もし,他のスクリプトで処理される規則がない場合はこの トップレベルのスクリプトの状態遷移規則が実行されることになる.また,例外通知 の送出はトップレベルのスクリプトで行なわれるため,個々のユーザの記述するプロ トコルで記述する必要はない.ユーザが記述するスクリプトでは例外通知メッセージ ラスからスーパクラスに変更する場合も状態がもとのスクリプトにも存在すれば変更 できることになる. スクリプトを変更するのに伴って,スクリプト変数が少なくなる場合はそのスクリ の処理を記述することになる. ブト変数の値は一時的に待避される.将来,また,スクリプトの変更が発生して,一 時的に待避されている値がある場合は元の値に戻される.そうでない場合は初期値に 6. 4. 3 プロトコルの動的変更 関環境下での協調ではどのプロトコルにしたがうかをあらかじめ厳密に決めること 設定される. ができなかったり,または状況に応じてプロトコルを動的に変更できることが望まら れる ここでは,そのような状況に対応するためにスクリプトの実行中に動的にスク リプトを変更することができるようにすることを考える.これにより,例えば,最初 4 . 4 スクリプト動的変更の契機 6. 処理できないメッセージを受け取ったときにスクリプトの動的変更が試みられる. は基本的なプロトコルのスクリプトを起動しておいて,状況の変化に伴いより詳細な 処理できないメァセージを受け取ったときは, スクリプトに動的に切替えることが可能になる. メッセージ未処理 ( m e s s a g e u n m a t c h e d )の例外通知のメッセージが自分自身に送ら ここでは実行コンテキストを引数とする他のスクリプトに変更するためのプリミ テイプ ( C h 田 g e s c r i p t )を導入する AgenT aJkにおいてはスクリプト記述に継承 機能を導入しており,スクリプトの切替えにおいて継承関係を活用する ここでは継 承される方のスクリプトをスーパクラスのスクリプト,継承する方のスクリプトをサ ブクラスのスクリプトと呼ぶ 3 スクリプトの変更においては以下の条件を満足するこ とが必要となる. - 共通のスーパクラスのスクリプトを持つこと. -状態の扱い:現在の状態と同名の状態が存在する場合はそのまま移行する.同名 の状態が存在しないときは変更できない. スーパクラスからサプクラスのスクリプトを変更する場合は状態がそのまま継承され ると考えられるから,問題なくスクリプトの動的な変更が可能となる.また,サプク 3スクリプトの定義をクラスと見なし,起動したスクリプトをそのインスタンスとみなすと,オブ トップレベルのスクリプトにおいて れる.このメッセージに対するデフォールトの処理はトップレベルのスクリプトに記 述することができ,そこでは受け取ったメッセージを処理できるスクリプトを探し, そのスクリプトに現在の実行コンテキストのスクリプトを変更し,処理を継続するこ とを行う 4 ここで変更先のスクリプトの候補を知るために f ind-scriptsというプリミテイプ を用意する.これは,実行コンテキストと未処理のメッセージをオプションを引数に . 5) . とり,現在の実行コンテキストから変更可能なスクリプトのリストを返す(図 6 メタレベル制御としては変更可能なスクリプトの候補を求め,その中から得られた スクリプトに実行コンテキストのスクリプトを変更することになる スクリプトの変 hange-scriptというプリミテイプを導入する(図 6 . 5 ) . これはスクリ 更のために c プトの実行コンテキストと変更後のスクリプトを引数にとり,実行コンテキストのス h a n g e s c r i p tにオプショナル変数として,未処理の クリプトを変更する.なお. c メッセージを渡すことができる.これは満足される状態遷移規則がないという状況で ジェクト指向言語においてクラスのイン λタン λ を実行時に変更すること (CommOD Lispにおける 油田 g e c l a s s )に対応する 4各 λ クリプトにおいてメ γセージ未処理の例外通知の処理をカスタマイズすることも可能である. 1 0 0 第 6章協調プロトコル記述言語 AgenT 乱l k 6 . 5.記述例 1 0 1 スクリプトが変更される場合.スクリプトを変更するときに同時に未処理のメッセー ;;; s c r i p td e c l a r a t i o n ジの処理を行うためである.図 6 . 6にトップレベルスクリプトの例を示す. (define-script top-level ( ) :initial-state ' s t a r t ) 6 . 5 記述例 ;;; s t a t et r a n s i t i o nr u l e s AgenTalkの機能を検証するために契約ネットプロトコルと AgenTalkの継承機能 を活用した契約ネットプロトコルの拡張を記述する.また,前述のメタレベル制御の 例についても述べる. 田 script-state ( s t a r tt o p l e v e l ) ( d e f i : r u l e s ;; t h お r u l em αt c h e sαmessage-unmatchedm白 s a g e . 且m atched : m e s s a g e? m s g ) ((:when ( m s gmessage-u . . β η d αs c r i pt凶 h i c h叩 nh a n d l et h em e s s a g e( ? m s g ) . 6 . 5 . 1 契約ネットプロトコルの記述 , .contextreferst ot h e凶 作 間 te x e c u t i o nc o n t ι ι ; ;n o t e仇 a tCommonL i s pf 1 1 : ηc t i o n s j m a c r o sc a nb eu s e dh e r e . マネージャの記述 : d o( l e t( ( c o n t e x t l i s t (descendant-contexts context))) 契約ネットプロトコルにおけるタスク割当は,基本的には次のように行われる. ;; t r ye a c hc o n t e x ti nt h ede s c e n d a n lc o n t e x t s . , ωk まず,実行すべきタスクを持っているエージェント(マネージャ)がタスク公告 (T ( d o l i s t( t h i s c o n t e x t context-lェ s t ) Announcement)メッセージを放送する.これに対して,タスクを請け負いたいエー ;; 1 8 α η α: p p r o p r i a t es c円: p tfound? ジェントが入札 ( B i d )メッセージを出す.マネージヤが入札の中から実際にタスク ( l e t( ( s c r i p t s( f i n d s c r i p t this-context ? m s g ) ) ) を割り当てるエージェント(コントラクタ)を決定し,落札 ( w h e ns c r i p t s ( A山仰刈メッセージを出 ,changethe口 ecutingsc門 pto ft h i sc o n t e x t ;; i ffound す. ; ;t ot h et o po ft h es c r i p tl i s t このような契約ネットプロトコルにしたがうマネージャの振舞いを AgenTalkを ( c h a n g e-script this-context ( c a rs c r i p t s ) ワ 田g ) 用いて記述するには,まず,これらのメッセージの種類をメッセージクラスとし ;; e x i tt h ed o l i s t . て定義する.次にマネージャの状態遷移(図 6 . 7 )をもとにタスク割当のスクリプト (cnet-manager)を定義する.具体的なプログラム例を図 6. 8に示す. $のマクロは スクリプト変数へのアクセス,また!のマクロはエージェント関数の起動を表して ( r e t u r nn i l ) ) ) ) ) ) ;; o t h e rd e f . 山 l tr u l e ss u c hω h a n d l i n gamessage-not-deli vered ; ; me s s a g es h o u l dcomeh e r e. . . いる 5 このスクリプトは割り当てるべきタスクが発生した i 待を出発点としている. すなわち,タスクが発生した時にエージェントはこのスクリプトを起動することにな ;; t h e1 αs tr u l em αt c he san 世m e s s a g e . る. ( : w h e n( m s gm e s s a g e ) 状態 s ta . r tではエージェント関数也且ounce-taskを呼ぴ出している.このエージエ ント関数はタスク公告を放送し,タスク割当の I Dを返すという仕様になっている . 5ただし!がマクロ名の位置に現れない場合(図 6 . 8中では!($ c o n t r a c t i d ) )は!に続く l i s p 式(この場合ステリプト変数 c o n t r a c ti dへのアクセス)をパターンマッチ時に評価することを表して いる.詳しくは付録を参照されたい. ;; s e n dane x c e p t i o nn o t i f y i n gmess α , g et oi t s e l f( s e l f ) : d o (send-message s e l f 'message-unmatched : m e s s a g em s g ) ) )) 図6 . 6 トップレベルスクリプトの例(一部) 第 6寧協調プロトコル記述言語 AgenTalk 1 0 2 6 . 5 . 記述例 1 0 3 (define-script cnet-m 日 a ger (task) :initial-state ' start :script-vars (bid-queue contract-id)) t at e ;;; starts ・ s c r i p l :cnt司 m a . na ger (define-script-state (start cnet-manager) ; ;b r o a d c αs tatask-臼 nouncementmess αg eb yi n v o k i n gt h ea g e n tf u n c t i o nannounce-task. :on-entry (progn (setf ( $ contract-id) ( !a nnounce-task)) (goto-state ' 回nounced))) t a t e ;;; announceds (define-script-state (祖国 uncedcnet-manager) :ru1es " 山 a i t f o rαbidmess α , g ew i t ht h e5αmecontmct -i d . ((:when (msg bid : c ontract-id !($ contract-id)) : d o( i f (! send-award-immediate1y-if-possible msg) (goto-state 'success) (push msg ($ bid-queue)))) ;; c h e c kat i m e o u tcond i t i o n L e g e n d 仁コ sta C ' a l s t at e コ 川 抱 唖トー ・ ( when (timeout (task-expiration task)) : do ( i f( ! send-award-if-possib1e) m e s s a g e (goto-state ' success) f u n c t i o ns c r i p t l a g e n tf u n c t i o nc a / l ふ ) 白 e o a r e +し 血 e n e 、 s s) ut e tJ c c 司 sp、 r 41 r ec -VA qua 令LU+Lw ts a- l P( MMl 'u b te 冶 rv' s c r sst ee -e n c cnエ ue s f on 'e : . . , d ;︹ 図 6 . 7 :契約ネットプロトコルにおけるマネージャの状態遷移 (goto-state ' fai1ure))))) ;i; failures t αt e ( define-script-state (fai1ure cnet-manager) : on-entry (exit-script ni1)) 図6 . 8 契約ネ ッ トプロトコルにおけるマ ネージャのスク リプ ト定義 1 0 4 第 6章協調プロトコル記述言語 AgenTalk 6 . 5 記述例 1 0 5 c n e tcontractor sc r i pl Sc r i p t: c n e t c o n 包r a c t o r 図6 . 9・契約ネットプロトコルにおけるコントラクタのトップレベル ~ Sendab i dimmed l at el y ? したがって ,エージェントごとに具体的なタスク公告を定義できる.状態 announced Y e s/ . . . . . . _地 Di v i d ei nt os u b t a s k s ? では入札のメッセージを待つ状態遷移規則と ,時間切れを i i視する状態遷移規則の 二 つが有効になっている fai lureに遷移した時は単にス また,この例では状態 success, exi t-script)ようになっている. クリプトの笑行を終了する ( Yes~ No I nvokec net-manager s c r i p lわr eachs u b l a sk コントラクタの記述 タスク公告に対して ,入札を出すコントラクタの振舞いはどうなるだろうか?も し,対象になっているタスクが自分のところで実行できる場合は,そのまま判断して 返答すればよいが,もし,自分のところだけでは実行できない場合は , タスクを綾数 : : : _ → 砂 Bi d (bid-submi~ed ) のサブタスクに分解し,個々のサプタスクを他のエージェントに割り当てることも考 えられる . この場合,生成されたサプタスクごとにタスク割当のスクリプトを起動す ることになる . この よ うな振舞いはスクリプトの中から他のスクリプ トを起動する機能を用い ることによって記述できる .例えば 一種のトップレベルのスクリプトでタスク公 告を監視していて,適当なタスク公告が来た場合に , コン トラクタのスクリプ ト ( cnet-contractor)を起動する(図 6 . 9 ) . cnet-contractorのスクリプトでは,例 えば,サプタスクへの分解が必要か調べ,もし,必要であれば各サブタスクに関して cnet-m日 agerのスクリプトを起動して,サプタスクの割当を行う.この場合,すべ てのサプタスクの割当ができた段階 (successの状態)でもとのタスク公告に対して入 図6 . 1 0 :契約ネットプロトコルにおけるコントラクタの状態遷移(例) 第 6章協調プロトコル記述言語 AgenTalk 1 0 6 6 ふ記述例 1 0 7 ・ SC 同p : tcn t-manager-with-directed-award I n h e r i 四 s f r o m:cnet-manaoer ミトー 、 ' 1" " " ト ー A町 e p t a n c eI R e f u s a l (define-script cnet-m 坦 a ger-vith-directed-avard ( t日 k contractor) : initial-state 'check-directed-avard :inherits-from cnet-manager) (define-script-state (check-directed-award cnet-managerwith-directed-award) : on-entry (ば(! directed-award-made-p) (goto-state 'directed-award-made) (goto-state 'start) ) ) (defi田 -script-state (directed-award-made cnet-manager-with-directed-award) : rules 図6 . 1 1 : 指定落札を導入した契約ネットプロトコルの拡張 ((:when (msg accept回 ce : c o ntract-id !($ contract-id)) : d o (goto-state 'success)) キしする(図 6 . 1 0) . (:when (msg refusal : contract-id !($ contract-id)) do (goto-state 'failure) ) )) 6 . 5. 2 契約ネットプロトコルの躯張 レの拡張として,タスクを割り当てるべきエージェントがあら 契約ネットプロトコ J かじめわかっている場合の指定落札 ( D i r e c t e dA切 α 1 ' d )メッセージが定義されている [ 5 5 ].この場合は指定落札を受け取 ったエ ージ エン トは受理 (Acceptanc e )か拒否 ( Re βL S a l )の返答を送ることなる . この拡張を導入したときのマネー ジャの状態遷移は図 6. 1 1の ようになる.こ の図に示すように cnet血 担a ger-with-directed-awardのス クリプトは基本的な契約ネットプロトコルのマネジャのスクリプト cne七ー 皿 担agerを もとに定義できる また,このプログラム記述例を図 6 .1 2に示す . 図6 . 1 2 : :指定落札を導入した場合のスクリプト定義 1 0 8 第 6章協調プロトコル記述言語 AgenTalk 6 . 5 . 記述例 1 0 9 6 . 5 . 3 マルチス テー ジネ ゴシヱーシ ョンの記述 第 3, 4章で述べたマルチステージネゴシエーションは契約ネットプロトコルを一般 化したものと考えることができる [ 6 J . 契約ネットプロトコルでは基本的にはタスク公 告,入札,落札の過程でタスクの割当が決定される .それに対して,マルチステージ ネゴシエーシヨンでは局所的な仮の割当の影響を繰り返し交換することを許す.そこ では大域的な制約を満足させるためにエージェント聞で交換すべき情報を定義してお S c r i p t: msn-manager 玄a I n her i t sf r o m: cnet嶋田 anager-with-directed-awa り,事j 当が最終的に決まるまで,何度も仮の割当がやり直される場合もある. 7) レチステージネゴシエーションにおけるこのような割当の再試行を契約ネット レに導入することを考えよう.そのためには,まず.タスク公告,入札, プロトコ J 落札を取り消す取消 ( G a n c e l )メッセージ ,実際に割当を決定するコミ γ ト(Gommit) メッセージ,およびその確認を行うコミット終了 ( Gommitted)メッセージのメッセー ジクラスを追加する この時,マネージャの状態遷移は図 6 . 1 3に示すように拡張き れる 6 契約ネ γ トプロトコルにおいて割当が成功したという段階 ( s u c c e s sの状態) は,仮の割当となる .仮の割当が実現できた後,落札を送ったエ ージェントに対し, コミットメ 7セージを送り,割当をコミットすることを依頼する コミットメッセー ジを送ったエージェントから,コミット終了メッセ ージが帰ってきた段階で割当が最 終的に決定することになる . また,ここでは取消メッセージを受け取った時は,単に f a . i l u r eの状態に移行することにしている . 一度割当に失敗した時,繰り返して割当を試みる場合は,ここで述べたスクリプト を呼び出す貌スクリプトにおいて再び割当を試みるべきか決定する. (岡 田 ー 阻 a nager) このように割当の再試行に関する部分を別のスクリプトとして独立に記述できる.ま た,同様にコントラクタに関してもタスク公告自体が取消になる可能性があるので, 取消メッセージが来るかチェックし,取消があった場合はサプタスクのコントラクタ (の候補)に対して取消メッセ ージを送るように拡張することになる. また,マルチステ ージネゴシエー ションでは一つのエージェントに複数のネゴシ エーションの過程が存在し ,それらがエージェント内の共通の資源を使用することに 図 6. 1 3 ・タスク割当における再試行の導入 よって競合関係 になる場合がある . トップレベルのスクリプトのスク リプト変数を用 いて共通の資源の使用状況を記述し,個々のネゴシエーションの過程を記述している 8オリジナ J レのマルチステージネゴシエーションでは指定落札に相当するもののみを対象としていた が,ここではより一般化した場合を想定している ニ ー亀 』 ー 一 一 一 一 一 一 一 一 一 一 一 L _ 冒 . . 一 国 1 1 0 第 6章協調プロトコル記述言諮 AgenTalk 6 . 5 記述例 1 1 1 : tc n e l m a n a g eトw l l h c o u n l eト p r o p o s a l S c r i p I n h e r i t s f r o m :c n e t m a n a g e r (define-script cnet-m 坦 a ger-vith-counter-proposal ( t回 k) : s c rエpt-vars ( c o u n t e r p r o p o s a l l i s t ) :inherits-from cnet-manager) ;;; r e d e f i n et h eannounced5 t a t e (define-script-state (announcedcnet-manager-vith-counter-proposal) : r u l e s ( ;; s t αt etm 旧 i t i o nr u l e sa r ei n h e門 t e d . :inherited ; ;a5 t αt et m n s i t i o nr u l ew h i c hh a n d l e 5ac ounter-proposalmeS5 αg ei sadded 図6 . 1 4 :逆提案を導入した契約ネ y トプロトコルの拡張 (: vhen ( m s gc o四 ter-proposa1 : c o n t r a c t i d! ( $c ontract-id)) ;jTI 出 子スクリプトから参照,更新することにより,共通資源の使用に関する競合解決が表 現できる . O T ぜc o u n t e rp r o p o s a l s : d o( p u s hmsg ($ counter-proposal-1ist))))) ;;; r e d e f i n et h efa ilure5 t αt e . (define-script-state ( f a i 1 u r e cnet-manager-with-counter-proposal) 6 . 5. 4 メタレベル制御の例 ;; c h e c kc o u n t e rp r o p o s a l sr e c e 叩e d5 0i f α r . レ制御,具体的にはスクリプトの動的変更機能を契約ネットプロトコ 次にメタレベ J ルを例題として説明する.基本的な契約ネットプロトコルではマネージヤは原則とし てタスク公告に対して入札を待つことになる.文献 [ 5 5 ]にあるように入札に対して即 i r n m e d i a t er e s p o n s e )が仮に送られてきたとしよう 時返答 ( これは入札が行えない : o n e ntry ( i f( 1r etry-using-counter-proposa1-p) ;; g ob αc kt ot h es t a r ts t a t e ( g o t o -s t a t e' s t訂 t ) 田 .itthe ロe cv .t i o no ft h i 5S C円: p t . ( e x i t s c r i p tn i 1 ) ) ) エージエントがその理由(忙しい,入札資格無し,タスクの優先度が低いなど)を返答 するものである .また,タスク公告に対して逆提案 (CounterProposal)を出してくる ことも考えられる.基本的なプロトコルでは逆提案に対してマッチする状態遂移規則 が存在せず,みすみす有益な情報を失ってしまうことになる. n n o U I l c e dの状態におい 逆提案を採り入れた契約ネットプロトコルの拡張では状態 a て入札に加えて逆提案を処理できるようにする必要がある.例えば,受けとった逆提 案を保存しておいて,期限までに適当な入札が来ず,落札が行なえなかったとき,こ 図6 . 1 5 :逆提案を導入した場合のスクリプト定義 1 1 2 第 6章協調プロトコル記述言語 AgenTalk 6. 6 . 議論 1 1 3 <.基本的なプロトコルから始めて,必要に応じてプロトコルを変更することができ る.例えばエージェントの筒でどのプロトコルを使うか合意をとるときには基本的な レのみについて合意をとり,後から必要に応じて,自動的に特定の拡張フ・ロ プロトコ J mes sag ea r r i v e s aCou n t erPr o po s al whl i ea tt hea n no u nc edst a t e トコルに変更するということが笑現できる. ・ ame s s a g e -unma t ch e d I S c n 同 c n e " t ma ng . wl 栴 4四 u n t e r " p r o po 8 a l ト exc 句 , t i onoccurs l!!'恒例制問~cMt" man8g"r 6 . 6 議論 f i ndas cr i p twh i chcan 信 m自 国ge han d l et h プロトコル記述 におけ る継承機能: ここで述べたスクリプトの段階的な記述の例は ( find-ocripta) 状態を新たに追加するものであった.段階的なプロトコル記述として,その他に状態 ↓ を詳細化することが考えられる.この場合,継承元のスクリプトの状態遷移規則のう chang et h eexecu t i ngs c r i p t ac co r d 的 ,' g l y ち,詳細化された状態へ遷移するものについては,単純な継承機能だけでは,再定義 (change-ocript) ↓ が必要になる ---今 [ 3 7 J . 並行オブジエクト指向言語においても,同様に継承を用いたプロ グラムの再利用がうまくできない場合があることが指摘されており,いくつかの解決 手法が提案されている [ 4 6 J . スクリプトの再利用を促進するようにスクリプトの継承 機構を拡張することは今後の課題である . 図6 . 1 6 : スクリプトの動的変更例 また,一般のオブジェクト指向言語における継承では,多重継承が議論の対象とな れまでに受けとった逆提案を調べ,内容を変更したタスク公告を再び放送することが . 1 4に , 考えられる.このように拡張を行なったときの 7 ネージャの状態遷移図を図 6 . 1 5に示す. また,プログラム例を図 6 る.有限状態機械(スクリプト)の継承において多重継承を導入することは,複数の異 なる有限状態機械を継承して新たな有限状態機械を定義することになる 継承した複 数の有限状態機械をどのように組み合わせて新たな有限状態機械とするべきかは検討 の余地が残っており ,現状では単一継承としている.スクリプトの継承機能に多重継 もちろん,最初から拡張されたプロトコルを記述したスクリプトを起動するこ 承をいかに導入するかも今後の課題として残っている. とも考えられる.しかし,いろいろな拡張も考えられ,最初からどの拡張を使っ たらよいかはわからないとすれば, まず,最初は基本の契約プロトコルのスクリ 分散探索との関係: マルチエージェントにおける問題解決の多くは分散探索の枠組で プトを起動し ,笑行スクリプトの変更機能を活用すればよいことになる 考えることができる この場 合,基本の契約ネットプロトコルにおいて counter-proposalのメッセージが到着 したとき. message-un 血a tchedの例外通知が行なわれる.例外通知に処理として find-scriptsを用いて処理できないメッセージに対応する状態遜移規則を含むスク [ 3 9 J . 分散探索のアルゴリズムはエ ージェント閲のメッセ ー ジの 2 4,6 4 ] ) . これらのアルゴリズムをスク 交換の形でとらえられるものも多い(例えば [ リプトの形で記述することにより,種々の領域への応用を容易にすることも考えられ る. リプトを見つける.これによって ,逆提案の拡張をした契約ネットプロトコルのスク リプトが見つかり,このスクリプトに実行 コンテキストのスクリプトが変更される ( 図 6.16). このような機能を用いることにより,最初から特定のプロトコ Jレを決めることな メタレベル制御: 本章で述べたメタレベル制御では,処理不能のメッセージが到着し たとき,スク リプトを動的に切替えるといっ方式を提案した.エ ージェントが複数の 協調プロセスにかかわっている場合に処理不能となったメッセージがどの協調プロセ 1 1 4 第 6章協調プロトコル記述言語 AgenTalk スに属するかは,単純には識別できない.実際にはメ ッセージクラスに協調プロセス を識別するための識別子を格納するスロットを設けるなどのプログラミ ング上の工夫 が必要となる.これらを言語機能としてサポートするのは今後の課題として残ってい る. 工ー ジ工ントプラ ニング スクリプトはプロトコルにおけるエージェントの状態遷移 第 7章 を表現したものである,したがって,エージエントの動作(プラン)を表現することも 可能である.特に動的にスクリプトを修正するような機備を導入することによ って, 結論 エージェントのプラニングにも対応することが可能となろう .これによりスクリプト を用いて協調プロトコル記述とプラニング記述を一つの枠組のなかで行なうことがで きるようになる.スクリプトの動的変更も今後の課題として残っている. 6. 7 まとめ 本章では,マルチエージェントにおける協調プロトコルを記述する 言語 Ag e nTalk を提案した . A genTalkの設計方針を述べるとともに契約ネ ッ トプロトコルならび 拡張された契約ネットプロトコルを記述することにより . A genTalkの記述能力の検 証を行った. AgenTalkでは 本論文ではマルチエージェントシステムにおける協調メカニズムとしてマルチステー ジネゴシエ ーシヨン,市場モデルに基づく均衡的アプローチによる分散資源割当を提 案し,さらにこのような協調メカニズムを実装するための協調プロトコル記述言語 AgenTalkを提案した.以下にその成果を要約し,今後の課題を述べる. 第 l撃で本研究の背景を概説するとともに本研究の目的を明確にした.さらに第 2章でマルチエージェントシステムにおける協調メカニズム研究状況の概要を述べ, 本論文の位置付けを明確にした. 第 3章では協調プロトコルの一例としてマルチステージネゴシエーションを取り上 げ,そこで扱っている問題の定式化を行なった.具体的にはシステム全体の目標(グ - オブジェクト指向言語に見られる継承機能を湾入した段階的なプロトコル記述 - エージェントカ匂虫自にプロトコルをカスタマイズするためのインタフェース ローパルゴール)と個々のエージェントの目標(サブゴール)を考慮に入れた探索空間 を定式化した . さらに定式化した探索空間に基づいてエージエント間で交換すべき 情報を明らかにし,複数のグローパルゴール悶の競合を検出する手法を提案した.続 を実現している.これにより,種々のプロトコルをライブラリとして蓄積し,アプリ ケーションに依存したプロトコルを記述しやすくしている. く第 4章ではマルチステージネコ・シエーションにおける探索戦略(3フェーズプロト コJ レ)の定量的な評価を行ない,制約が弱い時により効果が大きいことを明らかにし た. 第 5章では市場モデルに基づいて資源割当を行なう“均衡的アプローチη を提案し, シミュレ ーション笑験を通して市場モデルの適用可能性を示した ここではメッセー ジの交換は資源の売り手と貨い手の問に限定されている.さらにエージェント問で交 換される情報は市場モデルに基づき価格情報の通知(売り手から貿い手へ)と資源割 当要求(買い手から売り手へ)に限定されている .マルチステージネゴシエーションで は資源の割当が行なうか行なわないかのゼローの問題であったのに対し,ここでの市 1 1 5 1 1 6 第 7j哲結論 1 1 7 場モデルの応用では割り当てる資源の量を扱えるようになっている.通信ネットワー 上の話にとどまらず,実際のシステムの構築に応用していく絶好の機会であるともい クを題材として例題を取り上げ,シミュレーション実験により提案手法の性質を調べ える.実システムへの応用と,理論・モデルの構築がうまく互いにかみあっていくよ た.資源の使用事の均等化を目標にした実験の結果,各資源の使用率の分散に振動を うに今後も研究をすすめていきたいと考えている. 起こすことがわかったが,感度係数を小さくしたり ,価格情報の遅延に対して推定手 法を導入することにより,振動の度合を小さくできることを示した. さらに.第 6章では協調プロトコルの記述言語 AgenT aJkを提案した. A genTalk ではプロトコル定義に継承機構を導入し,プロトコルの段階的定義を実現した.さら に応用領域にカスタマイズするためのインタフェースを設けているのが特徴である. genTalkを用いて記述 契約ネットプロトコルならびにそれを拡張したプロトコルを A することにより,プロトコルの段階的定義機能を実証した.さらに AgenT 叫kで提案 した枠組により協調プロトコルのメタレベル制御を実現できることを示した. 本論文では,探索空間のモデル(マルチステージネゴシエーション)やエージェント の組織構造(市場モデル)に基づいてエージェント問で交換すべき情報を規定した. ここでは,問題の構造,エージェント組織の構造が求解の途中で変更することがない 静的な場合をとりあげていた.しかし,実世界のアプリケーションではゴールが途中 で新たに追加されたり,または消滅したり,問題の探索空間が途中で変化することが 考えられる.さらには,市場モデルにおける買い手,売り手が増加,減少するように エージェントの組織構造が変化することも考えられる.このような動的な変化に対処 できるように本論文で提案した協調メカニズムを拡張していくことは今後の課題とし て残っている.これについては,協調プロトコル記述言語 A genTalkで提案したメタ レベル制御の考え方を導入して,種 A の問題の変化に対応することが解決手法のーっ と考えており, A genTalkを用いて種々の協調メカニズムを記述実験をすすめていき たいと考えている. 現在,協調メカニズムの研究は,個々の事例を題材に研究している場合が多く,統 一的なモデルなり理論は , これから作られていくという段階にあるといえる.そこで は本論文で述べた市場モテ'ルの応用にも見られるように単に計算機科学の中だけにと どまらず,社会科学などとの接点も見られる.今後,種々の分野との連携から新しい アイデアも生まれてこよう. また,工学的な見地からみれば,高性能の計算機が安価に入手できるようになり , さらに高速なネットワークが普及しつつある今の状況は,協調メカニズムが単なる机 1 1 8 第 7章 結 論 謝辞 本論文をまとめるにあたり東京大学工学部電子情報工学科石塚満教授には終始懇切丁 寧な御指導,御教示を賜わりました .ここに謹んで感謝の意を表します . また,内容について多くの御指導,御助言を賜わりました東京大学工学部電子情報 工学科斉藤忠夫教授,東京大学工学部電気工学科目中英彦教授に深〈感謝致します . 東京大学工学部電子情報工学科近 山隆助教授,東京大学生産技術研究所喜連川優助教 授,東京大学工学部電子情報工学科相田仁助教授には多くの有益な御教示を賜わりま した.厚〈御礼申し上げます. 本研究は主に NTT情報通信処理研究所,コミュニケーション科学研究所にて多く の方々の御指導を得て行なわれました .研究の機会を与えて頂くともに,御指導頂い た放村上国男博士(元 NTT情報通信処理研究所知識処理研究部長),大阪大学基礎工 学部情報工学科西川清史教授(元 NTTコミュニケーション科学研究所長),同志社大 NTT 学工学部知識工学科 i 可悶司教授(前 NTTコミュニーケション科学研究所長), コミュニケーション科学研究所松田晃一所長,中野良平グループリ ーダ,大豆延康グ ループリーダに厚く御礼 申し上げます . また,京都大学工学部情報工学教室石田亨教授(元 NTTコミュニケーション科学 研究所主幹研究員)には本研究を進めるにあたり終始丁寧な御指導,御教授を賜わり ました .こ こに漆〈感謝致します. n i v e r s i t yo fMassachu s e t s s マルチステ」ジネゴシエーションの研究に関しまして U a tAmhe r s tにおいて熱心な御指導を頂きました V ic t o rR .Le s s er教授に感謝致しま す. また, α釘 ks o nUni v e r s i t yの Sus a nE.Conry教授 , Ro b e r tA.Meye r教授に は有益な御討論を頂きました ここに感謝致します. 市場モデルの応用の研究に関して NTTコミュニケ ーション科学研究所に招科教授 として滞在さ れた U n i v e r si t yo fCal i f o r n i a ,l r v i n eの須田達也教授に多くの御指導, 1 19 1 2 0 謝辞 御助言を頂きました.ここに感謝致します. また,多くの御討論を頂いた NTTコミュニケーション科学研究所の赤泊淳一氏, 横尾真氏,機粛之氏,西部喜康氏(現 NTT情報通信研究所).松原繁夫氏,上野磯生 氏,吉田仙氏をはじめ,皆様に感謝致します.また. NTT光ネットワークシステム 研究所の藤井伸朗氏,依田育生氏には本研究で使用したネットワーク構成管理データ ベースを提供して頂きました.ここに感謝致します 参考文献 また,協調プロトコル記述言語 AgenTalkの言語仕様検討ならびに笑装に御助力頂いた京都大学工学部情報工学教室 石田研究室の皆様に感謝致します. 本論文をまとめるにあたっては NTT研究開発推進部研究広報・渉外部門山田豊通 部門長,山内規義担当部長(現 NTTマルチメディアネットワーク研究所)をはじめと [ 1 ] Barbuce 釦 u ,M.andFox,M.S . : COOL:A Languagef o rD e s c r i b i n gC o o r d i n a t i o ni nM u l t iAgentSystems, P r o c .F i r s tI n t e r n a t i o na lCo ηf : e r e n c eonM u l t i 9 5 ), p p .1 7 -2 4( 1 9 9 5 ) . AgentS y s t e m s(ICMAS' する皆様のあたたかい御理解を頂きました.ここに記して深謝致します. [ 2 JBond, A .H .andGasser, L .e d s . :R e a d i n g si nD i s t ゆ u t e dA r l i f i c i a lI n t e l l i ge n c e, Morg 阻 K aufmann( 1 9 8 8 ) [ 3 ]Clearwater, S.H .e d . :M . αr k e t B αs e dC o n t r o l :A Paradigmf o rD i s t r i b u t e dRe s o u r c eA l l o c a t i o n, WorldS c i e n t i f i cP u b l i s h i n g( 1 9 9 6 ) . 同 Cohen, P.R:C o m r n u n i c a t i v eA c t i o n sf o rA r t i f i c i a lAg 叫 s , Pro ιF i r . s tI n t e r 叩 t i o n a lCoη~ference 0司 M u l t iA g e n tS y s t e m sρ CMAS' 9 5 ),p p .65-72( 1 9 9 5 ) . ,D e c h t e r,R .,andKatz,S . : Ont h eF e a s i b i l 均 o fD i s t r i b u t e dCon[ 5 JC o l l i n,Z. 凶n tS a t i s f a c t i o n, I J C A I 9 1,p p .3 1 8 3 2 4( 1 9 9 1 ) s t r [ 6 J Conry,S .E .,Kuwabara,K.,L e s s e r,V .R .,andMeyer,R .A . :M u l t i s t a g e 創且七 S a t i s f a c t i o n, IEEE1 干 且n s .S y s t e m s ,Man N e g o t i a t i o nf o rD i s t r i b u t e dC o n s t r αndC y b e r n e t i c s, Vo . l2 1, N o .6, p p .1 4 6 2 ー1 4 7 7( 1 9 9 1 ) ,S.E .,Meyer,R .A .,組 dLe 悶 r ,V .R . :M u l t i s t a g eN e g o t i a t i o ni nD i s [ηConry t r i b u t e dP l a n n i n g,i nBond,A .H .andG a s s e r,L .e d s .,R e a d i n g si nD i s t r i b u t e d A r t i f i c i a lI n t e l l i g e n c e, p p .3 6 7 -3 8 4, MorganKaufrnann( 1 9 8 8 ) [ 8 ] Co 町 y , S .E .,Meyer,R .A・ τandPope,R .P . :Mechan 泊臨f o rAs 悶 s ingNo 凶o c 叫 Impa 瓜 o fL o c a lD e c i s i o n si nD i s t r i b u t e dP l a n n i n g,i nG a s s e r,1 .andHuhns, M.N .e d s ., D i s t r i b u t e dAr l i f i c i a lI n t e l l i g e n c e,t ゐルme1 I ,p p .2 4 5 -2 5 8, Morg 叩 Kaufmann( 1 9 8 9 ) 1 2 1 1 2 2 参考文献 a v i s, R. andSm 仙 , R .G . :Ne 匂g o ω t 凶 i o 口a おsaMe 凶b 乱 叩 p加 h l o r バf ぽ o ' r D i 治 s t r 口i b l [ 9 JD S o l v i n g,A r t i f i c i a lI n t e l l i g e n c e, Vo . l20,No .1,p p .63-109( 1 9 8 3 ) [ 1 0 JD u r f e e,E.H.andL e s s e r,V .R . :U s i n gP a r t 凶 G l o b a lP l a n st oO o o r d i n a t e 1J CAI-8 スpp.875-883(1987) D i s t r i b u te dProblemS o l v e r s, [ 1 1 ]D u r f e e,E. H .,Le s s e r,V.R .,組 dO o r k i l l,D .0. :D i s t r i b u t e dProblemS o l v i n g,i n S h a p i r o,S .C. e d .,Enc y c l o pe d i ao fA r t i f i c i a lI n t e l l i ge nc e, 2ndEd. , p p .379-388, 参考文献 1 2 3 [ 1 9 JI s h i d a,T .:B r i d g i n gHumansv i aAgentN e t w o r k s,Pro c .1 3t hb巾 m a t i o n a l WorkshoponD i s t 門的 t e dA r t 折c i a lI n t e l l i ge n c e( 1 9 9 4 ) [ 2 0 J 石田亨 3 桑原和宏: 分散人工知能 ( 1 )ー協調問題解決,人工知能学会誌, Vo . l 7, N o .6, p p .945-954( 1 9 9 2 ) . [ 2 1 J 石田亨,桑原和宏・分散人工知能,情報処理学会(編),情報処理ハ ン ドプ ァク,1 3 編5 . 1,p p .1466-1468,オーム社 ( 1 9 9 5 ) . JohnW i l e y& S o n s( 1 9 9 2 ) . o c i aの AgenTalkによ [ 2 2 ] 梶原史雄,桑原和宏,石臼亨・エージェントネ ッ トワーク S [ 1 2 JF e r g u s o n,D .,Y e m i n i,Y.,andN i k o l a o u,C . :M i c r o e c o n o m i cA l g o r i t h m sf o r 0回全国大会,p p .2 -1 6 3-1 6 4( 1 9 9 5 ) . る笑装,情報処理学会第 5 LoadB a l a n c i n g凶 D i s t r i b u t e dComputerS y s t e m s,8 t hI n t e r n a t i o n a lC o n f e r e n c eonD i s t r i bu .t e dCompt 伽 1 9S y s t e m,p p .491-499( 1 9 8 8 ) i n i n,T .,F r i t z s o n,R .,McKay , D .,andM c E n t i r e,R . :KQML-ALanguageand [ 1 3 JF Pro 七o c o lf o rKnowledgeandI n f o r m a t i o nExchange,i nFuc h i,K .a ndY o k o i,T e d s .,Kπo w l e d g eB叫 l d i n gandKnowledgeSha 門n g , p p .249-259,Ohmsha,L t d 阻 [ 2 4 ] 北村若手彦,辰巳昭治,奥本隆昭 分散問題解決のための波及型探索法とその評価, . l35,N o .1 2,pp.2651-2663( 1 9 9 4 ) 情報処理学会論文誌,Vo olb,M . :AC o o p e r a t i o nL叩 酔a g e,P r o c .F i r s tI n t e m a t i o n a lC o n f e r e n c eon [ 2 5 ]K Mu .l t i A g e n tS y s t e m sρ CMAS' 9 5 ), p p .233-238( 1 9 9 5 ) . dIOSP r e s s( 1 9 9 4 ) . a l 耶 n e d e r,H .,S t e i n e r,D .,阻dMcCabe,F .G . :IMAGINE:AF r ameworkf o r [ 1 4 JH 8 u i l d i n gM u l t i A g e n tS y s t e m s, P r o c .S e c ondI ntemat i o n a lW o r k i n gC o n f e r e n c e onC o o p e r a t i n gKn o w l e d geBαs e dS y s t e m s(CKBS別) , pp.3 1-64( 1 9 9 4 ) ,T .andH u b e r r n a n,B .A . :C o n t r o l l i n gOh 蹴 [ 1 5 J Hogg [ 2 3 ] 亀田恒彦,山下雅史・分散アルゴリズム ,近代科学社 ( 1 9 9 4 ) . i nD i s t r i b u t e dS y s t e r n s, IEEET r a n s .S y s t e m s,ManandC y b e r γ l e t i c s,Vo . l2 1,N o .6,p p .1325-1332 ( 1 9 9 1 ) . 9 9 0年代の分 [ 2 6 J 桑原和宏 マルチステー ジネゴシエーシヨンによる分散資源割当 ,1 散処理シンポジウム, p p .87 -9 6,情報処理学会 ( 1 9 9 0 ) , [ 2 7 J Kuwabara , 1 < . :AgenT αl kR e f e r e n c eManual( p r e l i m i n a 叩 d r a β)( 1 9 9 5 ) [ 2 8 J Kuwabara ,1 < . :M e t a L e v e lCo山 0 1o fC o o r d i n a もi o nP川 o c o l s, P r o c .S e c o n d I n t e m a t i o n a lC o n f e r e nα onM u l t i A ge n tS y s t e m s(ICMAS' 9 6 ), p p .165-172 ( 1 9 9 6 ) . [ 1 6 J Holzm 阻 n ,G .J . :D e s i g nandV a l i d a t i o no fComputerP r o t o c o l s,P r e n t i c e -H a l l ( 1 9 9 1 ). , K [ 2 9 J Kuwabara 叩 dI s h i d a , T . :E q u i l 伽 a t o r yApproacht oD i s t r i b u 七e dR e s o u r c e 七i o n : TowardO o o r d i n a t e dB a l a n c i n g,i nC a s t e l f r a n c h i,C.andWemer, A l l o c a [ 1 7 J Huberm 阻 ,B .A .andHogg,T . :The8 e h a v i o ro fC o m p u t a t i o n a lE c o l o g i e s,i n Huberm 阻 ,B .A .e d .,TheE c o l o g yo fCompu .t a t i o n , p p .77-115,E l s e v i e rS c i e n c e E.e d s. ,Artポc i a lS o c i a lS y s t e m s ,MAAMAW ' 9 2 ,LectureNotesi nAI830, p p .133-146, S p r i n g e r V e r l a g( 1 9 9 4 ) P u b l i s h e r s( 1 9 8 8 ) . [ 3 0 J Kuwabar , 乱 1 ι ,I s h i d a,T .,andN i s h i b e,Y.・ M a r k e t B蹴 dD i s t r i b 凶e dR守 .andB r i d g e l a n d,D .M . :M u l t i a g e n tTru t hM a i n t e n a n c e,I EEE [ 1 8 J H山口 5,M.N ,ManandCybemetics, Vol .2 1, N o .6, p p .1 437 -1 4 4 5( 1 9 9 1 ) . Tmns.S y s t e m s s o u r c eAl I o c a t i o n :E q u i l i b r a t o r yApproach, J J C A I 9 : ; WorkshoponA r t i f i c i a l Economi 124 参考文献 [ 3 1 J Kuw 乱 . b a r a,K.,I s h i d a,T .,回dO s a t o,N . :A g e n T a l k :C o o r d i n a t i o nP r o 七o c o l D e s c r i p t i o nf o rM u l t i a g e n tS y s t e m s,P r o c .F i r s tI n t e r n a t i o n a lC o n f e r e n c eon CMAS' 9 5 ), p .455( 1 9 9 5 ) M u l t i A g e n tS y s t e m sρ [ 3 2 J Kuwabara ,K .,l s h l d a,T .,andO s a t o,N . :A g e n T a l k :D e s c r i b i n gM u l t i a g e n t C o o r d i 且a t i o nP r o t o c o l sw i t bI n he r i t a n c e,P r o c .7 t hIEEEI n te r n a t i o n alConCTAI' 9 5 ), p p .460465( 1 9 9 5 ) f e r e n c eonT o o l sw i t hAr t i f ic i a lI n te l l i ge n c eρ [ 3 3 J 桑原和宏,石田亨,大皇延E たA g e n T a l k :'7)レチエージェントシステムにおける協 調プロトコル記述,信学技報 A I94 -56( 1 9 9 5 ) [ 3 4 J 桑原和宏,石田亨 大里延康 A g e n T . 叫主:マルチエージェントシステムにおける 3 協調プロトコル記述,電子情報通信学会論文誌 B I,Vo . l79,N o .5,p p .346354 ( 1 9 9 6 ) 参考文献 1 2 5 e s s e r, V .R.andC o r k i l l, D .0 . :TheD i s t r i b u t e dV e h lc JeMo 叩n i t [ 4 1 JL AT o o lf o rI nv 且 刊e s 抗凶 t i 屯 g 叫 a 叫 t 凶 i 泊 ngD i 均 s t 訂 r 口 ぬ i b凶 u 品 i t e 吋dP r o b l e mS o l v i n gN e t w o r k s, AIMagazine, Vo . l4, N o .3, p p .1 5-33( 1 9 8 3 ) [ 4 叫 α河 2 J1 μ 占鎚悶 e 眠r 久,V .R .andE r 口 rm叩a n,L .0. :D i お s t 位r 巾 u 凶t e 吋dI n t e r p r e t a t i o n : A Modeland E x p e r i m e n t,IEEET r a n ι C omput. , Vo . l29,N o .12,p p .1144-1163( 1980) . ackworth,A .K.:C o n s t r a i n tS a t i s f a c t i o n,i nS b a p i r o,S .C .e d .,E n c y c l o p e d i a [ 4 3 JM o fA r l i f i c i a lI n t e l l i g e n c e , p p .205-211, J o h nW i l e y& S o n s( 1 9 8 7 ) . alone,T .W.,F i k e s,R.E .,G r a n t,K.R .,andHoward,M.T . :E n t e r p r i s e :A [ 4 4 JM M a r k e t l i k eTaskS c b e d u l e rf o rD i s t r i b u t e dComputingE n v i r o n m e n t s, i nHu berman,B .A .e d .,TheE c o l o g yo fC o m p u t a t i o n , p p .177 -205,E l s e v i e rS c i e n c e P u b l i s h e r s( 1 9 8 8 ) 守 [ 3 5 J Kuwabara , K.a : 吋L e s s e r,V .R . :Ex もe n d e dP r o t o c o lf o rM¥ 耐 s t a g eN e g o t i a t i o n, P r o c .9 t hWorkshoponD叫 r i b u t e dAバ ポc i a lI n t e l l i ge n c e , p p .129 -1 6 1( 1 9 8 9 ) . e s s e r,V .R.:マルチステージネゴシエーションにおけるゴール問競合 [ 3 6 J 桑原和宏, L の検出 2 情報処理学会論文誌, Vo l .32,N o .10,p p .1269 -1280( 1 9 9 1 ) genTalkの笑 [ 3 7 J 桑原和宏,篠原拓嗣,大皇延康,石田亨.協調プロトコル記述言語 A 現,信学技報 AI9 5 1 8( 1 9 9 5 ) [ 3 8 JL abrou, Y.a ndF i n i n, T . : AS e m a n t i c sApproacbf o rKQML-A G e n e r a lP u r - p o s eCommunicationL a n g u a g ef o rS o f t w a r eA g e n t s,P r o c .T h i r dI n t e r n a t i o n a l C o n f e 吋 n c eonI n f o r m a t i o nandKnowledgeManageme n t(CJKM' 9 4 )( 1 9 9 4 ) [ 3 9 JL e s 悶,V.R.: A RetrospectiveViewo fFAjCD i s t 巾 u t e dProblemS o l v i n g, IEEETr a n s .S y s t e m s,ManandC y b e r n e t i c s ,Vol .2 1, N o .6, p p . 1347 -1362 ( 1 9 9 1 ) . e s s e r,V . R. and C o r k i l l,D .0 . : Fun c t i o n乱l l yAccur 蹴 ,C ooper 山 v eD i 長 [ 4 0 JL t r i b u t e dS y s t e m s,IEEETr a n s .ぬs t e m s, ManandC y b e r n e t i c s, Vo l .1 1,N o .1, p p .81-96( 1 9 8 1 ) . [ 4 5 J Mωon,C .L . andJ o h n s o n,R. R . : DATMS: A F rameworkf o rD i s t r i b u te d AssumptionBasedR e a s o n i n g,i nG a s s e r,L .andHuhns,M.N .e d s .,D i s t 門 b u t e d ωa l l n t e l l i g e n c e ,VolumeII, p p .293-317, MorganKaufmann( 1 9 8 9 ) A r l i f i [ 4 6 )M atsuoka, S 組 dYonezawa, A: . An a l y s i so fI n he r i t a n c eAn omalyi nO b j e c t - O r i e n t e dC o n c u r r e n tP r o g r a r n m i n gL a n g u a g e s,i nAgha,G ., Wegner,P .,回d Yonezawa,A.e d s .,R e s e a r c hD i r e c t i o n si nC o n c u r アe n tO b j e c t -0門 e n t e dP r o 9ramming, pp.107 -150, MITP r e s s( 1 9 9 3 ) [ 4可 M i l l e r,M. S .andD r e x l e r,K.E . :M a r k e t s阻 dC o m p u t a t i o n :A g o r i cOpe 且 S y s t e m s,i nHuberman,B .A .e d .,TheE c o l o g yo fComput αt i o n , p p .133-176, E l s e v i e rS c i e n c eP u b l i s b e r s( 1 9 8 8 ) . i s h i b e,Y . , Kuwaba 叫K.,阻dI s h l d a,T. :E f f e c t so fH e u r i s t i c si nD帥 r i b u 七e d [ 4 8 JN C o n s t r a i n tS a t i s f a c t i o n : TowardsS a t i s f i c i n gA l g o r i t h m s,P r o c.1 1 t hI n t e r n a t i o n a lWorkshoponD i s t r i b u t e dA r l i f i c i a lI n t e l l i g e n c e, p p .285-302( 1 9 9 2 ) . i s b i b e,Y . , Kuwabara ,K.,S uda,T .,andI s h l d a,T . : 0脱 出ut e dCha : n n e l [ 4 9 JN A l lo c a t i o ni nATMN e t w o r k s, P r o c.GLOBECOM' 9 3 , p p .417-423( 1 9 9 3 ) 1 2 6 参考文献 [ 5 0 ] 西田豊明 協謝型アーキテクチャによる知識の共有と再利用,人工知能学会誌, Vo . l9, N o .1 , pp.2 3 -2 8( 1 9 9 4 ) 参考文献 1 2 7 [ 5 9 ]W a l d s p u r g e r,C .A .,Hogg,T .,Huberman,B. A. ,K e p b a r t,J .0 .,叩 dS t o r n e t t a , W.S . :S p a w n :AD i s t r i b u もe dC o m p u t a t i o na 1Ec onomy,IEEET r a n s .S o f t w E n g ., Vo . l1 8, N o .2 , pp 1 0 3-1 1 7( 1 9 9 2 ) 噌 凶 , R. S .,F i k e s,R .E. ,P a t e l S c b n e i d e r,P .F. ,Mck 称 D .,F山 ,T .,Gruber, [ 5 1 ] Pa T .,andN e c h e s,R . :TbeDARPAKnowledgeS h a r i n gE f f o r t :P r o g r e s sR e p o r t, M.P . :A M a r k e t O r i e n t e dProgram 皿 n gE n v i r o n m e n t阻 di t sAp [ 6 0 ] Wellman, i nNeb巴1 ,B .,R i c h,C .,阻dS w a r t o u t,W.e d s .,P r i n c i p l e so fKnowledgeR e p - p l i c a t i o nt oD i s t r i b u t e dMu Jt i c o m m o d i t yFlowP r o b l e r n s, J o u r n a lo fArti f ic i a l r e s e n t a t 叩 叫 叩 dR e a s o n i n g :P r o c e e d i n g so ft h eT h i r dI n t e r n a t 叩 n a lConf e r e n c e , I n t e l l i ge n c eR e s e a r c h , Vo . l1 ,p p .1 -2 3( 1 9 9 3 ) MorganKaufmann( 1 9 9 2 ) [ 6 1 ] 山口治男 ,藤井伸朗,山中康史,依田育生 [ 5 2 ] Ros e n s c h e i n,J .S . andG e n e s e r e t h,M.R . : De a J s Arn ongR a t i o n a 1A g e n t s, JJCAI-85 , p p .9 1-9 9( 1 9 8 5 ). ネットワーク構成管理データベース , NTTR & D, V o ] .3 8, N o .1 2, p p .1 5 0 9 ー1 5 1 8( 1 9 8 9 ) [ 6 2 ]依田育生, 山中康史 藤井イ申朗.通信網オペレーショ ンシステムにおけるネット 3 伊3 ]S阻 d h o l r n, T . : AnI mplementationo ft h eC o n t r a c tNetPro 七o c o lBasedo n M a r g i n a lC o s tCa 1c u l a もi o n s, P r o c .11 t hNα ,t i o n a lC o n f e r e n c e0η Ar t i f i c i a lI n t e l l i g e n c e(AAAI' 9 3 ), p p .2 5 6 -2 6 2( 1 9 9 3 ) . 2 5 4( 1 9 8 9 ) ワーク構成管理データベース ,信学会秋季全国大会, B ー [ 6 3 ]Yokoo,M.,D u r f e e,E .H. ,I s h i d a,T .,ωdKuwab紅乱,K:Di 附 5 坑釦 凶 t r 則 n 伽 凶 b l u 比 t 旬 山 蜘 版 e 虻 削 凶 吋 d て C ∞ o , n . 附 s “ S叫 a t i 均 s f : 伝 a c ω 叫b i ぬ 0 叩nf o rF位 or 口 m na 1 凶 1 品 i z i n gD i 凶 抗t E r 口i 加 bu t ω e dProblemお So l v 吋 i i 珂 ng, P r o c.1 2 t hI n t e r n a - S .回 dD u r f e e, E .H . :TheR o l eo fC o r n m i t m e n ti nC o o p e r a t i v eN e g o t i a [ 5 4 ]S e n, t i o n a lC o n f e r e n c eonD i s t r i b u t e dComputingS y s t e m s, p p .6 1 4 -6 2 1( 1 9 9 2 ) 司 t i o n, I n t e r n a t i o n a lJ o u r n a lo fI n t e l l i g e n tandC o o p e r a t i v el n f o r mαt i o nS y s t e m s, Vo . l3, N o .1 , p p .6 7 -8 1( 1 9 9 4 ) .G . : TbeC o n t r a c tN e tP r o 七 o c o l :H i g b L e v e lCommuI l Ic a t i o n阻 d [ 5 5 ]S r n i t b,R C o n t r ol i naD is t r i b u t e dP r o b l e r nS o l v e r,IEEET r a n s .Comput. , Vo l .2 9,N o .1 2, p p .1 1 0 4 -1 1 1 3( 1 9 8 0 ) [ 6 4 ]横尾真,エドモンド H .ダーフィ,石田亨,桑原和宏:分散制約充足による分散協 調問題解決の定式化とその解法,電子情報通信学会論文誌 D l,Vo . l7 5,N o . 8, pp.7 0 4 7 1 3( 1 9 9 2 ) . [ 6 5 ]Z l o t k i n, G .andRosen 叫 e i n, J .S . :C o o p e r a t i o n回 dCo 幽 c tRe 叫 l t i o nv i a N e g o t i a t i o nAmongA u t o n o r n o u sA g e n t si nN o n c o o p e r a t i v eD o r n a i n s,IEEE Tr o . n s.S y s t e m s,ManandC y b e r n e t ic s , Vo . l2 1, N o .6, p p .1 3 1 7 -1 3 2 4( 1 9 9 1 ) . R .G .andD a v i s, R .:F r a r n e w o r k sf o rC o o p e r a t i o n凶 D i s t r i b u t e dProb [ 5 6 ]S r n i t h, l e r nS o l v i n g,IEEETr a n s .S y s t e m s, ManandC y b e r n e t i c s, Vo . l1 1,N o .1,p p .6 17 0( 1 9 8 1 ) .,B u r t,A .,K o l b,M.,阻dL e r i n,C . :TheC o n c e p t ua 1F ra r n e w o r ko f [ 5 7 ] Sも 町 民 D r : MA L,i nC a s t e l f r a n c h i,C. andM u l l e r,J. P .e d s .,FromR e a c t i o nt oC o g n i t i o n , MAAMAW ' 9 3 ,L e c t u r eN o t e s凶Al9 5 7,p p .2 1 7 -2 3 0,S p r i n g e r V e r l a g( 1 9 9 5 ) [ 5 8 ]V i c k r e y,W. :C o u n t e rS p e cuJa t i o n,Au c t i o n s,andC o r n p e t i t i v eS e a l e dT e n d e r s, J o u r n a lo fF i n a n c e, Vo . l1 6,p p .8 -3 7( 1 9 6 1) . 1 2 8 参考文献 原著論文 学術論文 ( 1 ) 桑原和宏, L e s s e r,V.R.:マルチステージネコ・シエーションにおけるゴール間競 , t Vo. l3 2,N o .1 0,p p .1 2 6 9-1 2 8 0( 1 9 9 1 ) . 合の検出,情報処理学会論文i ( 2 ) Co 町 y ,S.E .,Kuwabara,K.,L e s 田e r,V .R .,a ndMeyer,R.A . :M u l t i s t a g eN守 g o t i a t i o nf o rD i s t r i b u t e dC o n s t r a i n tS a t i s f a c t i o n, IEEETr a n s .SMC , Vo . l2 1, N o .6, p p .1462-1477( 1 9 9 1 ) . ( 3 )桑原和宏:マルチステージネゴシエーションにおける探索戦略の評価,情報処理 l .3 4,N o .7,p p .1 6 3 8 -1649( 1 9 9 3 ) . 学会論文誌, Vo ( 4 ) 桑原和宏,石田亨,大星延康 AgenTalkマルチエージェントシステムにおける I,Vo . l7 9,N o .5,p p .34 6354 協調プロトコル記述,電子情報通信学会論文誌 B ( 1 9 9 6 ) 国 際 会 議, ワ ー ク シ ョ ッ プ ( 5 ) Kuwabara, K.a ndL e s s e r, V .R . :E x t e n d e dP r o t o c o lf o rM u l t i s t a g eN e g o t i a t i o n, P r o c .9 t hW o r k s h o po nD i s t r i b u t e dA r t i f i c i a l l n t e l l i g e n c e , p p .1 2 9 -1 6 1 ( 1 9 8 9 )。 ( 6 ) Kuwabara,K.,I s h i d a,T .,回dN i s h i b e,Y . :M a r k e t B a s e dD i s t巾 u t e dR守 s o u r c eA l lo c a t i o nE q u i l i b r a t o r yApproach, IJCAl 9 3WorkshoponA r t i f i c i a l 噂 Economics( 1 9 9 3 ) . 1 2 9 1 3 0 原著論文 ( 7 )Kuwabara, K .a ndI s h i d a, T . :E q u i l i b r a t o r yApproacht oD i s t r i b u t e dR e s o u r c e 原著論文 1 3 1 関連共著論文(学術論文句国際会議‘ワークショップ) A l Jo c a t i o n :TowardC o o r c l i n a t e dB a l a n c i n g,i nC悩 t e l f r a n c h i,C .佃 dWerner, E .e d s ., A r t i f i c i a lS o c i a lS y s t e m s ,MAAMAW'92,LectureNotesi nA I8 3 0, ( 1 6 )N i s h i b e,Y. ,Kuwabara ,K . ,a ndI s h i d a ,T . :E f f e c t so fH e u r i s t i c si 日 D 以 r i b u t e d o r i t h m s, Pmc. 1 1 t hI n t e r n a C o n s t r a i n tS a t i s f a c t i o n :TowardsS a t i s f i c i n gAlg p p .1 3 3 1 4 6,S p r i n g e r V e r l a 吾( 1 9 9 4 ) . 1 .D i s t r i b u te dA r t i f i c i a lI n t e l l i g e n c e, p p .2 8 5 3 0 2( 1 9 9 2 ) . t i o n a lWorkshop01 . , I 出血, T .,andO s a t o,N . :A g e n T a l k :C o o r c l i n a t i o nP r o t o c o l ( 8 ) Kuwabara,K , P r o c .F i r s tI n t e' n a t i o n a lC o n f e r e n c e01 1 . D e s c r i p t i o nf o rM u l t i a g e n tS y s t e m s, M u l t i A g e n tS y s t e m sρ CMAS' 9 5 ), p .4 5 5( 1 9 9 5 ) ,K . , I s h i d a,T .,姐 dO s a t o,N . : Ag e n T a l k :D e s c r i b i n gM u l t i a g e n t ( 9 ) Kuwabara C o o r d i n a t i o nPro 七o c o l sw iぬ I n h e r i t a n c e, P r o c .7 t hIEEEI n te r n a t i o n a lCon f e r e n c e01 1 .T o o l s山 i t hA r t ポc i a lI n t e l l i g e n c e(ICTAI切 ) ,p p .4 60-4 6 5,( 1 9 9 5 ) . 品b a r a, K .:M e t a L e v e lC o n t r o lo fC o o r d i n a t i o nP r o 七 o c o l s,P r o c .S e c o n d ( 1 0 ) Kuw J n t e r n a t i o n a lC o n f e r e n c eonM u l t i A g e n tS y s t e m sρ CMAS' 9 6 ), p p .1 6 5 1 7 2, ( 1 9 9 6 ) ( 1 7 ) 西部喜康,桑原和宏,石田亨,横尾真・分散制約充足の高速化と通信網回線設定へ の適用,電子情報通信学会論文誌 D I I,Vo. l7 6,N o .1 0,p p .2 2 0 4 2 2 1 4( 1 9 9 3 ) . .,Kuw a b a r a,K . , S uda,T .,ωdI s h i d a,T . :D is t 巾 u t e dC h a n n e l ( 1 8 )N i s h i b e,Y 組 oc a t i o ni nATMN e t w o r k s, P r oc . GLOBECOM' 眠p p .4 1 7-4 2 3( 1 9 9 3 ) . e e,E.H .,I s h i d a,T. ,a ndKuwabara,K . :D i s t r i b u t e dCon( 1 9 ) Yokoo,M.,Durf s t r 出n tSa t i s f a c t i o nf o rF o r m a l i z i n gD i s t r i b u t e dP r o b l e mS o l v i n g,P r o c .1 2 t h I n t e r n a t 叩 n a lC o n f e r e n c e 01 1 .D i s t 門b u t e dC o m p u t i n gS y s t e m s,p p .6 1 4 6 2 1 ( 1 9 9 2 ) . ( 2 0 )横尾真,エドモンド H .ダーフイ 3 石回亨,桑原和宏・分散制約充足による分数協 研究会など I,Vo l .7 5,N o .8, 調問題解決の定式化とその解法 s電子情報通信学会論文誌 D p p .7 0 471 3( 1 9 9 2 ) ( 1 1 )桑原和宏.マルチステー ジネコ・シエ ーションによる分散資源割当, 1990年代の分 散処理シンポジウム, p p .8 7 9 6,情報処理学会 ( 1 9 9 0 ) ,K.,Y okoo,M.,回 dI s h i d a,T . :Speed-UpandAppl ト ( 2 1 )N i s h i b e,Y.,Kuwabara c a むi o nD i s t r i b u te dC o n s t r a i n tS a t i s f a c t i o nt oCommunicationNetworkPath ( 1 2 ) 桑原和宏,石田亨:分散資源割当における共生的アプローチ.通信網の資源管理 2 6 7( 1 9 9 2 ) . を目指して,信学技報 AI9 ,S y s t e m sandC o m p u t e r si nJ a p a n, Vo. l2 5,N o .1 2,pp.5 4 -67 A s s i g n m e n ts ( 1 9 9 4 ) g e n T a l k :マルチエー ジエン トシステムにおける ( 1 3 )桑原和宏,石田亨?大豆延康 A ・ 5 6( 1 9 9 5 ) 協調プロトコル記述,信学技報 AI94 ( 1 4 )桑原和宏,篠原拓嗣,大里延康 z石田亨:協調プロトコル記述言語 AgenTalkの実 5 1 8( 1 9 9 5 ) 現,信学技報 AI9 ( 1 5 )桑原和宏,上野磯生,吉田仙 マルチエージェントにおける協調プロトコル記述 p .1 4 2 1,電子情報通信学会通信 とその応用,第 5図通信ソフトウェア研究会, p ソフトウェア時限研究専門委員会 ( 1 9 9 6 ) その他(解説司単行本など) ( 2 2 ) 桑原罪u 宏,石田亨:分散人工知能 ( 2 )ー交渉と均衡化,人工知能学会誌, Vo . l8 , N o .1 , p p .1 7 -25( 1 9 9 3 ) 2 3,p p .2 1 3 0( 1 9 9 4 ) ( 2 3 ) 桑原和宏交渉とその周辺,情処研報 AI9 ( 2 4 ) 桑原和宏: ネットワークとマルチエージエント,第 9回人工知能学会全国大会 1 9 9 5 ) チュートリアル講演,人工知能学会 ( 1 3 2 原著論文 ( 2 5 )桑原和宏ー マルチエージェントのネットワークへの応用,信学技報 IN 9 5 7 5 ( 1 9 9 5 ) . ( 2 6 ) Kuwabara,K . , I s h i d a,T. ,N i s h i b e,Y . , and S吋 a ,T . : An Eq u . il i b r a t o r y M a r k e t B a s e dApproachf o rD i s t r i b u t e dR e s o u r c eA l l o c a t i o nandI t sA p p l i c a t i o n st oCommunicationNetworkC o n t r o l, 凶C l e a r w a t e r,S .H .e d .,Market ‘ 付録 A Base dC o n t r o l :A Paradigmf o rD i s 肘b u t e dR e s o u r c eA l l o c a t i o n, WorldS c i e n 七i 五cP u b l i s h i n g( 1 9 9 6 )ー AgenTalk仕様概要 ( 2 7 ) 桑原和宏ー市場モデル,石田亨,片桐恭弘,桑原和宏共著,“分散人工知能ぺ第 8 章,コロナ社 ( 1 9 9 6 ) ( 2 8 ) 石田亨,桑原和宏:分散人工知能 ( 1 ) : 協調問題解決,人工知能学会誌, Vo . l7 , N o .6, p p .9 4 59 5 4( 1 9 9 2 ) . , 1 3 ( 2 9 ) 石図亨,桑原和宏:分散人工知能,情報処理学会(編),情報処理ハンドプ "J ク 編 5章 1 ,p p .1 4 66 -1 4 6 8,オーム社 ( 1 9 9 5 ) A.l はじめに 第 6章で述べた協調プロトコル記述言語 A genTalkは,メタレベル制御機能を除い た基本的な機能を実装した初期パージョンをフリーソフトとして公開している I こ の付録では,この初期パージョンについてその言語仕様の概略を述べる.詳しくはリ 2 7 Jを参照されたい. ファレンスマニュアル [ genTalkは Common L i s p上で実装されており h 基本的には Common 現在, A i s pの L i s pの機能をそのまま使うことができる.ここで述べる言語機能は CommonL マクロないしは関数として定義される . 個々のエージェントは L i s p処理系のマルチプロセスの機能を用いて L i s pにおける 一つのプロセス(スレッド)として実装きれている(図 A . 1 ) . 同じ L i s pシステム内に あるエージェント同士は(共有)メモリを介した通信を行い,また,別の L i s pシステ ムにあるエージェントとは TCP/IPを用いた通信を行う さらに. C言語からメッ セージの読み書きができるインタフェースも合わせて作成し, Cで舎かれたプログラ 2 ) このエージェント問の通信機能を用いて,テレ ムとの通信も実現している(図 A. オーガニゼーション [ 1 9 Jの実現を目指したエージェントネットワーク S o c i aが構築さ 2 2 J れており.卓上電子会議支援システムの実現に用いられている [ CommonL i s pの実裟では次のようなパッケージ ( p a c k a g e )を定義している ' h t t p: / /'WVW. c sl a b. t a s. n t t. j p/ a t / Al e g r oCommonL i s p( A C L )v 町 田o n4.2および M配 回 出s hCommonL i s p( M C L )3 . 0以 2ただし 降のマルチプロセユ(スレ y ド)の拡張機能を用いている. 1 3 3 1 3 4 A. 2 . エージェント 付録 A AgenTalk仕犠概要 1 3 5 • agentalk( n i c k n 阻 . ea t ) :AgenTalkで定義する関数,マクロ,変数はこのパツ ケージのシンボルとして定義される. • agentalk-user(nicknamea t u ) : AgenTalkのアプリケー シヨンを記述するデ s eしている . フォールトのパッケージ. agentalkパッケージを u • agentalk皿e ssage(nicknamea t m ) メッセージのクラス名,スロ ット名はこ のパッケージのシンボルとして定義される パッケージを統一することで,他 のL i s pシステムとの通信においてメッセージの読み込み時のパッケージの差異 を吸収するためである. P o s t . O f f i c e ( m e s s a g ed e l i v e r y ) • agentalk-i 且t ernal( n i c k n 岨 ea t i )・AgenTalkの内部関数はこのパッケージ のシンボルとして定義される.このパッケージを独自に設けた理由は AgenTalk の内部構成を複数のパッケージで構成した時にそれら問で共通に使われるシン 図 A . l :AgenTalkの構成 ボルをこのパッケージ内に定義できるようにするためである. A.2 エージェン卜 A . 2 . 1 エージェントクラス i s pObjectSystem)のインスタンスとして定義 エージェントは CLOS(CommonL される.エージェントのクラスとして agentと scr1pt-agentが定義されている.ア プリケーションプログラムはこれらのクラスを使うか,また,これらのクラスをスー パクラスに持つクラスを定義することになる . P 田t 心"回 ( m . 田a g ed e H v e r y ) 似s p s y s t e m ] agent I A g e n lP 翌日巨豆豆己 ~日拙∞叩副blem回目gell町町 a 回 d a g e n t s 1 ( cb [αass] agentがエージェントのベースとなるクラスであり. L i s pシステム内のプロセス(ス レッド)生成,メッセージのやり取りなどエージェントの基本的機能を定義してい [ U S pS y s l e m ) る. 守 script-agent 図A . 2・ネットワークを用いた構成例 クラス s cript-age 且tは後述するスクリプトの機能を提供する ー= 1 1 . . 』 一 一二=二一ーー一一 一三一_ . L [ C I α s s ] スクリプト機能を使 ~ 1 3 6 付 録 AA genTalk仕様概要 A . 2 . エージェント うエージエントはこのクラス,またはそのサブクラスのインスタンスでなければなら 1 3 7 a g e n tを p o s t o f f i c eに登録する.これによってメッセージのやり取りが可能になる. cript-agentは agentのサプクラスになっている ない.なお,クラス s i s p内のプロセス(スレッド)が作られ さらに,このエージエントに対応して新たな L る.この l 時, p r o c ωs r u n f u n c t i o n( デフォー J レト値は a gent-toplevel)が a 1 gsで与 えられた引数とともに起動される. A . 2 . 2 エージェント名 エージェントはユニークな名前を持つ.メッセージの相手先はエージェントの名前 によって指定する.この時,エージェントがどこにあるかは意識しなくてもよい agent-toplevela g e n t &restαr g s エージェントの名前はエージェントが所属するロケーション ( I o c a t i o n )の名前とそ のロケーションの中でのローカルな名前の組み合わせとして l o c αl n a m e @ l o c a t i o n - nameの形式で表現される .各ロケーショ ンごとにはメッセージの配送を行う p o s t - [G e n eT icAmctionl agent-toplevel( a g e n ta g e n t ) &re s ti g n o r e d T i maryMethodl [P agent-toplevel ( a g e n ts cript-agent) s c 門p t-name [P T i maryMethodl o f f i c eという機構が存在する.すなわち,各 p o s t o f f i c eごとに l o c αtion-nameが与え &re s ta r g s られる. p o s t o f f i c eにエー ジェントを登録することによって他のエージェントとメッ agent-toplevelはエージェントのプロセス(スレッド)のトップレベルのループを提 セージのやり取りを行うことができる. 供している.クラス a gentに関しては,エージエントのメッセージキューからメッ CommonL i s p上の実装では一つの L i s pシステムごとに p o s to f f i c eが存在し,名前 セージをとりだし,対応するメッセージハンドラを起動することを繰り返す ( l o c a t i o n n a m e )を与える.同ーのロケーシヨン内(すなわち同ーの L i s pシステム内) o c a t i o ηnameを省略することができる . においては l script-agentに対するメソッドでは s cT i p t πameを引数として与えることによ なお,エージエント名 ( I o c a l n a m e, l o c a t ion-name 共に)は大文字小文字の区別はし c 門p t -nameを起動することができる . a r g sは り,エージェント起動時にスクリプト s ない. r u n s c r i p t参照) 起動するスクリブトに対する引数となる ( A . 2 . 3 エージェント関連の関数 fi且d-agentname &optional e 庁 o r p エージエントは CLOSにおけるインスタンス生成の総称関数 ( g e n e r i cf u n c t i o n ) である make-instanceを用いて生成する エージエント名はこの関数の呼び出し時 この関数は nameの名前をもっエージェント (CLOSのインスヂンス)を返す nαmeは n岨 eのキーワードの引数で与える.エージエントの名前は文字列 ( s t r i n g )かシン に: 文字列またはシンボルである.名前 ηαmeのエージェントが存在しない場合 ボル ( s y m b o l )で,シンボ J レが波された時はそのシンポル名 ( s y m b o J n 四 e )が用いら r o ゆが nilでない時はエラーとなり れる. e r - e 1 ナo r pが n i l (テ・フォー Jレト)の時は nilが返 る. add-agenta g e n t &optional p r o αs s r u n f u n c t i o n [Gene1 ' icF u n c t i o n l &re s t a1 " ! ) s add-agentα (. g e n ta gent) &optional p r o c e s s T U 1 ト. f u n c t i o η agent-namea g e n t " h n』昌三ーー一一一ーー一一ー [FUnc t i o n l [P 1 ' 1 : m a r yMethodl この関数は αg e n tの名前を文字列として返す &re s ta r g s ニ [Func t i o nl L ~ イ 寸 録 AAgenTalk仕様概要 1 3 8 A.3 メッセージ A.4. メッセージノ Tタン 1 3 9 send-messagem essage &rest a r g s エージェント問で交換されるメッセージはクラス messageまたはそのサブクラスの インスタンスとして実装される. [ G e n e r i cF u n c t i o n J send-message( message皿essage) &rest i g 旬o r e d [P rimaryMethodJ send-message( c l a s s symbol) 開 c e i v e rs e n d e r [PrimaryMethod] &rest s l o t v αl u e s [ C l a s s] message messageクラス(またはそのサプグラス)のインスタンス m essageが引数として波さ a g eが実際に送信される.第一号 l 数としてクラス名(シンボル)が渡され れた時は mωs messageはメッセージのクラスのルートとなるクラスである た時は殺りの引数が c reate-messageの関数に渡され,メッセージクラス c l a s sのイ ンスタンスが生成され.生成されたメ define-message-classc l a s s ([ s u p 吋 )( s l o t d e c l ' ) &rest o p t i o n s [Macr o ] y セージが実際に送信される send-message は送信したメッセージを返す. s l o t d e c l := ( s l o t n a m e [ :type t y p e ] )I s l o t n a m e :d ocumentation d o c s t r i n g ) o p t i o n s ::= ( メッセージクラス c l a s sを定義する そのスーパクラスを s u p e rで指定する s u p e r が y p eが ス ロ ッ ト 値 の 型 を 指 定 す る が , 現 指 定 さ れ な い 時 は 皿essageが 使 わ れ る . t get-message-senderm essage [Fun c t i o n J messageの送信元を返す. パージョンではこの情報は使われていない. 例. (define-message-class announcement ( ) get阻e ssage-slot-valuemωs a g es l o t n αme ((specification :type string) [Fu πc t i o π ] この関数は m essageのスロット s l o t n a m eの値を返す.もし,その名前のスロットが (expiration :type integer))) 存在しない時はエラーとなる. ここで,メッセージクラス名,スロァト名は agentalk皿essageパッケージのシン i 主 メ ッ セ ー ジ は CLOSのインスタンスとして実装されているので slot-valueの 総 称 関 数 を 用 い て ス ロ 7 トにアクセスすることができる. し か し , ス ロ ッ ト 名 は ボルとなる. agentalk-messageの パ ッケージのシンボルなので, get皿essage-slot-valueを 使う方が便利である. create-messagec l a s sr e c e i v e rs e n d e r &rest s l o t v a l 匂e s [Func t i o n J αl u e s ::= { s l o t n a mev a l u e }企 s l o t v メッセージクラス c l αs sのインスタンスとなるメッセージを生成して返す r e c e 叩 e rは メッセージの宛先となるエージェントの名前,またはプロードキャストの場合は*を 指定する s e n d e l ・はメッセージの送り手を指定する . s l o t n a m eは キ ー ワ ー ド (:で A. 4 メッセージパタン エージェントは基本的には送られてきたメッセージに対して何らかの行動をとるこ とを繰り返す.したがって,どのようなメッセージが来たらどのような行動をとる 始まるシンボル)で指定する. かを記述する必要がある. AgenTalkではメ 例. セージかを指定することができる.また,メッセージパタンにメァセージハンドラを (create-message ' 祖nouncement " * " "MEII :specification "TASK1" :expiration 3003044053) y セージパタンを用いてどのようなメッ 対応づけることができ,メッセージハンドラとしてメッセージパタンにマッチする メッセージが到着した時にエージェントがとるべき行動を記述することができる. 1 4 0 付 録 A AgenTalk仕様概要 A. 4 . メッセージノ Tタン 1 4 1 メッセージが到着した時は,アクテイプなメッセージパデンの中からマ ッチする ンマッチの時に評価される . 1 日: p f o r m n u m b e rは評価結果が数になる l i s p f o r mを表 メ ッセージパタンを見つけ,マ ッチしたメァセージパタンに対応づけられたメッセー 叩 f o r m q u o t e dはパタンマッチ時には評価されない.優先度 ( p r i o r i t y )はシス す. 1 ジハンドラを起動することになる . テム内部では整数値として扱われる.整数値以外の値が指定された時は truncate関 数を用いて,整数値に切り捨てられる .メァセージのスロット値の比較には Common define-message-patternn a m e a n d o p t i o n sp a t t e r nh . a n d l e r b o d y [ M a c r o l L i s pの equal関数が用いられる. ιoptions ・= name [(name optioηs) name a n h a n d l e r b o d yは基本的には l i s p f o門司である.ただし,その中では皿 sg, self, context : = ( :docu . mentation d o c s t 門句) o p t i o n s: のシンボルが変数として暗黙のうちに宣言されている. msgには到着したメ ッセージ selfにはメッセージを受けとったエージェントが束縛される が束縛され, p a t t e r n )とそれに対応したメッセージハンドラ nameの名前を持つメッセージパタン ( ( h a n d l e r b o d y )を定義する . p a t t e r nのシンタックスは以下の通りである p a t t e r n・ =c l a s sr e c e叩 e rs e n d e r ( pr i o叫 y J slots c l α s s ::= s y m b o l a n d l e r b o d yにはメッセージパタン中の p a t te r n v a r が現れ プトの節を参照). さらに h ることカ霊できる . 例. r e c e i v e r ::= w i l d c a r d n a m eI name I ({name}+) [p a t t e r n v a r i l d c a r d n a m eI name I({name}+) [p a t t e m v a r s e n d e r ::= w 叫 n ame : : = 11*11 I * w i l d c a name ::= s y m b o l [s t バng : n a m e "assessment" : t i m e (:7 x :value-restriction ((> 10)))) (format t "A且且ouncement s lI"ith time si s received by s " 皿 l u e p a t t e r n ::= p a t t e r n 叩 rI pattem-form [l i s p f o r m q u o t e d I(叫l t 昨 p attem{ v a l u e p a t t e m }つ p a t t e m v a r二 = ・ (7 [ p a t t e m v a r n a m e J 叩 [ : value-restrictユ0且 凶 l u e r 耐 巾t i o n s J [ : form-restriction l i s p f o r m J s 幻z 町 t 昨 m m p l e 仰 pa t 山 t e r n γ 宵! v γ 7 ω a に : =( : 介 7仰 P a材帥em P 仰a ω t 批 tem-ω りa れ r -name : : 芹 =勾 s ymb ω 0 1 ωl u e r e s t r i c t i o n s ::= ({v a l u e r e s t r i c t i o π}+) この例はメ sg ( :7x) self)) y セージクラス祖国u ncementのメッセージが 前のエージェントから届いた時 ti 皿eスロ γ I トの健が 1 0より大きい時にマ ッチするメッセージパタンとそれに対応す a it-for-messagea g e n t messagepattem l I " pattem-form ::= (・! l i s p f o r m ) 句 [ G e n e r i cF u n c t i o n J &optional t i m e o u t s t p . 門間 ωl u e r e s t p r i m ::= ( { > [>; [; [<[< ; }1 叩 f o r m n u m b e r ) [l i s p f o l m coordinatorという名 na m .eスロットの値が 1assessment11であり,かっ (format . ..))を定義している. るメッセージハンドラ ( u e 刊 s t 円c t i o n ..= (AND { v a l u e r e s t 門 c t i o n } + ) I(OR { 叩l u e 刊 s t バc t i o n }+) ωl &key :lI"hen-message-arrived :lI"hen-ti 血e out ait-for-message( a g e n t agent) l I " [PrimaryMethod J αg e p a t t e r n皿essage-pattern) &optional t i m e o u t (mess ここで l i s p f o 門nは副作用のない L i s pのフォームを表す.ただし 値が束縛されている s i m p l e p a t t e r n v a rを使うことができる (define-message-pattern pattern1 (announcement 本 coordinator 1 pバoバt y ::= number I1 坤 form-number s l o t n a m e叩 l u e p a t t e r n} * s l o t s ::= { s l o t n a m e ::= k e y w o r d I(NOT t刷 昨γestriction) Ivalue刊 c o 且t ext はスクリプトの実行コンテキストが束縛される(実行コンテキストに関してはスクリ &key :lI"hen-message-arrived :lI"hen-timeout 1 ωp f o 門Hの中に なお , l i s p f o 門Hはパタ ait-formessageは m e s s a g e p a t t e r nのメッセージパタンにマッチするメッセージ l I " 1 4 2 付録 AAgenTalk仕様概要 が到着するまでエージェントのプログラムの実行を中断する 時は t i m e o u tが指定された A.4.メッセージパタン 伊U : t i m e o u t 秒過ぎた時にはメッセージの到着がなくてもエージェントの笑行は湾 i m e o u tとして 関する . t &optional (priority *wait-for-reply-priority*)) g e n tを引数とし ンにマッチするメッセージが到着した時は,到着したメッセージと a (reply (:! receiver-name) (:! sender-n 阻 e ) (:! priority) て :when-message-arrivedで指定された関数が起動される.また,タイムアウトが : reply-to (:! message-id))) 起きた時 , a g e n tを引数として :when-timeou 七で指定された関数が起動される. [Mac r o J (define-message-pattern-template wait-for-reply (receiver-name sender-name message-id nilが渡された i 待はタイムアウトしない.メ ッセージパタ define-message-pattern-te 皿p laten a m e a n d o p t i o n sl a m b d a l i s t create-message-pattern-from-templatet e m p l a t e n a m e [ F 1 匂n c t i o n J &rest αr g s p a t t e r n ιoptions ::-叩me I(叩me options) name-an o p t i o n s ::= ・ (d ocumentation d o c s t r i n g ) 1 4 3 templ a te-nameの名前のメッセージパタンテンプレートからメァセージパタンを作 る a r g sで波された引数によってメッセージパタンが初期化される. このマクロは nameという名前のついたメッセージパタンテンプレートを定義する. メッセージパタンテンプレートは一部しか逮わないメッセージパタンを一つのテンプ レートから作るために用意されている. setmessage-pattern-prioritym e s s a g e p a t t e r n ne 加p門 o r i t y [ F u n c t i o n J " 1 1 .の優先度を n ew-p 門 O門 t yにセットする. m e s s a g e p a t t e 1 メッセ ージパタン中の値が途うメッセージパタンを複数作成する時には,値を変更 する部分をメァセージパタンテンプレートの定義において l a m b d a l i s t中の変数として 定義し,その変数を l i s p f o r mの中で使用すればよい.メッセージパタンテンプレート remove-message-patternm e s s a g e p a t t e r n [Ge n e r i cF u n c t i o n J から値が異なるメッセージパタンを作成する時はメッセージパタン作成時に違う値を remove-message-pattern ( m e s s a g e p a t t e r nmessage-pattern)[ P r i m αr yMethodJ 与えることになる. remove-message-pattern( m e s s a g e p a t t e r n n a m e symbol) なお,テンプレートから作成されたメッセージパタンについては,パターンマッチ a t t e r n内の l i s p f o r mの評価が , l a m b d a l i s t中の変数がメッセージパタン作 における p [PrimaryMethodJ このメソッドは m e s s a g e p a 材e r nまたは messα g e p a t t e r n n a m eの名前を持つメッセー ジパタンを削除する. 成の関数を呼び出した時の引数の値に束縛された環境で行われることになる. 以下に wait-for-message関数と共に用いる例を示す.このメツセ」ジパタンテン プレートからは replyクラスのメッセージにマッチするメッセージパタンを作成でき る.この時 receiver-name,sender-name, : reply-toスロ ットの値 message-id ならびに優先度をメッセージパタンテンプレートからメッセージパタンを作成する時 に引数として指定することができる. initialize-message-patterns&optional c l e a r a l l p [Func t i o n J メッセージパタンに関する機能を初期化する . c l e a r a l l pが nilでない時はシステム 定義のものを含めすべてのメッセージパタンが削除される. Age 且T alkシステム自体 l e a r a l l pは nilとする. をデバッグするのでなければ, c 付録 A AgenT. 乱l k仕様概要 1 4 4 A . 5 スクリプト 1 4 5 時はスクリプト起勤時に i n i t i a ι v a l u eが言干価され,スクリプト変数はその評価結果に A.5 スクリプト n i t i a l v a l u eにおいて l a m b d a l i s tの中に現れるスクリプト変数にスクリ 束縛される . i スクリプト ( s c r ip t )によってエ ージェント聞の協調プロトコルが表現される,スク リプトは拡張有限状態機械をベースにしている 拡張有限状態機械は define-script n i t i a l v a l u eが指定されていな プト変数アクセスマクロ($)を用いてアクセスできる .i い時は nilが初期値となる. で宣言され,拡張有限状態機械(スクリプト)の各状態は define-script-stateで定 はそれが有効となる状態に付随して define-script-state 義される.状態遷移規則j の中で定義される さらにスクリプトに付随して名前付き状態遷移規則を定義でき る.状態定義の中でこの状態遷移規則の名前を指定することで,その状態の中で名前 付き状態遷移規則を有効にすることができる.なお,スクリプト機能を使うためには エージエントのクラスは script-agentまたはそのサプクラスである必要がある. スクリプトの機能はアクテイプなメッセージパタンを動的に切り替えることで実現 :inherits-fro 田はスクリプトの継承元のスクリプト(スーパスクリプト)を指定す る.継承元のスクリプトより,状態,スクリプト変数,スクリプト関数の定義を継承 する . : on-entryが指定されている時は初期状態に移行する前に on-entryで定義され u l e l i s p f o r mが実行される.この中で call-super関数を用いてスーパスク ている r リプトの on-entryの定義を呼び出すこともできる. している.すなわち,スクリプトにおける状態はアクティプなメッセージパタンの集 合として実装され,状態間の遷移は有効となるメッセージパタンの集合を切り替え :initial-stateで初期状態を指定する.なお i n i t i a l s t a t en a meは評価される. ることで実現されている.したがって,状態遷移を記述したスクリプトの定義は基本 的にはメッセ ー ジパタンと対応するメッセ ージハンドラの定義に分解されることにな また,現バージョンでは実験的な機能として複数の状態を同時にアクテイプにする ことができる.アクテイプな状態に含まれる状態遷移規則がスクリプト笑行において る. initial-active-statesは最初にアクティプにすべ はパタンマッチの対象となる. : き状態を指定する. A . 5 . 1 スクリプト定義 例: define-scripts c r i p π ιame 1 αm b d a l i s t{ s c 巾t 叩 t i o n s} ' [ M a c r o ] s c r i p t n a m e ::= s y m b o l s c r i p t o p t i o n s ::= :inユtial-state i n i t i a l s t a t e n a m e I: script-vars ( {s c r i p t v a rI ( s c r i p t I: inherits-from s c r i p t n a m e I: i n itial-active-states s t a t e n a m e l i s t I: on-entry r u l e l i s p f o r m I:doc 羽 田 tation doc-st巾~g スクリプト s c r i p t n a m eを定義する . l a m b d a l i s tはスクリプト起動の関数 (run-script) (define-script cnet-ma 且a ger ( t a s k ) : initial-state 'start :script-vars (bid-queue contract-id)) なお. nilはスクリプト名には用いられない. define-script-rule( r u l e n a m es c r i p t n a m e ) [M a c r o ] &key s c r i p t v a r s -払 s e dr u l e document αt i o n のヲ│数となる . l a m b d a l i s tは CommonLispと同じシンタックスをとり. &op七ional, &key,&restを用いることができる . l a m b d a l i s tの中に現れる変数はスクリプト変数 として取り扱われる. : script-varsを用いてスクリプト変数を定義できる 名前付き状態遷移規則を定義する.状態遷移規則の定義中で : script-vars-usedオ プションで指定されたスクリプト変数はスクリプト変数アクセスマクロ($)を用いず i n i t i a l v a l u eが指定された にアクセスすることができる. 付 録 A AgenTalk仕様概要 1 4 6 A . 5 . スクリプト 1 4 7 s c r i p t s t a t e o p t i o n s ::= :script-vars-used ( {s c r i p t v a r }つ r u l e ::= (:Ilhen c o n d i t i o n: doαc t i o n ) I:0 -ent勾 rule-lispてform I: rules ( {r u l e s p e c }つ c o n d i t i o n・ = [msg-co叫 i t i o n It i m e o u t c o n d i t i o n ) s c 巾t 叩 a r c o n d i t i o n Imsg-conditioη Itimeout-condition e ィn e s s a g e p a t t e r n ) m s g c o n d i t i o n ・= (msg 叩 l i m e o ut ) t i m e o u t c o n d i t i o n ::= (ti血 eout t s c r i p t v a r c o n d i t i o n・ : = (test r u l e l i s p f o 門n ) αt t e r n ::= m e s s a g e c l a s s [ s e n d e r ) { s l o t n a m er u l e p a t t e r n r u l e m e s s a g e p 且 I:p口 orユ七 y number I: documentation d o c s t r i n g スクリプト s c 門 p t叩 meの状態を定義する v a l 包e }・ :script-vars-usedの中で指定されたス s l o t n a m e ::= keyword t i m e o u t::= r u l e l i s p f o r m u l e l i s p f o 門 η中,および r u l e s p e c中でスクリプト変数 クリプト変数は on-entryの r a c t i o n ::= { r u l e a c t i o n l 叩ーf orm}' が定義された時は,この状態に遷移した時に ・ on-entryで定義された T U l e l i s p f o r mが アクセスマクロ($)を用いることなく通常の変数と同様に扱うことができる. :on-entry 起動される. :rulesオプションにより,この状態で有効となる状態遷移規則を定 e s s a g e r u l e m e s s a g e p a t t e r nのシンタックスは define-皿essage-pattern中の m p a t t e r nと以下の点を除いて同一である . 義する.さらに : n 祖 eオプションで名前を指定することで名前付き状態遷移規則 (define-script-ruleで定義されるもの)をこの状態で有効にすることができる.す なわち, • r e c e i v e rはスクリプトを起動したエージェント名が指定されたものと扱われ, r e c e i v e rは省略される. 叩 e c ::=問l e I(:n祖 ed r u l e n a m e [ :here]) r u l e • s e n d e rは省略することができる .こ の時は川"が指定されたものと扱われる. となる.ここで, :hereオプションは名前付き状態遷移規則の継承がどのように扱わ れるかを指定する .仮にスクリプト SuperScriptを継承してスクリプト SubScript • p r i o r i t yを指定することはできない.優先度はスクリプト実行制御用に内部で期 が定義されたとする.さらに両方のスクリプト共に Rulelという名前付き状態遷移 規則が定義されているとする . さらにスクリプト SuperScriptが状態 Statelを定義 いられている . し,スクリプト SubScriptに継承されているとする.ここでスクリプト SubScript において,状態 Statelの定義(これはもともとは SuperScriptで定義されている) t i m e o u tは数が指定きれなければいけない.タイムアウトの条件は状態遜移した 後t i m e o u t 秒後に成立する . r u l e l i s p f o r mは l 叩 formと同じである.ただし,ス クリプト変数アクセスマクロ($)とスクリプト関数/エージエント関数呼出しマ 掴 eR ulel)は SubScriptで定義されている名前付き状態遷移規則を 中における(: n 指す.しかし, ・ (E祖 eRule1 : here)の場合は SuperScriptで定義された名前付き 状態遷移規則を指す. u l e l i s p a c t i o n formでは Sと 1に加えて, クロ(!)を用いることができる.また , r goto-state,invoke-script,eXit-scriptが使用可能である. : priorityは状態の優先度を表す これは複数の状態を同時にアクテイプにした 時,どの状態遷移規則を優先するかの状態間の優先関係を示す.また, nilは状態名 s t a t e n a m es c r i p t n a m e ){ s c r i p t s t a t e o p t i o n s }・ [ M a c r o ] define-script-state ( として使うことができない. 1 4 8 付録 A AgenTalk仕様概要 A . 6 スクリプト実行コンテキスト 1 4 9 クロ invoke-scriptを用いる. 1(deflEe-scrlpt-state(Et訂 t cnet-manager) script-vars-used (task contract-id) on-entry (progn (setf contract-id ( ! announce-task)) A.6 スクリプト実行コンテ キスト (goto-state 'anno 阻 c ed))) スクリプトが起動された時にはスクリプト実行コンテキストが生成される.コンテ キストはスクリプト実行に関する種々の情報が保持されている (define-script-state (announced cnet-manager) 次のマクロを用いて :script-vars-used (task bid-queue contract-id) コンテキストで保持されている情報にアクセスすることができる.以下に示すマクロ :ru1es o n t e x tのテ・フォールト値は現在のコンテキストである. の引数 c ( (:when ( 血sgbid : contract-id !contract-id) o n t e x t current-state& : o p t i o n a lc : d o( i f( ! send-award-immediately-if-possible) [ M a c r o ] (goto-state 'success) current-stateは現在の状懸の名前を返す.すでにスクリプトの実行が終了している (push msg bid-queue))) 時は nilを返す ( :when ( t i 回e out (task-expiration task)) : d o( i f( ! send-award-if-possible) exited-state& : o p t i o n a lc o n t e x t (goto-state 'success) [ M a c r o ] exited-stateはスクリプトの実行が終了した時の最後の状態名を返す.まだ,スク (goto-state 'failure))))) リプトが実行中の時は且ilが返る c r i p t n a m es t αt e n a m e remove-script-states [ れm c t i o n ] この関数はスクリプト s c 門p t n a m eから状態 s t αt e n a m eを取り除く.この状態、ととも o n t e x t parent-context& : o p t i o n a lc [ M a c r o ] parent-contextは親のコンテキストを返す. に定義されている状態遷移規則(名前付き状態遷移規則を除く)も同時に取り除かれ る. child-contexts& : o p t i o n a lc o n t e x t [ A イa c r o ] child-contextsは子のコンテキストのリストを返す run-scriptα. g e n ts c 門p t n αme& : r e s ta r g s [ G e n e r i cF u n c t 叩η ] run-script ( a g e n t script-agent) s c 門p : t n a m e&:rest a r g s [ P r i m a r yM e t h o d ] スクリプトを起動する.ここで引数は define-scriptで定義した l a m b d a l i s tと合致 する必要がある .この関数はスクリプトの実行コンテキストを返す. A. 6. 1 状態遷移規則 状態遷移規則の中で次のマクロ ( J レールマクロ)を用いることができる. i 主:この関数はトップレベル(親のコンテキストが存在しない時)のスクリプトを起動 する時にのみ使う.状態遷移規則j の中から新たにスクリプトを起動する時は J レールマ $s c r i p t v a r n a m e&optional c o n t e x t [ R u l eMαc r o ] 1 5 0 付 録 A AgenTalk仕様概要 スクリプト変数をアクセスするマクロである.スクリプト変数に値を設定するために A . 6 . スクリプト実行コンテキスト 1 5 1 ルト値は nilである. は setfを用いる. l んnc 叫 ω cti叩on 附η~-name &rest a η r " 9 ,s γo l [ R u l eMac エージェント関数 f u n c l i o n n a m eをヲ│数回仰とともに起動する エージェント関数が A. 6 . 2 エー ジェ ント/スクリプ卜関数 スクリプトを部分的にカスタマイズするためにエージェント関数のインタフェース スクリプト定義の中からエージェント/スクリプト関数が 1で起 存在しない時は同名のスクリプト関数が起動される.もし ,エージェント関数もスク が設けられている リプト関数も存在しない時はエラーとなる . 動される時,まず,エージェント関数が探される.もし.見つかった場合はその関数 が呼ばれ,そうでない時は同名のスクリプト関数が探される. (このようにスクリプ e a c t i o n l i s p f o 7 7 n )で用いることができ 次のマクロを状態遷移規則の実行部(門u る. ト関数はエージェンント関数に対するデフォールトの振舞いを定義している. した がって,スクリプトのカスタマイズは,エージェント関数を定義するか,またはスク リプト関数の定義だけを変えた新たなスクリプトを元のスクリプトを継承しつつ定義 goto-states t a t e n a m e &optional c o n t e x t [ R u leA C l i o n l することによって行なえる. ) 状態 s l αt e n a m eへ状態遷移する. define-agent-function C f u n c t i o n n a m ea g e n t n a m e )l a m b d a l i s t invoke-scriptS C 1 " I p t n ame&rest αr g s ・ } { r u l e f o r m [R 匂l eA c t i o π] 新たにスクリプトを起動する.スクリプトを起動した時点で invoke-script自体の [ Macrol エージェント関数を定義する 3 実行は終る.新たに生成されたコンテキストを返す define-script-function C f u n c l i o n n a m es c ηi p t n a m e )l a m b d a l i s t call-scripts c r i pl-name&rest a r g s 新たにスクリプトを起動する invoke-scriptと違い { r u le f o r m ・ } [ R u l eA c t i o nl call-scriptでスクリプト [ Macrol スクリプ ト s c r i p t -nameにおけるスクリプト関数を定義する. を起動した時は起動されたスクリプトが exit-scriptにより笑行を終了した時点で 初めて call-script自体の実行が終了する. call-scriptの返却値は exit-script において r e s u l tとして波された値である . with-script-vars C{ s c r i p t v a r }つ{r u l e f o r m} + [Ma cγ0] r ul e f o 門冗の中では s c r i p t v a rで指定されたスクリプト変数はスクリプト変数アクセス マク ロ($)を用いず にアク セスできる . このマクロはスクリプト定義,スクリプト状 exit-script&optional r e s u l tc o n t e x t [ R u l eA c t i o n l o n t e x lのデフォー c o n t e x tで指定したコンテキストのスクリプ トの実行を終了する . c ル ト健は現在のコンテキストである .も し,コ ンテキストの子のコンテキストが無け れば自 分自身のコンテキストも親のコンテキス トか ら削除される . r e s u l t のデフォー 態定義ならびに状態遷移規則の定義の中で用いることができる. 3現パージョンではエージェント関数の名前の空間はエージヱントごとに一つしかない.したがっ て,異なるスク リプトから同名のエージェント関数が呼ばれる場合でも。一つのエージェント関数しか 定義できないことになる この点については将来のパージョンで改善する予定である. 1 5 2 付録 A AgenTalk仕様概要 call-super&rest a r g s u . n c t i o n ] [F スクリプト関数定義の中で,継承元のスクリプトの同名のスクリプト関数を呼び出す のに用いる.もし a r g sが与えられない時はもとのスクリプト関数の呼び出しにおけ る引数が波される.これは CLOSにおける call-next-me七hodと同様であ る A . 8 デバック機能 例. 1 5 3 ワv ar&(>3)&(< 5 )1(test 7var) 司 ( : 7var : v a lue-restriction ( ( > 3)(< 5)) : f orm-restriction (test ( : 7 var))) 1( test-form 7v 紅) キ ( :1 ( test-form ( : 7 var))) remove-agent-functio 且 a g e n t-or-namef u . n c t i o n n a m e [ G e n e r i cF u n c t i o n ] remove-agent-function( a g e n t script-agent) f u n c t i o n n a me[PrimaryMethod] remove-agent-function( a g e n t c n a m e symbol) f u n c t i o n n a m e[PrimaryMethod] t a b l e n a m e use-readtable&optional r e αd 上記のリードマクロを使うためには Common L i s pの *readtable*を設定する必 bleのマクロを使用する 要がある.これを行なうためには use-readta エージェント関数の定義を削除する. [M αc r o ] 一般には in-package ...)の直後にこのマクロを呼べばよい. プログラムファイルの中で ( remove-script-functions c 門: p t n a 刑 Eル n c t i o n n a m e r e a d t a b l e n a m eは名前っきの read もa b l eを機能を持っている L i s p処理系(例えばAlle[ F 1 包n c t i o η] 義されている スクリプ卜関数の定義を削除する. A . 7 g r oCommonL i s pV e r .4 . 2 )で用いられる.現パージョンでは :agentalkの名前で定 A.8 デバ ック機能 リードマクロ 現パージョンの AgenTalkはスクリプト実行のトレ}ス,プレークポイントの設定 メッセージパタン中の p a t t e r n 叩 a rと p αt t e r n f o r mの記述を容易にするための Com- monL is pのリードマクロ ( r e a dmacro)機能を利用した簡略記法を用意している. a t t e r n v a rの始まりを表している.また この簡略記法では?の文字が p 1の文字が などの簡単なデバッグ機能を提供している.さらに X windowsystemにおいてエー ジェントごとに異なる windowに出力を出す interactorという外部プログラムを利 用することができる. p a t t e r n f o r mの始まりを表している . p a t t e r n 叫 Tの中では&の文字が叩l u e r e s t r i c t i o nの o r m r e s t 門c t i o nの始まりを表している.具体的な 始まりを表し,また!の文字が f A . 8 . 1 トレース シンタックスは以下の通りである. p a t t e r n v a r r e a d ::= 7p αt t e r n 叩 r n a m e { & v a l l 日r e s t 門 c t i o n }・ [ l f o r m 刊 s t r i c t i o n ) 刊 a d ::= l l i s p f o r m p a t t e r n f o r m ここで p a t t e 門l v a r r e a d中の kと f の文字の前には空白が入つてはならない. P 仰a t 批 t e 巴m 叩 a r れ . ' 旬 T I ' e 叫 a dは読み込み時に p 仰a t 批 t e r n 読み込み時に P 仰α伐悦巴問f μ ' ormに展関される. trace-script{ s c 叩 t 叩 e c }・ [mac r o] s c パp t s p e c ::= s c 門p ι name I( s c バpt-name{ t r a c e o p t i o n }・ ) t m c e o p t i o n ::= :break b o o l e a n I:trace b o o l e a n スクリプト実行のトレース/プレークポイントの設定を行なう.また. : breakオプ i s pのデパッ ションを指定する ことにより,スクリプトが起動された時に CommonL カ'を起動することができる. :traceオプションを指定することにより,スクリプト 1 5 4 付録 AA genTalk仕様概要 A.8 デパック機能 1 5 5 が起動された時にメッセージが出力される.何のオプシヨンも指定されない時(すな スクリプト関数/エージェント関数のトレースを指定する.もし , f u n c t i o ル刊日間Eが わち s c r i p t n a m eのみ指定された時)は・ tracetが仮定される. 指定されない時は現在トレースの対象になっている関数名のリストが返る s c r i p t s p e c が省略された時は現在トレースの対象になっているスクリプトのリスト が返る. untrace-script-function{ んnction-name}• untrace-script{ s C 巾 t n a m e } ' [Macrol [M a c r o l スクリプト関数/エージェント関数のトレースの指定を取り除く . j u n c t i o n n a m eの 指定が無い時はすべてのトレースの指定が取り除かれる. スクリプトのトレースの設定を解除する . s c r i p tπameが省略された時はすべてのス 司 クリプトのトレースの設定が解除される. A.8.2 Interactor trace-state-transition [ s c 付p t-name { s t a t e s p e c }・ J [Mac r o] s t a t e s p e c ::= s t α ,t e n a m e o r a l lI C s t a t e n a m e o r a l l{ t r a c e o p t i o n }つ s t a t e n a m e o r a l l ::= s t a t e n a m e I: all t r a佐 o p t i o n ::= : break b o o l e a η│ ・trace b o o l e a n p e c use-interactor& : r e s ts [ F u n c t i o π] s p e c ::= :interactor : host h o s t: port p o r tI : e 血a cs I nil 状態遷移のトレース /プレークポイントの設定を行なう breakオプションが設 s p e cが :interactorの時は,その後のエージェントのプロセスの *terminal-ioホ 定された時,スクリプト s cn . pt-nameで状態 s t a t e n a m eへの状態遷移が起きた時に Common L i s pのデバッガを起動する. :traceオプションが指定された時は代わり t a t e-nameの代わりに : allが指定された時はすべての にメッセージが出力される . s 状態遜移がトレース/プレ ー クの対象となる.もし,引数が波されない時はは現在ト はi n t e r a c t o rの プログラムに向けられることとなる . h o s tと p o r tは i n t e r a c t o rのホス ractor-host*と ト名とポート番号を指定する.デフォールト値はそれぞれ町民e *interactor-port*からとられる p e cが : e 血a csの時は m t e r a c t o rの代わりに ema c s( 血u l e )を用いて,各エー また , s レースの対象とな っている状態のリストが返る .また , s c r i p t n a m eだけが指定され た時はスクリプト s c 内, pt-nameに関してトレースの対象となっている状態のリストが ジェントの出力を異なるパ J 7 7に出力することができる.さらに, nil を指定する 返る. ことで untrace-state-transition [ s c r i p t n a m e{ s t a te n a m e o r a l l }つ [Mac r o] 状態遷移に関するトレースの指定を取り除く.もし,引数が何も与えられない時はす 本 m t e r a c t o rの使用をやめることができる. interactor-host* [V a r i a b l e ] i n t e r a c t o rのホスト名のデフォールト値を保持する. べての トレースの指定が取り除かれる . S C 7 1 . pt-nameだけが与えられた時はそのスク リプトに関連したトレースの指定のみが取り除かれる. interactor-port場 ホ trace-script-function{ f unction-name } ・ [M αc r o ] m t e r a c t o rのポート番号のデ フォ ールト値を保持す る [ 1 1 ( αr i a b l e ] 1 5 6 付録 AA g e n T a l k仕様概要 A . 8 . 3 その他の関数 i n it i a l i z e& o p t i o n a lc l e a r s 官s t e m d e f i n i t i o n s [ F u n c t i o n l システムを初期化する . c l e a r s y s t e m d e f i n i t i o n sが nilでない場合はシステムで定義 しているメッセージパタン,スクリプトの定義も取り除由通れる. c o n 且e c t [Fu πc t i o nl 変数 * p o s t o f f i c e l i s tネに指定された p o s t o f f i c eとの TCPコネクションを関<. r e s e t& o p t i o n a lc l e α r m e s s a g e p a t t e 門1,$ [ F u n c t i o n J p o s t o f f i c eとの TCPコネク ションを閉じ,同じ L i s pシステム内のすべてのクローズ l e a r m e s s a g e p a t t e r n sが nilでない時はすべて しエージェントの定義を削除する . c のメッセージパタンの定義(システム定義のものは除く)も削除される. * p o s t o f f i c e l i s t * [V a r i a b l e l この変数に p o s t o f f i c eに関する情報が次の形式で格納される. * p o s t o f f i c e l i s t *目 : =( {C p o s t o f f i c e l o c a t i o nmediuml}+l p o s t o f f i c e l o c a t i o n ::= l o c a t i o π-name t c pi ph o s t π αme po付 n u m b e l ' o r s e r u i c e n a m e medium : : -: * l o c a t i o nn a me縁 L i s pシステムのロケーション ( I o c a t i o n)の名前を保持する. [Va 門 a b l e l