Sunteți pe pagina 1din 30

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

DEZVOLTAREA UNUI SISTEM MULTIAGENT FOLOSIND ZEUS CARE SIMULEAZ IEIREA UNEI MAINI DINTR-O PARCARE

Studeni: Potop Oana-Marina Radu Alexandra Florentina Grupa:1063

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

CUPRINS

Contents
Capitolul 1: Analiza aplicaiei ............................................................................................ 3 1.1 Enuntul problemei si premisele ............................................................................ 3 1.2 Domeniul si modelul de roluri .............................................................................. 3 a. Domeniul The Information Management ............................................................... 3 Figura 1 - Diagrama modelului de roluri Shared Information Space ...................... 4 Diagrama de colaborare Shared Information Space Collaboration ............................ 4 Descrierea rolurilor modelului Shared Information Space...................................... 5 1.3 Mentionarea agentilor i a rolurilor ...................................................................... 7 1.4 Lista responsabilitatilor agentilor ........................................................................ 8 Capitolul 2: Proiectarea aplicaiei ..................................................................................... 10 2.1 Detalierea responsablitatilor pe agenti ................................................................ 10 2.2 Modelare de cunotinte i ontologie ................................................................... 13 Capitolul 3: Dezvoltarea aplicatiei.................................................................................... 15 3.1 Crearea ontologiei ............................................................................................... 15 3.2 Crearea agentilor ................................................................................................. 15 3.2.1 Definirea agentilor ........................................................................................... 15 3.3 Configurarea agentilor utilitari ........................................................................... 22 3.4 Configurarea agentior task .................................................................................. 23 Capitolul 4: Implementarea i rularea aplicaiei ............................................................... 24 4.1 Evidentierea rezultatelor aplicatiei: .................................................................... 26 4.2 View-ul societii de ageni, Statistici ................................................................ 27

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Capitolul 1: Analiza aplicaiei

1.1 Enunul problemei i premisele Proiectul realizat descrie modul de rezolvare i implementare a unei probleme clasice care presupune ieirea dintr-o parcare a unei masini. Prin aceast aplicaie sunt puse n eviden dou particulariti ale platformei ZEUS. Modul n care se poate implementa un serviciu centralizat de informaii ce poate fi interogat folosind mesageria agenilor Modul n care se poate controla comportamentul unui agent folosind reguli.

Pentru nceput, n cadrul analizei aplicaiei se indentific domeniul i modelul de roluri cele mai potrivite innd cont de cerinele aplicaiei. In situaia de fa, un agent deine informaii necesare celorlali ageni iar acetia comunic prin intermediul mesajelor cu el. Cel mai potrivit domeniu este cel din domeniul Managementului informaiei (Information Management Domain) iar modelul de roluri este Spaiul de punere n comun a informaiilor (The Shared Information Spaces).

1.2 Domeniul i modelul de roluri a. Domeniul The Information Management Caracteristici. Aplicaiile n acest domeniu sunt caracterizate de ctre modul asimetric n care sunt deinute informaiile. De exemplu, anumite entitti dein informaii pe care altele nu le dein iniial fie din cauza drepturilor de care dispun, fie modului n care au fost proiectate i construite. De aceea, entitile care nu dein informaiile trebuie s comunice cu entitatea care le deine pentru a le obine i pentru a putea s i continue activitatea. b. Modelul de roluri The Shared Information Space Modelul The Shared Information Space implic dou tipuri de entitai: 1. Publisher-ul (Distribuitorul) - care deine informaii la care doar el are acces 2. Subscriber-ul (Abonatul) care solicit informaii pe care le deine Publisher-ul, solicitarea fcut prin intermediul trimiterii de mesaje.

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Premizele modelului: exist un singur Publisher unul sau mai muli Subscriber-i Subscriber-ii folosesc aceeai surs de informaii pentru a realiza scopuri proprii.

Publisher-ul conine 3 sub-roluri: rolul modelului (Model role) responsabil pentru pstrarea informaiilor stocate rolul View responsabil pentru vizualizarea informaiilor rolul Controller este un intermediar ntre informaiile stocate i Subscriber-i. In continuare n Figura 1 este prezentat Modelul Rolurilor

Publisher

Subscriber

Model

View

Controller

