人工知能テーマの進め方

情報コミュニケーション実験Ⅲ(人工知能)の課題
マルチ・エージェント・システム
2015 年 4 月 9 日
黄
宏軒
1.概要
(1) 目的
本実験の目的は、エージェントシステムとは何かを理解してもらい、実際にプロダクション・ルー
ル形式で記述されたエージェントシステムの構築を通じて、その実際を体験してもらうことです。
エージェントシステム、プロダクション・ルール、ブラックボードなどのプログラミングは初めて
だと思いますので、資料に記載のプログラムを自分の手で入力して実際に作成し、動作を確認すると
ともに、それに変更を加えて動作の違いを確認する、という作業を行なうこととします。
また、今回は下記の点についても学習します。
① マニュアルを自ら読解してプログラミングを自習する体験(企業の擬似体験)
② C 言語、Java に比べてデバッグ環境がリッチでない開発環境におけるデバッギングの体験
(2) 基本的な進め方
① 実験は、基本的は配布した資料に基づいて行ないます。最初に資料(第 2 章)を十分に読ん
で、エージェントシステムについて理解してから作業を行なってください。
② 9つのステップに分かれています。ステップごとに、
資料(第 3 章の該当部分)を読む→動作の確認→演習・プログラム作成
を実施してください。
③ 課題はステップに分かれています。ステップごとに TA のチェックを受けて、次に進んでく
ださい。チェックを受けていない場合は、減点の対象とします。チェックのときに、場合に
よっては、TA から質問があります。正しく理解できていない場合には、次のステップに進
むことを認めない場合もあります。
④ 「資料をひとりで読んで理解する努力」
をしてください。
卒研だけでなく、
企業においても、
誰も助けてくれない(助けられない)状況もありえます。
2.必要なソフトウェアのダウンロード
① アドレス http://hhhuang.homelinux.com/lectures/le3/le3_taf.zip から、le3_taf.zip という圧縮ファ
イルをダウンロードして、解凍後に中に入っている「taf」というフォルダを各自の D ドラ
イブにコピーする(他のドライブや USB ではうまく動かない場合がある)
。
・ これ以降に各自で作るプログラムは taf フォルダ内に保存すること。
② インストール完了後、コマンドプロンプト画面を開き、taf フォルダに移動。
> cd taf
下記の手続きを実行する。
> set TAFDIR=d:¥taf
> set PATH=d:¥taf¥bin;%PATH%
> set CLASSPATH=d:¥taf¥classes
*この指定はコマンドプロンプト画面を開くたびに行う必要がある。バッチファイルにし
1
ておくと便利。D ドライブ以外の場所に置く場合は適宜に上記の「d:¥」を修正すること。
③ ACL エディタを起動する。
> workplace
*ACL エディタに呼び出すプログラムは、すべて taf フォルダ内の programs フォルダに入
れておく必要がある。
3.課題
以下のステップに沿って作業を進めてください。
ひとつのステップが終わったら、必ず TA に確認してもらうこと。
ステップ 1
① 第 3 章の P.43~P.48 までを読んで、Simple プログラムを理解してください。
② P.48 に記載されている内容をプログラム Simple として作成してください。
・ テキストエディタを用いて、”Simple.agt”ファイルを作成します。
・ 本実験で作成するすべてのプログラムは、拡張子として”.agt”を使用すること。
・ プログラム内のエージェント名と、プログラム名は一致している必要がある。
Simple.agt
(agent Simple
…..
・ なお、”author” は各自の名前、年月日はプログラム作成日としてください。
③ P.44 に記載されている方法で、Simple の動作を確認し、その結果の画面ハードコピーをレ
ポートに記載しなさい(プログラムのレポートへの記載は不要)
。
*エディタのプロジェクト機能で自動的に ACL エディタに入力すると、”sentence”が間違
って”sentense”となり動かないので注意。
ステップ 2
① P.50~P.53 までを読んで、
「プロダクション・ルールの基本的な文法」を理解してください。
② P.54 に記載されている ODB-aomori エージェントを作成しなさい。その上で、P.55 に記載さ
れている動作確認を行ない、どのルールがどのような順番で発火し、それぞれのルールで
何がどのように処理されているかを(ことばで)レポートに記載しなさい。
③ [演習] 温泉データの泉質や所在地をキーとして検索できるように ODB-aomori を拡張し
なさい。
④ 演習で拡張したプログラムと実行結果の画面をレポートに記載しなさい。
ステップ 3
① P.56~P.62 までを読んで、
「既存ソフトの呼び出し方」を理解してください。
② P.63~P.64 に記載されている ODB-iwate エージェントを作成しなさい。その上で、P.65 に記
載されている動作確認を行ない、その結果の画面ハードコピーをレポートに記載しなさい。
③ [演習] 削除した温泉データをワーキングメモリに削除データとして記録されるように
しなさい。この操作は、”make”というアクションを用いて”removed”という名称のオブジェ
クトを作成することで実現しなさい。
(実際には元のデータベースから削除される訳ではな
2
く、ワーキングメモリから削除されるだけです)
④ 演習で作成したプログラム(該当するルールの部分のみ)と、実行した結果のワーキング
メモリの内容(removed という名称のオブジェクトが追加されている状態)を画面ハードコ
ピーとしてレポートに記載しなさい。
ステップ 4
① P.66~P.71 までを読んで、
「人間-エージェント間の通信方法」を理解してください。
② P.72 に記載されている動作確認を行ない、どのルールがどのような順番で発火し、それぞ
れのルールで何がどのように処理されているかを(ことばで)レポートに記載しなさい。
③ [演習] ルールを追加して、ODB-aomori の温泉データを検索できるようにしなさい。
④ 演習で追加したルールと、実行結果の画面をレポートに記載しなさい。
ステップ 5
① P.73~P.77 までを読んで、
「マルチエージェントによる問題解決(分割統治法)
」を理解して
ください。その上で、P.79 に記載されている動作を確認しなさい(結果の報告は不要)
。
② [演習] Searcher エージェントを改良して、2 つの候補が同じ最大評価値の場合に、その
ことをユーザに報告するようにルールを追加しなさい。追加したルールと、実行結果の画
面をレポートに記載しなさい。
“~”の意味の理解がカギになります。
ステップ 6
① P.80~P.86 までを読んで、
「状況に応じた柔軟な問題解決法」を理解してください。その上
で、P.89 に記載されている動作を確認しなさい(結果の報告は不要)
。
② [演習] 予約が重複したときに、優先度が低いために予約事象が取り消された場合に、
取り消されたエージェントに対して、時間の変更を行うかどうかを尋ねて、変更する場合
には新たな時刻で予約を行うように、各 Secretary エージェントのルール”receive-refusal”お
よび”receive-cancel”を改良しなさい。修正したルールと、実行結果の画面をレポートに記載
しなさい。簡単にできる方法があるので、それを発見するように。
ステップ 7
① P.90~P.98 までを読んで、
「協調(契約ネット)プロトコル」を理解してください。その上
で、P.101 に記載されている動作を確認しなさい(結果の報告は不要)
。
② [演習] 利用者要求で”breakfast”を”no”とした場合を実行して、その出力をレポートに記
載するとともに、どのルールでどのような処理が行なわれたのかを「自分の言葉で」文章
として説明しなさい(TA によるチェックは不要)
。
ステップ 8
① P.102~P.109 までを読んで、
「黒板モデル」を理解してください。その上で、P.118 に記載さ
れている動作を確認しなさい(結果の報告は不要)
。
② P.119 に記載されている演習問題を行い、修正・追加したルール(プログラムのソース)と、
実行結果の画面をレポートに記載しなさい。
注:プロジェクトファイルを使って自動でファイルをロードすると、blackboard を読み終える前に次
のファイルを読んで動作がおかしくなることがある(結果として Y が選択される)
。ロードが始まる
3
直前に”non stop”にチェックを入れるか、手動でロードするとよい。
ステップ 9
① 課題:
「各自で、作成したプログラムをベースにして、他の分野における例題を作成し、新
たな機能を工夫して、プログラムを作りなさい。
」
② ステップ1~8のいずれのステップをベースにしても構いません。
1) ただし、後のステップをベースにする程、高く評価します。
2) レポートには、
・どのステップをベースにしたか
・機能の説明
・プログラムの構成図
・ソースコード
・入出力画面
を記載すること。
③ 例:ステップ 8 をベースにして、「世界の温泉めぐり」の分野について、「・・・」などの
問合せができるシステムを作成した。機能は以下の通り:
1) もっとも短時間で 5 箇所をまわれるツアーの企画
2) もっとも安くまわれるルートの設定
3)
・・・・・
4.レポート
(1) 体裁
① 表紙を必ず付けること。表紙には、名前、学籍番号を書くこと。
② ステップごとに章を分けて報告すること。
③ 最後に「感想」の章を設けて、学んだこと、苦労したこと、実験の進め方について改善すべ
きだと思うことなどを述べること。
(2) 提出
① 〆切り:
・ 5/7(木)中までに提出できた場合には高く評価する。
・ 5/7(木)に提出できない場合には、5/13(水)の19:00を最終締め切りとして提出する。
② 提出方法:ファイルを PDF に変換して、manaba+R から提出する。
・ ファイル名は各自の学生証番号+氏名とする
例)学生証番号:260000000-0; 名前:立命太郎の場合、260000000-0立命太郎.pdf
以上
4