Programy agentowe

Wszystkie programy agentów, które projektujemy, mają ten sam szkielet: pobierają prąd jako dane wejściowe z czujników i zwracają działanie do elementów wykonawczych. Zwróć uwagę na różnicę między programem agenta, który pobiera bieżący percept jako dane wejściowe, a funkcją agenta, która może zależeć od całej historii perceptu. Program agenta nie ma innego wyboru, jak tylko wziąć bieżący punkt widzenia jako dane wejściowe, ponieważ nic więcej nie jest dostępne ze środowiska; jeśli działania agenta muszą zależeć od całej sekwencji perceptów, agent będzie musiał zapamiętać percepty. Opisujemy programy agenta w prostym języku pseudokodu, który jest zdefiniowany w Dodatku B . (Repozytorium kodu online zawiera implementacje w rzeczywistych językach programowania.) Na przykład rysunek 2.7 przedstawia dość trywialny program agenta, który śledzi sekwencję percepcji, a następnie używa go do indeksowania w tabeli działań, aby zdecydować, co zrobić.

funkcja Table-Driven-Agent (percept) zwraca akcję

trwałe : percepty, sekwencja, początkowo pusta

table, tabela działań , indeksowana przez sekwencje percept, początkowo w pełni określona

dołącz percept do końca perceptów

akcje <- WYSZUKAJ(percepty, tabela)

zwrot akcja

Tabela reprezentuje jawnie funkcję agenta, którą uosabia program agenta. Aby w ten sposób zbudować racjonalnego agenta, my jako projektanci musimy skonstruować tabelę, która zawiera odpowiednią akcję dla każdej możliwej sekwencji percepcji.

Warto zastanowić się, dlaczego oparte na tabelach podejście do tworzenia agentów jest skazane na niepowodzenie. Niech P będzie zbiorem możliwych perceptów i niech T będzie czasem życia agenta (całkowitą liczbą perceptów, które otrzyma). Tabela przeglądowa będzie zawierać 

Rozważmy zautomatyzowaną taksówkę: obraz z jednej kamery (typowo osiem kamer) przychodzi z szybkością około 70 megabajtów na sekundę (30 klatek na sekundę, piksele z 24 bitami informacji o kolorze). Daje to tabelę przeglądową z ponad wpisami dla godziny jazdy. Nawet tablica przeglądowa szachów – mały, dobrze wychowany fragment realnego świata – ma (okazuje się) przynajmniej  10150 wpisy. Dla porównania, liczba atomów w obserwowalnym wszechświecie jest mniejsza niż 1080 . Zniechęcające rozmiary tych stołów oznaczają, że (a) żaden fizyczny agent w tym wszechświecie nie będzie miał miejsca na przechowywanie tabel; (b) projektant nie miałby czasu na stworzenie tabli; oraz (c) żaden agent nigdy nie mógł nauczyć się wszystkich właściwych wpisów do tabeli na podstawie swojego doświadczenia.

Mimo to TABLE-DRIVEN-AGENT robi to, co chcemy, zakładając, że tabela jest wypełniona poprawnie: implementuje żądaną funkcję agenta. Kluczowym wyzwaniem dla sztucznej inteligencji jest nauczenie się, jak pisać programy, które w miarę możliwości wytwarzają racjonalne zachowanie z niewielkiego programu, a nie z obszernej tabeli. Mamy wiele przykładów pokazujących, że można to zrobić z powodzeniem w innych dziedzinach: na przykład ogromne tabele pierwiastków kwadratowych używane przez inżynierów i uczniów przed latami 70. zostały teraz zastąpione pięciowierszowym programem do metody Newtona uruchamianym na kalkulatorach elektronicznych . Pytanie brzmi, czy sztuczna inteligencja może zrobić dla ogólnego zachowania inteligentnego to, co zrobił Newton dla pierwiastków kwadratowych? Wierzymy, że odpowiedź brzmi tak. W pozostałej części tej sekcji przedstawiamy cztery podstawowe rodzaje programów agentowych, które ucieleśniają zasady leżące u podstaw prawie wszystkich inteligentnych systemów:

* Proste środki odruchowe;

*Środki odruchowe oparte na modelu;

*Agenci zorientowani na cele; i

*Agenci narzędziowi.

Każdy rodzaj programu agentowego łączy poszczególne komponenty w określony sposób, aby generować akcje.

Dodaj komentarz

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