Figura 1 - Diagrama modelului de roluri Shared Information Space Diagrama de colaborare Shared Information Space Collaboration Modelul conine 3 seturi de interaciuni: - ntre rolul de Controller i Subscriber care implic nregistrarea, problema i rspunsul la interogri. Rspunsurile la interogri sunt formulate dup consultarea modelului. - rolul View poate de asemenea accesa modelul i, dup cum se poate vedea n Figura 2, realizeaz n raport cu acesta aceleai interaciuni ca i Controller-ul (4,5,7).

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Figura 2: Interaciunile dintr rolurile modelului Shared Information Space Interaciunile: Explicaie Subscriber-ii se aboneaz la Publisher Publisher-ul notific Subscriber Este trimis o cerere de obinere a unei informaii Interogarea modelului Modelul este interogat pentru a se obine un rspuns la cererea primit. Rspunsul modelului Informaia solicitat este returnat Controller-ului Rspuns ce conine Controller-ul prezint informaia Subscriberinformaia ului Actualizarea modelului Este fcut o modificare (actualizare) pentru informaia trimis deinut de model. Colaborare Inregistrare Rspuns la nregistare Solicitare informaie

1 2 3 4 5 6 7

Descrierea rolurilor modelului Shared Information Space

CONTROLLER
Modelul de roluri: Shared Information Space Relaiile cu alte roluri: Aparine rolului Publisher Descriere: Sub-rolul reprezint un furnizor de informaii i acoper cel mai important aspect al Publisher-ului. Are sarcina de a gestiona cererile de abonare i colicitrile de informaii de la Subscriber-i. Responsabiliti: Colaboratori: [1, 2] S primeasc i s raspund cererilor de Subscriber-i abonare

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

[3, 6] S primeasc i s rspund solicitrilor Subscriber-i de informaii Interfee externe: S interogheze modelul pentru obinerea de rspunsuri/informaii la solicitarea abonailor Cerine preliminare: -

MODEL
Modelul de roluri: Shared Information Space Relaiile cu alte roluri: Aparine rolului Publisher Descriere: Rolul stocheaz informaiile deinute de Publisher i ofer rolurilor Controller i View posibilitatea de a accesa i actualiza modelul. Responsabiliti: [4, 5] S ofere informaii la cerere [7] S permit modificri asupra informaiilor stocate Interfee externe: S includ un depozit de informaii Cerine preliminare: Colaboratori: Controller, View Controller, View

VIEW
Modelul de roluri: Shared Information Space Relaiile cu alte roluri: Aparine rolului Publisher Descriere: Acest sub-rol este opional pentru Publisher. Se folosete de obicei atunci cnd e nevoie s fie oferit o descriere a informaiilor stocate de model. Pot exista mai multe instane ale acestui sub-rol n funcie de modurile n care pot fi afiate informaiile. Responsabiliti: [4, 5] S interogheze i s reprezinte modelul. [7] S realizeze modificri n model Interfee externe: Colaboratori: Model Model

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

S vizualizeze coninutul modelului Cerine preliminare: -

SUBSCRIBER
Modelul de roluri: Shared Information Space Descriere: Acest rol stocheaz informaiile deinute de Publisher i ofer Controller-ului posibilitatea de a accesa i de a modifica modelul. Responsabiliti: [1, 2] S realizeze i s primeasc cereri de abonare [3, 6] S realizeze i s primeasc cereri pentru informaii. Colaboratori: Controller Controller

Interfee externe: S realizeze propriile activiti specifice aplicaiei Cerine preliminare: -

1.3 Menionarea agentilor i a rolurilor Acest proiect nu implic task-uri primitive, fiind implementat un comportament reactiv care este inclus n ageni folosind task-uri bazate pe reguli. Participanii i capacitile lor sunt: Agentul Environment este rspunztor pentru: - stocarea unei pacari - reinerea locaiilor agenilor n cadrul parcarii - va rspunde agenilor la interogrile despre parcare - va afia grafic parcarea i locaia agenilor n ea la fiecare moment de timp pn la ieirea din parcare. Agentul tip Navigator agenii de acest tip au urmtoarele caracteristici: - ncearc s iasa din parcare - nu dein informaii despre cum arat parcarea -trebuie s trimit mesaje agentului Environment pentru a obine informaii despre parcare, informaii pe baza crora s ia deciziile pentru urmtoarea mutare

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

