|
Proiectarea aplicatiei multi-agent pentru selectarea furnizorilor de bunuri
1. Arhitectura SMA
Arhitectura sistemului multi-agent pentru selectarea furnizorilor de bunuri, produse sau servicii este ierarhizata (in care sunt nivele de subordonare).
Fig. 7. Arhitectura SMA
2. Modelarea cunoasterii
Identificarea conceptelor
Fapt |
Atribut |
ListaFurnizori |
Nume: String, Punctaj : Integer |
FormularOferta |
DenumireFurnizor, Termen_livrare, Conditii_livrare, Calitate, Termen_garantie : String |
Furnizor |
DenumireFurnizor, Termen_livrare, Conditii_livrare, Calitate, Termen_garantie : String |
Contract |
Furnizor,contract :String |
Cap Realizarea aplicatiei
Realizarea aplicatiei combina pasii necesari pentru crearea unui agent Zeus cu pasii necesari pentru implementarea rolurilor identificate mai sus.
1. Crearea ontologiei
Ontologia reprezinta o conceptualizare a unui domeniu de expertiza; defineste termeni de tip concepte, relatii, proprietati, instante, precum si axiome care includ si restrictii asupra proprietatilor unor termeni.
Mai intai, click pe butonul Edit de la panoul Ontologie.
Apoi, in fereastra care se va deschide vom introduce conceptele prezentate mai sus, astfel :
Fig. 8. Fereastra de editare a ontologiei in sistemul ZEUS, in care se stabileste atat ierarhia termenilor folositi, cat si atributele specifice fiecaruia dintre acestea.
2. Crearea agentilor
Crearea agentilor consta din mai multe sub-procese care se repeta pentru fiecare dintre diferitele taskuri ale agentilor din aplicatie.
Fig. 9. Fereastra de editare a agentilor in sistemul ZEUS
Definirea agentilor
1)Agentul Directorul General
Pentru DG nu avem task-uri.
2)Agentul Piata Furnizori
Agentul PF are un task, Oferta pentru care are ca resurse initiale numele si adresa sa, precum si valorile pentru termen garantie, calitate, conditii garantie, termen plata.
Fig.10 Agent editor: Piata Furnizori
3)Agentul Serviciul Strategia Aprovizionarii
Agentul Serviciul Strategia Aprovizionarii va introduce datele primite de la Managementul Contractelor in aplicatia informtica si apoi va transmite catre Managementul Contractelor Lista de furnizori rezultata. Pentru aceasta am definit task-ul Clasament pentru care nu avem resurse initiale.
Fig.11 Agent editor: Serviciu Strategia Aprovizionarii
4)Agentul Managementul Contractelor
Managementul Contractelor va trasnmite catre Piata de Furnizori un formular in care va cere pentru materialele care trebuiesc achizitionate o serie de informatii legate de conditiile si termenul de livrare, conditii si termen de plata, prêt si calitatea materialelor respective. Aceste informatii sunt necesare pentru o selectie optima a furnizorului. Acest lucru va fi realizat cu ajutorul task-ului CerereOferta.
Fig.12 Agent editor: Managementul Contractelor
Descrierea task-urilor
Pentru fiecare dintre task-uri trebuiesc specificate preconditiile si efectele acelui task.
Fig.13 Precontitii si Efecte : Cerere Clasament
Coordonarea agentilor
Pentru fiecare agent trebuiesc specificate protocoalele si strategiile folosite de acesta in negocierea cu ceilalti agenti, precum si relatiile dintre el si ceilalti agenti.
Fig.14 Coordonarea agentilor: Managementul Contractelor
Organizarea agentilor
Fig.15 Organizarea agentilor: Managementul Contractelor
Configurarea agentilor utilitari si a agentilor task
Din fereastra principala Agent Generator se da click pe butonul Code Generator, care va afisa fereastra Generation Plan : agentii care vor fi creati cand procesul de generare a codului va fi pornit. Pe langa Piata Furnizori, Managementul Achizitiilor, Serviciul Strategia Aprovizionarii si Managementul Contractelor mai sunt si ANS, Broker si Visual.
Pentru a configura acesti trei agenti se da click pe Utility Agents.
Fig.16 Agent generator
Configurarea agentilor task
Agentii task, in Zeus, sunt ajutati de catre agentii utilitari generati de sistem. Pentru acestia se poate crea interfata implicita a Zeus-ului , si de asemenea se poate crea o interfata specifica fiecarui agent.
Fig.17 Configurarea agentilor task
Implementarea si rularea aplicatiei
Avand agentii deja definiti suntem gata pentru a genera implementarea acestora. Pentru generarea codului sursa si a executabilelor se deschide fereastra Code Generator, Aici se alege calea unde se vor genera fisierele necesare rularii acestei aplicatii si apoi se apasa butonul Generate.
Fig.18 Cod generator
Acest lucru va genera implementarea Java pentru fiecare agent si pentru fiecare task in cate o clasa java. In continuare trebuie configurat programul extern, Interface , pe care il apeleaza agentul Director General. In acest program trebuie specificat scopul acestei aplicatii, acest program consta de fapt in interafata care permite sa fie accesate direct componentele unui agent.
Programul trigger (Interface.java) furnizeaza un exemplu de transmitere a instructiunilor catre agent.
Ceea ce se intampla este ca se creeaza un nou fapt care reprezinta conceptul dorit si acesta este folosit pentru a crea un nou scop. Scopul este apoi adaugat la Co-ordination Engine, si va invoca task-ul Contract, si in timpul achizitionarii resurselor necesare pentru acest task negocierile dintre agenti vor incepe.
Acum aplicatia poate fi rulata folosind scripturile de lansare create o data cu agentii : run1, run2 si run
Lansarea aplicatiei implica urmatoarele procese :
In ferestrele deschise se pot vedea discutiile purtate intre agenti.
Se vor deschide in total 13 procese java care ruleaza pe fundal, prinrte care si fereastra Visualiser Hub.
Se va deschide fereastra Society Tool, unde vom vedea agentii task si agentii utilitari. Folosind optiunea Centered din meniul View Style , vom putea observa mai bine agentii si modul de comunicare.
Fig. 19 Visualiser
Fig.20 Interfata - Contracte Furnizori
Aplicatia mai poate fi imbunatatita prin folosirea unei baze de date externe care sa cuprinda mai multe exemple ( se va folosi o lista de materiale si o lista de furnizori, astfel incat sa se ajunga intr-adevar la o selectie de furnizori).``
Concluzii finale
₪ Tehnologia agentilor inteligenti reprezinta o solutie eficienta pentru modelarea si implementarea sistemelor distribuite, dinamice, care lucreaza eventual, in medii deschise.
₪ Realizarea nu numai a sistemului multi agent aplicat in domeniul selectiei de furnizorilor de bunuri, produse sau servicii, ci si a oricarui sistem multi agent aplicat intr-un alt domeniu, este foarte dificil de dezvoltat, deoarece trebuie sa se aiba in vedere mult mai multe entitati si atribute asociate acestora fata de numarul mic de entitati al sistemului multi agent prezentat in paginile anterioare.
₪ Implementarea sistemului multi agent cu ajutorul instrumentului software ZEUS este usor de realizat, acesta impunand anumite etape pentru realizarea implementarii sistemului agent aplicat in domeniul ales.
₪ Sistemul multi-agent creat, doreste sa realizeze o legatura directa cu baza de date ORACLE.
₪ Un astfel de sistem multi-agent contribuie in mod eficiant si performant la imbunatatirea activitatii de aprovizionare, respectand in totalitate pricipiul raportului pret-calitate.
₪ Aplicatia usureaza si rentabilizeaza activitatea manageriala privind aprovizionarea si evaluarea acesteia.
₪ Sistemul multi-agent inlesnste activitatea de control si evaluare a activitatii de aprovizionare si achizitie intr-o unitate economica.
Bibliografie
[1] Collis, Jaron, Ndumu, Divine - Zeus Technical Manual British Telecommunication plc, 1999
[2] Collis, Jaron, Ndumu, Divine - The Role Modelling Guide British Telecommunication plc, 1999
[3] Collis, Jaron, Ndumu, Divine - The Application Realisation Guide British Telecommunication plc, 1999
[4] Collis, Jaron, Ndumu, Divine - The Runtime Guide British Telecommunication plc, 1999
[5] Fulcher, J. - Advances in applied Artificial Intelligence, University of Wollongong, Australia,2006
[6] Hopgood, A. - Intelligent Systems for Engineers and Scientists, Second Edition, 2001 by CRC Press LLC
[7] Weiss, G. - Multiagent Systems A Modern Approach to Distributed ,Modern Approach to Artificial Intelligence, 1999 Massachusetts Institute of Technology
[8] Wooldridge, M. - An Introduction to MultiAgent Systems, John Wiley and Sons in March 2002
[9] *** - Agent-Oriented Software Engineering, http://users.ecs.soton.ac.uk/nrj/download-files/agt-handbook.pdf
Anexe
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//import java.swing.border.*;
import java.io.*;
import java.sql.*;
import zeus.util.*;
import zeus.concepts.*;
import zeus.agents.*;
import zeus.actors.*;
import zeus.actors.event.*;
import zeus.gui.*;
import zeus.gui.fields.*;
import zeus.concepts.fn.*;
import zeus.generator.util.*;
public class Interface extends JFrame implements ZeusExternal
});
}
public void exec(AgentContext context)
protected class SymFactMonitor extends FactAdapter
else
}
repaint();
}
}
}
public void display(String message)
protected class SymAction implements ActionListener
else if ( src == cumparaBtn )
else if ( src == executeBtn )
}
}