Techniki wnioskowania z użyciem rozproszonej bazy wiedzy



Pobieranie 347.22 Kb.
Strona10/10
Data24.10.2017
Rozmiar347.22 Kb.
1   2   3   4   5   6   7   8   9   10

Komunikaty ACL


Klasa ACLMessage reprezentuje pojedynczy komunikat ACL. Wiadomość posiada swoich adresatów, informacje o nadawcy, pole performative reprezentujące rodzaj aktu komunikacyjnego (rodzaje aktów komunikacyjnych definiowane są przez FIPA) oraz pole treści.

Zachowanie agentów


Agent po uruchomieniu żyje własnym życiem. Aby odwzorować czynności, jakie powinien wychowywać do modelu programistycznego, stworzona została podstawowa klasa Behaviour. Agent może posiadać więcej niż jedno zachowanie, dodawane i odejmowane metodami addBehaviour() oraz removeBehaviour; zachowania są wywoływane w cyklicznej kolejności.

Kluczową metodą w klasie Behaviour jest metoda action(). To w niej opisana musi być procedura zachowania agenta wedle danego schematu. W przypadku zablokowania agenta (np. czekając na komunikat) nie wykonywane są metody action() z innych zachowań, o czym należy pamiętać. Model cyklu zachowań nie jest wywłaszczeniowy. Bibliotecznie, JADE oferuje sporo predefiniowanych zachowań wykonujących typowe czynności agentów.


Źródło: http://www.violent.dream.vg/studia/tai/proj/proj.html#id2870432

  1. Wnioskowanie rozproszone – przykład systemu

Rozwiązanie wnioskowania rozproszonego zaproponowane przez The Applied Computersystems Group na Uniwersytecie McMaster do realizacji systemu sterowania akceleratorem Tandem, używanego do przyspieszania dodatnich jonów .



  • Rozproszone sterowanie przy użyciu mikroprocesorów wnioskujących charakteryzujących się 8 lub 16 bitowym słowem, małą przestrzenia adresową oraz relatywnie małą prędkością

  • Budowa modelu, w którym każdy agent jest niezależny i zdolny do dzielenia bezpośrednio swoich informacji z pozostałymi agentami rozproszonymi w sieci

  • Wiedza składa się z faktów i reguł na podstawie, których wyciągane są wnioski

  • Fakty reprezentowane są przez obiekty rozproszone

  • Rozszerzenie systemu wnioskującego pozwala na gromadzenie, usuwanie przedawnionych i automatyczne uaktualnianie nowymi faktami bazy wiedzy

  • Zastosowanie schematu pozwalającego na krążenie reguł w sieci

  • Zastosowanie języka ITL (independent-token-threaded language)


Zaproponowane innowacje w rozproszonym systemie wnioskowania:
Rozproszone fakty

Stworzono rozwiązanie alternatywne do używanego wcześniej tzw. systemu tablicowego, polegającego na wykorzystaniu centralnej bazy wiedzy do wymiany pomiędzy wieloma agentami, będącej „wąskim gardłem” systemu ze względu na wydajność, gdyż wiele procesorów współzawodniczy o zasoby.



Rys. 10 Modele systemów wnioskowania


Jest to tzw. model doradczy, w którym każdy procesor w sieci pracuje nad własnym zestawem problemów. Każdy z procesorów może bezpośrednio zapytać inny procesor o informacje potrzebne do rozwiązania jego problemu bez potrzeby wstrzymania wykonywania jego zadań. Co więcej, jeżeli procesor jest w posiadaniu wiedzy przydatnej innym procesorom może ją udzielić w celu aktualizacji lub zmiany faktów innemu procesorowi bądź grupie procesorów.

Przechowywanie faktów w systemie TexMex4:


TexMex jest z założenia jednoprocesorowym systemem ekspertowym, w którym fakty są reprezentowane poprzez wartości całkowitoliczbowe. Każdy fakt posiada funkcję oceniającą, która opisuje jak zdeterminować nieznany fakt. W TexMex2 został zaimplementowany czas ważności dla faktu oraz czasowa algebra do operacji na danych w postaci czasu. Szybkie wnioskowanie w przód zostało osiągnięte poprzez wprowadzenie tzw. listy zależności. TexMex4 jest rozproszonym systemem ekspertowym. Występuje w nim wnioskowanie wieloprocesorowe, w którym każdy fakt posiada swojego „właściciela”, ponieważ tylko on posiada regułę do oceny tego faktu. Z każdym faktem skojarzona jest lista eksportowa, zawierająca wszystkie procesory za wyjątkiem właściciela faktu, które używają wartości tego faktu. Jest ona sieciowym odpowiednikiem listy zależności.

Wnioskowanie wsteczne


  • Wszystkie procesory muszą znać właścicieli każdego z faktów

  • Każdy fakt jest ważny aż do czasu przedawnienia

Procedura uzyskania wartości faktu:

    1. Jeśli fakt nie jest przedawniony użyj wartości prawdy z ostatniego wnioskowania (każdy procesor niezależnie przechowuje fakty, których używa)

    2. Jeśli fakt jest przedawniony i dany procesor jest jego właścicielem uruchom procedurę wnioskowania określającą prawdziwość faktu, zaktualizuj i zapisz jej wynik (cache’owanie).

    3. Jeśli fakt jest przedawniony i procesor nie jest jego właścicielem wyślij wiadomość do właściciela z zapytaniem o prawdziwość danego faktu. Wartość ta oraz związany z nią czas przedawnienia zostaje użyty do aktualizacji przechowywanego wyniku.

