ro Agentii Inteligenti

download ro Agentii Inteligenti

of 130

Transcript of ro Agentii Inteligenti

  • 8/3/2019 ro Agentii Inteligenti

    1/130

    MIHAELA OPREA

    INDRUMAR DE LABORATORAGENTI INTELIGENTI,

  • 8/3/2019 ro Agentii Inteligenti

    2/130

    MIHAELA OPREA

    AGENTI INTELIGENTI, ,, . . .INDRUMAR DE LABORATOR

    EDITURA UNIVERSITATII PETROL-GAZE DIN PLOIESTI2009

    , ,,;.,

    . t

  • 8/3/2019 ro Agentii Inteligenti

    3/130

    Copyright2009 Editura Universitatii Petrol-Gaze din PloiestiToate drepturiIe asupra acestei editii sunt rezervate editurii

    Autorul poartii intreaga riispundere morald, legalii si materiald fatd de editurii ~i tertepersoane, pentru continutul Iucrdrii.

    Deserierea CIP a Bibliotecii Nationale a RomanieiOPREA, MIHAELA

    Agenti Inteligenti: Indrumar de laborator / Mihaela Oprea, -Ploiesti: Editura Universitatii Petrol-Gaze dill Ploiesti, 2009Bibliogr.ISBN 978-973-719-290-5

    004.81

    Control stiintific:Conf. dr. mat. Cristian Marinoiu.Redactor:Prof. dr. ing. Ionut LambrescuTehnoredactare computerizata:Prof. dr. ing. Mihaela OpreaDirector editura:Prof. dr . ing. Serban Vasilescu

    Adresa:. Editura Universitatii Petrol-Gaze din Ploiesti

    Bd. Bueuresti 39, cod 100680Ploiesti, Romania

    Tel. 0244-573171, Fax. 0244-575847

  • 8/3/2019 ro Agentii Inteligenti

    4/130

    t . - ~ '. -a,a ae edztura.;i terte

    ihaela O prea. _

    PREFATA.Inteligenta artificiald s-a impus in ultimii ani printr-o serie de tehnici,metode si tehnologii avansate de modelare cognitivd a sistemelor complexe.

    La ora actuald, eel mai activ domeniu de cercetare aplicativd din inteligentaartificiala este eel al ageruilor inteligenti. Un agent inteligent este 0 entitateautonamd, virtuald sau fizica, care percepe mediul de lucru, realizeazarationamente, are initiativd, comunicd cu alte entitiiti similare i realizeazaactiuni asupra mediului de lucru. Sistemele multiagent grupeazd agentiinteligerui cu abilitdti similare si/sau diferite care pot realiza task-uricomplexe lucrdnd in mod eficient, in special, in cazul sistemelor distribuitegeografic. Domeniile de aplicabilitate variazd de la cele industriale (sistemede monitorizare si control, sisteme de modelare t simulare a lantului defurnizori, sisteme de fabricaiie) pdna fa cele virtuale, din Internet (sisteme decomert electronic, licitatii electronice, afaceri electronice).

    Dezvoltarea de sisteme multiagent necesita utilizarea unor pachetesoftware dedicate (toolkit-uri). Lucrarea de fata reprezintd un fndrumar inproiectarea i implementarea sistemelor multiagent prototip. Toolkit-ulprezentat este ZEUS, sistem dezvoltat de British Telecom, care a fost premiatin Marea Britanie in anul 1997pentru eel mai bun produs software al anului.Avantajele majore ale utilizarii aeestui toolkit sunt dezvoltarea rapidd aaplicatiilor prototip fji generarea automata a codului Java pentrucomponentele de bazd ale sistemului multiagent, programarea eomponentelorspecifice domeniului de 'aplicatie revenind dezvoltatorului de aplicaiiimultiagent. Versiunea utilizatd in indrumar este Zeus2.0c (lansatd in 2005).

    Lucrarea se adreseazd studentilor de la studiile de masterat alespecializdrilor Tehnologii avansate de preluerare a informatiei (anul II),Automatizdri avansate i structuri programabile (anul 1) o J i Managementulsistemelor electrice .J i electronice (anulII) din Universitatea Petrol-Gaze dinPloiesti care urmeazd cursurile de Agent: software si Agenti inteligenti. Deasemenea, ea poate fi utild tuturor persoanelor (studenii, doctoranzi, cadredidactice, cercetdtori) care doresc sa dezvolte sisteme multiagent proto tip.

    Multumesc domnului profesor dr. mat. Cristian Marinoiu pentruamabilitatea de a citi manuscrisul i pentru sugestiile pertinente privindcresterea calitdtii lucrdrii.17 ianuarie 2009 prof dr. ing. Mihaela Oprea

  • 8/3/2019 ro Agentii Inteligenti

    5/130

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    CUPRINS

    II. Tema de laborator 26Intrebari si exercitii 26

    CapitolullSistemul ZEUS de dezvoltare a agentilor inteligenti

    ...................... 111.1 Prezentare generala a sistemului ZEUS 111.2 Instalarea sistemului ZEUS 131.3 Rularea sistemului ZEUS 14Tema de laborator. Intrebari si exercitii : 17

    Capito lui 2Metodologia ZEUS de dezvoltare a sistemelor multiagent

    ...................... 182.1 Etapele metodologiei ZEUS ,' 182.2 Analiza domeniului de aplicatie 182.3 Proiectarea aplicatiei c 192.4 Realizarea aplicatiei 202.5 Rularea aplicatiei 202.6 PrimuI exemplu de sistem multiagent ZEUS 21

    I.Prezentarea aplicatiei lesesori one 212.6.1 Arhitectura sisternului multiagent 212.6.2 Ontologia sistemului multiagent 212.6.3 Definirea agentilor 222.6.4 Definirea task-urilor 232.6.5 Implementarea aplicatiei 232.6.6 Rularea aplicatiei 24

  • 8/3/2019 ro Agentii Inteligenti

    6/130

    Capitolul3Instrumentul ZEUS Visualiser 28

    3.1 Componentele instrumentului Visualiser 283.2 Instrumentul Society Viewer 283.3 Instrumentul Reports Tool 303.4 Instrumentul Statistics Tool 313.5 Instrumentul Agent Viewer 323.6 Instrumentul Control Tool .: 33Tema de laborator. Intrebari si exercitii '. 34

    ...,

    " "it:Capitolu14

    Aplicatii dezvoltate in ZEUS .'............................. 354.1 Aplicatia Demo PC 35.

    I.Prezentarea aplicatiei 354.1.1 Arhitectura sistemului multi agent 354.1.2 Ontologia sistemului multiagent 364.1.3 Definirea agentilor 364.1.4 Definirea task-urilor 424.1.5 Implementarea aplicatiei 484.1.6 Rularea aplicatiei 50

    II. Terna de laborator 50Intrebari si exercitii 50

    4.2 Aplicatia Demo FruitMarket - 511. Prezentarea aplicatiei .~ 51

    4.2.1 Arhitectura sisternului multiagent '" 514.2.2 Ontologia sistemului multiagent 514.2.3 Definirea agentilor 52

  • 8/3/2019 ro Agentii Inteligenti

    7/130

    4.2.4 Implementarea aplicatiei 544.2.5 Rularea aplicatiei 55

    II. Tema de laborator 56Intrebari si exercitii 56

    4.3 Aplicatia Demo FaultDemo 571. Prezentarea aplicatiei 57

    4.3.1 Arhitectura sistemului multiagent .. 574.3.2 Ontologia sistemului multiagent 574.3.3 Definirea agentilor ~ 584.3.4 Definirea task-urilor 664.3.5 Implementarea aplicatiei 704.3.6 Rularea aplicatiei 72

    II . Tema de laborator 72Intrebari i exercitii ; 72

    4.4 Aplicatia Demo MultiMaze 731. Prezentarea aplicatiei ., 73

    4.4.1 Arhitectura sistemului multi agent 734.4.2 Ontologia sistemului multiagent 734.4.3 Definirea agentilor 744.4.4 Definirea task-urilor 764.4.5 Implementarea aplicatiei 804.4.6 Rularea aplicatiei 81

    II. Tema de laborator 81Intrebari siexercitii 81

    4.5 Aplicatia 1. Sistem multiagent pentru moniiorizare $i control............................................. 82

    1. Prezentarea aplicatiei "82

  • 8/3/2019 ro Agentii Inteligenti

    8/130

    4.5.1 Arhitectura sisternului multiagent 824.5.2 Ontologia sistemului multiagent 834.5.3 Definirea agentilor 83

    II. Terna de laborator 84Intrebfui i exercitii 84

    4.6 Aplicatia 2. Sistem multiagent pentru simulareaunui magazin virtual : 85L Prezen tarea aplicatie] __ 85

    4.6.1 Arhitectura sistemului multiagent 85II. Tema de laborator 85

    Intrebari i exercitii ____ 86

    AnexaA

    Documentatia ZEUS ~ 87Introducere ~ 87AI. Manualul tehnic 88A2. Ghidul de modelare a rolurilor 97A3. Ghidul de realizare a aplicatiilor 102A4. Ghidul Ia momentul rularii 130

    Bibliografie 131

  • 8/3/2019 ro Agentii Inteligenti

    9/130

    CAPITOLUL 1SISTEMUL ZEUS DE DEZVOLTARE A

    AGENTILOR INTELIGENTI

    1.1PREZENT ARE GENERALA A SISTEMULUI ZEUSZEUS este un sistem software (toolkit) dezvoltat in limbajul Java,destinat proiectarii si implementarii agentilor inteligenti si a sistemelormulti agent (sisteme alcatuite din minimum doi agenti inteligenti), pe bazaunei metodologii proprii, numita metodologia ZEUS.Sistemul a fost realizat de catre Grupul Sisteme inteligente al companieiBritish Telecom din Marea Britanie in cadrul unui proiect de cercetare cea fost premiat in anul 1997 de catre Societatea Britanica de Calculatoaresi Tehnologia Informatiei, BCS IT [10]. Scopul principal al proiectului afost realizarea unui sistem software care sa permits dezvoltarea rapida denoi aplicatii multiagent.I n dezvoltarea toolkit-ului au fast urrnarite patru principii [7]:

    (1) delimitarea clara a rezolvarii unei probleme la nive1uldomeniului de aplicatie de functionalitatea necesara Ianivelul agentilor;

    (2) respectarea paradigmei programdrii vizuale (meniuri,tabele etc);(3)(4)

    extensibilitatea;utilizarea de tehnologie standardizata,

    SistemuI ZEUS consta din trei componente function ale separate: ) ; > 0 biblioteca de componente agent care implementeaza diferite

    . aspecte ale functionalitatii agentilor colaborativi (AgentComponent Library - Biblioteca de Componente Agent);

    ); > un mediu de construire a agentilor ce cuprinde 0 serie deinstrumente ce faciliteaza construirea sistemelor multi agent(Agent Building Software - Generatorul de Agenfi);

    3

    -

  • 8/3/2019 ro Agentii Inteligenti

    10/130

    12

    ;. instrumente de vizualizare care permit observarea si depanareaaplicatiilor agent.

    Detalii despre aceste componente sunt prezentate in Anexa A.ZEUS poate rula pe orice platforma care are instalata 0 masina virtualaJDK 1 .2 . S is temul este gratuit pentru uz academic ~ipoate fi preluat de laadresa: http://www.labs.bt.comlproiects/agents/zeus/index.htmPrincipalele concepte ZEUS sunt agent, seep (goal), task, fapt (jact).Un agent este 0 entitate virtuala (agent software, un program) sau fizica(agent hardware) care percepe mediul de lueru prin interrnediul senzoriIorsi realizeaza actiuni prin intermediul efectorilor [6], [9]. Agentul are 0anumita. organizare ~iun ciclu de viata.. In ZEUS se pot utiliza douaeategorii de agenti, agenti utilitari (predefiniti) si agenti task (definiti' decatre dezvoltatorul de aplicatii). ZEUS furnizeaza trei tipuri de agentiutilitari: nameserver, facilitator :}ivisualiser. Agentii de tip nameserver ifacilitator sunt utilizati pentru cautarea de informatii , iar agentii de tipvisualiser sunt utilizati in depanarea sistemelor multiagent, Agentii tasksunt agentii care realizeaza task-urile specifice dorneniului de aplicatie(operatii/actiuni necesare functionarii sistemului multiagent dezvoltat) .

    f

    . ."Un scop poate fi indeplinit prin executarea unei anumite actiuni, Scopulpoate fi temporar sau continuu si poate avea asociate 0 serie de restrictii.De asemenea, scopul are 0 motivatie (declara task-ul asociat) si un ciclude viata, Un task poate fi descompus ill subtask-uri. El are preconditiibazate pe cunoastere ~i efecte (postconditii), ambele descrise sub formade fapte. Unfapt este 0 cunostinta pe care 0 detine agentulla un momentdat. EI poate fi creat de un task (de exempIu, ca efect lateral),Aplicatiile tipice dezvoltate eu sistemul ZEUS sunt in domenii orientatepe task-uri (de exemplu, fumizare de servicii, managementul resurselor ~ial proeeselor, managementul Iantului de fabricatie), Aceste domeniinecesita planificare (de exemplu, un agent creeaza un plan de actiunepentru realizarea unui anumit scop) ~i cooperare intre agenti, Rata demodificare a mediului de lucru este eel putin cu un ordin de marime rnaimica dedit timpul de rationare al agentului (astfel, probabilitatea ca saapara modificari ale mediului extern pe care se bazeaza planul de actiunecurent este mai mica de 5%): De asemenea, roIul agentului este de arationa despre cum : ; ; i cand sa configureze, sa activeze sau sa deactivezesistemele exteme care executa munca reala. Rezolvarea problemelor nueste in mod real inclusa in agent, ci este externa, Agentul are un model

    http://www.labs.bt.comlproiects/agents/zeus/index.htmhttp://www.labs.bt.comlproiects/agents/zeus/index.htm
  • 8/3/2019 ro Agentii Inteligenti

    11/130

    13

    logic al sistemului extern care este utilizat in realizarea controlului simanagementul acestuia.

    (.

    Granularitatea aplicatiilor din punct de vedere al timpului este data deparametrul time-grain, cea mai mica diviziune a timpului pentru 0aplicatie (care se utilizeaza pentru sincronizare). Durata activitatilor unuiagent se exprima in time-grains si nu in secunde sau minute. Valoareairnplicita a parametrului time-grain este 30 de secunde.

    1.2 INSTALAREA SISTEMULUI ZEUS (VERSIUNEA ZEUS2.0C)Etapele necesare instalarii corecte a versiunii Zeus2.0c (Iansata in 2005) :

    ~ Instalare Java (min. JDK 1.2)~ Instalare Zeus (versiunea Zeus2.0c se instaleaza prin copiere)~ Modifica fisierul .zeus.prp astfeI incM prima linie de comandainstall.dir sa cantina directorul in care se gaseste ZEUS.

    o De exemplu, in cazul in care Zeus2.0c se gaseste pe disculD: in directorul Zeus2.0c, modificarea este urmatoarea: install.dir =D:\\Zeus2.0c: > Copiaza fisierul .zeus.prp in home directory (de exemplu, insubdirectorul user din directorul Documents and Settings).~ Seteaza variabila de sistem CLASSP A T H astfel incat sa cuprindaurmatoarele cai:

    Directoarele ~i .. Calea catre Java Exemplu:o C:\Program Files\Java~dkl.5.0_11\bin Cele 8 cai pentru Zeus (conform README NOW.txt dindirectoruI Zeus2.0c)

    Exemplu:o D:\zeus2.0c\1ib\zeus.jaro D:\zeus2.0c\lib\gnu-regexp.jaro D:\zeus2.0c\lib\icu4j .jaro D:\zeus2.0c\Ub\sl.jaro D:\zeus2.0c\lib\jaxb-rt-1.0-eajaro D:\zeus2.0c\lib~axb-xjc-l.0-ea.jaro D:\zeus2.0c\lib\xerces.jaro D:\zeus2.0c\lib\ant.jar

  • 8/3/2019 ro Agentii Inteligenti

    12/130

    14

    Exemplu:classpath = .; .. ;C: \Program Fi les \ Java \jdk1 .S .0_11\b in ;

    D:\zeus2.0c\lib\zeus.jar;D:\zeus2.0c\lib\gnu-regexp.jar;D :\z eu s2 .0 c\l ib \i cu 4j .j ar ;D:\zeus2.0c\1ib\sl.jar;D:\zeus2.0c\lib\jaxb-rt-l.O-ea.jar;D:\zeus2.0c\1ib\jaxb-xjc-l. .O-ea.jar;D:\zeus2.0c\lib\xerces.jar;D:\zeus2.0c\Iib\ant.jai '

    Indicatii: Informatii despre instalarea sistemului ZEUS (versiunea Zeus2.0c) se gasescIn fisie ru l R EADME NOW .TXT . Exem plu de continut al fisierului .zeus.prp:

    **********.**.*****************************.***~.***********************install.dir~D:\\zeus2.0cdemo.version=falseapplication.gif=gif files.txthas.gui=true -share.plan~trueexecute.earliest=truedebug.an=falsedebug. level=2use,r."trategy. initia tar=zeus .actors. graphs. Linearlni tiatarEval uatoruser. strategy. respondent=zeus. actors.graphs.LinearRespon dentEvaluatorfriendly.name.zeus.actors.graphs.LinearlnitiatarEvaluatar=GrowthFunctionfriendly.name.zeus.actors.graphs.LinearRespondentEvaluator=DecayFunctionHAP.address=shu.agentcities.net

    **********************************************~*************************

    1.3 RULAREA SISTEM ULUI ZEUSSistem ul ZE US se poate ru la in linie de com anda DO S.Exemplu:C :\Doc um e nts a nd S etti ng s\u se r> javazeus.generator.AgentGeneratorEfectul comenzii: incarca G eneratoru l de A genti Z EU S (vezi screenshot-u l d in fig ura 1.1).

  • 8/3/2019 ro Agentii Inteligenti

    13/130

    15

    Generatorul de Agenti ZEUS f u rn izeaza u rma toa re le op ti uni :o Proiect (Project Options): New, Load, Save, View Agent Society, Generate Agent Code, Help;G Ontologie (Ontology Options); New, Load, Save, Edit, Help;o Agent (Agent Options): New Modify name and task list, Delete, Clone, Edit, Help;o Task (Task Options): New, Rename task, Delete, Clone, Edit, Help.

    '.

    Fig. 1.1 Generatorul de Agenti ZEUS (screenshot),

  • 8/3/2019 ro Agentii Inteligenti

    14/130

    16

    Indicatii: Informatii despre rularea toolkit-ului ZEUS se giisesc In fisierul getting-started. txt din subdirectorul doc.

    Directorul Zeus2.0c confine urmatoarele subdirectoare:o bino doco libo varo srco licenseso gifso etco CVS

    . Exemplele dezvoltate in Zeus se giiscsc in directorul:o D:\zeus2.0c\doc\examples\examples

    Documentatia ZEUS se gsseste tn directorul:o D:\zeus2.0c\doc\ZeusDocuments

    Programe1e demonstrative (aplicatiile demo) incluse in ZEUS sunt:primul exemplu de sistem multiage~t care afiseaza mesajul "HelloWorId"(aplicatia lesson one), sistern de comer] electronic pentru 0 piata de fructe(aplicatia fruitmarket), sistem de simulate a lantului de furnizori pentrufabricarea de calculatoare personale (aplicatia pc), sistem de detectare $ 1reparare a defecthmiIor tehnice intr-o retea de teiefonie (aplicatiafaultdemo ), sistern multi agent pentru gasirea iesirii dintr-un labirint(aplicatia multimazei,

    Metodologia ZEUS de analiza, proiectare $i implementare a unui sistembazat pe agenti inteligenti (sistem mUltiagent) cuprinde urmatoareleetape:L Analiza domeniului de aplicatie (modelarea rolurilor);2. Proiectarea aplicatiei (identificarea ontologiei, a agentilor $i aserviciilor - task-urilor);3. Realizarea aplicatiei (definirea agentilor, coordonarea agentilor siorganizarea lor);4. Rularea aplicatiei (incluzand $1 suport la momentul rularii:depanare, vizualizare etc).

  • 8/3/2019 ro Agentii Inteligenti

    15/130

    17

    Docurnentatia ZEUS contine 0 serie de manuale si ghiduri:);;- Manualul tehnic [3],);;- Ghidul de modelare arolurilor [4], Ghidul de realizare a aplicatiilor [2J,) ; ; -Ghidul la momentul r u la ri i [ 5] , Manuale pentru programele demonstrative (studii de caz) [10] ..

    Manua lu l t ehn ic descrie modalitatea de lucru a componentelor unui agentZEUS. Ghidul de modelare a rolurilor descrie cum se utilizeaza modelelepentru roluri in proiectarea aplicatiilor agent. GhiduI de real izare aaplicatiilor explica cum se utilizeaza instrumentul Generator de Agenti(Agent Generator) pentru a crea agenti , Primele patru documente ZEUSsunt prezentate succint in Anexa A.

    > ?fub:type;' number =?mb.number; efectui task-ului:

    o Tip fapta: MotherBoard, instanta: ?mb; Perechile atribut-valoare:

    unit_cost= ?var288; type =?var290; number =?var2~9; Costu l task-ului: (275 * ?mb,number);

    Durata task-ului: 1; Nu exista restrictii de ordonare a preconditiilor;

    Task-ul MakeLaserPrinter task primitiv care simuleaza fabricarea i fumizarea de imprimantelaser; precondi(ii:

    o Tip fapta: PrinterCase, instanta: ?case, modificator:LOCAL; Perechile atribut-valoare:

    unit_cost = ?var48; type =?prmter.type;

  • 8/3/2019 ro Agentii Inteligenti

    43/130

    number =?printer.number;o Tip fapta: TonerCartridge, instanta: ?toner; Perechile atribut-valoare:

    unit cost = ?var208; number = ?printer.number;

    efectul task-ului:o Tip fapta: Printer, instanta: ?printer; Perechile atribut-valoare:

    unit cost = ?var52; type = laser; number = ?var304;

    Costul task-ului: (50 * ?printer.number); Durata task-ului: (1 * ?printer.number); Nu exista restrictii de ordonare a preconditiilor;

    Task-ul MakelnkjetPrinter task primitiv care simuleaza fabricarea si furnizarea de imprimantecujet de cerneala; p rec on dit ii:

    o Tip fapta: PrinterCase, instanta: ?case, modificator:LOCAL; Perechile atribut-valoare:

    unitcost= ?var37; type = ?printer.type; number = ?printer.number;o Tip fapta: InkCartridge, i i i s t a n t a : ?ink; Perechile atribut-valoare: unit cost= ?var204; number = (10 * ?printer.number);

    efectul task-ului:o Tip fapta: Printer, instants: ?printer; Perechile atribut-valoare:

    unit cost = ?var41; type = inkjet; number = ?var296; Costul task-ului: (45 * ?printer.number);

    Durata task-ului: (1 * ?printer.number); Nu exista restrictii de ordonare a preconditiilor;

    45

    ." , .

    . , '"

  • 8/3/2019 ro Agentii Inteligenti

    44/130

    4 6

    Task-ul MakeTollerCartridge task primitiv care simuleaz~(fabricarea i furnizarea de toner pentruimprimante laser; precondtsu. nu exists; efectui task-utut,

    o Tip fapta: TonerCartridge, insranta: ?toner; Perechile atribut-valoare: unit cost =?var20 I; number =?var202; Costul task-ului: (25 * ?toner.number);

    Durata task-ului: (l * ?toner.number); Nu exista restrictij de ordonare a preconditiilor, .

    Task-ul MakelnkCartridge task primitiv care simuleaza fabricarea ~i furnizarea de cartusepentru imprimante cu jet de cerneala; preconduu: nu exista; efectul task-ului:

    o Tip fapta; InkCartridge, instanta: ?ink; PerechiIe atribut-valoare:

    unit_cost = ?var198; number =?var 199; Costul task-ului: 0;

    Durata task-ulul: 1; Nu exista restricp] de ordonare a preconditiilor;

    Task-ul MakeNewPrinter task primitiv care simuleaza fabricarea si furnizarea de imprimantenoi; precondi(ii:

    o Tip fapta: InkCartridge, instanta: ?var 171; Perechile atribut-valoare: unit_cost= ?varl72; numher= ?varI73;o Tip fapta: PrinterCase, instanta: ?var174;

    Perechile atribut-valoare: unit_cost=?var175;

  • 8/3/2019 ro Agentii Inteligenti

    45/130

    47

    type= ?var176; n umbe r= tiv e si'T ];

    efectul task-ului;o Tip fapta: Printer, instanta: ?varI78; Perechile atribut-valoare:

    unit_cost = ?var179; type =?var180; number=?var181;

    Costul task-ului: 0; Durata task-ului: 1; Nu exista restrictii de ordonare a preconditiilor;

    Task-ul SendMessage1 ; task de tip regula (rulebase); regula RuleO eu prioritatea 5;

    Conditii:?varl71

  • 8/3/2019 ro Agentii Inteligenti

    46/130

    48

    4.1.5 IMPLEMENTAREAAPLICATIEI $1GENERAREA CODULUIImplementarea aplicatiei presupune parcurgerea a doua etape:

    1. generarea automata de cod (pentru agenti , task-uri siscript-uri de start-up), apeland generatorul automat decod din ZEUS;2. scrierea de cod Java pentru programul externDelll'ump.java asociat agentului PCMaker, care arerolul de a transmite a ct iu ni a ce stu i agent.

    1) Generarea coduluiPentru a genera automat codul trebuie parcurse urmatoarele etape:

    configurarea task-urilor In panel-ul Tasks - m a rc he az a o ptiu ne aGenerate; configurarea agentilor task ill panel-ul Task Agents -

    m ar ch ea za o ptiu ne a Generate; configu rarea agentilor u tilita ri inpanel-ul Utility Agents; In panel-ul Generation Plano stabileste directorul incare se va genera codul, .'

    o selecteaza sistemul de operare pentru care se vor creascript-urile (implicit Windows);o apeleaza generatorul automat de cod prin select area

    optiunii Generate d in c oltu l s ta ng a sus al panel-ului.In urma generarii automate a codului se genereaza trei script-uri:run1.bat, run2.bat, run3.bat ~i codurile sursa pentru toti agentii task:

    1. PCMakerjava,2. Monitor-Makerjava,3. MotherBoardMaker java,4. PrinterMakerjava,5. NewPrinterMakerjava

    si task-uri le lor:1. MakeComputerjava,2. MakeMonitor.iava,3. MakeMotherBoardjava,4. Makel.aserl'rinter java,5. MakelnkjetPrinter java,6. MakeTonertlartridge.java,7. MakelnkCartridgejava,8. MakeNewPrinter java.

  • 8/3/2019 ro Agentii Inteligenti

    47/130

    4 9

    Scriptul run1.bat porneste serveruI nameserver, scriptul run2.batpomestc toti agentii, iar scriptul run3.bat porneste agentul utilitarvisualiser;;i agentii facilitatori (de tip facilitator).2) Scrierea programelorexterneAplicatia p c necesita scrierea unui progrcu:nextern, DellPump.java careva p e rm i te transmiterea de actiuni catre agentuI PCMaker./ / **********" ' **+*************** DellPump. java ******************" ' *******i m po rt ja v a , aw t. * ;import java.av. rt .event. ":im po rt ja v ax .sw in g. * ;impor t t :eus ,u t il .* ;im po rt z eu s. c on ce p ts ..*;impo rt z eu s. ag en ts . *;impo rt z eu s. a c to rs : *;p ub lic c la ss D elll'u m p e xte nd s JF ra me im p le m en ts Z eu sfix te ma l {p ro te c te d Ag en tCont ex t c on te xt = null;p ublic D ellP um pO {m u tto n s ta rt Btn =new JBut ton("Next" );JPane l conten t l' ane = (JPane l ) ge tConten tPaneO;cont en tPane. se tLayou t (n ew Borde rLayou t () );contentPane.add(s tar tBtn,BorderLayout .CENTER);s ta r tB t n. addAct ionLi st en e r(new SymAc ti onO)~s e tV i si bl e (f a ls e ) ;th is .a ddW in dowL is te ne r{ new W in dowAda pte rO {p ublic v oid w in do wC lo sing (W in do wE ve nt e ) {System.exi t(O);}} );}"

    p ublic v oid e xe c(A ge ntC on te xt c on te xt) {this .context = context;s e tV i si bl e( tr u e ) ;packf) ;}. p ro te cte d c la ss S ymA ction im p le me nts A ctio nL iste ne r {p ub lic v oid a ctio nP erfo rm e d(A ctio nE ve nt e ) {if ( context =h ull) r etu rn ;F ac t fa ct = context .OntologyDbOgetFact(Fac t .V ARIABLE,"Computer " );f a ct .s e tVa I ue ( "cpu _ s peed", "400" );f a ct .s e tVa l ue ( "kb _ t ype ", "UK") ;f a ct .s e tVa l ue ( "p r in t er _ t ype " , " la s er ") ;

  • 8/3/2019 ro Agentii Inteligenti

    48/130

    50

    fact.setValue("monitor _type", "svga");factsetNumber( 1);. int now = (int)context.now();Goal g =new Goal(context.newld("goal"), fact, now+8, 0,context.whoamif), now+5);

    context.Enginetj.achieverg) ;}}

    }/ / * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *4 .1 .6 RULAREAAPLICATIE I

    Toate fisierele create automat sau manual trebuie compilate Cll javac.Dupa compilarea tuturor fisierelor Java se vor apela illordine script-urilerunt, run2, run3, lasand un interval de timp intre apeluri.>~>"" ?repair.type; unit cost = ?var60; number = 1;

    o Tip fapta: Repair; instants: ?repair; Perechile valoare atribut: type = 1; fault = ?var64; id = ?var65;

    restrictii de valoare - pentru task-ul primitiv Type2Repair:o Tip fapta: Engineer; instanta: ?engineer;

    Pereehile valoare atribut: skill >= ?repair.type; unit_cost = ?var56; number = 1;

    o Tip fapta: Repair; instanta: ?repair; PerechiIe valoare atribut: type = 2;

    fault = ?var52; id=?var53;

    restrictii de valoare - pentru task-ul primitiv Type4Repair:

    , '

    63

  • 8/3/2019 ro Agentii Inteligenti

    62/130

    are abilitatea de a realiza urmatoarele task-uri:o task-ul de tip rulebase Reactor (Reactioneazay;o task-ul de tip primitiv Typ e IRepair (Reparaiie'Itpl y ;o task-ul de tip primitiv Type2Repair (Repara/ieTip2);o task-ul de tip primitiv Type3Repair (ReparatieTip3);

    resurse initiale ale agentului:o Tip fapta: Engineer; instanla: @engineer2; perechile atribut-

    valoare: skill=2; unit_cost = 15; number=3;o Tip fapta: Engineer; instanta: @engineer3; perechile atribut-

    valoare: skill=3; unit cost= 20; number=2;o Tip fapta: Engineer; instanta: @engineer4; perechile atribut-

    valoare: skil/=4; unit cost= 25; number=2; sectiunea organizarea agentului nu se completeaza; agentul poate fi initiator in cadrul protocolului de coordonareFIPA-Contract-Net-Manager l}i respondent in cadrul protocoluluide coordonare FIPA-Contract-Net-Contractor (ambele tipuri de rolsunt marcate ca active);

    o In cazul rolului initiator strategia de coordonare utilizata esteGrowthFunction;o in cazul rolului respondent strategia de coordonare utilizata

    este DecayFunction; restrictii de valoare - pentru task-ul primitiv Type IRepa ir :

    o Tip fapta: Engineer; instanta: ?engineer;

    6 4

    o Tip fapta: Engineer; instants: ?engineer; Perechile valoare atribut:

    skill >= ?repair.type; unit cost = ?var32; number = 1;

    o Tip fapta: Repair; instants: ?prep; Perechile valoare atribut:

    type = 3; fault = ?repair.fault; id= ?var37;

    o Tip fapta: Repair; instanta: ?repair; Perechile valoare atribut:

    type = 4; fault = ?var28; id= ?var29;

    Agentul North

  • 8/3/2019 ro Agentii Inteligenti

    63/130

    . "

    Perechile valoare atribut: skill >= ?repair.type; un it_co st =?var60; number = = 1;

    o Tip fapta: Repair; instants: ?repair; Perechile valoare atribut:

    typ e = 1; fau lt = ?var64; ld= ?var65;

    restrictii de valoare - pentru task-ul primitiv Type2Repair:o Tip fapta: Engineer; instants: ?engineer; Perechile valoare atribut:

    skill >= ?repair.type; un it_co st = ?var56; number = 1;

    o Tip fapta: Repair; instanta: ?repair; Perechile valoare atribut: typ e = 2;~ fault = ?var52; id = ?var53; restrictii de valoare - pentru task-ul primitiv Type3Repair:o Tip fapta: Repair; instants: ?repairl;

    PerechiIe valoare atribut: typ e = 1; , fau lt = ?repair3 .fault; id =?var45;

    o Tip fapta: Repair; instanta: ?repair2; Perechile val.oare atribut:

    typ e =2; fault = ?repair3 .fault; id=?var46;

    o Tip fapta: Engineer; instants: ?engineer; Perechile valoare atribut:

    skill >= ?repair3.type; un it_co st = ?var48;- - -- . -- . ._-_ .- - ._ ' .- num ber = 1;

    o Tip fapta: Repair; instanta: ?repair3; Perechile valoare atribut:

    typ e =3;

  • 8/3/2019 ro Agentii Inteligenti

    64/130

    66

    fault = ?var40; id=?var41;

    Tabelu14.7 contine informatiile referitoare la definirea celor cinci agenti,Tabelul 4.7 Definirea agentilor

    ~Task-uri Schema de coordonare activa:

    1. protocol de coordonare;2. strategia de coordonare

    WorldSimulator FaultSimulator -A. Ini t ia tor

    Reac tor I . Fipa -Con trac t -Ne t -ManagerTypelRepair 2. GrowthFunctio nEast Type2RepairType3Repair B . Responden t ,Type4Repair 1 . Fipa -Con trac t -Ne t -Con trac tor2 . DecayFunc t io n

    A. Ini t ia torReac tor ] . Fipa -Con trac t -Ne t -Manager

    T yp e I Repair 2 . Grow thFunc t io nWes t Type2RepairType3Repair B. Responden t1 . Fipa -Con trac t -Ne t -Con trac tor2 . DecayFunc t io n

    A. Ini t ia torReacto r 1. F ipa-Coniract -Net-ManagerTyp e 1Repair 2. GrowthFunctio nSouth Type2RepairType4Repair B. Responden t1 . Fipa -Con trac t -Ne t -Con trao tor2 . DecayFunc t io n

    A. Ini t ia torReac tor 1. F ipa-Contract-Net-M anagerNo rth Typ e 1Repair 2. G rowthFunctio nType2RepairType3Repair B. Responden t1 . Fipa -Con trac t -Ne t -Con trac tor2 . Deca yFunct io n

    4 .3 .4 DEFIN lREA TASK -UR ILORTask-ul Reactor task de tip baza de reguli (rulebase) care simuleaza reactiaagentului la semnalarea unei defectiuni tehnice;

  • 8/3/2019 ro Agentii Inteligenti

    65/130

    67

    .'. regula reaction eu prioritatea 5:o Condi(ie:

    (Fault (type ?t) (id ?ido Actiune:(achieve (fact (Repair (type ?t) (fault ?id ~end_time 9) (confirm_time 3)))regula clearJault eu prioritatea 5:o Condi(ii: .?fault

  • 8/3/2019 ro Agentii Inteligenti

    66/130

    68

    fault = ?var64; id=7var65; Costu l task-ulu i: 17 .5 ;

    Durata task-u lu i: 1;

    Task-ul Type2Repair task p rim itiv care sim uleaza efec tuarea reparatiei de fec tiu nii tip 2 ; preconditie;

    o Tip fapta: Engineer, instanta. ?engineer, modificatori:LOCAL REPLACED (variabila aflata In baza de dateIocala);

    P ere ch ile a trib ut-v alo are : skill = ?repair .type unit_cost= ?var56; number = 1;

    eJfectultask-ului:o Tip fapta: R ep air, in sta nta : ?rep air; P ere ch ile a trib ut-v alo are :

    typ e =2; fault = 7var52; id= ?var53; Costu l task -u lu i: 25;

    Durata task-u lu i: 1;

    Task-ul Type3Repair task p rim itiv care sim uleaza efec tuarea reparape i defecjiunii tip 3; preconduii:

    o Tip fap ta : Repair, instants: ?repairl; P ere ch ile a trib ut-v alo are :

    typ e = 1; fault = repair3.faul t ; id=var45;o Tip fa pta . R ep air, in sta nta : ?repair2;

    P ere ch ile a trib ut-v alo are : typ e = 2; fault = 7repair3.faul t ; id = ?var46;

    .0 T ip fap ta : E ng ine er, insta nts: ?en i?ine er,

  • 8/3/2019 ro Agentii Inteligenti

    67/130

    , ..

    69

    '~.

    modificator: LOCAL REPLACED; Perechile atribut-valoare:

    skill >= ?repair3. type unit_cost = ?var48; number = 1;

    . eJec tul task-ului:o Tip fapta: Repair, instanta: ?repair3; Perechile atribut -valoare:

    typ e = 3; fault = ?var40; id= ?var41;

    Costul task-ului: 37.5; Durata task-ului: 1;

    Task-ul Type4Repair task primitiv care simuleaza efectuarea reparatiei defectiunii tip 4; preconditii:o Tip fapta: Engineer, instants: ?engineer,modificator: LOCAL REPLACED;

    Perechile atribut-valoare: skill = ?repair.type unit_cost =?var32; number = 1;

    o Tip fapta: Repair, instanta: ?prep; Perechile atribut-valoare:

    typ e = 3; fault = ?repair.fault; id = ?var37;

    . efectul task-ului:o Tip fapta: Repair, instanta: ?repair;

    Perechile atribut-valoare: typ e =4; fault = ?var28; id = ?var29;

    Costul task-ului: 50; Durata task-ului: 1;

    Tabelul 4.8 contine informatiile referitoare la definirea task-urilorprimitive.

  • 8/3/2019 ro Agentii Inteligenti

    68/130

    70

    Tabelul4.8 Definirea task-urilor primitive

    ~ Intrari task (Preconditi i) Iesiri task (Efect). - TiE.f~ta- - Tip fapta-T)JJJ_ eRe pp ir El!&!_neer RepairType2Repair E~neer ReJ)airType3Repair Repair Repair

    RepairEngineerType4Repair Engineer RepairRepair

    4.3.5 IMPLEMENTAREA APLICATIEI ~I GENERAREA CODULUIImpIementarea aplicatiei presupune parcurgerea celor doua etape:

    1. generarea automata de cod (pentru agenti, task-uri siscript-uri de start-up), apeland generatorul automat decod din ZEUS;

    2. scrierea de cod Java pentru programul externWorldSimjava asociat agentului WorldSimulator,care are rolul de a simula mediul de lucru, adicareteaua de telefonie.

    1) Generarea coduluiPentru a genera automat codul trebuie parcurse urmatoarele etape:

    configurarea task-urilor in panel-ul Tasks - marcheaza optiuneaGenerate; configurarea agentilor task in panel-ul Task Agents -marcheaza optiunea Generate; configurarea agentilor utilitari in panel-ul Utility Agents; in panel-ul Generation Plan

    o stabileste directorul in care se va genera coduI,o selecteaza sistemul de operare pentru care se vor creascript-utile (implicit Windows);

    o apeleaza generatorul automat de cod prin selectareaoptiunii Generate din coltul stanga sus al panel-ului.

  • 8/3/2019 ro Agentii Inteligenti

    69/130

    71

    in urma genedirii automate a codului se genereaza trei script-uri:runt.bat, run2.bat, run3.bat ~icodurile sursa pentru toti agentii task:

    1. WorldSimu!atorjava,2. Eastjava,3. Westjava,4. South-java,5. NorthJava

    ~itask-urile lor;,'6. TypelRepairjava,

    ' . 7 . Type2Repairjava,8, Type3Repairjava,9, Type4Repairjava.Gee doua task-uri de tip rulebase sunt fisiere Clipboard.T.ask-ul Reac tor* * " ' * * * * * * * * * * ' "* * * * " ' ** * * * * * * * * * " ' *Reactor * * * * * * * * * * * ' " '. .* ' " ' * '' * ' " "* * * * ' * ' * '{ :Ru lebas e React or(reactione Ea ult ( ty pe 7 t) (i d ? id )

    =>(a ch ie ve { fa ct (R ep air ( ty pe 7 t) ( fa ult 7 id )) ( en d_ tim e 9 ) (c on firm _ tim e 3 )(clearfault?fault

  • 8/3/2019 ro Agentii Inteligenti

    70/130

    72

    Scriptul run1.bat pomeste serverul nameserver, scriptul run2.batporneste toti agentii, iar scriptul run3.bat porneste agentul utilitarvisualiser ~i agentii facilitatori.2) Scrierea programelor externeAplicatia faultdemo necesita scrierea unui program extern,WorldSim.java care va permite simularea mediului de Iucru.

    4.3.6 RULAREA APLICATIEIToate fisierele create automat sau manual trebuie compilate cu javac.Dupa compilarea tuturor fisierelor Java se vor apela in ordine script-utilerunl, run2, run3, Iasand un interval de timp intre apeluri. .

    >

  • 8/3/2019 ro Agentii Inteligenti

    85/130

    ANEXAADocumentatfa ZEUS

    INTRODUCEREDocumentatia ZEUS cuprinde manuale si ghiduri care explicamodalitatea de realizare a etapelor metodologiei ZEUS de dezvoltare asistemelor multi agent. Figura Al prezinta etape1e metodologiei ZEUS ~ip reci zeaza documen ta ti a ZEUS aferenta.

    Analiza Proiectarea Realizarea Suport ladomeniului apllcatlel apllcatlel rulare

    Modelarea Identificarea Defi nlre Agent, VlzualizareRolurilor Ontologiei, Agentilor Coordonare & DepanareServiciilor & OrganizareCuno~tinlelor

    Ghidulde Studii de Ghidul de Ghidu/Mode/are Caz Rea/izare a pentruRo/uri Ap lica(ie i RuJare

    Fig. Al Com p on en te le to olk it-u lu i Z EUS [ 4].

    Documentatia prezentata succint in aceasta anexa cuprinde: M anualuI tehnic (Te c hn ic al Manual ) Ghidul de modelare a rolurilor (Role Modelling Guide) Ghidul de realizare a aplicatiei (Application Realisation Guide) Ghidul la momentul rularii (Runtime Guide)

  • 8/3/2019 ro Agentii Inteligenti

    86/130

    8 8

    AI. MANUALUL TEHNICToolkit-ul ZEUS pennite construirea de sisteme multi agent oferindoptiuni pentru

    > - configurarea unui numar de agenti eu functionalitate specifica ~icomportament diferit,> - organizarea agentilor in sisteme ~i evidentierea relatiilor dintreagenti,> - inc1uderea in struetura fiecarui agent a unor mecanisme deeomunicare r;dde eoordonare (predefmite in ZEUS sau definite deutilizator), .> - fumizarea de cod pentru rezolvarea problemelor specifice fiecaruiagent,> - generarea automata a eodului pentru agenti ~itask-uri,> - utilizarea de agenti predefiniti pentru cautare de informatii (agentiinameserver ~ifacilitator), .' fumizarea de facilitati de vizualizare si depanare a societatilor deagenti ZEUS. .

    Agentii ZEUS sunt deliberativi (rationeaza in mod explicit despreactiunile lor in functie de scopurile urmarite), directionati de scop,rationali ~i versatili (pot avea mai multe seopuri si se pot angaja In mairnulte task-uri).Figura A2 prezinta cele trei eomponente ale toolkit-ului ZEUS deconstruire a agentilor: Biblioteca de Componente Agent (AgentComponent Library), Software-ul pentru Construirea Agentilor (AgentBuilding Software) si Agentii Utilitari (UtiUtyAgents).

    Biblioteca de Componente Agent este 0 eclectic de clase care formeazabloeurile de construire a agentilor individuali. Continutul acesteibiblioteci cuprinde componente pentru comunicare, ontologie, coordonare(sau interactiune socials).

  • 8/3/2019 ro Agentii Inteligenti

    87/130

    ,~. ,_ I I .,II, , A ge nt com pon en t U brary~''l~ fI;

    l i' la n nl ng a ndit Schedul ing

    tSC o m r run ication ,~Data Slructures

    SocialIilteraction U s e r I n te r fa ce

    ~ut ility Agen ts r -~1Ii I . ,Name FacUrtator ~erver.~

    '\ ],Visual iserI

    ~ Socie ty !mV iewer Agentt& Control V iewer. Too) ~~ S tatistics Reports ~Tool T ool. ~

    A ge nt Build ing S oftw are ,

    V is ua l E ! ln o rs

    e cc e G e ne ra to r !

    ~L ega cy S yste m > A PI

    Fig. A2 Componentele toolkit-ului ZEUS [3J._ ,'- . P en tr u comunicare, biblioteca furnizeaza:

    un limbaj de comunicare agent bazat pe actiuni perfonnative(KQML) ;

    un sistem asincron de t ransmitere a mesajelor bazat p~ socket-uri; un editor pentru descrierea ontologiilor specifice domeniului(conceptele domeniului care sunt definite cu ajutorul editorului deontologie sunt utilizate ca parte componenta a continutuluilimbajului de comunicare agent); un limbaj de reprezentare a cunostintelor bazat pe cadre pentrureprezentarea conceptelor domeniului ,

    Pentru rationarea si coordonarea multiagent, biblioteca fumizeaza: un sistem general de planificare potrivit pentru domeniile deaplicatii orientate pe task-uri ~i rezolvarea cooperative aproblemelor, specifics acestor aplicatii; un motor de coordonare care controleaza comportamentul social alunui agent, adica cand ~i cum interactioneaza eu alti agenti ~itipurile de eontracte pe care le incheie cu ei.

    Functionarea planificatorului ~i a motorului de coordonare suntinfluentate de contextul cunoasterii agentului, adica de resursele ~icompetentele disponibile, de relatiile organizationale cu alti agenti ~i de

    89

  • 8/3/2019 ro Agentii Inteligenti

    88/130

    90

    strategiile de cooperare disponibile, Pentru aceste componente, bibliotecafurnizeaza: 0 biblioteca de protocoale de coordonare predefinite $i reutilizabile(de exemplu, contract-net ~idiferite proto coale de licitatie); un numar de relatii organizationale predefinite (superior,

    subordinate, co-worker, peer) - agentii care sunt definiti superioriagentilor subordonati pot deIega task-uri acestora; agentii careapartin aceleiasi comunitati de agenti pot fi declarati co-worker,adica prefera s a interactioneze intre ei; relatia peer este implicita ~inu impune restrictii asupra interactiunii - structura organizationalaafecteaza configurarea schemei de coordonare a sistemuluimultiagent;

    mecanisme de reprezentare a cunoasterii ~i baze de date pentrudescrierea i stocarea resurselor si competentelor unui agent.

    Co-ordinationEngine

    AcquaintanceDatabase

    Figura A3 prezinta arhitectura unui agent ZEUS generic.

    MessageHandler

    Planner andScheduler

    Fig. A3 Arhitectura unui agent ZEUS generic [3r

  • 8/3/2019 ro Agentii Inteligenti

    89/130

    91

    Componentele unui agent ZEUS generic sunt urmatoarele: 0 cutie postala (Mailbox) care gestioneaza comunicarea dintreagent ~i ceilalti agenti; un manipulator de mesaje (Message Handler) care proceseazamesajele primite de Ia cutia postala ~i Ie distribuie catrecomponentele relevante ale agentului; un motor de coordonare (Co-ordination Engine) care ia deciziireferitoare la scopurile agentului si raspunde de coordonareainteractiunilor agentului cu alti agenti utilizand protocoale ~istrategii de coordonare (protocoale de Iicitatie sau protocoluIcontract net); 0 baza de date referitoare la eunostintele agentului

    (Acquaintance Database) care descrie relatiile agentului eu ceilaltiagenti din societate ~i cunostintele referitoare la capabilitatileacelor agenti; Motorul de coordonare utilizeaza aceste informatiipentru realizarea de aranjamente de coIaborare eu alti agenti;. un planificator (Planner and Scheduler) care planifica task-urileagentului pe baza deciziilor luate de motorul de coordonare i aresurselor ~i specificatiilor task disponibile agentului;

    . 0 baza de date cu resursele agentului (Resource Database) carecuprinde 0 lista a resurselor (faptelor- facts) care apartin agentuluisi sunt disponibile acestuia; aceasta baza de date se poate interfatadirect cu sistemele externe care-i permit legarea dinamica la aItebaze de date i utilizarea acestora;

    0 baza de date a ontologiei (Ontology Database) care stocheazadefinitia logica a fiecarui tip de fapta - atributele lui, intervalul devalori pentru fiecare atribut, restrictiile valorilor atributelor ~irelatiile dintre atribute1e faptului ~iaIte fapte; 0 baza de date pentru task/plan (Task/Plan Database) carefurnizeaza descrierile logice ale operatorilor de planificare (sau aletask-urilor) cunoscute agentului; un monitor de executie (Execution Monitor) ce contine ceasulintern al agentului ~i care porneste, opreste si monitorizeaza task-urile care au fost planificate pentru executie si terminare de catreplanificator; de asemenea, informeaza planificatorul despreconditiile de terminare ale task-urilor pe care Ie monitorizeaza;pentru administrarea task-urilor monitorul de executie are 0interfata direct a cu sistemele exteme; se presupune ca realizariletask-urilor specifice domeniului de aplicatie SlU1tprograme exteme.

  • 8/3/2019 ro Agentii Inteligenti

    90/130

    92

    Software-ul pentru construirea agentilorPrincipiul de baza al toolkit-ului ZEUS este ca agentii specifici uneiaplicatii sa poata fi construiti prin configurarea agentului ZEUS generic siechiparea lui cu functionalitatea ceruta de aplicatie, Pentru a facilita 0implementare rapida, toolkit-ul ZEUS furnizeaza 0 metoda de nivel maltpentru dezvoltarea agentilor, care ascunde dezvoltatorului de sistememulti agent complexitatea bibliotecii de componente agent. Aceastametoda utilizeaza:

    0metodologie de creare a agentilor, care ghideaza dezvoltatorul inrealizarea etapelor de analiza ~iproiectare a sistemului;

    un med iu vizual de dezvoltare a agerui lo r care suport a metodologiade creare.

    Metodologia de creare a agentilor este explicata inGhidul de realizare aaplicatiilor. .Editoarele utilizate de Generatorul de Agent i ZEUS sunt urmatoarele: un editor de ontologie pentru definirea conceptelor specificedomeniului de aplicatie; .

    un editor de fapte/variabile pentru descrierea instantelor specificefaptelor : ; ; i variabilelor;

    un editor de definire a unui agent pentru descrierea logica aagentilor (specifica task-urile agentului, resursele initiale etc);

    un editor de descriere a unui task pentru specificarea atributelortask-urilor :;;i pentru compunerea grafica a task-urilor de tipsummary; un editor de organizare pentru definirea relatiilor organizationaledintre agenti si a cunostintelor agentului despre abilitatile celorlaltiagenti;

    un editor de coordonare pentru selectarea setului de protocoale decoordonare cu care va fi echipat fiecare agent.

    Pentru a genera codul unei aplicatii specifice, Generatorul de Agenrimosteneste codul din Biblioteca de Componente Agent ~i ilintegreazd cudatele din diferite editoare vizuale. Programele rezultate sunt compilate ~iexecutate.

  • 8/3/2019 ro Agentii Inteligenti

    91/130

    93

    Agentii Utilitari ZEUSIn general, societatile de agenti au asigurata 0 infrastructure de servieiiutilitare, Agentii Utilitari ZEUS sunt nameserver si facilitator carefaciliteaza gasirea de informatii ~ivisualiser care permite vizualizarea sidepanarea societatilor de agenti ZEUS. 0 societate de agenti ZEUS poatecontine un numar oarecare de agenti utilitari, eu eel putin un agentnameserver. Tori eei trei agenti utilitari sunt construiti eu ajutorulcomponente1or de baza din Biblioteca de Componente Agent i sunt defapt simplificari ale agentului ZEUS generic.Agentiinameserver au doar 0 cutie postala ~i un manipulator demesaje, componente necesare pentru primirea i t rim i te r ea de raspunsurila cererile agentilor de aflare a adreselor altor agenti, In plus, agentiinameserver au un ceas al societatii de agenti; la initializare, un agent seinregistreaza la un nameserver ~i ii sincronizeaza ceasul intern eu eel alagentului nameserver; daca 0 societate de agenti are mai multi agentinameserver doar primul dintre acestia defineste momentul zero (t = 0).Agentii facilitator au 0 cutie po~tal:l si un manipulator de mesajepentru primirea si trimiterea de raspunsuri la cererile agentilor referitoarela abilitatile altor agenti i 0 baza de date a cunostintelor acestor agentifacilitator in care sunt stocate abilitatile agentilor cunoscuti. Acestiagenti interogheaza periodic toti agentii din societate despre abilitatile lorsi stocheaza informatiile primite inbaza de date a cunostintelor lor.Agentii visualiser pot fi utilizati pentru a vizualiza, analiza ~i depanasocietatile de agenti ZEUS. Ei functioneaza prin interogarea celorlaltiagenti despre starile ~i procesele lor si apoi grupeaza ~i interpreteazaraspunsurile pentru a crea un model actualizat al comportamentuluicolectiv al agentilor. Acest model poate fi vizualizat din diferiteperspective prin instrumente de vizualizare suportate de agentiivisualiser. Instrumentele incluse sunt urmatoarele: un Vizualizator al Societatii (Society Viewer) care afiseaza totiagentii din societate si relatiile dintre ei; poate afisa i mesajeleschimbate intre agenti in timpul rezolvarii problemei; un Instrument de Raportare (Reports Tool) care afiseazadescompunerea/distribuirea task-urilor active in cadrul societatii deagenti, precum ~istarile executiei task-urilor;

    un Vizualizator de Agent (Agent Viewer) care permite observarea~imonitorizarea starilor interne ale agentilor; un Instrument de Control (Control Tool) care este utilizat pentruinspectarea si/sau modificarea de la distants a starilor interne ale

  • 8/3/2019 ro Agentii Inteligenti

    92/130

    94

    agentilor individuali; astfe1, comportarnentul unui agent poate firedefmit la rulare eu ajutorul acestui instrument pentru a modificabazele de date asoeiate task-urilor, resurselor sau organizariisocietat ii de agenti, sau ch ia r prin fumizarea unor noi reguli deprocesare a mesajelor; Instrumentul de Control este 0 versiuneonline a Software-ului de Construire a Agentilor, .Un Instrument "Statistic (Statistics Tool) care afiseaza diferitestatistici (in formate variate) 1a nivel de agent individual sau desocietate de agenti.

    Instrumentele de vizualizare se pot utiliza online pentru a vizualizainteractiunile societatii de agenti cand aceasta este activa sau offlineasupra sesiunilor de interactiune dintre agenti, inregistrate intr-o baza dedate.Figura A4prezinta 0 diagrama de interactiune a unei societati de agentinou creata, Interactiunile sunt ordonate _ m timp.

    A gent 1 \JIsvaiisergen tN am eSe ver Fa alila lo r .~ster I

    ar.kn";'edgeregister

    ~edge

    Il'QlJeSIadd."..".giveaddreoses,.

    request abilities

    Inf""" of ali{litJes

    request ~ddressesI

    give addressesin loonme of rressages request

    L.L L.L,~ I CC QLmessa

    Mecanismul de comunicareComuniearea dintre agentii ZEUS se realizeaza prin socket-uri TCPIIPpunct-la-punct , fiecare mesaj fiind eomunicat ca 0 secventa de caractereASCII.

  • 8/3/2019 ro Agentii Inteligenti

    93/130

    9 5

    Limbajul de comunicare agent utilizat de ZEUS se bazeaza pe teoriaactelor vorbirii. Toti agentii ZEUS comunica prin mesaje care respectastandardul FIPA ACL. Figura AS prezinta atributele cIasei Performative.

    Performative(type:sender:receiver:reply_with:in_reply_to:contentlanguage:address:send_time:receive ..Jime:

    /' t ip act performativ, de exernplu, inform, cancel etc. "r numele agentului care a trimis rnesajul "r numele agentului care va primi mesajul * 'r chela de identificare.a conversatiel agentului sencerv" chela conversatiel agentu.lui receiver "1* contlnunn mesajului * 'r numele limbajului Tncare este scris conhnutul "r adresa agentului sender *}r data ~iora la care a fost tr imis mesajul * '1 * data ~iora la care a fost pr imit mesajul * '

    Fig. ASA tr ib u te le c la se i Performative [3].

    In figura A6 sunt descrise tipurile de mesaje din ZEUS.

    A ccept-proposal U tilizat In contextu l unui dialog existent pentru a inform aa ge ntu l d es tin ata r (r ec ip ie nt) c a 0 p ro pu ne re a nte rio ar a a fo stSemnaleaza ulu iCancel MailBox ~iExecutionMonitor a le a ge ntu lu i de stin ata r o pre sc .transm iterea de catre

    Cfp I nv ita a ge ntu l d es tin ata r s ll fa ca 0 p ro pu ne re r ef er ito ar e la 0anum ita resu rsa .Confirm C on fir ma r ez er va re a u ne i r es ur se

    o c on fi rm a re f ii cu ta a nt er io risconfirmFailure T errn ina u n d ia lo g a tu nc i c and initia to ru l a ce stu ia n u-l m aicontinuaInform Age ntu l d es tin ata r a da ug a c on tin utu l a so cia l m e sa ju lu i I a b az a_ de date c u resurse

    o versiunenform-if Fig. A6 Tipuri d e m e sa je Z?US (1 12 ) [ 3 ].

  • 8/3/2019 ro Agentii Inteligenti

    94/130

    Fig. A6 Tipuri de mesaje ZEUS (2 /2 ) [3 ].

    .j'f 96

    Inform-ref Determina agentul destinatar sa adauge un anumit eontinutreferit la baza sa de date cu resurse (Resource Database)

    Not-understood Un caz mai specific de mesaj tip FailurePropose Incapsuleaza 0 propunere pentru obtinerea sau achizitionarea

    unei resurse specificateQuery-if o cerere conditionata de informatfQuery-ref o cerere pentru informatii referite de continutul mesajuluiRefuse Termina un dialog, de obicei, deoarece initiatorul considerii e l i

    propunerile sunt inacceptabile mai degraba dedit greu derealizat (cf. failure) ,

    Reject-proposal UtiIizat In contextuI unui dialog existent pentru a informaagentul destinatar ca 0 propunere anterioara este inacceptabila

    Request Cerere catre agentul destinatar pentru a furniza 0anumitaresursa sau un anumit serviciu

    Request-when o versiune conditionata a lui R~estRequest- o versiunea conditionata de timp a lui RequestwheneverSubscribe Inreglstreaza initiatorul, utilizat in mod tipic pentru a se

    inregistra cu agentii utilitari de tip NameServer ~iVisualiser

    Detalii despre motorul de coordonare, planificator, monitorizareaexecutiei unui task ~i integrarea agentilor ZEUS eu programe exteme segasesc in manualul tehnic din pachetul software ZEUS (fisierul ZEUS-TechManual.doc ).

  • 8/3/2019 ro Agentii Inteligenti

    95/130

    A2. GHIDUL DE MODELARE A ROLURILORRolurile agentilor ~imodelele de roIuri furnizeaza un vocabular pentrudescrierea sistemelor multi agent, fiecare rol descriind pozitia si un set deresponsabilitati ale agentului in cadrul unui anumit context sau model derol. Astfel, problema este gandita in tenneni de roIuri pe care un agent lepoate avea si de responsabilitati asociate fiecarui rol.Modelarea rolurilor este asociata cu etapa de analiza a domeniului deaplicatie. Reprezentarea ralurilor si a modelelor de ral_?ri respectanotatiile din limbajuI UlvfL (Unified Modelling Language). In figura A7este prezentata notatia utilizata i n : cadruI unei diagrame tipice de rol.

    Fig. A7 Exemplu de diagrama tipica de rol (utilizeaza notatia UML) [4].In figura AS sunt prezentate campurile unei descried de rol.NUMEROLModel Rol: modelul care confine acest rolRelatiile ell alte roluri: rolurile coniinute sau specializateDescriere: 0 descriere a caracteristicilor, abilitalilor, responsabilitiitilor asociateroluluiRespensabilitati: Colaboratori:[I] 0 interactiune de tip iesire = > Ro lu l S u rs a[2, 3] 0 interactiune de tip intrare ~iiesire ::: = > Rolul SUTsa ~i DestinatieInterfete externe:o activitate specifics aplicatieiProtocoale sociale necesare: abilitati necesare pentru indeplinirea responsabilitatilor

    Fig. AS Campurile unei descrieri de rol [4].

    97

  • 8/3/2019 ro Agentii Inteligenti

    96/130

    98

    Modelele de roluri sunt sabloane care reprezinta cea mai simpla solutiepentru 0 aplicatie particulars.La finalul etapei de analiza dezvoltatorul aplicatiei va avea identificaterolurile necesare pentru realizarea aplicatiei. Prima activit ate din etapa deproiectare este alocarea acestor roluri agentilor din sistemul multiagent.Modelul de rol pentru aplicatia ZEUSAcest model descrie functionalitatea mostenita de toate aplicatiiledezvoltate in ZEUS.Toolkit-ul ZEUS furnizeazii patru roluri implicite care implementeazafunctionalitatea mostenita de aplicatiile multi agent. Agentii care au rolulde. Task Agent (Agent Task - agent care realizeaza task-uri) vor executaactivitati specifice domeniului de aplicatie, Acestia vor interactiona cuName Server care pastreaza un registru C I , 1 agentii cunoscuti (inregistrati)! ; l i cu Directory Facilitator (facilitator), care pastreaza 0 inregistrare aabilitatilor fiecarui agent Visualiser furnizeaza 0 imagine grafica aactivitatii agentului, care este independents de aplicatie, I n figura A9 suntprezentate rolurile implicite din toolkit-ul ZEUS relative la rolul UtilityAgent (Agent Utilitar).

    Fig. A9 Rolurile implicite din toolkit-ul ZEUS relative la rolul Utility Agent [4].Interpretarea diagramei din figura A9 este urmatoarea: rolul AgentUtilitar ( ! ; l i implicit rolurile Name Inquirer ! ; l i Name Registrant) estecontinut de fiecare rol Name Server, Facilitator si Visualiser. Un agentutilitar trebuie mai intai sa se inregistreze la Name Server (s i in raport cuacesta va avea rolul Name Registrant atunci cand se inregistreaza) ! ; l i apoipoate interoga Name Server pentru a afla adresele altor agenti (si in raportcu acesta va avea roluI Name Inquirer atunci cand realizeaza interogari).

  • 8/3/2019 ro Agentii Inteligenti

    97/130

    9 9

    In figura AlO sunt prezentate rolurile implicite din toolkit-ul ZEUSrelative la rolul Task Agent. Explicarea acestor roluri este realizata Infigura All (c e contine d ia gr ama d e col ab or ar e ~ita be lu l c u interactiuni),

    N am e S erv er

    Facil itator

    Fig. AIO Rolurile implicite din toolkit-ul ZEUS relative la rolul Task Agent [4].

    N a m e Server1 o q , 71 ~ (l T ~ a = S ~ k ~ A ~ g ~ e n ~ t _ ~ ~ ~ 6 ~ - l , , _ V ~ i : S = U a = I i : ~ = r ~F a c i l i t a t o r

    Colaborare Explicatie1 Registration Agentii notifies Name Server despre prezenta lor,2a 'Resolve' Query o cerere de determinare a locatiei din retea a unui agent2b 'List' Query o cerere de aflare a adreselor tuturor agentilor de una nu mit tip3a Location Response Locatia agentului din interogarea anterioara3b List Response Lista agentilor din interogarea anterioara4 Ability Request Cerere de aflare a informatiilor referitoare Ia abilitatiledestinatarului5 Ability Response Informatii despre abilitatile curente ale agentului6 Inform Request Cerere de lnaintare a tuturor activitatilor7 Activity Notification o copie a oricarui mesaj trimis8 Find Request Cerere de aflare a agentilor care au anumite abilitati9 Find Response o Iista de agenti care indeplinesc criteriul dorit ",10 Inter-Agent Message Orice alt mesaj

    Fig. All Diagrama de colaborare ~iTabelul ell interactiuni;Explicarea rolurilor implicite relative la rolul Task Agent [4].

  • 8/3/2019 ro Agentii Inteligenti

    98/130

    100

    Prezentam cateva descrieri de roluri din aplicatia ZEUS. in figura A12sunt prezentate descrierile rolurilor Name Server, Utility Agent ~i TaskAgent.~tIf&~I!~'~Jf~j~~.~t~~-B~f~~'N_i~,~rJf~?~e;"~~l~!t.. ..., :6 __ -1:J , _ _ _ ~ e:.;. ... ~. _ ~ _. ....,.. _ - ~Model RoJ: Aplicatia ZEUSRelatfi cu alte roturl: Contine Ut il it y I I. gen tDescriere: Un rol analog cu eel jucat de Name Server-ele de Domeniu din Internet, acestapastreaza un registru cu agentii cunoscuti ~ilocatiile lor curente din retea. Informatia este accesatatntr-una din urmatoarele doua forme: prin cererea adresei unui anumit agent sau- prin cerereaidentitati! tuturor agentilor cunoscuti, Ultima form~ tinde sa fie utilizatii doar de agentil utilitari,Responsibilitli!i: Colaboratori:Mentine ceasul de sincronizare a societatii de agentiMentine directorul de agen]i i locatiile lor[1] Primeste ~iproceseaza mesajele de lnregistrare = :> Name Registrantspa l Fumizeaza tocarlile din retea ale agentilor specificati ::Name Inquirers[3b1 Furnizeaza Iista agentilor cunoscuti :: Utility AgentsCerinte:Proto coale sociale pentru primirea de inregistriiri / interogari ~inotificarea rezultatelorlmplementare: Fumizatii ca parte a toolkit-ului ZEUS~~~:.C.dE ~ti~~1r .'" - :~~"'i-;'

  • 8/3/2019 ro Agentii Inteligenti

    99/130

    101

    I n Ghid ul d e m od ela re a ro lu rilo r s un t e xp lic ita te 0 serie de m odele der olu ri p e nt ru a p lic ati i d in domen ii le u rma to ar e: M a na gem e ntu l in fo rm atiei (s pa tiu d e p arta ja re a in fo rm atiei); Cornett mediat de agenti (licitatii electronice, piete de comerte l ect ronic di s tr ibu i t) ; Procese de afaceri (lant s imp l u1cont ra c tu a l de f u rn izo ri ).

    I n F ig ura A13 sun t p r ez ent at e doua roluri d in mode lu l Lan] de fumizori,Producator ~iFumizor .

    Fig. A13 De sc rie rile r olu rilo r P ro du ca to r s i F um iz or [ 4] .

  • 8/3/2019 ro Agentii Inteligenti

    100/130

    r - c t i . . .;:;MX!,W k ..~

    102

    N ivelu l organizare defineste relatiile agentu lu i cu ceilalti agenti (agentu lfacand parte dintr-o societate de agenti care cuprinde toti agentii activi laup m om ent dat).

    1.

    A3. GHIDUL DE REALIZARE A APLICATIILO RProcesu l de realizare a ap licatiei u rm areste etapa de proiectare dinm etodologia ZEUS de dezvoltare a sistem elor m ulti agent. In aceastasectiune vom prezenta succint s tructu ra concep tuala a unui agent Z EU S ~ie ta pe le p roc esu lu i de re aliza re a a plic atiei,In figura A14 este prezentata structura concep tuala a unu i agent Z EU S,

    Nivelul Comunicare ~Nlvelul Coordonare Mesaje catre/de laa1ti agentiNivelul Organizare

    NiveJul Definire

    Nivelul Interfatai ~Senzori Efectori .

    Fig. A14 Structura conceptuala a unui agent ZEUS [2].N ivelu l interfata pennite agentulu i sa se conecteze la program e externecare 'ii fu mizeaza resu rse si/sau im plem enteaza com petentele lui,N ivelu l definire contine definirea agentu lui care es te vazu t ca 0 entitateautonoma de ra ti onare ,

    La nivelu l coordonare, agentu l este vazu t ca 0 entitate sociala ceinteractioneaza cu ceilalti agenti conform unor protocoale ~i strategiicunoscute .N ivelul com unicare im plem enteaza protocoalele ~i m ecanism ele ces up or ta c omuni ca re a i nt er -a ge nt.

  • 8/3/2019 ro Agentii Inteligenti

    101/130

  • 8/3/2019 ro Agentii Inteligenti

    102/130

  • 8/3/2019 ro Agentii Inteligenti

    103/130

  • 8/3/2019 ro Agentii Inteligenti

    104/130

  • 8/3/2019 ro Agentii Inteligenti

    105/130

  • 8/3/2019 ro Agentii Inteligenti

    106/130

  • 8/3/2019 ro Agentii Inteligenti

    107/130

  • 8/3/2019 ro Agentii Inteligenti

    108/130

  • 8/3/2019 ro Agentii Inteligenti

    109/130

  • 8/3/2019 ro Agentii Inteligenti

    110/130

  • 8/3/2019 ro Agentii Inteligenti

    111/130

  • 8/3/2019 ro Agentii Inteligenti

    112/130

  • 8/3/2019 ro Agentii Inteligenti

    113/130

  • 8/3/2019 ro Agentii Inteligenti

    114/130

  • 8/3/2019 ro Agentii Inteligenti

    115/130

  • 8/3/2019 ro Agentii Inteligenti

    116/130

  • 8/3/2019 ro Agentii Inteligenti

    117/130

  • 8/3/2019 ro Agentii Inteligenti

    118/130

  • 8/3/2019 ro Agentii Inteligenti

    119/130

  • 8/3/2019 ro Agentii Inteligenti

    120/130

  • 8/3/2019 ro Agentii Inteligenti

    121/130

  • 8/3/2019 ro Agentii Inteligenti

    122/130

  • 8/3/2019 ro Agentii Inteligenti

    123/130

  • 8/3/2019 ro Agentii Inteligenti

    124/130

  • 8/3/2019 ro Agentii Inteligenti

    125/130

  • 8/3/2019 ro Agentii Inteligenti

    126/130

  • 8/3/2019 ro Agentii Inteligenti

    127/130

  • 8/3/2019 ro Agentii Inteligenti

    128/130

  • 8/3/2019 ro Agentii Inteligenti

    129/130

  • 8/3/2019 ro Agentii Inteligenti

    130/130