System produkcyjny (informatyka) - Production system (computer science)

System produkcji (lub układ reguła produkcja ) to program komputerowy, zwykle stosowane do jakiejś formy sztucznej inteligencji , która składa się głównie z zestawu zasad dotyczących zachowania, ale także mechanizm należy przestrzegać tych zasad, jak system reaguje na stany na świecie. Zasady te, określane jako produkcje , są podstawowym reprezentacja znaleźć przydatne w automatycznym planowaniem , systemy eksperckie oraz doboru akcji .

Productions składa się z dwóch części: sensoryczna warunek (lub „if”) i działanie (albo „potem”). Jeśli warunek produkcji pasuje aktualny stan świata, wtedy produkcja mówi się, że wywołany . Jeżeli działanie produkcja jest wykonywana , to mówi się, że zwolniony . System produkcyjny zawiera również bazę danych, czasami zwany pamięć robocza , która zachowuje dane o aktualnym stanie lub wiedzy oraz tłumacza reguły. Reguła interpreter musi zapewniać mechanizm priorytetyzacji produkcje, gdy więcej niż jeden jest wyzwalany.

Podstawowa operacja

Tłumaczy zasada generalnie wykonać łańcuchowym naprzód algorytm wyboru produkcje wykonać do bieżących celów, które mogą obejmować aktualizacji danych lub system za przekonania . Część stan każdego reguły ( z lewej strony lub LHS) jest pod kątem do aktualnego stanu pamięci roboczej.

W wyidealizowanych lub danych zorientowanych systemów produkcyjnych, jest założenie, że każdy wywołany warunki powinny być wykonywane: wynikające z tego działania ( po prawej stronie lub RHS) zaktualizuje wiedzę agenta, usuwanie lub dodawanie danych do pamięci roboczej. System przetwarzania zatrzymuje się gdy użytkownik przerywa przodu łańcuchowym pętli; gdy określona liczba cykli jest w ruchu; gdy „halt” RHS jest wykonywana, lub gdy nie ma reguły mają LHSs że są prawdziwe.

Systemy czasu rzeczywistego i ekspertów, w przeciwieństwie do tego, często muszą wybierać między wzajemnie wykluczających produkcje --- ponieważ działania wymagają czasu, tylko jedna działania można podjąć, lub (w przypadku systemu eksperckiego) zalecanej. W takich systemach, interpreter regułą albo silnik wnioskowania , cykle w dwóch etapach: Zestawy zasad produkcji na bazie danych, a następnie wybraniem dopasowanych zasad obowiązujących i realizacji wybranych działań.

Dopasowanie zasad produkcji na pamięci roboczej

Systemy produkcyjne mogą się zmieniać na siłę wyrazu warunków zasad produkcji. Zgodnie z powyższym, wzorzec dopasowania algorytm zbiera zasad produkcji dopasowanych warunków może zmieniać się od naiwne wyczerpaniu zasad w sekwencji zatrzymania pierwszego dopasowania do zoptymalizowany, przy czym reguły są „opracowane” do sieci warunków powiązanych ze sobą ,

Ten ostatni został zilustrowany przez RETE algorytmu, zaprojektowany przez Charlesa L. Forgy w 1983 roku, który jest stosowany w szeregu systemów produkcyjnych, zwanych OPS i pierwotnie opracowany w Carnegie Uniwersytetu zakończone OPS5 we wczesnych latach osiemdziesiątych. OPS5 może być postrzegana jako języka pełnoprawnym programowania programowania systemu produkcyjnego.

Wybór, który rządzi w celu oceny

Systemy produkcyjne mogą także różnić się w ostatecznym wyborze zasad produkcji na wykonanie lub pożaru . Zbiór zasad wynikających z poprzedniego algorytmu dopasowania nazywa się zbiór konfliktów , a proces selekcji jest nazywany również strategię rozwiązywania konfliktów .

Tutaj znowu, takie strategie mogą różnić się od prostego wykorzystania kolejności, w jakiej zostały napisane zasady produkcji; przypisywać wagi i priorytety do zasad produkcji i rozwiązać konflikt odpowiednio do złożonego-sort konflikt ustalonym zgodnie z czasów, w których zasady produkcji były wcześniej opalanych ustawiony; lub w zależności od stopnia modyfikacji wywołanych przez ich RHSs. Niezależnie od tego, rozwiązywanie konfliktów strategia jest realizowana, metoda jest rzeczywiście kluczowe znaczenie dla efektywności i poprawności systemu produkcyjnego. Niektóre systemy po prostu odpalić wszystkie pasujące produkcje.

