Agent – program komputerowy w kontekście programowania agentowego
Agent to program komputerowy, który znajduje zastosowanie w programowaniu agentowym.
Definicja agenta
W związku z brakiem jednolitych standardów, definicja agenta nie jest uzgodniona. Możemy jednak scharakteryzować agenta jako podmiot działający w określonym środowisku, który potrafi komunikować się, obserwować swoje otoczenie oraz podejmować autonomiczne decyzje, aby realizować cele wyznaczone podczas jego projektowania lub działania.
Agent powinien mieć następujące cechy:
- autonomiczność (zdolność do samodzielnego podejmowania decyzji),
- komunikatywność (umiejętność interakcji z innymi agentami oraz użytkownikami),
- percepcja (zdolność do dostrzegania i reagowania na zmiany w otoczeniu).
Inną, często podnoszoną cechą, jest mobilność.
Do innych popularnych cech agentów należą:
- zdolność do wykorzystywania wiedzy,
- tolerancyjność na błędy oraz niepoprawne dane wejściowe,
- zdolność do używania symboli i abstrakcji,
- zdolność do adaptacji w celu osiągnięcia zamierzonych celów,
- zdolność do uczenia się,
- zdolność do przeprowadzania operacji w czasie rzeczywistym,
- zdolność do komunikacji w języku naturalnym.
Rodzaje agentów
Agenci mogą być klasyfikowani na podstawie sposobu, w jaki postrzegają otoczenie, ingerują w środowisko oraz podejmują decyzje:
- agenty reaktywne,
- agenty intencjonalne,
- agenty socjalne.
Istnieją dwa podejścia do tworzenia systemów opartych na agentach: wykorzystanie pojedynczego agenta lub rozwijanie systemu wieloagentowego.
Podział według przeznaczenia i reakcji użytkowników
- Agenty zarządzające informacją – ich celem jest wsparcie użytkownika. Przykładem jest „asystent-doradca” w aplikacjach Microsoft Office.
- Agenty zarządzające pocztą elektroniczną – odpowiedzialne za filtrowanie i sortowanie wiadomości, a także odpowiadanie na standardowe pytania.
- Agenty organizujące dzień – pomagają użytkownikowi w planowaniu dnia. Przykładem są asystenci, jak 'spinacz’ w MS Word, którzy potrafią realizować bardziej złożone cele niż proste awatary i mają większą swobodę działania. Czasami tego rodzaju agenty określane są jako 'agenty interfejsu’.
- Agenty dostarczające zindywidualizowane informacje – odpowiedzialne za filtrację i selekcję danych.
- Agenty monitorujące lub zarządzające – klasa agentów zajmująca się obserwacją zjawisk i podejmowaniem działań w imieniu użytkownika. W tej grupie znajdują się agenty aktorzy, które w niewielkim stopniu są zależne od człowieka, jak np. bot w kanale IRC, oraz agenty awatary, będące bezpośrednią reprezentacją użytkownika w cyberprzestrzeni, jak w chatroomach czy na IRC-u. Takie agenty realizują polecenia użytkownika i mają ograniczoną swobodę działania.
- Agenty w systemach rozproszonych
- Agenty poszukujące informacji – ich zadaniem jest odnalezienie konkretnej informacji dla użytkownika.
- Agenty przeszukujące Internet – skanują sieć w poszukiwaniu różnorodnych informacji potrzebnych użytkownikowi.
- Agenty e-biznesu i m-biznesu – działają w obszarze handlu internetowego.
- Agenty zarządzające siecią – służą do zarządzania aktualizacjami oprogramowania lub wykrywaniem ataków.
- Agenty w modelowaniu systemów złożonych
- Agenty modelujące negocjacje cenowe – wykorzystywane w handlu elektronicznym.
- Agenty modelujące proces zarządzania produkcją – wspierają zarządzanie przedsiębiorstwem, jako agentowe systemy ekspertowe.
Zobacz też
- programowanie agentowe
- systemy wieloagentowe
- metodyki projektowania systemów wieloagentowych
- inteligentny agent
Bibliografia
Stanisław Stanek, Marcin Mazur, Bogdan Sadecki, Zastosowanie kreatywnego agenta oprogramowania w module giełdowym IKGSWI wspomagającym inwestycje kapitałowe, Systemy Wspomagania Organizacji SWO’2004, Katowice.
Marcin Paprzycki, Agenci programowi jako metodologia tworzenia oprogramowania, Computer Science Department, Oklahoma State University, Tulsa, OK 74106 USA.