910 likes | 1.14k Views
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).
E N D
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) 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ē
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
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
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)
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
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
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)
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
Aģentu izstrādes platformu piemēri • JADE • JADEX • JACK • Jason • FIPA OS • AgentBuilder • ZEUS • RETSINA • JatLite • IMPACT • ABLE • Aglets • Spade • Utt.
Aģents šajā kontekstā • Process vai pavediens • Katram unikāls identifikators • Asinhrona mijiedarbība (parasti Java RMI)
Aģentu realizācijas/izstrādes platformas piedāvā • Infrastruktūru, kas kopīga visiem aģentu projektiem • Dažādus rīkus, šablonus, klases
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
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
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
Aploksnes parametri • No, uz • Reprezentācija (String, XML, utt.) • Datums • Kodējums • Garums • Saņemšanas zīmogs • Drošības objekts (sertifikāts)
Derīgās daļas kodēšana • FIPA ACL valoda kļuvusi par standartu • Lauki:
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)
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 )
Ā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ņā
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ā
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ē
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
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
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)
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
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ā
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ē
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
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
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
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
BDI aģentu spriešanas cikls • Oriģināli Rao un Georgijevs piedāvāja šādu ciklu (90-to gadu sākums!)
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
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