- fiecare agent de acest tip va conine o baz de reguli ce descrie comportamentul necesar soluionrii problemei i care le va gestiona mutrile - fiecare agent va deine o interfat grafic prin care se va raporta utilizatorului statusul su curent - n cadrul aplicaiei sunt creai 3 ageni navigatori(car1,car2,car3). Modelul de roluri Shared Information Space const ntr-o surs centralizat de informaii iar responsabilitile sale corespund n mare msur agentului Environment. Rolurile pentru Subscriber-i sunt adecvate pentru agenii Navigator. In continuare se poate face asocierea rol-participant, ncepnd cu modelul de roluri standard de aplicaia ZEUS. Este nevoie de un agent care s aib rolul de Name Server pentru asigurarea independeei de locaie. Aisgnarea rolurilor pentru ageni este urmtoarea: Nume agent Environment Navigator Rol Publisher (Model, View, Controller)
Subscriber

1.4 Lista responsabilitilor agenilor Responsabilitile rolului Publisher: PUBLISHER Responsabiliti sociale Origine Responsabilitate Controller Controller Controller (1) S accepte solicitrile de nregistrare (2) S rspund nregistrrilor (3) S primeasc cererile de informaii de la Subscriber-i (abonai)

Controller (4) S rspund cererilor de informaii de la Subscriber-i PUBLISHER Responsabiliti de domeniu Origine Responsabilitate Controller Model View (5) S interogheze modelul pentru a putea rspunde cererilor Subscriber-ilor (6) S includ un depozit de informaii (7) S vizualizeze coninutul modelului

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Responsabilitile rolului Subscriber: SUBSCRIBER Responsabiliti sociale Origine Responsabilitate Subscriber Subscriber (1) S se nregistreze la Publisher (2) S solicite informaii de la Publisher cnd este nevoie

SUBSCRIBER Responsabiliti de domeniu Subscriber (3) S realizeze propriile activiti specifice Subscriber (4) S informeze utilizatorul despre starea curent

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Capitolul 2: Proiectarea aplicaiei


Dup identificarea responsabilitilor specifice fiecrui agent, se poate mapa fiecare pe o problem ce trebuie soluionat. 2.1 Detalierea responsabliilor pe ageni Realizarea rolului de Publisher Rolurile Publisher-ului refer n primul rnd tratarea cererilor de abonat, dup cum se poate observa arat n tabelul de mai jos. Aceste intrri vor ilustra faptul ca potrivind o problema la o soluie existent necesit o anumit experien n construirea de sisteme de agent. PUBLISHER
Responsibilitate: Origine: Problem: Soluie: Explicaie: Controller Recepionarea i nregistrarea unui nou Subscriber Adugare Fact Monitor la Programul extern (IMPL-4) Toate mesajele primite sunt adugate n baza de date cu resurse a agentului. Inregistrarea poate fi implementat prin interfaa Fact Monitor. Aceasta are o metod care este declanat atunci cnd sunt recepionate noi fapte dup care pot fi luate msurile corespunztoare (a se vedea urmtoarea intrare). (2) S rspund nregistrrilor Controller S trimit un mesaj napoi la Subscriber. Creaz o resurs iniial pentru agent (DEF-3) i Specific prezena unei reguli (DEF-2) i Implementeaz o regul de trimitere a mesajului ( RULE-1) Atunci cnd regula este declanat (a se vedea intrarea precedent), agentul va trimite un mesaj napoi la Subscriber ntiinndu-l de nregistrare. Fapta trimis Subscriber-ilor nregistrai cu succes va fi furnizat Publisher-ului ca fiind o resurs iniial. (3) S primeasc cererile de informaii de la Subscriber -i (abonai) Controller S monitorizeze sosirea de noi cereri de informaii (pentru schimbare a locaiei). Adaug cerere Fact Monitor la Programul extern ( IMPL-4) Folosind o abordare asemntoare gestionrii nregistrrilor, Fact Monitor poate detecta interogrile primite i reaciona n consecin. In acest caz se interogheaz Modelul i se declanaz regulile care trimit un rspuns (a se vede intrarea urmtoarea). (4) S rspund cererilor de informaii de la Subscriber -i

RESPONSABILITI SOCIALE
(1) S accepte solicitrile de nregistrare

Responsibilitate: Origine: Problem: Soluie:

Explicaie:

Responsibilitate: Origine: Problem: Soluie: Explicaie:

Responsibilitate:

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC


Origine: Problem: Soluie: Explicaie: Controller S trimit un mesaj Message [to: Subscriber, about: ] Implementeaz regulile de trimitere mesaj (RULE-1)

2012

Atunci cnd o regul este declanat (n acest caz pe baza informaiei extras de la Model) Controller-ul poate trimite un mesaj napoi ctre Subscriber oferind informaia solicitat.

