1 / 90

Aģentu izstrāde

Aģentu izstrāde. Priekšmets “Mākslīgais intelekts” Egons Lavendelis. Mērķis (1/2). Līdz šim runāts par dažādiem aģentiem Nav runāts, kā tos praktiski realizēt Mēģināšu atbildēt uz jautājumu: kā praktiski izstrādāt aģentus, kas realizē lietas, ko kursa ietvaros apguvāt. Mērķis (2/2).

hetal
Download Presentation

Aģentu izstrāde

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aģentu izstrāde Priekšmets “Mākslīgais intelekts” Egons Lavendelis

  2. Mērķis (1/2) • Līdz šim runāts par dažādiem aģentiem • Nav runāts, kā tos praktiski realizēt • Mēģināšu atbildēt uz jautājumu: kā praktiski izstrādāt aģentus, kas realizē lietas, ko kursa ietvaros apguvāt

  3. Mērķis (2/2) Mērķis ir parādīt, kā aģentus var izstrādāt un dot informāciju par to, kas ir nepieciešams, lai varētu izstrādāt aģentus NEVIS Vienas lekcijas laikā iemācīt izstrādāt aģentus kādā konkrētā vidē

  4. Lekcijas plāns • Ievads: kādi aģenti praktiski tiek realizēti? • Daudzaģentu sistēmas • Aģentu īpašības no izstrādes viedokļa • 1. daļa: Aģentu izstrādes iespējas • Aģentu realizācijas platformas (vides) • Aģentorientētas programmēšanas valodas • Kopsavilkums un praktiski ieteikumi, kā sākt aģentu realizāciju • 2. daļa: Aģentorientēta programmatūras inženierija • Lekcijas beigās ieteikumi, kā sākt aģentu izstrādi

  5. Daudzaģentu sistēmas • Reāli viena aģenta sistēmas neeksistē (M.Vuldridžs) • Sistēmas, kas sastāv no savā starpā sadarbojošām sastāvdaļām, ir skaitļošanas pasaules ikdiena • Efektīvākais aģentu pielietojums ir daudzaģentu sistēmu ietvaros

  6. Tipiska daudzaģentu sistēmas struktūra

  7. Kas tad ir jāizstrādā? • Secinājums: Izstrādājot aģentus, jādomā arī par aģentu mijiedarbību • Risinājums tiek iegūts aģentu mijiedarbības rezultātā • Jāizstrādā: • Intelekts aģentos • Aģentu mijiedarbība savā starpā • Aģentu mijiedarbība ar ārējo vidi (t.sk. lietotāju)

  8. Aģenti vs objekti - līdzības • Iekapsulēšana – gan objektos, gan aģentos ir apslēpti gan dati, gan uzvedība Objektiem ir privātas metodes un atribūti, aģentiem - pārliecības un darbības • Gan aģentiem, gan objektiem ir iekšējais stāvoklis. Gan aģentu, gan objektu uzvedību ietekme vēsture • Līdzīgi kā objekts, aģents (parasti) ir klases instance

  9. Aģenti vs objekti – atšķirības • Aģenti balstās uz stingrākiem iekapsulēšanas principiem kā objekti – tiem nav citiem aģentiem pieejamu metožu un redzamu atribūtu, izņemot aģenta identifikatoru • Objekti mijiedarbojas ar metožu izsaukumiem, bet aģenti nosūta ziņojumus, izmantojot strukturētas valodas, piemēram FIPA ACL • Aģentiem piemīt sociālas īpašības, objektiem nav organizācijas vai sociālo spēju • Aģenti spēj sadarboties un sacensties, lai sasniegtu savus mērķus, objekti nespēj darboties uz mērķi • Aģenti nevar tikt brīvi izveidoti un iznicināti, kā to var veikt ar objektiem

  10. Aģentu dažādība • Racionāli aģenti vs Programmatūras aģenti • Refleksu aģenti vs BDI aģenti (BDI-pārliecības, vēlmes, nodomi) • Bieži vien sistēmas heterogēnas “Man ir vienalga, vai mans aģents ir intelektuāls, man ir svarīgi, vai tas atrisina problēmu” (F. Dignum)

  11. 1. daļa: Aģentu izstrādes iespējas

  12. Kā realizēt aģentus? • Asamblerā  • Objektorientētā programmēšanas valodā • Eksistē platformas, kas vienkāršo aģentu izstrādi • Gandrīz visi risinājumi balstās uz valodas Java • Aģentorientēta programmēšanas valoda • Grūti atšķirt OO paplašinājumus no AO valodām • Vāji attīstītas • AgentSpeak – programmē BDI aģentus

  13. Aģentu izstrādes platformu piemēri • JADE • JADEX • JACK • Jason • FIPA OS • AgentBuilder • ZEUS • RETSINA • JatLite • IMPACT • ABLE • Aglets • Spade • Utt.

  14. Aģentu realizācija objektorientētās valodās

  15. Aģents šajā kontekstā • Process vai pavediens • Katram unikāls identifikators • Asinhrona mijiedarbība (parasti Java RMI)

  16. Aģentu realizācijas/izstrādes platformas piedāvā • Infrastruktūru, kas kopīga visiem aģentu projektiem • Dažādus rīkus, šablonus, klases

  17. Aģentu realizācijas platformu veidi • Sākotnēji divu veidu platformas: • Platformas aģentu mijiedarbības realizēšanai • Platformas spriest spējīgu (BDI) aģentu realizēšanai • Patlaban cenšas iekļaut labāko no abiem veidiem • Piemēram, JADEX pievieno BDI arhitektūru JADE

  18. FIPA Standarti • FIPA - Foundation for Intelligent Physical Agents • Specificē platformas īpašības, lai platformas būtu savietojamas • Standarti iekļauj: • Aģentu dzīves cikla vadību • Ziņojumu transportu • Ziņojumu struktūru • Aģentu mijiedarbības protokolus • Ontoloģijas • Drošības jautājumus

  19. FIPA standarti padara dažādas platformas savietojamas

  20. Platformas piedāvātie servisi • Aģentu vadības serviss • Jeb balto lapu serviss • Uztur informāciju par aģentiem • Nosaukums, īpašnieks, stāvoklis • Dzelteno lapu serviss • Directory facilitator (DF), Yellow pages • Operācijas • Piereģistrēties • Atsaukt reģistrāciju, mainīt reģistrāciju • Meklēt • Uztur aģentu aprakstus • Nosaukums, atrašanās vieta (adrese), protokoli, ontoloģija, kompetence

  21. Ziņojuma struktūra

  22. Aploksnes parametri • No, uz • Reprezentācija (String, XML, utt.) • Datums • Kodējums • Garums • Saņemšanas zīmogs • Drošības objekts (sertifikāts)

  23. Derīgās daļas kodēšana • FIPA ACL valoda kļuvusi par standartu • Lauki:

  24. Ontoloģiju pielietojums • Ontoloģijas ļauj apmainīties ar zināšanām • Ontoloģija nodrošina problēmsfēras konceptu un predikātu vienādu izpratni starp aģentiem • Ontoloģija ļauj zināšanas iekodēt satura laukā • Satura laukā parasti tiek nosūtīti predikāti • Ontoloģiju izveides rīki • Protégé http://protege.stanford.edu/ • Integrēti aģentu izstrādes rīkos (piemēram, MASITS) • Ziņojuma saturu visbiežāk kodē FIPA-SL valodā • Faktiski var kodēt jebkādā valodā (KIF, Prolog, SQL, FIPA-SL,FIPA-CCL,FIPA-RDF,FIPA-KIF)

  25. JADE ontoloģiju atbalsts

  26. Ziņojuma piemērs • Aģents i pieprasa aģentam j (robotam) nogādāt konkrētu kasti konkrētā vietā (request :sender (agent-identifier :name i) :receiver (set (agent-identifier :name j)) :content ((action (agent-identifier :name j) (deliver box017 (loc 12))) :protocol fipa-request :language fipa-sl :reply-with order567 )

  27. Ārpus FIPA standartiem paliek • Paši aģenti Respektīvi, standarti nosaka to, kādi ir aģentu “interfeisi”, bet aģentu realizācijas paliek platformas izstrādātāju ziņā

  28. Komunikāciju nodrošinošas platformas • Nodrošina FIPA standartiem atbilstošu ziņojumu apmaiņu • Piedāvā FIPA standartiem atbilstošus servisus • Piedāvā dažādus rīkus • Aģentu izstrādes rīki • Aģentu vadības rīki • Aģentu testēšanas rīki • Aģentu “iekšieni” realizē (parasti Java) kodā

  29. Kā tas izskatās reāli? JADE aģents • Klases jade.core.Agent apakšklase • Katram aģentam ir ziņojumu rinda • Aģenti izpilda uzvedības • Aģents ar lietotāja saskarni reaģē uz notikumiem saskarnē

  30. Aģenta klases piemērs

  31. Uzvedības • Klases Behaviour apakšklases • Šādas metodes: • action() – veic uzvedībai atbilstošo darbību • done () – atgriež atbildi, vai uzvedība savu darbu ir beigusi

  32. Ziņojumu saņemšana • Ziņojumi tiek ievietoti rindā (“pastkastē”) • Aģents “pastkasti” pārbauda ar speciālu ciklisku uzvedību • Aģents var arī lasīt ziņojumus, kas atbilst kādam kritērijam

  33. JADE piedāvātie rīki • Dzelteno lapu un balto lapu servisi • Uzraudzības aģents • Kontrolē platformas, konteineru un aģentu dzīves ciklu • Ļauj palaist, “nogalināt” aģentus, apturēt un atsākt to darbu, migrēt aģentus, nosūtīt aģentam ziņojumu • Butaforijas aģents (Dummy Agent) • Okšķera aģents • Introspekcijas aģents • Testēšanas rīki (JADE Test Suite)

  34. Uzraudzības aģents

  35. Okšķera aģents

  36. Introspekcijas aģents

  37. Testēšanas rīkiJADE Test Suite • Automatizēta testu izpilde, ko veic testētājaģents • Testi tiek veidoti divos līmeņos • Testu grupa kādai funkcionalitātei • Piemēram, komunikācijai starp aģentiem no dažādām platformām • Atomāri testi specifiskam funkcionalitātes aspektam • Piemēram, ziņojumu saņemšana no citas platformas

  38. Platformas, kas realizē spriest spējīgus aģentus

  39. BDI aģenta definīcija Intelektuāls aģents ir autonoma programmatūras vienība, kam ir skaidri formulēti mērķi, ko tai jāsasniedz, vai notikumi, ko tai jāapstrādā

  40. BDI Aģenti • Uz mērķi balstīti aģenti • Balstīts cilvēku spriešanas procesos • Izmanto trīs pamatkonceptus • Beliefs – pārliecības • Desires - mērķi jeb vēlmes • Intentions – tālākās darbības jeb nodomi • Trīs pamatkoncepti realizēti kā primāri objekti, ar ko var manipulēt aģentu iekšienē

  41. Kā realizē BDI arhitektūru?Pārliecības • Jebkāda veida Java objekti • Glabā pārliecību bāzē • Piemēram, JADEX pārliecību bāze • Satur pārliecību identifikatorus simbolu virkņu formā • Identifikatori tiek attēloti pārliecību vērtībās, kas ir patvaļīgi Java objekti • Izmanto vaicājumu valodu, līdzīgu OQL

  42. Kā realizē BDI arhitektūru?Mērķi • Attēlo konkrētu motivāciju, kas ietekmē aģenta darbības • Piemēram, konkrēti stāvokļi, ko jāsasniedz • JADEX • Mērķi ir centrālais koncepts • Mērķi ir konkrētas un momentānas aģenta vēlmes • Katram mērķim, kas ir aģentam, tas veiks atbilstošas darbības, līdz tas zinās, ka mērķis ir sasniegts, nesasniedzams vai vairs nevajadzīgs • Mērķi dažādi: paveikt, sasniegt, iegūt informāciju, uzturēt

  43. Kā realizē BDI arhitektūru?Nodomi, plāni • Lai sasniegtu mērķus, aģents izpilda plānus • Plāni apraksta konkrētas darbības, ko aģenti var veikt, lai sasniegtu savus mērķus • Plāni ir (parasti Javā kodētas) procedurālas darbību secības • JADEX • Plāns sastāv no galvas un ķermeņa • Galva specificē nosacījumus, kādos plāns var tikt izpildīts • Ķermenis ir Javā kodēta darbību secība

  44. Spriešana • Spriešana balstās (plānošanas terminos) • Pašreizējā stāvokļa apraksts • Vēlamā stāvokļa apraksts • Iespējamās darbības • Kādā stāvoklī tās var veikt? • Kādi ir to rezultāti? • Aģents reaģē uz saņemtajiem ziņojumiem, iekšējiem notikumiem un mērķiem • Līdzekļu-rezultātu (means-end) spriešana • Aģents nepārtraukti pārskata mērķus, uzturot nepretrunīgu mērķu apakškopu, ko jāsasniedz

  45. BDI aģentu spriešanas cikls • Oriģināli Rao un Georgijevs piedāvāja šādu ciklu (90-to gadu sākums!)

  46. JADEX interpretācija

  47. Aģentu definēšana JADEX • Aģentu īpašības (pārliecības, mērķus un plānus) definē programmētājs • Aģentu apraksta XML failā, ko sauc par aģenta definīcijas failu

  48. Aģentorientētas programmēšanas valodas

  49. Java valodas paplašinājums - JACK aģentu izstrādes platforma • JACK aģentu valoda Paplašina Java valodu aģentu realizēšanai • Definē jaunas klases, interfeisus un metodes • Paplašina Java sintaksi, lai atbalstītu aģentorientētas klases • Paplašina java semantiku (izpildes atšķirības), lai atbalstītu aģentorientētai sistēmai nepieciešamo izpildes modeli • JACK aģentu kompilators Kompilē JACK aģentu valodā rakstītu kodu uz “īstu” Java kodu

More Related