Przydzielanie zadań za pomocą sieci kontraktowej

Protokół sieci kontraktowej jest prawdopodobnie najstarszą i najważniejszą techniką wieloagentowego rozwiązywania problemów badaną w AI. Jest to protokół wysokiego poziomu do współdzielenia zadań. Jak sama nazwa wskazuje, sieć kontraktów została zainspirowana sposobem, w jaki firmy korzystają z kontraktów. Ogólny protokół sieci kontraktowej składa się z czterech głównych faz.

Proces rozpoczyna się od agenta identyfikującego potrzebę wspólnego działania w odniesieniu do jakiegoś zadania. Potrzeba może powstać, ponieważ agent nie ma możliwości samodzielnego wykonania zadania lub rozwiązanie oparte na współpracy może być w jakiś sposób lepsze (szybsze, wydajniejsze, dokładniejsze). Agent anonsuje zadanie innym agentom w sieci za pomocą komunikatu o zadaniu zadania, a następnie pełni funkcję menedżera tego zadania przez czas jego trwania. Wiadomość z ogłoszeniem zadania musi zawierać wystarczającą ilość informacji, aby odbiorca mógł ocenić, czy chcą i mogą licytować o to zadanie. Dokładne informacje zawarte w ogłoszeniu zadania będą zależeć od obszaru zastosowania. Może to być jakiś kod, który należy wykonać; lub może być logiczną specyfikacją celu do osiągnięcia. Ogłoszenie zadania może również zawierać inne informacje, które mogą być wymagane przez odbiorców, takie jak terminy, wymagania dotyczące jakości usług i tak dalej. Gdy agent otrzymuje ogłoszenie o zadaniu, musi je ocenić pod kątem własnych możliwości i preferencji. W szczególności każdy agent musi określić, czy ma zdolność do wykonania zadania, a po drugie, czy tego chce. Na tej podstawie może następnie złożyć ofertę na wykonanie zadania. Oferta zazwyczaj wskazuje możliwości oferenta, które są istotne dla ogłaszanego zadania, oraz wszelkie warunki, na jakich zadanie zostanie wykonane. Ogólnie rzecz biorąc, menedżer może otrzymać wiele ofert w odpowiedzi na ogłoszenie o pojedynczym zadaniu. Na podstawie informacji zawartych w ofertach kierownik wybiera najbardziej odpowiedniego agenta (lub agentów) do wykonania zadania. Wybrani agenci są powiadamiani za pomocą wiadomości o nagrodzie i stają się wykonawcami zadania, biorąc odpowiedzialność za zadanie do czasu jego ukończenia. Główne zadania obliczeniowe wymagane do wdrożenia protokołu sieci kontraktowej można podsumować w następujący sposób:

  • Przetwarzanie ogłoszeń o zadaniach. Po otrzymaniu ogłoszenia o zadaniu agent decyduje, czy chce licytować ogłoszone zadanie.
  • Przetwarzanie ofert. Po otrzymaniu wielu ofert menedżer musi zdecydować, któremu agentowi przydzielić zadanie, a następnie przyznać zadanie.
  • Przetwarzanie nagród. Wybrani oferenci (wykonawcy) muszą podjąć próbę realizacji zadania, co może oznaczać wygenerowanie nowych podzadań, które są ogłaszane w kolejnych ogłoszeniach o zadaniach.

Pomimo (a może właśnie ze względu na) swojej prostoty, sieć kontraktów jest prawdopodobnie najszerzej wdrażanym i najlepiej przebadanym szkieletem kooperacyjnego rozwiązywania problemów. Ma naturalne zastosowanie w wielu ustawieniach – na przykład za każdym razem, gdy zamawiasz samochód z Uberem, wprowadzana jest pewna jego odmiana.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *