Lista figurilor: Figure 1 - 1 Modelul de roluri din modelul Simple Supply Chain ............................................................... 7 Figure 2 - Colaborarea necesar pentru iniierea unui lan de aprovizionare ................................................ 7 Figure 3 Participanii din lanul de aprovizionare pentr Telefoane ............................................................ 8 Figure 4 - Ontologia .................................................................................................................................... 21 Figure 5 - Definirea Agentului GSM .......................................................................................................... 22 Figure 6 - Task-ul MakeRezistivDisplay .................................................................................................... 23 Figure 7 - Organizarea agentului GSM ....................................................................................................... 24 Figure 8 - Proprietatea de a cumpra a agentului GSM/ Proprietatea de a primi resurse ........................... 25 Figure 9 - Agenii utilitari ........................................................................................................................... 26 Figure 10 - Configurarea realizat pentru agenii utilitari .......................................................................... 27 Figure 11 - Configurarea agenilor task ...................................................................................................... 28
4
Analiza domeniului Enunul problemei si premisele
Lucrarea de fa i propune s analizeze i s simuleze asamblarea unui telefon mobil, cu ajutorul unei noi aplicatii, bazate pe un sistem multi agent. Scopul sistemului multiagent Telefon este: - simularea fabricrii de telefoane mobile cu piesele oferite de furnizori - s permit participanilor negocierea de resurse de care este nevoie prin intermediul agenilor. Premize: Proiectul descrie o posibil implementare a aplicaiei care simuleaz realizarea unui telefon mobil. Realizarea unui telefon mobil implic achiziionarea i integrarea mai multor componente, de obicei de la mai muli furnizori. Scenariul din cadrul aplicaiei va arta cum anumite componente sunt achiziionate i asamblate. Obiectivul proiectului este de a contura problemele des ntlnite i de a oferi suport n alegerea, aplicarea i adaptarea soluiilor existente. Pentru simplificare se va crea un model de telefon mobil alctuit din: - carcas, - plac de circuit, - display, fie cu touch-screen, fie cu tastaur, - baterie. Se va presupune c fiecare component este un bun i nu exist diferene ntre dou instane ale aceluiai item. n cele ce urmeaz vom descrie participanii i aptitudinile lor (task-uri specifice de care acetia sunt capabili). Primul participant este numit Samsung. El este reprezentantul unui productor de telefoane care trebuie s achiziioneze componentele necesare pentru asamblarea unui telefon mobil. Acestuia i vom asocia un singur task numit MakeTelefon. Resursele iniiale pe care le deine productorul sunt : 1000 de carcase stil Slide si 1000 de carcase Simple. 5
Al doilea participant este Intel i este reprezentantul unui productor de plci de circuit echipate cu procesoare de diferite frecvene . Se consider c acesta deine toate resursele necesare pentru construirea unei plci fra a mai fi nevoie de colaborarea lui cu ali furnizori. Task-ul se va numi MakeCPU. El are un stoc iniial de 2000 de plci dintre care : 1000 de plci cu procesor cu dou nuclee i 1000 de plci cu procesor cu 4 nuclee. Al treilea participant este Battery, el este reprezentantul unui productor de baterii. Se presupune c el are toate resursele necesare i nu v-a colabora cu ali furnizori. Produce baterii prin intermediul task-ului MakeBattery. Are un stoc iniial de: 1500 baterii li-ion cu 4 celule i 1500 baterii li-ion cu 6 celule. Al patrulea participant este Soft, el este reprezentantul unui producator de software . Se presupune c particpantul a subcontractat producia de sisteme de operare i realizeaza un singur task MakeSO. Resursele iniiale sunt: 2000 de sisteme de operare iOS i 2000 de sisteme de operare Android.
Al cincilea participant este SO, producatorul de ecrane de cele 2 tipuri : rezistiv i capacitiv. El reprezint doua task-uri : MakeiOS i MakeAndroid. Nu deine resurse iniiale.
Al aselea participant este GSM i este reprezentatul unui productor de ecrane. Pentru complexitate, se presupune c particpantul a subcontractat producia de ecrane i realizeaz un singur task MakeDisplay. Resursele iniiale sunt: 2000 de ecrane de tip capacitiv i 2000 de ecrane de tip rezistiv.
Ultimul participant este Display , productorul de ecrane de cele 2 tipuri : rezistiv i capacitiv. El reprezint doua task-uri : MakeRezistiv i MakeCapacitiv. Nu deine resurse iniiale.
n acest exemplu, se va presupune c exist o pia intern iar sumele vor fi debitate i creditate, asdar nu este nevoie de existena unor bugete iniiale. Toate tranzactile vor fi fcute in Lei, cu urmatoarele preuri: Carcasele stil Slide i Simple costa 100 Lei CPU-urile cu dou nuclee cost 150 Lei, iar cele cu 4 nuclee cost 200 Lei Bateriile de tip Li-ion cu 4 celule cost 300 Lei, iar cele cu 6 celule cost 400 Lei 6
Ecranele de tip rezistiv cost 200 Lei, iar cele de tip capacitiv cost 300 Lei Costul de implementare a unui sistem de operare Android este de 300 Lei, iar pentru iOS este de 500 Lei. Aplicaia ine cont de urmatoarele relaii dintre furnizori: - Intel si Battery au contract cu Samsung (preul este fix) - Display i GSM nu colaboreaz cu Samsung n baza unui contract (preul este variabil) - SO i Soft de asemenea nu colaboreaz cu Samsung n baza unui contract (preul este variabil). Domeniul i modelul de roluri
Dup stabilirea specificaiilor, sistemul dorit trebuie ncadrat ntr-un domeniu ce conine caracteristici asemntoare. O caracteristic important a domeniului este faptul c trebuie realizat o producie i un transfer de resurse la cerere ctre cei care au nevoie de ele. n plus, fa de modelul specific aplicaiei Zeus, alegem s folosim modelulul SimpleSuplyChain, ntrucat producia i furnizarea de produse se bazeaz mai mult pe cerere dect pe licitare competitiv. Conform modelului de roluri din aplicaia standard Zeus Application, avem nevoie de un agent n rolul Agent Name Server. Introducem n aplicaie i un agent Broker (Facilitator) pentru a uura extinderea aplicaiei cu noi ageni, dei n cadrul modelului de roluri SimpleSuplyChain nu este neaprat nevoie de acesta (furniozorii i productorii dein informaii unii despre ceilali).
Modelul de roluri Simple Supply Chain Modelul Simple Supply Chain conine furnizori care produc bunuri/resurse i consumatori care le consum. Un consumator poate avea mai muli furnizori, ns un furnizor nu poate avea dect un singur consumator ntr-un lant de aprovizionare. Sunt incluse trei timpuri de comportamente: planificare, negociere i livrare.
La cel mai nalt nivel modelul este alctuit din succesori i predecesori. Un predecesor poate avea mai muli succesori dup cum se poate observa n diagrama de roluri Figura 1. Un participant poate fi att predecesor ct i succesor. 7
Figure 1 - 1 Modelul de roluri din modelul Simple Supply Chain Menionare ageni i roluri
Diagrama de colaborare este redat n Figura 2:
Figure 2 - Colaborarea necesar pentru iniierea unui lan de aprovizionare Interaciunile aferente diagramei de colaborare sunt descrise n tabelul urmtor:
Colaborare Explicaie 1 Supply Request Negotiation Initiator solicit resurse 2 Supply Response Negotiation Partner accept sau refuz 3 Produce Dac resursa este produs extern, atunci este achiziionat 4 Deliver Supplier-ul trimite resursa la Consumator
Pentru aplicatia Realizarea unui Telefon avem urmatorul lant de furnizori: 8
Figure 3 Participanii din lanul de aprovizionare pentr Telefoane Pe baza Figurii 3 se pot afirma urmatoarele: - Compania Samsung are nevoie de resurse ce nu pot fi fabricate local - Compania Samsung nu se comport ca un furnizor, de aceea, i vom atribui rolul SC- Head - Intel si Battery aprovizioneaz Samsung fr a se baza pe resurse externe. De aceea, ei pot juca rolul SC-Tail - Compania GSM i Soft au nevoie de resurse externe (Display si SO) ns totodata se comport i ca un furnizor n raport cu Samsung, prin urmare att GSM ct si Soft vor juca rolul de SC-Participant - Display i SO sunt furnizori pentru GSM respectiv Soft. De aceea, pot juca rolul SC- Tail Dup identificarea domeniului i a modelelor de roluri, am decis ca soluia aplicaiei s se bazeze pe modelul de roluri Simple Supply Chain. n concluzie, dup identificarea domenului i a modelelor de roluri folosite (Simple Supply Chain i ZEUS Application) soluia se va baza pe crearea urmtorilor ageni care s ndeplineasc rolurile din modele folosite: Nume agent Rol jucat Samsung SC Head (Negotiation Initiator, Consumer) GSM SC Participant (Negotiation Initiator, Negotiation Partner, Supplier, Producer , Consumer) Soft SC Participant (Negotiation Initiator, Negotiation Partner, Supplier, Producer , Consumer) Intel SC Tail (Negotiation Partner, Supplier, Producer) 9
Battery SC Tail (Negotiation Partner, Supplier, Producer) Display SC Tail (Negotiation Partner, Supplier, Producer) SO SC Tail (Negotiation Partner, Supplier, Producer) Odat identificate rolurile din cadrul aplicaiei, trebuie identificat modul n care agenii vor juca fiecare rol: Fiecare rol pe care l are un agent implic responsabiliti, de exemplu producerea sau consumul de resurse, interaciunile cu alte sisteme .a. Un agent din cadrul rolului Simple Supply Chain (SC Head) conine o serie de responsabiliti. Ele pot fi clasificate n responsabiliti sociale (are nevoie de interaciuni cu ceilali ageni) i de domeniu (activiti locale specifice aplicaiei i platformei). Acestea sunt descrise n tabelul de mai jos: SUPPLY CHAIN HEAD Responsabiliti sociale Origine Responsabilitate Negotiation Initiator S cunoasc resursele i capacitile lor Negotiation Initiator S iniieze negocierea pentru furnizarea unei resurse Negotiation Initiator S negocieze termenii n care se face furnizarea unei anumite resurse Negotiation Initiator S trimit informaii despre comenzile pentru resurse (s dein rolul de Consumator) Consumer S primeasc resursele livrate.
SUPPLY CHAIN HEAD Responsabiliti de domeniu Origine Responsabilitate Negotiation Initiator S iniieze cererea Consumer S consume resursa livrat
10
Urmtorul rol descrie participantul din cadrul lanului de aprovizionare numit Supply Chain Participant reprezentat de acei ageni care produc resurse i consum resurse. Rolul este mai complex deoarece conine mai multe responsabiliti:
SUPPLY CHAIN PARTICIPANT Responsabiliti sociale Origine Responsabilitate Negotiation Initiator Negotiation Participant S cunoasc resursele i capacitile lor Negotiation Initiator S iniieze o cerere pentru aprovizionarea cu o anumit resurs Negotiation Initiator S negocieze termenii n care se realizeaz aprovizionarea cu o anumit resurs Negotiation Initiator S trimit informaii despre comenzile pentru resurse (s dein rolul de Consumator) Negotiation Participant S raspun cererilor de aprovizionare cu o anumit resurs Negotiation Participant S negocieze termenii n care se face furnizarea unei anumite resurse Negotiation Participant S trimit informaii despre comenzile pentru resurse (s dein rolul de Productor (Producer)) Producer, Supplier S transfere resursele produse (de la Producer la Supplier) Consumer S primeasc resursele livrate
SUPPLY CHAIN PARTICIPANT Responsabiliti de domeniu Producer S produc resursele solicitate Consumer S consume resursele livrate
Ultimul rol este jucat Supply Chain Tail, atribuit agenilor care vor furniza resurse fr consum de resurse care auu fost produse de entiti externe. Are urmtoarele responsabiliti:
11
SUPPLY CHAIN TAIL Responsabiliti sociale Origine Responsabilitate Negotiation Participant S cunoasc resursele i capacitile lor Negotiation Participant S raspund cererilor de aprovizionare cu o anumit resurs Negotiation Participant S negocieze termenii n care se face furnizarea unei anumite resurse Negotiation Participant S trimit informaii despre comenzi pentru resurse (s dein rolul de Productor (Producer)) Producer, Supplier S transfere resursele produse (de la Producer la Supplier)
SUPPLY CHAIN TAIL Responsabiliti de domeniu Producer S produc resursele solicitate
Proiectarea aplicaiei Cuprinde 2 etape: Proiectarea agenilor se mapeaz responsabilitile agenilor pe o problem generalizat, iar ulterior, se va alege o soluie optim Modelarea cunotinelor crearea ontologiei specifice aplicaiei
Proiectarea problemei Dup identificarea responsabilitilor aferente fiecrui agent, se trece la transpunerea fiecrei responsabiliti ntr-o problem ce trebuie rezolvat. a) Rolul Supply Head n aplicaia noastr, singurul agent care va juca rolul de Supply Head este agentul Samsung, avnd urmtoarele responsabiliti sociale: Supply Chain Head Responsabiliti sociale Responsabilitate: - S cunoasc resursele i 12
capacitile lor Origine Negotiation Initiator Problem Date (despre Furnizor, despre Resursele solicitate) Soluie Ofer informaii despre resurse Ofera informaii despre capacitiile resurselor Explicaie Nu este nevoie ca agenii s afle unul de cellalt prin intermediu Facilitatorului deoarece relaiile statice dintre acetia sunt specificate cnd sunt generai Responsabilitate: - S iniieze negocierea pentru furnizarea unei resurse Origine Negotiation Initiator Problem Iniiere dialog (cu: Furnizorul, despre Resursele solicitate) Soluie: Echipare agent cu protocol de coordonare Explicaie Este nevoie ca acest agent s fie inzestrat cu un protocol de coordonare pentru a iniia i pentru a se angaja n negociere cu ali furnizori Responsabilitate: - S negocieze termenii n care se face furnizarea unei anumite resurse Origine Negotiation Initiator Problem Evalueaz (Produs, Pre) Soluie Echipare agent cu strategie de negociere Explicaie Agenii pot deine strategii care le influeneaz interaciunile cu ceilali ageni. Rolul Supply Chain este de a cumpra resurse, strategia GrowthStrategy se potrivete cel mai bine problemei Responsabilitate: - S informeze despre starea livrrii resursei Origine Negotiation Initiator Problem Trimite informaii (ctre Consumator, despre Resursele Livrate) Soluie n mod Automat 13
Explicaie Dup ce s-a ajuns la o nelegere n privina furnizrii unei resurse, jurnalul de planificare i programare este actualizat corespunztor Responsabilitate: - S primeasc resursele livrate Origine Consumator (Consumer) Problem Creare task Consumator Definire atribute asupra task-ului Explicaie Negocierea este condusa de nevoia Consumatorului de a obine o resurs. Precondiile task-ului creat sunt resursele ce trebuie achiziionate la rulare.
Supply Chain Head Responsabiliti de domeniu Responsabilitate: - S iniieze cererea Origine Negotiation Initiator Problem Startarea lanului de aprovizionare Soluie Folosete facilitatea Add goal a agentului Agent Viewer Explicaie Pentru a crea un nou scop pentru agent, se va folosi facilitatea de New Goal a agentului Viewer (astfel se va asigura solicitarea unei noi resurse) Responsabilitate: - S consume resursa livrat Origine Consumator (Consumer) Problem Implementare pentru folosirea resursei Soluie: Implementeaz coninutul task-ului Explicaie Dup ce resursa a fost furnizat, ea poate fi consumat Problem Evalueaz (Produs, Pre) Soluie Echipare agent cu strategie de negociere Explicaie Agenii pot deine strategii care le influeneaz interaciunile cu ceilali ageni. Rolul Supply Chain este de a cumpra resurse, strategia GrowthStrategy se potrivete cel mai bine problemei Responsabilitate: - S informeze despre starea 14
livrrii resursei Origine Negotiation Initiator Problem Trimite informaii (ctre Consumator, despre Resursele Livrate) Soluie n mod Automat Explicaie Dup ce s-a ajuns la o nelegere n privina furnizrii unei resurse, jurnalul de planificare i programare este actualizat corespunztor
b) Rolul Supply Participant n cadrul acestei aplicaii avem 2 ageni cu rolul de Participant: GSM i Soft. Nu este nevoie de proiectarea fiecrui agent deoarece au aceleai roluri. ns, cnd vor fi creai n Zeus, atributele acestora vor fi diferite. Supply Chain Participant Responsabiliti sociale Responsabilitate: - S cunoasc resursele Origine Negotiation Initiator, Negotiation Participant Problem Date (despre Furnizor, despre Resursele solicitate) Soluie Ofer informaii despre resurse Ofera informaii despre capacitiile resurselor Explicaie Nu este nevoie ca agenii s afle unul de cellalt prin intermediu Facilitatorului deoarece relaiile statice dintre acetia sunt specificate cnd sunt generai Responsabilitate: - S iniieze negocierea pentru furnizarea unei resurse Origine Negotiation Initiator Problem Iniiere dialog (cu: Furnizorul, despre Resursele solicitate) Soluie: Echipare agent cu protocol de coordonare Explicaie Este nevoie ca acest agent s fie inzestrat cu un protocol de coordonare pentru a iniia tranzacii i pentru a se angaja n tranzacii Responsabilitate: - S negocieze termenii n care se face furnizarea unei anumite 15
resurse Origine Negotiation Initiator Problem Evalueaz (Produs, Pre) Soluie Echipare agent cu strategii de negociere Explicaie n rolul Negotiation Participant, acest agent va negocia furnizarea resursei frp a viza profitul. Funcia, DecayStrategy este potrivit, licitaia ncepnd de la un pre mic, crescndu-l pn cnd acesta este acceptat sau se termin o anumit perioad de timp. Responsabilitate: - S informeze productorul local despre starea livrrii resursei Origine Negotiation Participant Problem Trimite mesaj (cu Productor, despre Livrarea resurselor) Soluie Automatic funcionalitate implicit Task Agent Explicaie Dup ajungerea la o nelegere asupra furnizrii unei resurse, jurnalul de planificare i programare este actualizat corespunztor. Responsabilitate: - S informeze consumatorul local despre starea livrrii resurselor Origine Negitiation Initiator Problem Trimite mesaj (ctre Consumator, despre Livrarea resurselor) Soluie Automatic - funcionalitate implicit Task Agent Explicaie Dup ajungerea la o nelegere asupra furnizrii unei resurse, jurnalul de planificare i programare este actualizat corespunztor. Responsabilitate: - S primeasc resursele livrate Origine Consumator Problem Interfa pentru implementarea resurselor primite Soluie Creaz task-ul Consumption Definete atributele task-ului Explicaie Procesul de negociere este condus de nevoia 16
Consumatorului de a avea o anumit resurs. Este necesarp crearea unui task cu precondiii resursele ce trebuie cumprate. Responsabilitate: - Transferarea resurselor realizate Origine Productor, Furnizor Problem Automatic - funcionalitate implicit Task Agent Explicaie Dup ce o resurs a fost produs sau primit, aceasta trebuie fcut disponibil rolului de furnizor astfel nct aceasta s poat fi transmis mai departe ctre urmtoarea entitate a lanului de furnizori.
Supply Chain Participant Responsabiliti de domeniu Responsabilitate: - S produc resursele solicitate Origine Productor Problem Implementare care creeaz o reprezentare a unei resurse Soluie Implementeaz coninutul task-ului Explicaie Comportamentul standard al unui task este de a crea un nou obiect resurs pentru fiecare dintre efectele sale. Dac producerea resursei implic unele procese specifice domeniului, atunci aceasta trebuie implementat n coninutul task-ului, altfel nu. Responsabilitate: - S consume resursele livrate Origine Consumator Problem Implementare care folsete resurse Soluie: Implementeaz coninutul task-ului Explicaie Dup ce resursa a fost furnizat, ea poate fi consumat. Modul n care resursa se consum este specific domeniului i trebuie implementat de dezvoltator. n caz c resursele nu sunt consumate (valoarea lor nu dispare odat cu consumarea unui Telefon) atunci nu mai este nevoie de implementare.
17
c) Rolul Supply Chain Tail Agenii care joac rolul de Supply Chain Tail sunt: Intel i Battery.Deoarece toi au acelai rol, nu este nevoie de proiectarea fiecruia dintre ei.
Supply Chain Participant Responsabiliti sociale Responsabilitate: - S cunoasc resursele i capabilitile lor Origine Negotiation Initiator, Negotiation Participant Problem Informaii (despre Furnizor, despre Resursele solicitate) Soluie Ofer informaii despre resurse Ofera informaii despre capacitiile resurselor Explicaie Nu este nevoie ca agenii s afle unul de cellalt prin intermediu Facilitatorului deoarece relaiile statice dintre acetia sunt specificate cnd sunt generai Responsabilitate: - S iniieze negocierea pentru furnizarea unei resurse Origine Negotiation Participant Problem Iniiere dialog (cu: Furnizorul, despre Resursele solicitate) Soluie: Echipare agent cu protocol de coordonare Explicaie Este nevoie ca acest agent s fie inzestrat cu un protocol de coordonare pentru a iniia tranzacii i pentru a se angaja n tranzacii Responsabilitate: - S negocieze termenii n care se face furnizarea unei anumite resurse Origine Negotiation Participant Problem Evalueaz (Produs, Pre) Soluie Echipare agent cu strategii de negociere Explicaie n rolul Negotiation Participant, acest agent va negocia furnizarea resursei viznd i fr a viza profitul. Funcia, DecayStrategy este potrivit, licitaia ncepnd de la un pre mic, crescndu-l pn cnd acesta este acceptat sau 18
se termin o anumit perioad de timp. Responsabilitate: - S informeze productorul local despre starea livrrii resursei Origine Negotiation Participant Problem Trimite mesaj (cu Productor, despre Livrarea resurselor) Soluie Automatic funcionalitate implicit Task Agent Explicaie Dup ajungerea la o nelegere asupra furnizrii unei resurse, jurnalul de planificare i programare este actualizat corespunztor. Responsabilitate: - S gestioneze producia de resurse Origine Producer Problem Interfaa pentru gestionarea resurselor realizate Soluie Crearea task-ului Consumption Definirea atributelor task-ului Explicaie Dup ajungerea la o nelegere asupra furnizrii unei resurse, agentul i ndeplinete angajamentul prin rularea task-ului care produce acea resurs. De aceea, va fi nevoie de crearea unui task ale crui efecte s conste n producerea de resurse solicitate. Responsabilitate: - Transferul resurselor realizate (de la Productor la Furnizor) Origine Productor, Furnizor Problem Trimite mesaj (ctre Furnizor, despre Valabilitatea resurselor) Soluie Automatic funcionalitate a agentului Task Agent Explicaie Dup ce resursa a fost furnizat, ea poate fi consumat. Modul n care resursa se consum este specific domeniului i trebuie implementat de dezvoltator. n caz c resursele nu sunt consumate (valoarea lor nu dispare odat cu consumarea unui Telefon) atunci nu mai este nevoie de implementare. 19
Supply Chain Tail Responsabiliti de domeniu Responsabilitate: - S produc resursele solicitate Origine Producer Problem O implementare car ecreaz o reprezentare a resursei Soluie Implementeaz coninutul task-ului Explicaie Dup ce resursa a fost furnizat, ea poate fi consumat. Modul n care resursa se consum este specific domeniului i trebuie implementat de dezvoltator. n caz c resursele nu sunt consumate (valoarea lor nu dispare odat cu consumarea unui Telefon) atunci nu mai este nevoie de implementare.
Crearea Ontologiei
Urmtoarea faz este aceea de a modela cunotinele ce vor fi folosite de rolurile agenilor. Rezultatele trebuie s reprezinte faptele, atributele lor i posibilele valori ale acestora (constrngeri). Identificarea conceptelor
Conceptele cheie din aplicaia MakeTelefon sunt menionate n cerine/specificaii. Acestea sunt: - carcas, - plac de circuit, - display, fie cu touch-screen, fie cu tastaur, - baterie Pentru c aceste concepte fac referire la instane fizice (i nu abstracte), ele vor face parte din fapte de tip entitate (Entity). 20
Toate faptele de tip entitate dein cte un atribut care descrie valoarea (unit_cost). In aplicaia de fa acesta poate fi folosit pentru stocarea preului fiecrui bun. De asemenea el nu este potrivit pentru aplicaii n care nu sunt folosite noiuni care s descrie valoarea bunurilor iar preurile sunt determinate doar de cerere i ofert. Constrngeri
Constrngerile ofer un mijloc de verificare, limitnd valorile la un subset de valori posibile. In acest caz constrngerile sunt definite pentru: carcase (Simple/ cu Slide), avand valoarea default: Simple baterii (4 celule/ 6 celule), avnd valoarea default: 4 celule sistem de operare (Android / iOS) Prin urmare, faptele rezultate cu atributele i constrngerile arat ca n figura de mai jos. Aceasta reprezint ontologia aplicaiei.
Odat definit aceasta se poate trece la procesul de creare al agenilor. Dezvoltarea Aplicatiei Crearea agenilor Crearea agenilor const n mai multe subprocese care se vor repeta pentru fiecare agent task in parte n cadrul aplicaiei. 21
Am creat un nou agent pe care l-am denumit GSM. Rezultatul acestei aciuni este un nou agent ZEUS generic. In continuare acest agent va fi configurat pentru a satisface responsabilitile specifice aplicaiei aferente rolurilor sale. In fereastra Agent Editor am editat informaiile despre acest agent.
Figure 4 - Ontologia Definirea agenilor Am menionat resursele iniiale ale agentului GSM. In panel-ul Initial Agent Resources am ales faptele din ierarhia de fapte. Pentru fiecare fapt am redenumit campul Instance si am setat numarul si valoarea. 22
Figure 5 - Definirea Agentului GSM Descriere Task-ului Unul dintre task-urile aferente agentului GSM este MakeRezistivDisplay. Precondiiile task-ului sunt: DisplayCase i Rezistiv. A fost modificat cmpul Instance pentru a se face referire asupra faptului c este vorba de cazul 1 de tip de display (rezistiv). De asemenea s-a modificat i cmpul Modifier i s-a bifat opiunea Must be in local database. Se introduc i constrngerile relevante pentru consumul resursei DisplayCase. Tipul specificat va reprezenta tipul de display folosit. Costul care implic achiziionarea unui diplay de tip rezistiv este de 50 Lei dup cum se observ n formula de mai jos. Aceasta se produce ntr-o unitate de timp. 23
Figure 6 - Task-ul MakeRezistivDisplay Organizarea agentului Deoarece un agent trebuie s dein apriori cuntine despre ceilali egni se va complete i zona de organizarea a agenilor. Deoarece agentul GSM are nevoie de resurse de la agentul Display, se observ o relaie de subordonare cu acesta. De asemenea agentul Telefon se va folosi de resursele primate de la GSM fiind n relaie de superioritate cu acesta.
24
Figure 7 - Organizarea agentului GSM Coordonarea agenilor Agenii vor fi echipai cu capacitatea de a negocia, de a primi resurse, de a transfera resurse i de a primi resurse. Din proiectarea agentului GSM rezult mai multe soluii ce vor afecta nivelul de coordonare al agentului. Acestea vor fi identificate prin , ORG-x, COORD-x ( numrul fiecruia reprezint ordinea n care trebuie realizate, unele fiind dependente de existena altora).
Ofer informaii despre resurse (ORG - 1) Ofer informaii despre capacitile resurselor (ORG - 2) Echipeaz agentul cu protocolul de coordonare (COORD - 1) Echipeaz agentul cu strategii de negociere (COORD - 2) Creaz task-ul Consumption (DEF - 2) Definete atributele task-ului (TASK - 1) Un agent pentru a ncepe s cumpere resurse trebuie s nceap dialogul cu un potenial furnizor. 25
Atunci, acest proces implic echiparea agentului cu un protocol de iniiere prin selectarea Fipa-Contract-Net-Manager din tabelul Coordination Protocols. Imaginile de jos Coordination Strategies arat aplicabilitatea acelui protocol. Implicit cmpul Mode va fi bifat, lucru ce indic aspectul c aceast strategie va fi folosit mpreun cu faptele descrise n cmpul Fact Type. Deoarece acest cmp conine ZeusFact (Fapte Zeus) aceast strategie va fi folosit pentru a cumpra fapte de orice tip. Agenii vor stabili interaciuni particulare, de aceea n cmpul Relations se va completa cu valoarea subordinate. Acest lucru specific faptul ca agentul are nevoie de resurse de la un alt agent aflat n relaie de subordonare cu el. Furnizorul propune oferta sa (set Parameters) ce deine capacitatea de a furniza resursele necesare agentului GSM. Se va folosi protocul Fipa-Contract- Net-Contractor. Am selectat functia DecayFunction din lista cu strategiile disponibile si am definit parametrii care determina modul de lucru al strategiei DecayFunction.
Figure 8 - Proprietatea de a cumpra a agentului GSM/ Proprietatea de a primi resurse
Configurarea agenilor utilitari n cadrul acestei etape se va stabili ce ageni utilitari vor fi creai i modul n care vor fi configurai. Din interfaa principal de deschide instrumentul Code Generator. Se va afia planul de generare (Generation Plan) i anume agenii care vor fi creai cnd se va executa generarea de cod. Se poate observa c pe lng agenii creai pn acum mai sunt i Name Server, Facilitator i Visualiser. 26
Deoarece cei 3 din urm ndeplinesc cerinele iniiale nu mai este nevoie s mai adugm nc unul de vreun tip.
Figure 9 - Agenii utilitari Pentru configurarea parametrilor de rulare pentru aceti ageni, am deschis tab-ul 'Utility Agents i am completat astfel: Agent Name Server Am schimbat numele n ANS. Adresa IP n cmpul Host va fi implicit adresa calculatorului (presupunnd c aici va rula i serverul). Deoarece exist un singur NaemServer acesta este marcat ca fiind root i ofer valoarea pentru cmpul time-grain. Aceast valoare se pote schimba ns 0.5 este o valoarea potrivit pentru aceast aplicaie. Se va presupune pentru simplitate c toi agenii vor fi rulai din acelai director, de aceea n cmpul Address File nu trebuie trecut o cale ci doar un nume de fiier. Valoarea introdusa a fost dns.db (acesta ofer numele fiierului n care Name Server i va scrie locaia). 27
Figure 10 - Configurarea realizat pentru agenii utilitari Facilitatorul Se presupune c Facilitatorul va rula pe aceeai maina ca i serverul, prin urmare cmpul Host nu trebuie schimbat. Cmpul DNS file conine calea i numele fiierului care conine locaia serverului. Cmpul trebuie s aib acelai coninut ca i cmpul Address File de la Name Server. Agentul este peroactiv. De aceea modificarea care se impune este aceea de a seta Recycle Period la 2.0. Visualiser Cmpul Host poate rmne neschimbat iar cmpul DNS File trebuie s conin aceeai valoare ca i campul Address File de la Name Server. Configurarea agenilor task Toi agenii: - se presupune c vor rula pe acelai calcualtor ca i agenii utilitari (vor avea aceali Host) - cmpul DNS File trebuie s conin aceeai valoare ca a cmpului Address File de la Name Server. 28
Conform proiectrii noastre, resursele agenilor por fi reprezentate n mod intern i nu este nevoie s fie obinute din baze de date externe. De aceea cmpul Database External poate fi lsat liber pentru toi agenii.
Figure 11 - Configurarea agenilor task
29
Bibliografie
[1] Michael Wooldridge - An introduction to multiagent systems; [2] Jaron Collis - The Role Modelling Guide; [3] Jaron Collis ZEUS Technical Manual;