praca_magisterska/pytania/odpowiedzi/13-systemy-agentowe-aktorowe.md

10 KiB

Pytanie 13: Systemy agentowe i aktorowe - teorie, standardy, narzędzia

Pytanie

"Omówić szczegółowo teorie, definicje, standardy i narzędzia wykorzystywane przy projektowaniu i implementacji systemów opartych na koncepcji agenta i aktora."

Przedmiot: AASD (Agentowe i Aktorowe Systemy Decyzyjne)


📚 Odpowiedź główna

1. Definicje fundamentalne

Agent (wg Wooldridge & Jennings)

Agent = system komputerowy umieszczony w środowisku, zdolny do autonomicznego działania w celu realizacji celów.

┌─────────────────────────────────────────────────────────────────┐
│                      ŚRODOWISKO                                 │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │                                                         │   │
│  │    Percepcja          ┌─────────┐         Akcja        │   │
│  │   ─────────────────→  │  AGENT  │  ─────────────────→  │   │
│  │      (sensory)        │         │       (effectors)    │   │
│  │                       │ Cele    │                       │   │
│  │                       │ Wiedza  │                       │   │
│  │                       │ Plany   │                       │   │
│  │                       └─────────┘                       │   │
│  └─────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

Właściwości agenta (AARC)

Właściwość Opis
Autonomiczność Działa bez bezpośredniej interwencji
Reaktywność Reaguje na zmiany środowiska
Proaktywność Inicjuje działania do realizacji celów
Społeczność Komunikuje się z innymi agentami

Aktor (model Hewitta, 1973)

Aktor = fundamentalna jednostka obliczeń, która:

  • Ma prywatny stan
  • Komunikuje się wyłącznie przez wiadomości
  • Może tworzyć nowych aktorów
  • Przetwarza jedną wiadomość naraz
┌────────────────────────────────────────────────────────────────┐
│  AKTOR                                                         │
│  ┌──────────────────┐                                         │
│  │   Mailbox        │  ← wiadomości (kolejka)                 │
│  │   ┌─┬─┬─┬─┐     │                                         │
│  │   │m│m│m│m│     │                                         │
│  │   └─┴─┴─┴─┘     │                                         │
│  │        ↓         │                                         │
│  │   Behavior       │  → przetwarzanie sekwencyjne            │
│  │   (zachowanie)   │                                         │
│  │        ↓         │                                         │
│  │   Stan prywatny  │  → izolowany, niemutowalny z zewnątrz   │
│  └──────────────────┘                                         │
│                                                                │
│  Reakcje na wiadomość:                                        │
│  1. Wyślij wiadomości do innych aktorów                       │
│  2. Utwórz nowych aktorów                                     │
│  3. Zmień własne zachowanie (become)                          │
└────────────────────────────────────────────────────────────────┘

2. Agent vs Aktor

Cecha Agent Aktor
Cel Inteligentne zachowanie Współbieżność
Stan Beliefs, Goals, Intentions Prywatny, izolowany
Komunikacja ACL (semantyka) Wiadomości (asynchroniczne)
Autonomia Wysoka (decyzje) Średnia (reaktywność)
Pochodzenie AI, systemy rozproszone Teoria obliczeń

3. Architektury agentów

BDI (Belief-Desire-Intention)

┌─────────────────────────────────────────────────────────────────┐
│                    ARCHITEKTURA BDI                             │
│                                                                 │
│   Percepcja → BELIEFS (przekonania o świecie)                  │
│                    ↓                                            │
│              DESIRES (cele do osiągnięcia)                     │
│                    ↓                                            │
│              INTENTIONS (wybrane plany)                        │
│                    ↓                                            │
│                  Akcja                                          │
│                                                                 │
│   Przykład:                                                     │
│   B: "Jest czerwone światło"                                   │
│   D: "Chcę dojechać do celu"                                   │
│   I: "Zatrzymam się i poczekam"                                │
└─────────────────────────────────────────────────────────────────┘

Subsumption Architecture (Brooks)

Warstwa 3: [Eksploruj]     → najwyższy priorytet
              ↓ suppress
