Sisteme multiagent sau "cum să umpleți un mamut, având o mulțime de neanderthali stupizi"

Sisteme multiagent sau

Bună ziua, tovarășe. Din acel moment, încep o serie de articole pe tema "Sisteme multiagent sau cum să umplem un mamut, având o mulțime de neanderthali stupizi".

Sisteme multiagent sau

În primul rând, răspundem la întrebarea: "Care este noutatea sistemelor multi-agent în general? De ce nu rezolvăm probleme folosind metode clasice de inteligență artificială? ".

Cele mai multe dintre abordările existente în crearea inteligenței artificiale în nici un fel încercarea de a proiecta „Sverhmozg“, „Obiect Divin“, care, ca un super-erou curajos Hollywood singur ar ucide toate sarcinile înainte de a fi. Este un dulgher, un dulgher și un vânător pe șoareci. Cu toate acestea, după cum știm, în realitate, acest lucru nu se întâmplă de multe ori, și mai multe mijloace universale competențe slabe în toate domeniile, precum și costurile enorme de formare sau proiectarea unui astfel de miracol.

Ce ne dă acest lucru? După cum arată practica, și înțelepciunea populară - „Un cap este bun, dar doi - mai bine“, concatenarea nu este foarte agenți inteligenți pot rezolva problema mult mai complicată, care nici măcar nu visau agentului cleverest în sistem.

Ei bine, destule cuvinte. Să încercăm să scriem un cadru pentru construirea unui simplu sistem multi-agent. Vom scrie în C #. În acest articol, prezentăm structura de bază a agenților, fără a lua în considerare interacțiunile dintre ele.

La început, descriem aspectul general al agenților:

Acest agent minim conține următoarele proprietăți și metode:

Acțiunile agentului și manipularea mesajelor sunt delegate obiectului de comportament:

Interfața IRealObject descrie structura generală inerentă tuturor obiectelor care descriu obiecte simulate. În acest caz, interfața este foarte scurtă:

Să încercăm să creăm un agent care să implementeze interfața de care avem nevoie. Pentru a face acest lucru, creați un obiect care descrie liderul Neanderthalilor:

Avem două lider de stat - atunci când a invitat oamenii să vâneze, iar când el reușește de fapt vânători. În funcție de starea lui, liderul acționează diferit. Acest lucru se reflectă în scrierea claselor de comportament pentru fiecare stat. Realizarea de comportamente și un mesaj de procesare pentru simplitate omise, dar aici puteți vedea un tip special de rolul agentului - un coordonator, care este, în principiu doar coordonează activitatea agenților, prin comunicare, dar el nu deține măsuri active pentru a rezolva problema.

În cele din urmă, descriem agentul însuși:

În acest moment, terminați primul articol al ciclului. În timp ce nimic deosebit, cu toate acestea, cel mai interesant este încă să vină, tovarăș.