Deoarece toate aceste soluii nu sunt oferite automat de ctre clasa de agen ZUES trebuie realizate de ctre dezvoltator prin configurarea agenilor folosind intrumentul ZEUS de generare a agenilor i scriind programele externe necesare. PUBLISHER
Responsibilitate: Origine: Problem: Soluie: Explicaie: Controller S extrag informaii de la Model pentru a rspunde interogrilor Subscriber -ilor Implementez metoda Adapter (IMPL-4) Metoda Adapter va oferi aplicaiei codul specific care translateaz cererile Subscriber-ilor n interogri ctre Model. Metoda Adapter va avea legtur cu agenii prin intermediul interfeei proprii Zeus External. (6) S includ un depozit de informaii Model S stocheze informaii Aloc o resurs iniial a agentului (DEF-3) sau Conecteaz agentul la o resurs extern (IMPL-3) sau Implementeaz Modelul prin program extern (IMPL-4) Ageni pot stoca informaii ntr-o varietate de moduri; se pot constata ca fapte in baza de date de resurse, ntr-o baz de date extern sau n codul Java, care este accesibil interfaei agentului ZeusExternal.Alegerea va depinde de tipul de informaii care sunt stocate. n acest caz, vom pstra pracarea exterior, ntr-o matrice 2-dimensional Booleana. (7) S vizualizeze coninutul modelului View Sa ofere o reprezentare grafic a modelului Sa implementeze Model GUI Reprezentarea parcarii este specifica aplicaiei pentru a fi interpretata de Visualiser, astfel incat o interfa personalizat va trebui s fie scrisa c se afieaz. Acest lucru poate fi instantiat din programul agentului ZeusExternal.

RESPONSABILITI DE DOMENIU

(5) S interogheze modelul pentru a putea rspunde cererilor Subscriber -ilor

Responsibilitate: Origine: Problem: Soluie:

Explicaie:

Responsibilitate: Origine: Problem: Soluie: Explicaie:

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Realizarea rolului de Subscriber Acest lucru implic adoptarea aceleiai abordare ca i nainte, lund n considerare fiecare responsabilitate, la rndul su: SUBSCRIBER
Responsabilitate: Problem: Soluie: Explicaie:

RESPONSABILITI SOCIALE
(1) S se nregistreze la Publisher Trimite mesaj ctre Publisher [about: registration] Exist o relaie ntre el i Publisher (de peer) ( ORG-1) sau se folosete Facilitatorul i Implementare de reguli pentru trimitere de mesaje( RULE-1) Identitatea Publisher-ului poate fi setat static atunci cnd agenii sunt generai, sau descoperit la rulare prin intermediul unui Facilitator. Subscriber-ul poate trimite un mesaj c Publisher pentru a se nregistra. (2) S solicite informaii de la Publisher cnd este nevoie S trimit ctre mutarea urmtoare a Navigatorului ctre agentul Environment. Se creeaz o resurs iniial pentru agent (DEF-3) i Se specific prezena unei baze de date de reguli (DEF-2) i Se implementeaz reguli de trimitere a mesajului ( RULE-1) Resursa iniial va stoca un ablon de micare care va fi folosit pentru informarea mediului (Environment) de micarea pe care Nvigatorul dorete s o realizeze. Micarea reprezint o cerere implicit de informaie. De exemplu pentru mesajul trimis "I'm moving North" rspunsul va conine i specificarea "there are obstacles north and east". Precondiiile acestor reguli include comportamentul de rezolvare a ieirii din labirint.

Responsabilitate: Problem: Soluie:

Explicaie:

SUBSCRIBER
Responsabilitate: Problem: Soluie: Explicaie:

RESPONSABILITI DE DOMENIU

(3) S realizeze propriile activiti specifice Implementarea funcionalitilor aplicaiei n acest caz identificarea ieirii din labirint i informarea utilizatorului de progresul fcut Implementarea bazei de reguli pentru comportament ( RULE-1) Expertiza necesar navigrii prin labirint este stocat sub form de reguli. In acest exemplu se presupune c rspunsurile de la agentul mediu (Environment agent) vor fi suficiente pentru a informa Navigatorul de obstacolele care ies n cale. Prin urmare aceste reguli vor folosi informaia ctigat de la agentul Environment s determine urmtoarea mutarea ce va fi fcut. (4) S informeze utilizatorul despre starea curent S ofere o descriere grafic a strii modelului. Implementarea program extern pentru GUI ( IMPL-4) O interfaa pentru utilizator va fi creat pentru a afia care este starea agentului la fiecare moment de timp. Pentru aceasta va fi nevoie de implementarea interfeei Fact Monitor pentru a detecta ce informaie este trimis i primit

