Aģentu izstrāde

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

description

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). - PowerPoint PPT Presentation

Transcript of Aģentu izstrāde

Page 1: Aģentu izstrāde

Aģentu izstrāde

Priekšmets “Mākslīgais intelekts”

Egons Lavendelis

Page 2: Aģentu izstrāde

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

Page 3: Aģentu izstrāde

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ē

Page 4: Aģentu izstrāde

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

Page 5: Aģentu izstrāde

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

Page 6: Aģentu izstrāde

6

Tipiska daudzaģentu sistēmas struktūra

Page 7: Aģentu izstrāde

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)

Page 8: Aģentu izstrāde

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

Page 9: Aģentu izstrāde

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

Page 10: Aģentu izstrāde

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)

Page 11: Aģentu izstrāde

11

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

Page 12: Aģentu izstrāde

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

Page 13: Aģentu izstrāde

13

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

Page 14: Aģentu izstrāde

14

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

Page 15: Aģentu izstrāde

15

Aģents šajā kontekstā

Process vai pavediens Katram unikāls identifikators Asinhrona mijiedarbība (parasti Java RMI)

Page 16: Aģentu izstrāde

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

Page 17: Aģentu izstrāde

17

Vide

Aģents Aģents

Aģents

Aģenta iekšējā struktūra

Mijiedarbība

Mijiedarbība Mijiedarbība

Augsta līmeņa servisi (piem., aģentu komunikācijas valoda, starpniekaģenti, koordinācija)

Zema līmeņa servisi (piem., aģentu vārdu serviss, ziņojumu nosūtīšana)

Aģentu izstrādes rīki (piem., grafiski izstrādes rīki)

Vadības servisi (piem., vizualizācija)

Aģentu testēšanas rīki

FIPA standarti

Page 18: Aģentu izstrāde

18

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

Page 19: Aģentu izstrāde

19

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

Page 20: Aģentu izstrāde

20

FIPA standarti padara dažādas platformas savietojamas

Aģenti

Dzeltenāslapas

Baltāslapas

Ziņojumu transportaserviss

Aģenti

Dzeltenāslapas

Baltāslapas

Ziņojumu transportaserviss

Aģentu platforma 1 Aģentu platforma 2

Page 21: Aģentu izstrāde

21

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

Page 22: Aģentu izstrāde

22

Ziņojuma struktūra

Aploksne (Envelope) Transporta informācija

Derīgā daļa (Payload)

Ziņojums (Message)

Saturs (Contact)

Ziņojums iekodētā formā

Ziņojuma parametri

Ziņojuma saturs

Page 23: Aģentu izstrāde

23

Aploksnes parametri

No, uz Reprezentācija (String, XML, utt.) Datums

Kodējums Garums Saņemšanas zīmogs Drošības objekts (sertifikāts)

Page 24: Aģentu izstrāde

24

Derīgās daļas kodēšana

FIPA ACL valoda kļuvusi par standartu Lauki: Elements Skaidrojums

mērķis (performative) Kādu darbību šis ziņojums veic?

sūtītājs (sender) Ziņojuma sūtītājs

saņēmējs (receiver) Ziņojuma saņēmējs

atbildēt kam (reply-to) Atbildes uz šo ziņojumu saņēmējs

saturs (content) Ziņojuma saturs

valoda (language) Valoda, kas izmantota satura izteikšanai

kodējums (encoding) Kodējums

ontoloģija (ontology) Ziņojuma ontoloģiskais konteksts

protokols (protocol) Protokols, kam ziņojums pieder

sarunas id (conversation-id) Saruna, kam pieder ziņojums

atbildēt ar (reply-with) Atbildēt ar šādu izteikumu

atbilde uz (in-reply-to) Darbība, uz kuru šis ziņojums atbild

atbildēt līdz (reply-by) Laiks, līdz kuram tiek gaidīta atbilde

Page 25: Aģentu izstrāde

25

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)

