• Nie Znaleziono Wyników

7. Systemy decyzyjne 99

7.3. Systemy produkcyjne

Istnieje wiele sposobów projektowania systemów decyzyjnych. W niniej-szym podrozdziale główn ˛a uwag˛e skierowano na funkcjonowanie systemów pro-dukcyjnych oraz ró˙zne formalizmy reprezentacji wiedzy i techniki pozwalaj ˛ace osi ˛agn ˛a´c zadowalaj ˛ace wyniki przy wspieraniu człowieka (lub autonomicznego układu sterowania) w podejmowaniu decyzji. Omówiono je do´s´c pobie˙znie, jed-nak bardziej szczegółowe informacje mo˙zna znale´z´c w [3].

7.3.1. Reguły produkcyjne

Zanim reguły produkcyjne zostały zaadoptowane dla systemów eksperto-wych, były one wykorzystywane w teorii automatów, gramatyce formalnej i przy projektowaniu j˛ezyków programowania. W kontek´scie systemów ekspertowych s ˛a one czasami nazywane regułami akcji i reakcji lub sytuacji i reakcji. Ka˙zdy system produkcyjny powinien składa´c si˛e ze zbioru reguł (nazywanymi cz˛esto

pami˛eci ˛a produkcyjn ˛a), interpretera i pami˛eci operacyjnej, w której

przetrzymy-wane s ˛a po´srednie wyniki oblicze ´n i po´srednie cele. Pami˛e´c operacyjna pełni te˙z poniek ˛ad rol˛e bazy wiedzy.

7.3.2. Składnia

Reguły składaj ˛a si˛e z warunków i akcji (konkluzji):

i f P1&P2... &Pn

t hen Q1&Q2... &Qm

Warunki s ˛a zwykle trójkami w formie (obiekt-atrybut-warto´s´c), np. (Paweł-wiek-24), co oznacza: wiek Pawła wynosi 24. W oparciu o ten warunek mo˙zna skon-struowa´c reguł˛e:

if (Paweł wiek 24) then (Paweł ko ´ncz studia)

7.3. Systemy produkcyjne oznaczaj ˛ac ˛a, ˙ze je˙zeli Paweł ma 24 lata, to ma sko ´nczy´c studia. Zakłada si˛e oczy-wi´scie mo˙zliwo´s´c wprowadzania bardziej ogólnych reguł korzystaj ˛ac ze zmien-nych (oznaczazmien-nych tutaj gwiazdk ˛a):

if (*człowiek wiek *x) & (*człowiek praca NULL) & (*x wi˛eksze-od 24) & (*x mniejsze-od 67) then (*człowiek bierz zasiłek)

(7.1)

Podczas interpretacji takich reguł poszczególnym zmiennym b˛ed ˛a przypisywane te same warto´sci w ka˙zdej z reguł (np. we wszystkich trzech miejscach wyst ˛ apie-nia zmiennej x zostanie wpisana ta sama warto´s´c, podobnie stanie si˛e ze zmienn ˛a

człowiek).

7.3.3. Pami˛e´c operacyjna

Zadaniem pami˛eci operacyjnej jest przechowywanie trójek (obiekt-atrybut-warto´s´c). Dane te s ˛a podstaw ˛a dla interpretera, który uaktywnia odpowiednie re-guły na zasadzie dopasowania do wzorców. To znaczy, ˙ze je˙zeli w danym warunku nie wyst˛epuj ˛a ˙zadne zmienne, to jest on spełniony jedynie wtedy, gdy w pami˛eci operacyjnej znajdzie si˛e identyczne wyra˙zenie. Je˙zeli natomiast warunek zawiera zmienne (pełni rol˛e wzorca), to jest on spełniony tylko wtedy, gdy w pami˛eci ope-racyjnej istnieje wyra˙zenie, które „pasuje” do wzorca w taki sam sposób, jak reszta

pod-warunków w rozpatrywanej regule.

Dla przykładu mo˙zna sprawdzi´c, czy reguła (7.1) aktywuje si˛e, je˙zeli w pami˛eci operacyjnej (ang. working memory – WM) znajd ˛a si˛e nast˛epuj ˛ace dane:

WM = ((Paweł wiek 30) (Paweł praca NULL))

Pierwsza trójka warunku (*człowiek wiek *x) pasuje do trójki w pami˛eci opera-cyjnej (Paweł wiek 30) przy podstawieniu *człowiek = Paweł, *x = 30. Próby do-pasowania kolejnych trójek warunku do trójek z bazy wiedzy b˛ed ˛a teraz ograni-czone tym podstawieniem, a wi˛ec zamiast (*człowiek praca NULL) b˛edzie (Pa-weł praca NULL) itd. W tym konkretnym przypadku wida´c, ˙ze wszystkie trójki warunku znajduj ˛a odpowiednie dopasowania w bazie wiedzy, a wi˛ec konkluzja (Paweł bierz zasiłek) zostanie zastosowana.