Responsabilitate: Problem: Soluie: Explicaie:

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

2.2 Modelare de cunotine i ontologie Identificarea conceptelor 1. concepte care reprezint parcarea 2. concepte care descriu micarea n parcare. Deoarece nu este nevoie ca faptele s moteneasc atribute de la alte fapte, toate faptele din ontologie vor fi sub-fapte Zeus (vor fi copii ai lui ZeusFacts). Faptele nu au nevoie de anumite constrngeri. De aceea informaia care trebuie introdus este redat n tabelul urmtor. Dup crearea ontologiei, aceasta trebuie s arate ca n Figura 1. Dup crearea ontologiei aceasta va fi salvat cu denumirea mazedemo.def.

Fapt obstacle

Atribute Default Explicaie north: south, east, west : false Dac exist un perete n aceste direcii. Boolean; id : String id : String sq: String north, south, east, west : false Boolean; id : String moved : Boolean; id : String name : String false Identitatea agentului care a prsit parcarea Atributul setat pe true este direcia pe care s-a micat agentul. Flag-ul intern indic faptul c a fost realizat o micare valid. Numele agentului care ncearc s se nregistreze. Numele agentului de mediu (Environment agent) la care se face nregistrarea. false Un flag pentru fiecare agent nregistrat. Este setat pe true dac agentul este nc n parcare.

mazeExited thisMove

moveMade

agentsName

agentRegister ed

name : String

inMaze

isInMaze : Boolean; name : String

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Figura 3: Ontologia aplicaiei

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Capitolul 3: Dezvoltarea aplicatiei

3.1 Crearea ontologiei Ontologia este definit conform punctului 2.2. 3.2 Crearea agenilor Se creeaz urmtorii ageni(Fig. 2) : Car Red,Car Blue,Car Green, Environment

Figura 4 Agenii din aplicaie 3.2.1 Definirea agentilor Creare agent Environment Definirea agentului Se va ine cont de responsabilitile sociale i de domeniu identificate n etapa de proiectare pentru a se vedea dac exist soluii care solicit modificri n definirea aegntului (identificate prin DEF-x). Astfel, exist menionate activitile DEF-2 i DEF-3 (Figura 3) Se d Click pe butonul 'Create New Task' din Task Identification i se selecteaz opiunea 'New Rulebase' (proces descris n activitatea DEF-2). Se redenumete noua intrare cu respondMove.

Se specific apoi resursele iniiale ale agentului Environment (process descris n activitatea DEF-3): Se d Click pe butonul New Initial Resource i se selecteaz agentRegistered ca i tip de fapt.

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Aceasta va fi folosit pentru a stoca o referin ctre agentul Environment care va fi trimis ctre toi agenii care s-au nregistrat cu succes. Editai numele atributului cu name valoarea cu Environment.

Nu sunt necsare modificri la organizarea i coordonarea agentului. Se salveaz i se prsete meniul de creare a agentului Environment.

Figura 3 Definirea agentului Environment

Definirea bazei de reguli pentru agentul Environment In cadrul definirii agentului Environment a fost creat baza de reguli respondMove. Prin urmare aceastea trebuie i ea definit Bazele de reguli sunt colecii de reguli care sunt grupate n mod convenabil, de obicei datorit funcionalitilor lor. Fiecare regul const dintr-o expresie care cuprinde un pattern i o aciune; atunci cnd agentul deine date care se potrivesc cu patternul atunci se declanaz regula asociat. Deoarece regulile sunt dependente de aplicaie, ele pot solicita un efort mare pentru realizare. Regulile pentru agentul Environment trebuie scrise de dezvoltator pentru a modela comportamentul dorit. Regulile sunt (responseMove.clp):

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC


Nume regul firstLegalMove Aciune primit de la

2012

Trigger Micare valid Navigator Micare invalid Navigator

Mesaj trimis pentru informarea Navigatorului de obstacolele de la noua locaie Mesaj trimis care reitereaz obstacolele de la locaia curent Navigator labirint nregistrat ca fiind n

illegalMove respondReg sendInMaze sendExited

ncercat

de

Inregistrare Navigator primit Navigator nregistrat ca fiind n labirint Navigatorul ajunge la ieirea din labirint

Mesaj trimis pentru informarea Navigatorului c se afl n labirint Mesaj trimis pentru informarea Navigatorului c nu mai exist n labirint