Page 26: Aģentu izstrāde

26

JADE ontoloģiju atbalsts

JADE satura valodu un ontoloģiju atbalsts

Ziņojuma satura lauks

Aģenta iekšiene

Informācija ir reprezentēta kā simbolu

vai baitu virkne(vienkārši nosūtīt)

Informācija ir reprezentēta kā Java objekti

(vienkārši apstrādāt)

Page 27: Aģentu izstrāde

27

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 )

Page 28: Aģentu izstrāde

28

Ā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ņā

Page 29: Aģentu izstrāde

29

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ā

Page 30: Aģentu izstrāde

30

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ē

Page 31: Aģentu izstrāde

31

Aģenta klases piemērs

Page 32: Aģentu izstrāde

32

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

Page 33: Aģentu izstrāde

33

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

Page 34: Aģentu izstrāde

34

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)

Page 35: Aģentu izstrāde

35

Uzraudzības aģents

Page 36: Aģentu izstrāde

36

Okšķera aģents

Page 37: Aģentu izstrāde

37

Introspekcijas aģents

Page 38: Aģentu izstrāde

38

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

Page 39: Aģentu izstrāde

39

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

Page 40: Aģentu izstrāde

40

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ā

Page 41: Aģentu izstrāde

41

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ē

Page 42: Aģentu izstrāde

42

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

Page 43: Aģentu izstrāde

43

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

Page 44: Aģentu izstrāde

44

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

Page 45: Aģentu izstrāde

45

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

Page 46: Aģentu izstrāde

46

BDI aģentu spriešanas cikls

Oriģināli Rao un Georgijevs piedāvāja šādu ciklu (90-to gadu sākums!)

Page 47: Aģentu izstrāde

47

JADEX interpretācija

Page 48: Aģentu izstrāde

48

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

Page 49: Aģentu izstrāde

49

Aģentorientētas programmēšanas valodas

Page 50: Aģentu izstrāde

50

Java valodas paplašinājums - JACK aģentu izstrādes platforma

JACK aģentu valodaPaplaš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 kompilatorsKompilē JACK aģentu valodā rakstītu kodu uz “īstu”

Java kodu

Page 51: Aģentu izstrāde

51

Klašu paplašinājumi

Aģents (Agent) Spēja (Capability) Pārliecību kopa (BeliefSet) Notikums (Event) Plāns (Plan)

Page 52: Aģentu izstrāde

52

Sintakses paplašinājumi

Piemēram, plāna funkcionalitāte ir realizēta klasē Plan. Konkrēta plāna deklarācija tikai norāda, kā tas tiks lietots

# apzīmē AO konceptus

Page 53: Aģentu izstrāde

53

AgentSpeak(L) valoda Loģiskās programmēšanas paplašinājums BDI

aģentiem Aģents tiek izveidots, norādot

Sākotnējo pārliecību kopuPārliecība ir vienkāršs 1. kārtas predikāts

Plānu kopuVienkāršas darbības

Aģentam var būt 2 veidu mērķi Sasniegšanas mērķi Pārbaudes mērķi

Jason interpretators

Page 54: Aģentu izstrāde

54

AgentSpeak plāna piemērs

Biļešu rezervēšana māksliniekam A vietā V

Page 55: Aģentu izstrāde

55

1. daļas kopsavilkums

Platformas iekļauj gatavas klases, no kurām mantot JADE: Agent, Behaviour, ACLMessage, utt.

Piedāvā rīkus Pievieno atsevišķus valodu paplašinājumus vai

pielieto citas valodas, lai aprakstītu aģentu konceptus Līdzīgi kā C++ paplašina C JADEX: Aģenta apraksts XML valodā JACK Aģentu valoda paplašina Javu AgentSpeak izmanto loģisko programmēšanas valodu

Page 56: Aģentu izstrāde

56

Kādi praktiski ieteikumi? Eksistē dažādas pieejas aģentu izstrādē. Kā izvēlēties? Vienkāršākaissarežģītākais apgūšanai