Warstwa 2: [Unikaj przeszkód]
              ↓ suppress
Warstwa 1: [Idź przed siebie]
              ↓
           Effektory

Zachowania niskopoziomowe mogą być "nadpisane" przez wyższe.

4. Standardy komunikacji agentów

FIPA (Foundation for Intelligent Physical Agents)

FIPA-ACL (Agent Communication Language):

(inform
  :sender    agent1
  :receiver  agent2
  :content   (price item1 100)
  :language  FIPA-SL
  :ontology  trading-ontology
)

Performatywy FIPA:

Performatyw Znaczenie
inform Informuje o fakcie
request Prosi o wykonanie akcji
query-if Pyta czy coś jest prawdą
propose Proponuje transakcję
accept-proposal Akceptuje propozycję
reject-proposal Odrzuca propozycję
cfp Call for Proposals

KQML (Knowledge Query and Manipulation Language)

Starszy standard, podobny do FIPA-ACL.


5. Narzędzia i frameworki

Systemy agentowe

Narzędzie Język Opis
JADE Java FIPA-compliant, najpopularniejszy
Jason AgentSpeak BDI, deklaratywny
SPADE Python Asynchroniczny, XMPP
NetLogo Logo Symulacje, edukacja
MASON Java Symulacje wieloagentowe

Systemy aktorowe

Narzędzie Język Opis
Akka Scala/Java Produkcyjny, dojrzały
Erlang/OTP Erlang Telekomunikacja, fault-tolerant
Orleans C# Microsoft, Virtual Actors
Pony Pony Capabilities, bezpieczny
Ray Python ML, distributed computing

6. Protokoły interakcji

Contract Net Protocol

┌─────────┐        cfp         ┌─────────┐
│ Manager │───────────────────→│ Bidder1 │
│         │←──────propose──────│         │
│         │        cfp         ├─────────┤
│         │───────────────────→│ Bidder2 │
│         │←──────propose──────│         │
│         │                    ├─────────┤
│         │───accept-proposal─→│ Winner  │
│         │←─────inform────────│         │
└─────────┘                    └─────────┘

🧠 Mnemoniki

"BDI = Believe, Desire, Intend":

  • Beliefs = co wiem o świecie
  • Desires = czego chcę
  • Intentions = co zamierzam zrobić

"ARPS" - właściwości agenta:

  • Autonomiczność
  • Reaktywność
  • Proaktywność
  • Społeczność

"Aktor = Mailbox + Behavior + State":

  • Kolejka wiadomości
  • Logika przetwarzania
  • Izolowany stan

Pytania dodatkowe

Q1: "Czym różni się JADE od Akka?"

Odpowiedź: JADE to framework agentowy (FIPA, ACL, inteligentne zachowania), Akka to framework aktorowy (współbieżność, fault-tolerance, reactive streams). JADE dla AI/MAS, Akka dla systemów rozproszonych.

Q2: "Co to jest Yellow Pages w systemach agentowych?"

Odpowiedź: Usługa katalogowa (Directory Facilitator w FIPA) gdzie agenty rejestrują swoje usługi. Inne agenty mogą wyszukiwać agenty oferujące konkretne usługi. Analogia do książki telefonicznej.

Q3: "Jak Akka zapewnia fault-tolerance?"

Odpowiedź: Supervision trees - każdy aktor ma supervisora, który decyduje o reakcji na błąd (restart, stop, eskaluj). "Let it crash" philosophy - izolacja błędów.


🎯 Kluczowe punkty

  1. Agent = autonomiczny, reaktywny, proaktywny, społeczny
  2. Aktor = mailbox + behavior + isolated state
  3. BDI = Beliefs-Desires-Intentions (architektura)
  4. FIPA-ACL = standard komunikacji agentów
  5. JADE = agenty (Java), Akka = aktorzy (Scala)

📖 Źródła

  1. Wooldridge - "An Introduction to MultiAgent Systems"
  2. Hewitt - "A Universal Modular Actor Formalism for AI"
  3. FIPA Specifications - fipa.org
  4. Akka Documentation - akka.io