Codul regulilor. Nume regul firstLegalMove Condiii ?moveFlag <- (moveMade (moved true) (id ?agName)) ?obst <- (obstacle (west ?var177) (south ?var179) (east ?var178) (north ?var176) (id ?agName)) Aciune (send_message (type inform) (content ?obst) (receiver ?agName)) (retract ?moveFlag) (retract ?obst) illegalMove ?moveFlag <- (moveMade (moved true) (id ?agName)) ?lastMove <- (thisMove (west ?var20) (south ?var22) (east ?var21) (north ?var19) (id ?agName)) ?obst <- (obstacle (west ?var177) (south ?var179) (east ?var178) (north ?var176) (id ?agName)) respondReg (agentsName (name ?agName)) ?ar <- (agentRegistered (name ?envName)) (send_message (type inform) (content ?obst) (receiver ?agName)) (retract ?moveFlag) (retract ?obst) (retract ?lastMove) (send_message (type inform) (content ?ar) (receiver ?agName)) (assert (inMaze (isInMaze true) (name ?agName))) sendInMaze ?im <- (inMaze (isInMaze true) (name ?var269)) (send_message (type inform) (content ?im) (receiver ?var269)) (send_message (type inform) (content ?ex) (receiver ?varH))

sendExited

?ex <- (mazeExited (id ?varH))

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Editorul de reguli arat ca n Figura 4.

Figura 4 Editorul de reguli

Crearea agenilor de tip Navigator Agents Pentru tipul de agent Navigator vor fi creai 3 ageni: Car Red,Car Green si Car Blue. Pentru aceti ageni sunt create dou task-uri de tip baze de reguli (Figura 5.): Register conine o regul pentru nregistrarea agentului i una pentru de-registrarea lui atunci cnd iese din labirint. Navigate conine regulile care construiesc comportamentul de ieire din labirint. Const ntr-o regula de start i un set de reguli care urmesc pereii i prin care se aleg direciile la intersecii i decid ce aciune s intreprind dac o anumit direcie este blocat.

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Fig. 5. Task-urile de tip baze de reguli Pentru baza de reguli Register, regulile sunt urmtoarele:
Nume regul registerWithEnvironment Condiii ?aN <- (agentsName (name ?var6)) Aciune (send_message (type inform) (content ?aN) (receiver Environment)) (retract ?me) (retract ?obst) (retract ?aR) (retract ?tM) (assert (thisMove (west false) (south false) (east false) (north false) (id ?var33)))

exitedMaze9

?me <- (mazeExited (id ?var6)) ?obst <- (obstacle) ?aR <- (agentRegistered (name ?var19)) ?tM <- (thisMove) (agentsName (name ?var33))

Pentru baza de reguli Navigate, regulile sunt urmtoarele:


Nume regul Start Condiii ?obs <- (obstacle (west ?var180) (south ?var182) (east ?var181) (north ?var179)) ?lastMove <- (thisMove (west false) (south false) (east false) (north false)) ?agentReg <- (agentRegistered (name ?var15)) ?inMaze <- (inMaze (isInMaze true)) followWall_east ?obst <- (obstacle (east false) (north true)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (east true)) ?inMaze <- (inMaze (isInMaze true)) Aciune (modify ?lastMove (west false) (south false) (east false) (north true)) (send_message (type (content ?lastMove) ?var15)) (retract ?obs) (modify ?lastMove (west false) (south false) (east true) (north false)) (send_message (type (content ?lastMove) inform) (receiver inform) (receiver

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC


?var15)) (retract ?obst) followWall_north ?obst <- (obstacle (west true) (north false)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (north true)) ?inMaze <- (inMaze (isInMaze true))

2012