Korzystanie z systemów produkcyjnych

Wykorzystanie systemów produkcji różni się od prostych ciągów przepisywania zasad modelowania procesów poznawczych człowieka, od terminowych systemów przepisywania i redukcji do systemów eksperckich .

Prosty ciąg przepisywanie przykład system produkcyjny

Ten przykład pokazuje zbiór zasad produkcji na odwrócenie ciąg z alfabetem, który nie zawiera symbole „$” i „*” (które są wykorzystywane jako symbole znacznik).

P1: $$ -> *
P2: *$ -> *
P3: *x -> x*
P4: * -> null & halt
P5: $xy -> y$x
P6: null -> $

W tym przykładzie, zasady produkcji są wybierane do badania zgodnie z ich kolejnością na liście produkcji. Dla każdej reguły, ciąg wejściowy jest badany od lewej do prawej, z ruchomym oknie znaleźć meczu z LHS reguły produkcji. Kiedy mecz zostanie znaleziony, dopasowany podciąg w ciągu wejściowego jest zastąpiony RHS reguły produkcji. W tym systemie produkcyjnym, X i Y są zmienne dopasowania dowolny znak alfabetu ciągu wejściowego. Dopasowanie CV z P1 raz wymiana została dokonana.

Ciąg znaków „ABC”, na przykład, przechodzi następującą sekwencję przekształceń wynikających z niniejszych zasad produkcji:

$ABC (P6)
B$AC (P5)
BC$A (P5)
$BC$A (P6)
C$B$A (P5)
$C$B$A (P6)
$$C$B$A (P6)
*C$B$A (P1)
C*$B$A (P3)
C*B$A (P2)
CB*$A (P3)
CB*A (P2)
CBA* (P3)
CBA (P4)

W taki prosty system, kolejność zasad produkcji ma kluczowe znaczenie. Często brak struktury sterowania sprawia, że ​​systemy produkcyjne trudne do zaprojektowania. Jest to, oczywiście, można dodać strukturę sterowania do modelu systemów produkcyjnych, a mianowicie w silniku wnioskowania, lub w pamięci roboczej.

Przykładem reguła produkcja OPS5

W świecie, gdzie symulacji zabawka małpa w pomieszczeniu może chwycić różnych obiektów i wspiąć się na innych, reguła przykład produkcja chwycić przedmiot zawieszony pod sufitem wyglądałby następująco:

(p Holds::Object-Ceiling
  {(goal ^status active ^type holds ^objid <O1>) <goal>}
  {(physical-object
    ^id <O1>
    ^weight light
    ^at <p>
    ^on ceiling) <object-1>}
  {(physical-object ^id ladder ^at <p> ^on floor) <object-2>}
  {(monkey ^on ladder ^holds NIL) <monkey>}
  -(physical-object ^on <O1>)
-->
  (write (crlf) Grab <O1> (crlf))
  (modify <object1> ^on NIL)
  (modify <monkey> ^holds <O1>)
  (modify <goal> ^status satisfied)
)

W tym przykładzie, dane w pamięci roboczej jest skonstruowany i zmienne pojawiają się w nawiasach kątowych. Nazwa struktury danych, takich jak „cel” i „fizyczny-przedmiot”, jest pierwszym w dosłowny warunkach; Pola struktury są prefiksem „^”. Znak „-” oznacza stan negatywny.

Zasady produkcji w OPS5 zastosowanie do wszystkich przypadków struktur danych pasujących do warunków i odpowiadają zmiennym wiązań. W tym przykładzie powinno być kilka obiektów zawieszone na suficie, z których każda inna drabina pobliżu podpierania z niczym małpa, zestaw konflikt będzie zawierać wiele przykładów reguły produkcji pochodzących z tej samej produkcji „Uznaje :: obiektu sufitu”. Etap rozwiązywania konfliktów później wybrać produkcja wystąpienia pożaru.

Należy zauważyć, że wiązanie zmiennych wynikającymi z dopasowania wzorca w LHS stosuje się RHS w odniesieniu do danych, które mają być modyfikowane. Należy również zauważyć, że pamięć robocza zawiera jednoznacznych danych struktury kontroli w postaci „cel” wystąpień struktury danych. Na przykład, gdy małpa trzyma zawieszony przedmiot, status bramki jest ustawiony na „zadowolonych”, a sama zasada produkcja nie może już jej nie stosuje się jako pierwszy warunek.