Należy zauważyć, iż koncepcja czasu przedawnienia jest kluczowa dla operacji cache’owania, ze względu na zachowanie spójności cache’u. Cache natomiast jest niezbędny do zredukowania ruchu w sieci i zwiększenia szybkości wnioskowania.

Problem unieważniania reguł przed ich czasem przedawnienia jest rozwiązywany poprzez wnioskowanie w przód.


Wnioskowanie w przód


  • używa informacji z listy eksportowej

  • wykonanie reguły w celu uzyskania nowej wartości faktu jest dokonywane przez właściciela faktu, zazwyczaj zostaje wyzwolone z zewnątrz

  • nowy fakt jest zapisywany w cache’u procesora

W przypadku eksportu faktu wykonywane są następujące czynności:

    1. Komunikat sieciowy wysyłany jest do listy eksportowej (do jednego lub wielu procesorów) w celu poinformowaniu o nowej wartości faktu i czasie przedawnienia

    2. W każdym procesorze odbierającym wiadomość następuje aktualizacja cache’u

    3. To może z kolei wyzwolić propagację procesu wewnątrz odbierających procesorów

Należy zauważyć, iż wnioskowanie w przód nie jest uzależnione od czasu przedawnienia do jego poprawnego funkcjonowania. Proces wnioskowania może zostać zapoczątkowany przez zewnętrzne zdarzenie lub okresowy wyzwalacz oraz może skutkować wysunięciem wniosku przez rozproszone procesory.

Obie techniki wnioskowania są zaimplementowane w pojedynczym systemie wnioskującym przedstawionym na rysunku poniżej. Zauważmy, iż tylko dwa następujące komunikaty sieciowe są potrzebne w rozproszonym wnioskowaniu:



ASK fact# - używany we wnioskowaniu wstecznym przez procesor z zapytaniem o aktualną wartość faktu

TELL fact#, value, expiration time – jest odpowiedzią na komunikat ASK. Informuje odbiorców o nowej wartości faktu i jego czasie przedawnienia.

Rys.11 Algorytm wnioskowania


Reguły mobilne

Fakty, które reprezentują aktualny stan wiedzy, mogą być dzielone przez rozproszone procesory i są jednym ze składników bazy wiedzy. Drugim składnikiem bazy wiedzy są reguły determinujące te fakty. Rzeczywisty system rozproszony powinien również dzielić reguły tj. umożliwiać przesyłanie tych reguł pomiędzy różnymi procesorami.

Reguły w systemie ekspertowym TexMex 2 są reprezentowane jako funkcje używające kodu direct-threaded. Reprezentacja ta posługuje się wątkami adresów funkcji, jest ona wydajna, lecz specyficzna dla każdego z procesorów. Reguły mobilne wymagają niezależności sprzętowej i adresowej. Rozproszony system ekspertowy TexMex 4 reprezentuje reguły w kodzie token-threaded. Reprezentacja ta jest stosowany, gdy wymagana jest niezależność sprzętowa (procesorowa). Reguły napisane są w języku ITL (Inferencing Token Language), który jest sprowadzony do postaci tokenowej. W odróżnieniu od innych języków tokenowych, funkcje definiowane przez użytkownika (np. reguły) rozszerzają zbiór parametrów tokena. Jądro tokena jest kodowane ze względów oszczędnościowych na 8 bitach, ale wspiera również 16-bitowe rozszerzenie umożliwiające dostęp do 4096 możliwych funkcji. Stosowanie interpretera tokenowego w porównaniu do interpretera direct-threaded Forth skutkuje zwiększeniem prędkości o połowę.

Mobilność reguł


Reguły są określone na dwa sposoby:

Reguły prywatne znane są tylko jednemu procesorowi oraz są używane wyłącznie przez ten procesor do wnioskowania w jego wewnętrznym mechanizmie. Fakty otrzymane na podstawie reguł prywatnych nie mogą być eksportowane – inne procesory nie wiedzą o istnieniu tych reguł. Natomiast reguły publiczne znane są wszystkim procesorom pracującym w sieci i mogą być obiektem komunikatów ASK i TELL. Wnioskowanie rozproszone posługuje się faktami publicznymi.

Reguły publiczne mogą być ograniczone lub nieograniczone. Reguła ograniczona musi być wykonana na określonym procesorze, ponieważ jest ona zapisana w dedykowanej dla danego procesora formie (kod maszynowy). Reguła może używać wejścia dostępnego tylko dla jednego procesora lub jego prywatnych faktów. Mimo że rezultat reguły – fakt – jest publicznie znany, nie może być ona przeniesiona do innego procesora.

Reguły, które nie są ograniczone jak powyżej zwane są regułami nieograniczonymi. Posługują się one wyłącznie faktami publicznymi oraz są napisane w języku ITL – niezależnym od procesora. Reguły te mogą być wykonywane przez jakikolwiek procesor i mogą się dowolnie przemieszczać w sieci.

Komunikaty sieciowe wspierające ruch reguł w sieci:



DEFINE-RULE rule#, definition – jest wysyłany do właściciela reguły w celu przekazania jej do innego procesora. Komunikat ten zawiera kompletną definicję reguły w języku ITL.

I-OWN rule# - jest wysyłany przez nowego właściciela reguły, w celu potwierdzenia jej odbioru i poprawnego wprowadzenia – w odpowiedzi na komunikat DEFINE-RULE.

WHO-OWNS rule# - jest komunikatem opcjonalnym, który może zostać wysłany przez procesor w celu określenia bieżącego właściciela reguły.
Źródło: http://www.zetetics.com/bj/papers/bjr96pap.htm




Pobieranie 347.22 Kb.

Share with your friends:
1   2   3   4   5   6   7   8   9   10




©operacji.org 2020
wyślij wiadomość

    Strona główna