Documente Academic
Documente Profesional
Documente Cultură
PROIECT SistemeMultiAgent
PROIECT SistemeMultiAgent
Coordonator: Studenți:
Conf. dr. ing. Dan FLOROIAN Cătălin-Alexandru LOPATĂ
Cosmin MARIN
Adrian-Ciprian PÂRVAN
Vlad-Ştefan PETRE
1. Tema de proiect
Realizaţi o aplicaţie JADE care să creeze 5 agenţi care să transmită mesaje către o interfaţă
grafică. Exemplificaţi folosind agenti BDI.
2. Noţiuni teoretice
2.1. Agenţi
Un agent este un program de calculator care este situat într-un mediu oarecare și care este
capabil să facă o acțiune autonomă în acel mediu, bazată pe scopul său și pe perceperea
stimulilor din mediul respectiv, pentru a îndeplini obiectivele pentru care a fost creat.
Agenții nu trebuie niciodată să presupună că ei au controlul complet sau cunoștințe despre
acel mediu (care nu este deterministic) și percepția trebuie să fie considerată ca furnizoare a unor
cunoștințe parțiale. În consecință, agenții trebuie să fie pregătiți pentru posibilitatea de eșec. În
contextul acestei lucrări, acțiunile și percepția sunt realizate și percepute prin trimiterea
mesajelor către o interfață grafică.
Există mai multe arhitecturi ale agenţilor (care se bazează pe comportamentul dominant):
deliberative, reactive sau hibride.
Agenții deliberativi iau decizii bazate pe reprezentările simbolice (modele) pe care le au
asupra mediului în care acționează. Acești agenți au scopuri precise și au nevoie de un mare efort
pentru a reprezenta simbolic entitățile din mediul înconjurător. Pe de altă parte, acest model
necesită o mulțime de calcule pentru a lua decizii corecte. Cele mai cunoscute arhitecturi
asociate cu acești agenți sunt:
Agenți planificatori;
Arhitectura Belief – Desire – Intention (BDI) (Convingere – Cerință – Intenție);
Arhitectura Epistemic – Deontic – Axiologic (EDA) (Cognitiv – Deontologic –
Axiologic).
2
Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor Sisteme Avansate în Automatică și
Departamentul Automatică şi Tehnologia Informaţiei Tehnologii Informatice
3
Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor Sisteme Avansate în Automatică și
Departamentul Automatică şi Tehnologia Informaţiei Tehnologii Informatice
4. Implementarea aplicației
Interfața aplicației cu utilizatorul este una simplă, alcătuită din cinci etichete ce corespund cu
fiecare regiune de pe glob, un buton pentru cererea detaliilor temporale din regiuni și un buton
pentru părăsirea aplicației.
4
Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor Sisteme Avansate în Automatică și
Departamentul Automatică şi Tehnologia Informaţiei Tehnologii Informatice
Funcționarea aplicației începe printr-o comandă dată de utilizator pe interfața grafică (se
apasă un buton). Această acțiune presupune generarea unui eveniment ce are ca scop
înregistrarea agenților în ascultare și trimiterea unui mesaj.
@Override
protected void onGuiEvent(GuiEvent event) {
if (event.getType() == 1) {
ACLMessage message = new ACLMessage(ACLMessage.REQUEST);
send(message);
}
}
Agenții implicați implementează un comportament care realizează crearea unui răspuns
pentru cererea primită.
addBehaviour(new ProcessRequestBehavior());
[...]
public class ProcessRequestBehavior extends CyclicBehaviour {
@Override
public void action() {
ACLMessage receivedMessage = receive();
if (receivedMessage != null) {
ACLMessage replyMessage = receivedMessage.createReply();
[populare răspuns]
if (replyMessage != null) {
send(replyMessage);
} else {
block();
}
} else {
block();
}
} }
5
Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor Sisteme Avansate în Automatică și
Departamentul Automatică şi Tehnologia Informaţiei Tehnologii Informatice
În momentul primirii unei cereri, agentul specific regiunii va genera și va popula răspunsul
cu timpul respectiv regiunii utilizănd clasa DateProvider care conține informația despre fusurile
orare.
replyMessage.setContent(DateProvider.getTime("ro"));
În acest moment agentul trimite răspunsul către coordonator care centralizează datele și le va
publica pe interfața grafică a aplicației în concordanță cu agentul care a răspuns.
gui.showTime(receivedMessage.getSender().getName(), message);
6
Facultatea de Inginerie Electrică şi Ştiinţa Calculatoarelor Sisteme Avansate în Automatică și
Departamentul Automatică şi Tehnologia Informaţiei Tehnologii Informatice
5. Bibliografie
[1] Curs Sisteme MultiAgent - Dan Floroian
[2] http://jade.tilab.com/doc/
[3] https://www.youtube.com/watch?v=CY-LOKtxjrE