本稿では,エージェントをその実装方法の観点から3種類-移動エージェント,自律エージェント,マルチエージェントシステム-に分類し,各々のエージェントを記述するために要請されるエージェント言語の機能,特性について考察を試みるとともに,実際に提案されているエージェント言語の事例を紹介する.
「ゲーム理論」はもともと形式化されえない世界の複雑さ,多様性を捉えるために導入されたものである.ここではゲーム理論を,どの戦略が最適化であるか,といった観点からではなく,どうしたら戦略は多様になるか,その多様生はいかに保たれるか,といったことをみてみる.具体的には囚人のジレンマゲームの計算機シミュレーションの中の戦略の進化などをもとに論じている.しかし計算機のような閉じたシステムではゲームの持つ開放系としての側面を扱うことは難しい.ゲームの開放系としての本質は開かれたゲームの大会などにみることができる.そこで後半ではゲームの開放性とは何か,ということを論じる.ゲームの開放性を問題にするということは,ゲーム理論でプレイヤーに科さられる合理性という制約を再考してみることでもある.この論文の全体のトーンは,プレイヤーの合理性がいかに設定できるか,あるいは出来ないか,それを考えようというものである.
従来のソフトウェア開発では,ユーザに違和感を与えないようにするために,開発者が細心の注意を払う必要があった.Shohamによって提案されたエージェント指向プログラミング(AOP)は,信念やコミットメントなど,人間にとって馴染み深い心的概念を用いてプログラミングできるようにしようとするパラダイムであり,ソフトウェアを擬人化してプログラミングできるので,違和感のないプログラムの作成が容易になると期待される.しかし,マルチエージェント環境での信念などの動的性質や計算方法は十分解明されていない.そこでこれを解明することにより,AOPに適した言語を設計する場合の重要な指針が得られるであろう.本論文では,他者の信念に関する自分の信念の計算というひとつの課題を扱い,我々が以前提案した信念推定アルゴリズムの問題点を指摘し改良を加える.そして処理時間や推定の品質についての実験結果を示す.
マルチエージェント系におけるエージェントの環境への適応は,進化論からの類推に基づき,個体による生涯内での「学習」と集団による世代をまたいだ「進化」といった異なる2過程の相補的なものとして捉えられる.本稿では,ダーウィン型あるいはラマルク型の遺伝機構を持つ集団の進化の過程を再現し,特に動的な環境下でのそれぞれの集団の適応性について評価および議論する.その結果,ダーウィン型の集団の方が,静的環境下では効率的なラマルク型の集団よりも環境の変動に対して安定した挙動を示すばかりでなく,世代を通じて動的環境自体に適応していくことが可能であることを示す.
複数のエージェントが1つの問題を並行して解く協調探索において,進化的計算における淘汰と同様なアイデアを用いてエージェント間の競争を導入したアルゴリズムを開発した.本アルゴリズムでは,状態空間探索問題を解くマルチエージェントReal-Time A^*アルゴリズムにおいて,複数のエージェントが定期的に適合度に応じて確率的に次世代の子を作る.適合度はエージェントの現在位置の評価値によって決定され,より良い評価値を持つエージェントが次の世代により多くの子を残せる.この方法により,有望な経路に労力を集中しアルゴリズムを効率化することと,多様性を保ち知識の誤りに対して頑健であることが両立可能である. 例題を用いた評価により,nパズルのように問題の目標が直列化可能な複数の副目標(serializable subgoals)に分解可能な場合には,エージェントは副目標に関する知識を持っていないにもかかわらず,本方式により劇的な高速化が得られることを示す.特に,本アルゴリズムは48パズルを安定して解くことが可能である.この問題は副目標に関する知識を陽に与えない限り,従来のヒューリスティック探索アルゴリズムでは現実的な時間内で解を得ることは不可能であった.
本論文では、代入を持つ関数型言語Λを提案する.この言語の定義を示し、操作的意味論がChurch-Rosser性や参照透明性のような良い性質を持つことを示す.次に、Λと[5]で提案された同様の関数型言語Λ94とを比較し、両者の間に成り立つ関係を調べる.Λの操作的意味論はΛ94のそれよりも簡潔に与えられており、そのためΛに対しては決定的な操作的意味論を自然に定義することができる.
遅延評価型の関数型言語は,理論的な取扱いが容易でプログラムも簡潔に書ける点が評価されているが,実行効率の問題が指摘されてきた.しかし,最近になってGlasgow Haskell Compilerに代表される効率的な言語処理系が登場し,実用的なプログラミング言語としても注目を集めている. 関数型言語処理系の効率的な実装を可能にした技術が大域的なプログラム解析をもとにした最適化であるが,この1つが正格性解析を用いた引数のunbox化によるメモリアクセスの軽減である.本論文では,この最適化をさらに進めて,unbox化を関数引数だけでなく代数データ型のデータ構成子の要素にも適用する方法を提案する.この方法に基づき,Glasgow Haskell Compilerのコード生成部を改良し,いくつかのプログラムに対して実行効率の向上を確認した.