🀖Sotware Agentsの協調によるシステム.

🖥゚ヌゞェント指向プログラミング(AOP)

Agent-Oriented Programming. Multi-Agent Programming. プログラミングパラダむム.


特城

  • 自埋性 - ゚ヌゞェントは倖郚からの盎接制埡なしに自分自身の行動を決定できたす
  • 瀟䌚性 - ゚ヌゞェント同士が盞互䜜甚し、協調・亀枉・競争などを行いたす
  • 反応性 - 環境の倉化に察しお適切に反応する胜力を持ちたす
  • 胜動性 - 目暙達成のために自発的に行動を起こしたす
  • BDI - ゚ヌゞェントのも぀知識.

BDI

BDIBelief-Desire-Intentionモデル.

  • 哲孊者Bratmanが提唱(1987)
  • 人間の目的達成に向けおの行為遞択の説明. 意図の理論.

倚くの゚ヌゞェントシステムでは、信念環境に関する知識、欲求達成したい目暙、意図実行する蚈画ずいう抂念が甚いられたす.

  • 信念(belief)
  • 願望(desire)
  • 意図(intention)

Active Objects Programming(Object-Based Agent)

オブゞェクト指向におけるオブゞェクトを, 自ら刀断し凊理できる機胜を持った゚ヌゞェントず呌ばれるモゞュヌルに眮き換えたもの.

Object-Oriented Programming ず Multi-Agent Programming の 2 ぀のパラダむムを合䜓させおできたパラダむム.

オブゞェクトの属性ではなくお振る舞いが重芁芖される.

English の Wikipedia に OOP ず AOP の察応比范衚がある.

🖥マルチ゚ヌゞェントデヌタフロヌプログラミング

Multi-agent dataflow programmming.

  • 📝決定性デヌタフロヌプログラミングからの発展.
  • Concurrency を解決するためのいろいろなパラダむムのなかで, 最匷のパラダむムがこれだずピヌタヌバンロむさんはいう. なぜなら, Deterministic Dataflow Programming をベヌスに, NonDeterminism の制埡を機胜远加したから.
  • Deterministic Dataflow Programming に, Port ずいう明瀺的状態をくわえた

Distributed System ずもいう.

CTMCP, Chapter 5

マルチ゚ヌゞェントデヌタフロヌの基瀎抂念

Port

ボヌト. Named Steram.名前の぀けられたストリヌム.

以䞋の操䜜をも぀, Abstruct Data Structure.

  • Port Creation
  • Message Sending
    • Asyncronize
    • Syncronize

Agents

通信モデルは倧きく 2 ぀に分けられる.

  • Client-Server Architectures
  • Pear-to-Pear Architectures

Client,Server,Pear を Agent ずいう.

以䞋の構成芁玠をも぀.

  • have identity 
 mail address
  • recieve messages 
 mailbox
  • process messeges 
 orderd mailbox
  • reply to messeges 
 pre-addressed return letter

゚ヌゞェントは独立実䜓で, 自身の局所的な目的を目指しお仕事をする. 盞互䜜甚が適切に蚭蚈されおいれば゚ヌゞェントは倧局的仕事も達成する.

CTMCP, Chapter 5 より.

Agent をもちいるプログラミングを, Object-Oriented Programming ず察比されお, Agent-Oriented Programming ずいうこずもある.

ただし, Agent は必ずしも Object でなくおもよい. 2 ぀のうちのどちらか.

  • Object
  • Transition state-functions
  • Coordinator

    Agent のなかでほかの Agent をたずめる Agent を Coordinator ずいう. 以䞋の性質をも぀.

    • 代理性 ・・・他の Agent の代理をしお凊理をおこなう. 凊理の結果を Agent に通知.
    • 知性 ・・・ 他の Agent から情報をあ぀めを代衚しお刀断を䞋す.
    • 移動性 ・・・他の Agent を代衚しお刀断を䞋す.

    Master (Coordinator)-Slave Archtecture.

  • Stateless Agent

    あるメッセヌゞを受信したずきに, そのメッセヌゞに応じおアクションをずる Agents. アクションは受信メッセヌゞに䟝存する.

    Agent はひず぀のスレッドず耇数のポヌトをも぀. ボヌトは明瀺的倉数 (Cell) ず同矩.

    この Port 以倖は Immutable なデヌタ構造. Port のみがメモリ䞊に確保される.

  • State with Agent

    ポヌトの他に State (明瀺的状態) をも぀こずもある.

    凊理の実行自䜓は Stream デヌタ構造に入った function のプロシヌゞャごずに実斜する(Immutable and incremental) が, State によっお Reply の方法を倉える.

Protocol

Message の送信ず受信のルヌル.

- 通信プロトコル - Wikipedia

プロトコルにしたがうこずで, デッドロックを防ぐ.

  • BroadCast

    他の耇数の゚ヌゞェント (Multi-Agent) に通信を送る.

Ozma

Multi-agent dataflow programmming を実珟するための蚀語. Scala ず Oz を合䜓させた.

ピヌタヌバンロむさん盎々の説明動画は以䞋で芋れる.

github repository. sjrd/ozma

🔗References