Documente Academic
Documente Profesional
Documente Cultură
Realizatori:
Almășan Alexandra
Cojocaru Ada-Camelia
Grădinaru Alexandra
Mușat Alina
SAATI, An I
BRAȘOV, 2023
Cuprins
Cuprins
1 Tema de proiect........................................................................................................................................2
2 Scenariul...................................................................................................................................................2
3 Considerații teoretice................................................................................................................................2
3.1 Agenți hibrizi....................................................................................................................................3
4 Descrierea Programului............................................................................................................................3
4.1 Agent 5 (AgentGUI).........................................................................................................................3
5 Bibliografie...............................................................................................................................................7
1
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 agenți hibrizi.
2 SCENARIU
L
Aplicația implementează un sistem inteligent, bazat pe agenți, care automatizează procesul
de căutare a unor bilete de avion către diferite destinații. Filtrarea rezultatelor se face în funcție de
destinație. Utilizatorul își alege biletul de avion către destinația aleasă, introduce numărul de bilete
și află suma biletelor dorite, iar apoi alege metoda de plată în funcție de preferințe (Cash/Card).
Ulterior trebuie să introducă datele personale pentru a putea afla detaliile finale. Sistemul este
alcătuit din cinci agenți: un agent transmite informația utilă următorului agent, funcționarea
realizându-se în lanț:
Agentul 1 - AgentDestinatie: pagina de pornire de unde utilizatorul își poate alege
destinația dorită;
Agentul 2 - AgentZbor: sunt afișate zborurile către destinația selectată; o După ce
utilizatorul a selectat destinația, acest agent afișează informații despre zborurile disponibile
către acea destinație. Aici, utilizatorul poate alege unul dintre zboruri.
Agentul 3 - AgentBilete: se selectează numărul de bilete;
o După ce utilizatorul a selectat un zbor, acest agent permite utilizatorului să specifice
numărul de bilete dorite pentru achiziționare.
Agentul 4 - AgentPlata: se introduce metoda de plată dorită, iar în funcție de alegere se
introduc datele personale;
o După ce utilizatorul a selectat numărul de bilete, acest agent solicită utilizatorului să
aleagă metoda de plată dorită (Cash sau Card). În funcție de alegerea utilizatorului,
acest agent poate solicita, de asemenea, datele personale necesare pentru finalizarea
procesului de plată.
Agentul 5 - AgentGUI: se afișează toate informațiile ce au fost selectate până în acel
moment
3 CONSIDERAȚII TEORETICE
Un agent este un program de calculator, care este situat într-un mediu oarecare și care este
capabil să faceă o acțiune autonomă în acel mediu, bazată pe scopul sau/și perspectiva stimulilor pe
care îi percepe în mediul respectiv pentru a îndeplini obiectivele pentru care a fost proiectat.
2
Bazate pe comportamentul dominant, se disting trei tipuri de arhitecturi:
Agenți deliberativi;
Agenți reactivi;
Agenți hibrizi.
4 DESCRIEREA
PROGRAMULUI
Clasa AgentGUI extinde clasa Agent din biblioteca JADE și definește un agent Jade cu
interfață grafică (GUI).
În cadrul acetui agent sunt definite variabilelele private:
zbor - pentru detalii despre zbor;
plata - pentru detalii despre plată;
isPlataReceived - un indicator boolean care indică dacă detalii despre plată au fost
primite sau nu.
3
AgentGUI definește o fereastră (JFrame) și două etichete (JLabel) pentru afișarea detaliilor
despre zbor și plată.
În metoda setup() a agentului, se creează fereastra GUI și se setează proprietățile acesteia
(dimensiunea, poziția și comportamentul de închidere). Se creează o instanță a clasei JFrame cu
titlul "Detalii combinate". Dimensiunea ecranului este obținută utilizând
Toolkit.getDefaultToolkit().getScreenSize(). Se setează comportamentul de închidere al ferestrei
când se apasă butonul "X" pentru a ieși din aplicație (JFrame.EXIT_ON_CLOSE).
Este creată o instanță a clasei JPanel pentru a conține elementele de interfață grafică și două
instanțe ale clasei JLabel cu textele "Detalii zbor: " și "Detalii plata: ". Etichetele sunt adăugate în
panou folosind metoda panel.add(), iar panoul este adăugat în fereastra folosind metoda
frame.add().
4
Figura 3– Comportament ciclic
Dacă nu există mesaje primite, comportamentul intră în blocare (block()) până când un mesaj
nou este recepționat.
Figura 5– Block()
5
package agenti;
6
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import jade.core.Agent;
import jade.core.behaviours.CyclicBehaviour;
import jade.lang.acl.ACLMessage;
addBehaviour(new CyclicBehaviour() {
public void action() {
ACLMessage msg = receive();
if (msg != null) {
String sender = msg.getSender().getLocalName();
String content = msg.getContent();
if (sender.equals("AgentZbor")) {
zbor = content;
labelZbor.setText("Detalii zbor: " + zbor);
} else if (sender.equals("AgentPlata")) {
plata = content;
labelPlata.setText("Detalii plata: " + plata);
isPlataReceived = true;
if (isPlataReceived) {
frame.setVisible(true);
}
}
7
5 BIBLIOGRAFIE
[1] Floroian, D. , Sisteme Multi-Agent, Universitatea Transilvania din Brasov;
[2] Tutorial Jade: https://jade.tilab.com/documentation/tutorials-guides/;
[3] Jade Examples https://jade.tilab.com/documentation/examples/;
[4] How to generate random numbers in Java: https://www.educative.io/answers/how-
togenerate-random-numbers-in-java.