(modify ?lastMove (west false) (south false) (east false) (north true)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

followWall_west

?obst <- (obstacle (west false) (south true)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (west true)) ?inMaze <- (inMaze (isInMaze true))

(modify ?lastMove (west true) (south false) (east false) (north false)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

followWall_south

?obst <- (obstacle (south false) (east true)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (south true)) ?inMaze <- (inMaze (isInMaze true))

(modify ?lastMove (west false) (south true) (east false) (north false)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

going_east_block ed_east

?obst <- (obstacle (south true) (east true)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (east true)) ?inMaze <- (inMaze (isInMaze true))

(modify ?lastMove (west false) (south false) (east false) (north true)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

going_east_block ed_east_openSout h

?obst <- (obstacle (south false) (east true)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (east true)) ?inMaze <- (inMaze (isInMaze true))

(modify ?lastMove (west false) (south true) (east false) (north false)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

going_south_bloc ked_south

?obst <- (obstacle (west true) (south true)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (south true))

(modify ?lastMove (west false) (south false) (east true) (north false)) (send_message (type (content ?lastMove) inform) (receiver

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC


?inMaze <- (inMaze (isInMaze true)) ?var15)) (retract ?obst) going_south_bloc ked_south_open West ?obst <- (obstacle (west false) (south true)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (south true)) ?inMaze <- (inMaze (isInMaze true))

2012

(modify ?lastMove (west true) (south false) (east false) (north false)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

going_north_bloc ked_north

?obst <- (obstacle (east true) (north true)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (north true)) ?inMaze <- (inMaze (isInMaze true))

(modify ?lastMove (west true) (south false) (east false) (north false)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

going_north_bloc ked_north_openE ast

?obst <- (obstacle (east false) (north true)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (north true)) ?inMaze <- (inMaze (isInMaze true))

(modify ?lastMove (west false) (south false) (east true) (north false)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

going_west_block ed_west

?obst <- (obstacle (west true) (north true)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (west true)) ?inMaze <- (inMaze (isInMaze true))

(modify ?lastMove (west false) (south true) (east false) (north false)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

going_west_block ed_west_openNor th

?obst <- (obstacle (west true) (north false)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (west true)) ?inMaze <- (inMaze (isInMaze true))

(modify ?lastMove (west false) (south false) (east false) (north true)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

junctionSouth_goi ngWest

?obst <- (obstacle (south false)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (west true))

(modify ?lastMove (west false) (south true) (east false) (north false)) (send_message (type (content ?lastMove) inform) (receiver

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC


?inMaze <- (inMaze (isInMaze true)) ?var15)) (retract ?obst) junctionNorth_goi ngEast ?obst <- (obstacle (north false)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (east true)) ?inMaze <- (inMaze (isInMaze true))

2012

(modify ?lastMove (west false) (south false) (east false) (north true)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

junctionWest_goi ngNorth

?obst <- (obstacle (west false)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (north true)) ?inMaze <- (inMaze (isInMaze true))

(modify ?lastMove (west true) (south false) (east false) (north false)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

junctionEast_goin gSouth

?obst <- (obstacle (east false)) ?agentReg <- (agentRegistered (name ?var15)) ?lastMove <- (thisMove (south true)) ?inMaze <- (inMaze (isInMaze true))

(modify ?lastMove (west false) (south false) (east true) (north false)) (send_message (type (content ?lastMove) ?var15)) (retract ?obst) inform) (receiver

3.3 Configurarea agentilor utilitari

Figura. 6 Configurare ageni utilitari

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

3.4 Configurarea agentior task Configurare ageni task Agentul Environment. Conform proiectrii informaiile folosite de agent sunt stocate ntr-un program extern (i nu ntr-o baz de date extern). De aceea n cmpul External Program va folosi un program numit mazeControl. Agenii de tip Navigator au o clas numit navGUI menionat n cmpul External Program, clas care implementeaz interfaa utilizatorului. Se va meniona pentru agenii Environment i Red crearea unei interfee prin ZEUS.

Figura. 7 Agenii task

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Capitolul 4: Implementarea i rularea aplicaiei


- Se alege directorul in care se va genera codul agenilor. - Se alege platforma Windows - Se genereaza codul. Prile care trebuie implementate sunt identificate cu prefixul IMPL n etapa de proiectare. Acestea sunt: Adugare Fact Monitor la Programul extern (IMPL-4) Adaug cerere Fact Monitor la Programul extern (IMPL-4) Implementez metoda Adapter (IMPL-4) Implementeaz Modelul prin program extern (IMPL-4) Implementarea program extern pentru GUI(IMPL-4) Codul pentru implementarea acestor aspecte va fi legat de agentul agentul Environment prin programul extern mazeControl.java. Implementarea programelor externe pentru agentul Environment Prima problem de luat n calcul este modul n care agentul Environmet va rspunde la nregistrare i la mesajele solicitate. Aceasta poate fi realizat prin implementarea metodei factAddedEvent a interfeei FactMonitor (aceasta se va desclana def iecare dat cnd un fapt este adugat n baza de date cu resurse a agentului Environment). Codul este redat n Fig. 8. Codul solicitat invoc metoda Adapter, care este numit move (). Aceast metod testeaz dac micarea fcut de agentul Navigator este corect i dac da, micarea este fcut. Aceasta are ca rezultat faptul c locaia agentului este actualizat i noile obstacole din jur sunt identificate i trecute n baza de date. Aceasta n cele din urm va declana un nou rspuns de la agentul Navigator iar cilul poate continua pn la ieirea din parcare. O alt problem este stocarea reprezentrii parcarii, acesta fiind i principalul motiv al existenei agentului Environment ( Daca agentul Navigator ar avea o reprezentare a parcarii, nu ar mai trebui s comunice cu agentul Environment). Modelul este implementat n 2 dimensiuni (vector boolean) i poate fi identificat n fiierul mazeModel.java. Variabila care reine modelul stocat este instaniat cnd programul extern mazeControl este creat prin agentul Environment. Ultimul aspect de implementat este interfaa GUI este implementat n fiierul mazeView.java care, ca i modelul, este instaniat i stocat de programul extern mazeControl. View-ul permite o serie de faciliti (schimbarea poziiei pereilor i prsirea grid-ului).

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC


public void factAddedEvent (FactEvent fe) { Fact currentFact = fe.getFact(); String agentName = context.whoami(); String factType = currentFact.getType(); System.out.println("Fact = " + factType); if (factType.equals("thisMove")) { String north = currentFact.getValue ("north"); String south = currentFact.getValue ("south"); String east = currentFact.getValue ("east"); String west = currentFact.getValue ("west"); String id = currentFact.getValue ("id"); boolean nBool = north.equals("true"); boolean sBool = south.equals("true"); boolean eBool = east.equals("true"); boolean wBool = west.equals("true"); try { Thread.sleep(500); // pause for a second } catch (Exception e) {;}

2012

Request handling code invokes the adapter method that queries the Model

// now invoke a function that tests whether it is a legal move // side effect the obstacles around the agent are asserted in fact database move (id, nBool, eBool, sBool, wBool); // a message should now have been sent to the originating agent // telling it what new obstacles lie in it's path! } else if (factType.equals ("agentsName")) { String id = currentFact.getValue("name"); int c = (int)(mazeInUse.mazeWidth*Math.random()); int r = (int)(mazeInUse.mazeHeight*Math.random()); mazeInUse.registerAgent(id, c, r); mazeGui.repaint(); OntologyDb ont = context.OntologyDb(); Fact obst = ont.getFact(Fact.FACT, "obstacle"); obst.setValue("north",mazeInUse.northVal(id)); obst.setValue("east",mazeInUse.eastVal(id)); obst.setValue("south",mazeInUse.southVal(id)); obst.setValue("west",mazeInUse.westVal(id)); obst.setValue("id", id); ResourceDb rdb = context.ResourceDb(); rdb.add(obst); // add it to the fact db } }

Registration code - places Navigator in the maze and informs it of obstacles at its starting location

Figure 8: Implementarea metodei factAddedEvent pentru agentul Environment

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

4.1 Evidentierea rezultatelor aplicatiei: Odat lansat aplicaia, agenii se nregistreaz cu NameServer-ul i vor aprea interfeele (Fig. 9) 1. Agenii vor atepta utilizatorul s instruiasc agentul Navigator s se inregistreze la agentul Environment. 2. Se apas butonul Start se va trimite un mesaj ctre agentul Environmentprin care se nregistreaz prezena sa n mediu. O maina va aprea n interfaa Navigatorului.

Interfaa agentului Environment (stnga) i cea a agentului Navigator (dreapta)

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

1. Dup nregistrarea Navigatorului, butonul Start de la fereastra parcrii va deveni activ 2. Dup apsarea sa, agentul Environment va trimite un mesaj ctre Navigator informndu-l de obstacolele(alte masini parcate) din vecintatea sa. Cum acestea sunt precondiii pentru a face o micare, Navigatorul va rspunde cu o cerere de micare. 3. Dup ce i se confirm c face o micare valid, agentul Environment va actualiza noua poziie n parcare iar utilizatorul va vedea cum se realizeaz micrile agentului Navigator pe ecran. 4. Ciclul se continu pn cnd agentul Navigator iese din pacare. 5. Agentul Navigator este apoi de-registrat de ctre agentul Environment care va dezactiva butonul Start pn la o nou nregistrare. 4.2 View-ul societii de ageni, Statistici

Figura 8: View ul societii de ageni

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Figura 9: Statistic 1 Traffic Volume: Distribution by Type

Figura 10: Statistic 2 Traffic Volume: Distribution by Agent

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012

Figura11: Statistic 3 Traffic Volume: Inter-Agent Traffic Volume

ACADEMIA DE STUDII ECONOMICE FACULTATEA DE CIBERNETIC, STATISTIC, I INFORMATIC ECONOMIC

2012