Produktionssystem (datavetenskap)
Ett "produktionssystem" (eller "produktionsregelsystem") är ett datorprogram som vanligtvis används för att tillhandahålla någon form av artificiell intelligens, som i första hand består av en uppsättning regler om beteende men det inkluderar också den mekanism som är nödvändig för att följa dessa regler som systemet svarar på världens stater [ citat behövs ] . Dessa regler, kallade produktioner , är en grundläggande representation som är användbar i automatiserad planering , expertsystem och åtgärdsval .
Produktioner består av två delar: en sensorisk förutsättning (eller "OM" uttalande) och en handling (eller "DÅ"). Om en produktionsförutsättning matchar världens nuvarande tillstånd , sägs produktionen utlösas . Om en produktions handling utförs sägs den ha avfyrat . Ett produktionssystem innehåller också en databas, ibland kallad arbetsminne , som upprätthåller data om aktuellt tillstånd eller kunskap, och en regeltolkare. Regeltolken måste tillhandahålla en mekanism för att prioritera produktioner när mer än en utlöses. [ citat behövs ]
Grundläggande drift
Regeltolkare utför i allmänhet en framåtkedjealgoritm för att välja produktioner att köra för att uppfylla nuvarande mål, vilket kan inkludera uppdatering av systemets data eller övertygelser . Villkorsdelen av varje regel ( vänster sida eller LHS) testas mot det aktuella tillståndet för arbetsminnet.
I idealiserade eller dataorienterade produktionssystem finns det ett antagande att alla utlösta tillstånd bör utföras: de efterföljande åtgärderna ( höger sida eller RHS) kommer att uppdatera agentens kunskap, ta bort eller lägga till data till arbetsminnet. Systemet slutar bearbeta antingen när användaren avbryter den framåtriktade kedjan; när ett givet antal cykler har utförts; när ett "stopp" RHS exekveras, eller när inga regler har LHS som är sanna.
Realtids- och expertsystem måste däremot ofta välja mellan ömsesidigt uteslutande produktioner --- eftersom åtgärder tar tid kan endast en åtgärd vidtas, eller (i fallet med ett expertsystem) rekommenderas. I sådana system går regeltolkaren, eller slutledningsmotorn , genom två steg: matchning av produktionsregler mot databasen, följt av att välja vilka av de matchade reglerna som ska tillämpas och de valda åtgärderna exekveras.
Matcha produktionsregler mot arbetsminne
Produktionssystem kan variera beroende på villkorens uttryckskraft i produktionsreglerna. Följaktligen mönstermatchningsalgoritmen som samlar in produktionsregler med matchade villkor sträcka sig från det naiva – att pröva alla regler i sekvens, att stanna vid den första matchningen – till den optimerade, där regler "kompileras" till ett nätverk av inbördes relaterade villkor .
Det senare illustreras av RETE-algoritmen , designad av Charles L. Forgy 1974, som används i en serie produktionssystem, kallade OPS och ursprungligen utvecklade vid Carnegie Mellon University som kulminerade i OPS5 i början av åttiotalet. OPS5 kan ses som ett fullfjädrat programmeringsspråk för programmering av produktionssystem.
Att välja vilka regler som ska utvärderas
Produktionssystem kan också skilja sig åt i det slutliga urvalet av produktionsregler som ska utföras, eller brand . Samlingen av regler som härrör från den tidigare matchningsalgoritmen kallas konfliktuppsättningen, och urvalsprocessen kallas också en konfliktlösningsstrategi .
Även här kan sådana strategier skilja sig från de enkla – använd den ordning i vilken produktionsreglerna skrevs; tilldela vikter eller prioriteringar till produktionsregler och sortera konfliktuppsättningen i enlighet med det - till komplexet - sortera konfliktuppsättningen efter tidpunkterna då produktionsregler tidigare avfyrades; eller i enlighet med omfattningen av de ändringar som induceras av deras RHS. Vilken konfliktlösningsstrategi som än implementeras är metoden verkligen avgörande för effektiviteten och korrektheten i produktionssystemet. Vissa system aktiverar helt enkelt alla matchande produktioner.
Använda produktionssystem
Användningen av produktionssystem varierar från enkla regler för omskrivning av strängar till modellering av mänskliga kognitiva processer, från termomskrivning och reduktionssystem till expertsystem .
Ett enkelt exempel på produktionssystem för omskrivning av strängar
Det här exemplet visar en uppsättning produktionsregler för att vända en sträng från ett alfabet som inte innehåller symbolerna "$" och "*" (som används som markörsymboler).
P1: $$ -> * P2: *$ -> * P3: *x -> x* P4: * -> null & halt P5: $xy -> y$x P6: null -> $
I detta exempel väljs produktionsregler för testning enligt deras ordning i denna produktionslista. För varje regel undersöks inmatningssträngen från vänster till höger med ett rörligt fönster för att hitta en matchning med produktionsregelns LHS. När en matchning hittas ersätts den matchade delsträngen i inmatningssträngen med produktionsregelns RHS. I detta produktionssystem är x och y variabler som matchar alla tecken i inmatningssträngalfabetet. Matchningen återupptas med P1 när ersättningen har gjorts.
Strängen "ABC", till exempel, genomgår följande sekvens av transformationer under dessa produktionsregler:
$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)
I ett så enkelt system är ordningen av produktionsreglerna avgörande. Ofta gör bristen på kontrollstruktur produktionssystem svåra att designa. Det är naturligtvis möjligt att lägga till styrstruktur till produktionssystemmodellen, nämligen i inferensmotorn eller i arbetsminnet.
Ett exempel på produktionsregel för OPS5
I en leksakssimuleringsvärld där en apa i ett rum kan ta tag i olika föremål och klättra på andra, skulle en exempelproduktionsregel för att ta tag i ett föremål som hänger i taket se ut så här:
(p Holds::Object-Ceiling {(mål ^status aktiv ^typ håller ^objid ) } {(fysiskt objekt ^id ^vikt lätt ^at ^i taket) } {(fysiskt objekt ^id stege ^at ^på golvet) } {(apa ^på stege ^håller NIL) } -(fysiskt-objekt ^på ) --> (skriv (crlf) Ta tag (crlf)) (ändra ^på NIL) (ändra ^håller ) (ändra ^status nöjd) )
I det här exemplet är data i arbetsminnet strukturerad och variabler visas mellan vinkelparenteser. Namnet på datastrukturen, såsom "mål" och "fysiskt objekt", är den första bokstavliga i förhållanden; fälten i en struktur har prefixet "^". "-" indikerar ett negativt tillstånd.
Produktionsregler i OPS5 gäller för alla instanser av datastrukturer som matchar villkor och överensstämmer med variabla bindningar. I det här exemplet, om flera objekt skulle hängas upp i taket, var och en med en annan stege i närheten som stödjer en tomhänt apa, skulle konfliktuppsättningen innehålla lika många produktionsregelinstanser härledda från samma produktion "Holds::Object-Ceiling". Konfliktlösningssteget skulle senare välja vilka produktionsinstanser som skulle avfyras.
Bindningen av variabler som härrör från mönstermatchningen i LHS används i RHS för att referera till data som ska modifieras. Arbetsminnet innehåller explicita styrstrukturdata i form av "mål"-datastrukturinstanser. I exemplet, när en apa väl håller i det suspenderade objektet, är statusen för målet satt till "nöjd" och samma produktionsregel kan inte längre tillämpas eftersom dess första villkor misslyckas.
Förhållande till logik
Både Russell och Norvigs Introduction to Artificial Intelligence och John Sowas Knowledge Representation: Logical, Philosophical, and Computational Foundations karakteriserar produktionssystem som logiska system som utför resonemang med hjälp av framåtkedja. Stuart Shapiro, som recenserar Sowas bok, hävdar dock att detta är en felaktig framställning. [ citat behövs ] På liknande sätt hävdar Kowalski och Sadri att, eftersom handlingar i produktionssystem förstås som imperativ, har produktionssystem inte en logisk semantik. Deras logik och datorspråk Logic Production System (LPS) kombinerar logikprogram, tolkade som en agents övertygelse, med reaktiva regler, tolkade som en agents mål. De hävdar att reaktiva regler i LPS ger en logisk semantik till produktionsregler, som de annars saknar. I följande exempel är raderna 1-3 typdeklarationer, 4 beskriver initialtillståndet, 5 är en reaktiv regel, 6-7 är logiska programsatser och 8 är en kausal lag:
1. flytande eld. 2. åtgärder eliminera, fly. 3. händelser deal_with_fire. 4. inledningsvis brand. 5. om brand då deal_with_fire. 6. deal_with_fire om eliminera. 7. deal_with_fire om flykt. 8. eliminera avslutar brand.
Lägg märke till i detta exempel att den reaktiva regeln på rad 5 utlöses, precis som en produktionsregel, men den här gången blir dess slutsats deal_with_fire ett mål som ska reduceras till delmål med hjälp av logikprogrammen på rad 6-7. Dessa delmål är åtgärder (rad 2), av vilka minst ett måste utföras för att uppfylla målet.
Relaterade system
- Regler för hantering av begränsningar : regelbaserat programmeringsspråk.
- CLIPS : mjukvaruverktyg för offentlig egendom för att bygga expertsystem.
- JBoss Drools : ett affärsregelhanteringssystem med öppen källkod (BRMS).
- ILOG-regler : ett affärsregelhanteringssystem.
- JESS : en regelmotor för Java-plattformen - det är en superset av programmeringsspråket CLIPS .
- Lisa : en regelmotor skriven i Common Lisp.
- OpenL-surfplattor : affärscentrerade regler och BRMS med öppen källkod.
- Prolog : ett allmänt logiskt programmeringsspråk.
- Soar , OpenCog : kognitiva arkitekturer baserade på ett produktionssystem.
- Brownston, L., Farrell R., Kant E. (1985). Programmeringsexpertsystem i OPS5 Reading, Massachusetts: Addison-Wesley. ISBN 0-201-10647-7
- Klahr, D., Langley, P. och Neches, R. (1987). Produktionssystem Modeller för lärande och utveckling . Cambridge, Mass.: The MIT Press.
- Kowalski, R. och Sadri, F. (2016). Programmering i logik utan logisk programmering . Theory and Practice of Logic Programming, 16(3), 269-295.
- Russell, SJ och Norvig, P. (2016). Artificiell intelligens: ett modernt tillvägagångssätt . Pearson Education Limited.
- Shapiro, S. (2001). Genomgång av Kunskapsrepresentation: logiska, filosofiska och beräkningsgrunder . Computational Linguistics, 2(2), 286-294
- Sowa, JF (2000). Kunskapsrepresentation: logiska, filosofiska och beräkningsgrunder (Vol. 13). Pacific Grove, CA: Brooks/Cole.
- Waterman, DA, Hayes-Roth, F. (1978). Pattern-Directed Inference Systems New York: Academic Press. ISBN 0-12-737550-3
Se även
- Mekanism för val av åtgärd
- Expertsystem
- Learning Classifier System
- Inferensmotor
- L-system
- OPS5
- Produktionsregelrepresentation
- Rete algoritm
- Regelbaserad maskininlärning
- Termomskrivning