7.3.4. Rozwi ˛azywanie konfliktów

Zadaniem interpretera jest:

• znalezienie dopasowania mi˛edzy elementami bazy wiedzy, a warunkami sto-sowania reguł;

• podj˛ecie decyzji, która reguła ma by´c aktywowana, gdy spełnione s ˛a warunki dla wi˛ecej ni˙z jednej z nich;

• zastosowanie reguły i ewentualnie modyfikacja pami˛eci.

Sytuacja, w której mo˙zna zastosowa´c wi˛ecej ni˙z jedn ˛a reguł˛e jest cz˛esta i wymaga odpowiedniego mechanizmu rozwi ˛azywania konfliktów. Oczywi´scie mo˙zna

za-programowa´c system w ten sposób, aby w danej sytuacji mo˙zliwe było zasto-sowanie tylko jednej reguły (taki system nazywamy deterministycznym), jednak w przypadku du˙zych systemów staje si˛e to bardzo trudne. Wybrana strategia roz-wi ˛azywania konfliktów zale˙zy zawsze ´sci´sle od zało˙zonego celu, niemniej najcz˛e-´sciej stosuje si˛e kombinacje trzech ni˙zej wymienionych mechanizmów.

Strategia odporna (ang. refractoriness) - reguła nie powinna by´c stosowana

wi˛ecej ni˙z raz dla tego samego zestawu danych. Oczywist ˛a metod ˛a imple-mentacji tej strategii jest kasowanie instancji, które były ju˙z stosowane. Słab-sz ˛a wersj ˛a tej metody jest kasowanie instancji, które były stosowane w po-przedniej iteracji. Strategia ta stosowana jest zwłaszcza w sytuacji, gdy chce si˛e unikn ˛a´c zap˛etlenia programu.

Strategia ´swie˙zych danych (ang. recency) - elementy pami˛eci operacyjnej

po-siadaj ˛a zwykle stemple czasowe, aby mo˙zna było rozpozna´c, kiedy zostały dodane. Instancje, które bior ˛a udział w aktualnym dopasowaniu sortowane s ˛a według czasu ich dodania do pami˛eci operacyjnej i w razie konfliktu od-palana jest reguła, dla której stosowane s ˛a dane ´swie˙zsze. Strategia taka jest bardzo intuicyjna, gdy˙z nowe dane nios ˛a zwykle ze sob ˛a nowe szanse na roz-wi ˛azanie problemu.

Strategia reguł specyficznych (ang. specificity) - instancje otrzymane z reguł

o bardziej zło˙zonych warunkach stosowane s ˛a ch˛etniej od instancji otrzyma-nych z dopasowania do reguł bardziej ogólotrzyma-nych. Mechanizm ten pozwala np. na rozwi ˛azanie takiego konfliktu:

[reg. 1] i f (*X jest Ptakiem)

t hen (*X umie Lata´c)

[reg. 2] i f (*X jest Ptakiem) & (*X jest Emu)

t hen (*X nie umie Lata´c)

Zastosowana zostanie reguła 2, poniewa˙z jej warunek wymaga wzi˛ecia pod uwag˛e wi˛ekszej liczby danych.

7.3.5. Rozumowanie w przód i rozumowanie w tył

Zagadnienie odpowiedniego wysterowania systemu produkcyjnego niesie ze sob ˛a wiele nietrywialnych problemów. W podrozdziale 7.3.4 przedstawiono spo-soby lokalnego wpływu na zachowanie programu. Istniej ˛a te˙z rozwi ˛azania glo-balne. Techniki globalne zwykle nie zale˙z ˛a od natury rozwi ˛azywanego problemu i s ˛a zakodowane na stałe w interpreterze, podczas gdy wybór strategii lokalnych zale˙zy od poszczególnej aplikacji i programista przewa˙znie mo˙ze na nie mocno wpływa´c.

Przy sterowaniu systemem produkcyjnym na poziomie globalnym reguły pro-dukcyjne mog ˛a by´c rozwijane w przód lub w tył. Oznacza to, ˙ze na podstawie po-siadanej wiedzy mo˙zna szuka´c jakiej´s konkluzji poprzez dopasowywanie warun-ków do elementów pami˛eci operacyjnej (rozumowanie w przód). Mo˙zna tak˙ze

7.4. Reprezentacja wiedzy

Powiązane dokumenty