Związek z logiką

Zarówno Russell i Norvig za Wprowadzenie do sztucznej inteligencji i Jana Sowy reprezentacja wiedzy: Logika, Filozoficzne i obliczeniowe Fundamenty scharakteryzować systemy produkcyjne jako układy logiki rozumowania, które wykonują za pomocą wnioskowanie w przód. Jednak Stuart Shapiro, przeglądając książkę Sowy, twierdzi, że jest to błąd. Podobnie, Kowalski i Sadri twierdzą, że z powodu działania w systemach produkcyjnych są rozumiane jako imperatywów, systemy produkcyjne nie mają logicznej semantyki. Ich logika i język komputerowy Logic Production System (LPS) łączy programy logiczne, interpretowanych jako przekonań danej agenta, z reaktywnymi zasad interpretowane jako cele wykonania agenta. Twierdzą oni, że reaktywne przepisy LPS dać logicznej semantyki do zasad produkcji, których brakuje im w inny sposób. W kolejnym przykładzie, linie 1-3 są zgłoszeń typu 4 opisuje stan początkowy, 5 jest reaktywna zasada, 6-7 klauzule programu sterującego, a 8 jest prawo przyczynowy:

1. fluents     fire.
2. actions     eliminate, escape.
3. events      deal_with_fire.
4. initially   fire.
5. if          fire then deal_with_fire.
6.                       deal_with_fire if  eliminate.
7.                       deal_with_fire if  escape.
8. eliminate  terminates fire.

Zauważ, że w tym przykładzie reaktywna zasada na linii 5 jest wyzwalane, podobnie jak reguły produkcji, ale tym razem jego konkluzja deal_with_fire staje się celem mają być zredukowane do celów cząstkowych używania programów logicznych na liniach 6-7. Te subgoals są działania (linia 2), z których co najmniej jeden musi być wykonana, aby spełnić cel.

systemy związane

  • Przepisy ograniczające Podnośniki : język programowania oparty na regułach.
  • Corticon : system zarządzania zasada biznesu.
  • CLIPS : narzędzie do domeny publicznej dla budowy systemów eksperckich.
  • JBoss Drools : system zarządzania reguła biznesowa open-source (BRMS).
  • DTRules : decyzja stołowy na bazie otwartych źródeł silnik reguła Java.
  • Gandalf : silnik decyzja open-source (GPL).
  • ILOG zasady : system zarządzania regułami biznesowymi.
  • JESS : silnik reguła dla platformy Java - jest rozszerzeniem z CLIPS język programowania.
  • Lisa : silnik reguła napisane w Common Lisp.
  • LPS : Logika systemu produkcyjnego - ujednolicenie zarówno wnioskowanie w przód iw tył (BSD-3)
  • OpenL Tabletki : reguł biznesowych centric i BRM open source.
  • Prolog : język programowania logicznego ogólnego przeznaczenia.
  • Szybować , OpenCog : architektur poznawczych opartych na systemie produkcyjnym.

Referencje

  • Brownston, L. Farrell R. Kant E. (1985). Programowanie systemów eksperckich w OPS5 Reading, Massachusetts: Addison-Wesley. ISBN  0-201-10647-7
  • Klahr D., Langley, P. i Neches, R. (1987). Modele systemu produkcyjnego uczenia się i rozwoju . Cambridge, Mass .: The MIT Press.
  • Kowalski, R. i Sadri, F. (2016). Programowanie w logice bez programowania logicznego . Teoria i praktyka Logic Programming, 16 (3), 269-295.
  • Russell, SJ i Norvig, P. (2016). Sztuczna inteligencja: nowoczesne podejście . Pearson Education Limited.
  • Shapiro, S. (2001). Przegląd reprezentacji wiedzy: logiczny, filozoficzny i obliczeniowe fundamenty . Lingwistyka, 2 (2), 286-294
  • Sowa, JF (2000). Reprezentacja wiedzy: logicznych, filozoficznych i obliczeniowe fundamenty (Vol. 13). Pacific Grove, CA: Brooks / Cole.
  • Waterman DA Hayes Roth, F. (1978). Wzór-Directed Wnioskowanie Systems New York: Academic Press. ISBN  0-12-737550-3

Zobacz też