Komunikāciju nodrošinošās platformas JADE nepieciešams zināt tikai aģentu būtību un Java

Dažādi valodu paplašinājumi vai vairāku valodu apvienojumi JACK lietošanai jāzina Java un nedaudz papildus JADEX lietošanai jāzina Java un XML

Specifiskās valodas Lai lietotu Jason, jāzina loģiskā programmēšana, AgentSpeak iekļautie

paplašinājumi un Java Tomēr ne vienmēr var izvēlēties vienkāršāko

Platformas ir brīvi pieejamas JADE+Brīvi pieejama Java izstrādes vide nemaksā neko

Bez Java zināšanām gandrīz neiespējami...

Page 57: Aģentu izstrāde

57

2. daļa: Aģentorientēta programmatūras inženierija

Page 58: Aģentu izstrāde

58

Vēsture

Programmēšana assemblerā

Procedurālā programmēšana

Objektorientēta programmēšana

Aspektorientēta programmēšana

Aģentorientēta programmēšana

...

Page 59: Aģentu izstrāde

59

Jēdzieni

Aģentorientēta (AO) programmatūra – programmatūra, kas sastāv no aģentiem

AO programmatūras inženierija – Agent Oriented Software Engineering (AOSE)

OO programmēšana AO programmēšana OO sistēmanalīze AO sistēmanalīze

Tiek veikts viss tas pats, kas OO gadījumā

Page 60: Aģentu izstrāde

60

Aģents šajā kontekstā

Intelektuāla programmatūras vienība

Programmatūras aģentu definē šādi:

“Aģents ir patstāvīga programmatūras vienība, kas uztver, realizē spriešanu, veic darbības un mijiedarbojas ar citiem aģentiem”

Page 61: Aģentu izstrāde

61

AOSE metodoloģijas

AOSE ir sarežģīts process, ko ir grūti veikt bez metodoloģiska atbalsta

Definīcija: AO programmatūras izstrādes metodoloģija ir metožu kopums, ko izmanto AO programmatūras izstrādē

Page 62: Aģentu izstrāde

62

Metodoloģijai jāiekļauj

Precīzi definētu izstrādes procesu Tehnikas katra soļa veikšanai AOSE atbilstošus konceptus Diagrammu notāciju CASE rīkus Mehānismus/algoritmus, kā no projektējuma

iegūt sistēmas realizāciju

Page 63: Aģentu izstrāde

63

Zināmākās AOSE metodoloģijas Prometheus Gaia MaSE INGENIAS AUML MESSAGE ADELFE Tropos MAS-CommonKADS DESIRE COMOMAS Styx OPEN procesu ietvars

PASSI MASSIVE RAP AOMT Metodoloģija daudzaģentu

sistēmu izstrādei organizācijas integrācijai

ARCHON ietvars Cassiopeia Augsta līmeņa un vidēja

projektējuma pieeja BDI aģentu modelēšana

MASITS

Page 64: Aģentu izstrāde

64

Dzīves cikls

Pēc būtības tāds pats, kā OO Dažas metodoloģijas izmanto modificētu RUP,

pārējās ~iteratīvu ūdenskritumu Aplūkosim šādas fāzes:

Analīze Projektēšana Realizācija Testēšana Ieviešana Uzturēšana

Page 65: Aģentu izstrāde

65

Analīze

Prasības jāiegūst tādā formā, kā tās tālāk ir nepieciešamas

Analīzes fāzē pielieto šādas tehnikas: Lietošanas gadījumu modelēšana Mērķu hierarhija Uzdevumu hierarhija Problēmsfēras modelēšana/Ārējās vides analīze,

organizācijas modelēšanaOntoloģijas

Page 66: Aģentu izstrāde

66

Lietošanas gadījumu modelēšana

Lietošanas gadījumu diagramma Lietošanas gadījumu scenāriji Lietošanas gadījumu kartes

