Programowanie agentowe

Wikipedia:Weryfikowalność
Ten artykuł od 2020-06 wymaga zweryfikowania podanych informacji.
Należy podać wiarygodne źródła w formie przypisów bibliograficznych.
Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte.
Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary)
Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu.
Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu.

Programowanie agentowe – kolejny poziom abstrakcji programowania, wyższy od abstrakcji programowania obiektowego. Polega on na tworzeniu agentów (ang. Software Agent).

  • Programowanie agentowe różni się od obiektowego tym, że każdy agent musi być przygotowany na otrzymanie błędnych danych od innego agenta, lub nieotrzymanie ich w ogóle. W programowaniu obiektowym zakłada się, że każdy obiekt zwróci poprawne dane.
  • W programowaniu agentowym normalną i pożądaną sytuacją jest, żeby kilka agentów wykonywało to samo obliczenie, na wypadek, gdyby niektóre z nich zwróciły błąd. W programowaniu obiektowym tylko jeden obiekt wykonuje dane obliczenie, a dublowanie obliczeń to marnowanie mocy procesora.
  • System agentowy często zwraca wynik przybliżony lub obarczony prawdopodobieństwem błędu. Rozmaite techniki mają na celu eliminację tego stanu rzeczy. W programowaniu obiektowym czyni się założenie, że wszystkie wyniki są poprawne, a za ich dokładność odpowiadają inne elementy systemu komputerowego (np. sprzęt).

Systemy agentowe są naturalnie przystosowane do uruchamiania w dużych lub niepewnych środowiskach, np. w sieciach komputerowych, gdzie może zajść awaria łącza, awaria komputera lub ktoś może sabotować obliczenia wysyłając błędne dane. Systemy agentowe nie wymagają zsynchronizowanego zegara, umożliwiają płynne zwiększanie lub zmniejszanie ilości pamięci i procesorów, na których są uruchamiane (bez przerywania obliczeń), tolerują opóźnienia komunikacji i wykorzystują możliwości środowisk heterogenicznych.

Właściwości agentów można w pełni wykorzystać jeśli zostaną połączone w zespoły nazywane Systemami wieloagentowymi (ang. Multi Agents System).

Uwaga: Nie należy mylić programowania agentowego z modelowaniem agentowym, czyli ABM (Agent Base Modeling), które zwykle wykonywane jest w paradygmacie obiektowym.