Parāda, kā lietošanas gadījums izpildās pa aģentiem Var izmantot, lai identificētu komunikācijas nepieciešamību

starp aģentiem

Iekšējie lietošanas gadījumi

Page 67: Aģentu izstrāde

67

Iekšējie lietošanas gadījumi

Parāda, kā aģenti izmanto citus aģentus

Atbilstošā ziņojumu secības karte (MSC)

Page 68: Aģentu izstrāde

68

Mērķu modelēšana

Īpaši noderīga, veidojot mērķos sakņotus aģentus

Labi saprotama problēmsfēras ekspertiem Mērķi izstrādes gaitā mainās reti Rezultātā mērķu

hierarhija

Page 69: Aģentu izstrāde

69

Uzdevumu dekompozīcija

Līdzīga mērķu modelēšanai Uzdevumi parasti konkrētāki un zemākā līmenī par

mērķiem

Mērķu modelis piemērotāks BDI (Belief, Desire, Intention) aģentiem

Uzdevumu modelis izmantojams JADE aģentiem

Uzdevumiem var veidot atbilstošas aģentu darbības/uzvedības

Mērķiem parasti atbilst lomas Mērķiem var veidot atbilstošus lietošanas gadījumus

Page 70: Aģentu izstrāde

70

Organizācijas modelēšana

Modelē organizācijas struktūru Noderīga, ja sistēmai ir jāiekļaujas

organizācijā Nosaka iesaistītās puses, organizācijas to

vienības un lomas, kā arī mijiedarbību un hierarhiju starp tām

Page 71: Aģentu izstrāde

71

Problēmsfēras modelēšana

Analizē vidi, kurā aģentiem jādarbojas Iegūst problēmsfēras klašu modeli

No klašu modeļa parasti iegūst problēmsfēras ontoloģiju

Ontoloģiju aģenti izmanto savu zināšanu aprakstīšanai un komunikācijā

Page 72: Aģentu izstrāde

72

Projektēšana Projektēšana ir visvairāk no OO atšķirīgā fāze

Parasti iedala divās stadijās 1. stadija atbild uz jautājumiem: kas aģentiem ir jādara un

kā tie mijiedarbojas? Aģentu ārējā projektēšana Augsta līmeņa projektējums Arhitektūras projektējums Var uzskatīt par daudzaģentu sistēmas projektēšanu

2. stadija atbild uz jautājumu: kā aģenti sasniegs savu funkcionalitāti? Aģentu iekšējās struktūras projektēšana Zema līmeņa projektējums Detalizēts projektējums

Page 73: Aģentu izstrāde

73

Aģentu definēšana

Var tikt iekļauta Analīzes fāzē, ja aģenti ir prasības Projektēšanas fāzē, ja aģenti ir veids, kā realizēt prasības

Aģentus definē atbilstoši Lietotājiem Organizācijām/iesaistītajām pusēm Mantotām sistēmām Lomām Lietošanas gadījumiem Uzdevumiem Zināšanām

Page 74: Aģentu izstrāde

74

Mijiedarbības projektēšana

Specificē, kā aģenti mijiedarbojas 3 detalizācijas pakāpes

Pazīšanās (acquaintance) līmenis Nosūtīto ziņojumu līmenis Formālu mijiedarbības protokolu līmenis

Request Protocol FIPA Contract Net

Page 75: Aģentu izstrāde

75

Pazīšanās diagramma

Norāda tikai to, starp kuriem aģentiem eksistē mijiedarbība

Ļoti vienkārša Bieži nepietiekama

Page 76: Aģentu izstrāde

76

Nosūtītie ziņojumi

Norāda, kādi ziņojumi tiek nosūtīti starp kādiem aģentiem

Nenorāda ziņojumu secību un kontekstu

Page 77: Aģentu izstrāde

77

Mijiedarbības protokoli

Specificē nosūtāmos ziņojumus to secību un līdz ar to kontekstu

Katram ziņojumam ir norādītas iespējas, kā uz to var atbildēt

Faktisks standarts UML protokolu diagramma

Protokoli ir atkārtoti lietojami

Page 78: Aģentu izstrāde

78

Projektēšanas otrā stadija

Katram aģentam specificē: Uztveres (t.sk. saņemtie ziņojumi) Darbības ar ārējo vidi (t.sk. nosūtītie ziņojumi),

plāni Zināšanas, pārliecības Spriešanas process Arhitektūra

Iespējams: lomas, spējas, uzdevumi, mērķi

Page 79: Aģentu izstrāde

79

Aģenta iekšējais projektējums

Aģents

Notikumi

Ziņojumi

Spriešanas mehānisms

Pārliecības

Ziņojumi

Darbības arārējo vidi

Plāni

Mērķi

Page 80: Aģentu izstrāde

80

Realizācija

Jāizvēlas izstrādes platforma Jāpāriet no projektēšanā izmantotajiem

konceptiem realizācijas platformā izmantotajos

Jārealizē sistēma konkrētā platformā Jāveic koda ģenerēšana Jāpapildina ģenerētais kods

Page 81: Aģentu izstrāde

81

Izstrādes rīki

Rīki diagrammu zīmēšanai Projektējuma integritātes uzturēšana Diagrammu transformācijas/elementu

ģenerēšana Galvenā funkcija: koda ģenerēšana

Page 82: Aģentu izstrāde

82

Rīku piemēri: PDT un agentTool

Page 83: Aģentu izstrāde

83

Rīku piemēri: MASITS un IDK

Page 84: Aģentu izstrāde

84

Testēšana

Visvājāk attīstītā fāze

Vienlaikus izkliedētu sistēmu testēšana un atkļūdošana ir sarežģīta

Lielākoties izmanto (pielāgotas) klasiskās pieejas

Ir specifiski rīki: JADE Test Suite

Page 85: Aģentu izstrāde

85

Ieviešana

Norāda konkrētas aģentu instances, to atrašanās vietas un migrāciju

Ļauj viegli izmainīt sistēmu, nemainot projektējumu

A1: AuthorPCM1:

PCMember A2: Author A3: Author

Chair: PCChair

DataBase:DB

Page 86: Aģentu izstrāde

86

Uzturēšana

Principā neatšķiras no OO

Aģenti dod sistēmām atvērtību un augstu modularitāti Atvērtība ļauj izmainīt funkcionalitāti

pievienojot/izslēdzot aģentus Modularitāte atvieglo izmaiņu ieviešanu

atsevišķās sistēmas daļās

Page 87: Aģentu izstrāde

87

Kā tas viss izskatās kopā: Prometheus metodoloģija

Page 88: Aģentu izstrāde

88

2. daļas kopsavilkums

AOSE metodoloģijas izmanto labi zināmas OO tehnikas, pielāgojot tās AO

Visvairāk atšķiras projektēšana

AOSE ir attīstījusies līdz līmenim, kad to var industriāli pielietot

Jautājums atklāts: vai to industrijai vajadzēs?

Page 89: Aģentu izstrāde

89

Kādi praktiski ieteikumi? Metodoloģijām ir brīvi pieejami apraksti/pamācības Metodoloģijas ļoti atšķirīgas, bet saprotot

pamatlietas, var saprast visas metodoloģijas Nav absolūti universālu metodoloģiju

Izvēlieties konkrētam projektam/darbības sfērai piemērotu metodoloģiju

Metodoloģijas vēl tālu no perfektām, bet attīstība notiekIzvēlieties tādu, kuru turpina attīstīt

Pievērsiet uzmanību vienkāršai pārejai no projektējuma uz izstrādi

Izvēlieties metodoloģiju ar atbilstošiem rīkiem

Page 90: Aģentu izstrāde

90

Paldies par uzmanību!!!

Jautājumi, atsauces:

[email protected]