STRIPS. En planerares uppbyggnad. Emma Torensjö. Artificiell Intelligens II. Linköpings Universitet HT Emma Torensjö.

Relevanta dokument
Shakey s värld med HTNplanering

Grundläggande logik och modellteori (5DV102)

PROBLEMLÖSNING. ! GPS! Mål medel analys! Problemlösning i programmering. Lars-Erik Janlert 2007

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1.

Övningshäfte 1: Logik och matematikens språk

Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping

Vad behövs för att skapa en tillståndsrymd?

Föreläsning 5. Deduktion

de var svåra att implementera och var väldigt ineffektiva.

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.

Programmering = modellering

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2

Dagens föreläsning Programmering i Lisp Fö 5

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12

729G43 Artificiell intelligens Planering

Tommy Färnqvist, IDA, Linköpings universitet

Varför är logik viktig för datavetare?

Robin Stenwall Lunds universitet

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19

Lektion 8: Konstruktion av semantiska tablåer för PTL-formler

Statistisk mönsterigenkänning

Föreläsning 13. Träd

Grundläggande logik och modellteori

Övningsuppgifter kapitel 8

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer Domäner Tolkningar... 3

A B C D E F A B C D E F (3) Svar: Tabellen ger grafen:

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet

Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar

Karlstads Universitet, Datavetenskap 1

Grundläggande logik och modellteori

Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)

Tentamen: Programutveckling ht 2015

Antag att följande träd genereras i ett spelförande program om vi applicerar evalueringsfunktionen

Algebra I, 1MA004. Lektionsplanering

Grundläggande logik och modellteori

DD1350 Logik för dataloger. Vad är logik?

Övningshäfte 2: Induktion och rekursion

Artificiell intelligens

FUZZY LOGIC. Christopher Palm chrpa087

Robin Stenwall Lunds universitet

Logik och kontrollstrukturer

Föreläsning 9: NP-fullständighet

Objektorienterad programmering

Algoritmer, datastrukturer och komplexitet

Föreläsning 8: Intro till Komplexitetsteori

FÖRELÄSNING 8 ANDERS MÄRAK LEFFLER IDA/HCS

Filosofisk logik Kapitel 19. Robin Stenwall Lunds universitet

K2 Något om modeller, kompakthetssatsen

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18

729G11 Artificiell Intelligens Marcus Johansson Marjo581. Fuzzy logic. Marcus Johansson Marjo581

i LabVIEW. Några programmeringstekniska grundbegrepp

DD1361 Programmeringsparadigm HT17

Laboration 1: Figurer i hierarki

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

Grundläggande logik och modellteori

Fuzzy Logic Linköpings Universitet

Semantik och pragmatik (Serie 4)

Grunderna i stegkodsprogrammering

Tentamen i. TDDC67 Funktionell programmering och Lisp

(N) och mängden av heltal (Z); objekten i en mängd behöver dock inte vara tal. De objekt som ingår i en mängd kallas för mängdens element.

TDDC74 Programmering, abstraktion och modellering DUGGA 2

Algoritmer, datastrukturer och komplexitet

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Axiom för de reella talen

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik

Uppgift 1 ( Betyg 3 uppgift )

NKRR. Regelskrivning i praktiken

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Algoritmer, datastrukturer och komplexitet

Centrala begrepp i prolog och logikprogrammering. Annamaris lista

Fuzzy Logic: Den oskarpa skarpheten

TATA42: Föreläsning 8 Linjära differentialekvationer av högre ordning

I kursen i endimensionell analys är mängden av reella tal (eng. real number), R, fundamental.

Formell logik Kapitel 9. Robin Stenwall Lunds universitet

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska ni kunna?

Programmering II (ID1019)

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Algoritmer, datastrukturer och komplexitet

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Tommy Färnqvist, IDA, Linköpings universitet. 1 Kursadministration 1. 2 Introduktion Varför logik? Satslogik... 2

Artificial Intelligence

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)

int iarray[]= new int[3]; // deklarera ett heltalsfält med tre heltal int jarray[]={ 1, 3, 5, 7, 9, 11, 13, 15}; // initierat fält 8 element

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

7, Diskreta strukturer

Semantik och pragmatik

Filosofisk logik Kapitel 15 (forts.) Robin Stenwall Lunds universitet

HKGBB0, Artificiell intelligens

TANA17 Matematiska beräkningar med Matlab

Kompletteringsmaterial. K2 Något om modeller, kompakthetssatsen

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Träd och koder. Anders Björner KTH

K3 Om andra ordningens predikatlogik

Mängdlära. Kapitel Mängder

Algebraiska egenskaper hos R n i)u + v = v + U

Transkript:

STRIPS En planerares uppbyggnad Artificiell Intelligens II Linköpings Universitet HT 2012

Innehållsförteckning Innehåll Innehållsförteckning... 3 Inledning... 4 1. Introduktion till STRIPS... 4 2. Operatorbeskrivning och applikationer... 6 2.1 Add- och delete list... 7 3. The operation of STRIPS... 8 3.1 Resolution... 9 3.2 Verkställandet av STRIPS... 10 Avslut... 14 Referenser... 15

Inledning Namnet STRIPS är en förkortning av Stanford Research Institute Problem Solver och är som nanmet antyder ett problemlösande program. Programmet utvecklades ursprungligen för att implementeras i programspråket LISP för att användas vid pågående robotforskning, forskning som till slut resulterade i den första logiska målbaserade agenten, roboten Shakey. STRIPS kunde producera för Shakey en lista med de handlingar som skulle utföras för att uppfylla de mål som givits. Den process som STRIPS använder sig av för att tillslut kunna presentera listan med handlingar för Shakey använde sig av var ny och snabbare än tidigare problemlösare. Den här rapporten kommer att steg för steg gå igenom de olika operatorer och processer som STRIPS är uppbyggd av, samt hur dessa tillslut fungerar i ett flöde och, förhoppningsvis, finner en lösning på problemet som den ställts inför. 1. Introduktion till STRIPS Syftet med STRIPS är att finna en lösning till ett givet problem i en rymd av world models. För att finna denna lösning genomförs en sökning i rymden av world models för att identifiera en modell där målformuleringen är uppnådd. För att planeraren ska generera en lista med handlingar som kan omvandla en world model till en annan måste det finnas operatorer som kan tillåta omvandligen mellan world models. STRIPS generella uppgift är att hitta den sammansättning av operatorer i en world model som omvandlar den ursprungliga modellen till en modell där målformuleringar är uppfyllda i enighet med målformuleringen. Figur 1. Enkel illustration över en world model övergår till en ny world model STRIPS använder sig av både trädsökning och deduktion för att uppfylla de mål som satts. Hur detta går till exakt kommer att beskrivas i kommande avsnitt. Till att börja med kommer den generella strategin samt de operatorer och dess instanser som STRIPS är uppbyggt av att presenteras.

Ett problem som STRIPS måste kunna hantera är det format som dess world models är representerade i. Detta format måste vara kompatibelt med både den deduktion och den sökprocess som STRIPS involverar. Genom att representera en world model som även är kompatibel med de då ledande datorprogrammen, lät man modellen utformas som formalistiska antaganden i första ordningens predikatlogik. Genom att representera en world model som logiska antaganden möjliggörs den deduktiva processen.. Detta system tillåter den deduktion som beskrevs tidigare att genomföras. Det teorembivisande system som STRIPS använder sig av är QA3, och kommer hädanefter att refereras till med det namnet. För att målformuleringarna ska kunna bevisas som sanna måste även dessa representeras så att QA3 kan genomföra en deduktion. Det görs genom att målformuleringarna representeras i en form som är kompatibel med QA3s deduktionsprocess. Denna form är av första ordningens predikat calculus well formed formulas, hädanefter refererade till som wffs. Nedan visas ett exempel på ett wffs för målformuleringen flytta en låda till position b. ( u)[box(u) AT(u, b)] STRIPS använder sig dock inte enbart utav logisk deduktion för att verifiera sina antaganden, utan även ett sökträd av dess world models genom en sökprocess som kan liknas med General Problem Solver. Genom denna kombination tillåts de modeller som representeras att vara mer komplexa och generella än vad tidigare var möjligt att implementera i en GPS. För att djupare kunna beskriva hur GPS fungerar inom STRIPS, måste vi först titta på hur de olika operatorerna är uppbyggda.

2. Operatorbeskrivning och applikationer En lösning från en avslutad planering består av en sekvens av operatorer. Operatorerna är de grundläggande elementen i en genererad lösning. Det en operator representerar är inte ett egentligt agerande. Operatorerna beskriver istället den förändring som sker på en aktuell world model under tiden som planeringen genomförs. Varje operator har associerade rutiner. Rutinerna är de faktiska handlingarna som operatorn endast beskriver. Operatorerna är en del av problemlösningen när en world model genererats och målformuleringen försöker verifieras mot den. Operatorerna har i sin tur tilldelade parametrar som måste vara beskrivna i problemlösaren. Dessa operatorbeskrivningar är i STRIPS uppbyggda av tre huvudsakliga komponenter: I. Namnet på operatorn och dess parametrar II. Preconditions III. Effekt Den första komponenten består enbart av namnet på operatorn och dess parametrar. Den andra är en formel formulerad i första ordningens logik som möjliggör för operatorn att appliceras i en world model där precondition är det sista steget i en härledning ur ett formellt system. Exempelvis kan en godtycklig operator goto(u,x,y) vilken motsvarar ett objekt, x som förflyttar sig från position y till position z kunna ha följande precontiotions: ( x, u)[at(u, x) ATR(x)] ATR(x) beskriver objektet x nya position. Den sista komponenten beskriver effekten av ett set av wffs när operatorn appliceras. Processen som sker när operatorn appliceras på wff och beräknar effekten är en av huvudpelarna inom STRIPS. Det som sker när en operator appliceras, är att de påverkade wffs i olika world models inte längre kan konstateras vara sanna eller falska, utan i det här stadiet kan deras värde endast betraktas som osäkert. För att kunna beräkna lösningen på en world model utifrån en annan world model behövs någon form av addering av några wffs och radering av några av wffs. Till exempel kan vi tänka att en wffs som ska läggas till är, om vi använder exemplet ovan, objektets x nya position medan en wffs som ska raderas är objektet x ursprungliga position. Dessa procedurer utförs genom två listor; en kallad delete list och en kallas add list. Dessa procedurer behöver en närmare beskrivning.

2.1 Add- och delete list De set av wffs som ska adderas till den nya world model beror på de resultat som framkommit av operatorns applicering. Dessa resultat är inte specificerade tills det att alla parametrar av den rutin som ska utföras är instanserade av konstanter. Processen kan illustreras på följande sätt. Operatorn goto(u,x,y) modellerar roboten u att förflytta sig från position x till position y, där x och y kan representera vilka godtyckliga positioner som helst. När sedan operatorns rutin har genomförts ska parametrarna x och y bli instanserade av konstanter. STRIPS har även möjlighet att hantera att en operator kan appliceras till en world model med en, flera eller alla av operatorns parametrar ospecificerade. För till exempel operatorn goto(u,a,z) där a är en konstant medan z är en ospecificerad parameter, kommer den resulterande world model även den vara ospecificerad. Appliceringen av goto(u,a,z) resulterar på så vis i ett träd av olika world models parametriserade av z. Att genomföra en sökning i detta träd ökar effektiviteten hos STRIPS i jämförelse till att genomföra en sökning i den större rymden av individuella world models som i en vanlig trädsökning. För att kunna dra nytta av den reducerade storleken på sökrymden måste alla de träd av world models som resulteras från applikationen av en operator med fria parametrar kunna beskrivas med ett set av wffs. Detta görs genom att lägga till operatorn goto(u,a,x) på en godtycklig world model, S 0. Vår operator kommer då att skrivas på följande sätt: ( x)( s)atr(x, s) Här beskrivs att för alla parametrar med värdet x, existerar det en world model där vårt objekt befinner sig på position x. Genom att använda uttryck formulerade på det här sättet, kan vi med ett set av wffs beskriva hela det träd av world models som vi tidigare genererat. Dock är vi inte färdiga med arbetet med wffs, STRIPS använder sig av ett resolutionsbaserad teorembevisande vilket medför att vi måste skriva om en formel till en sats på följande vis: ATR(x, goto (a, x, s )) Här är som en funktion av x som ersätter kvantifieraren. Värdet av funktionen för vilket x som helst är den world model producerad genom just appliceringen av operatorn goto(u,a,x) på world model S 0. Det är dessa satser som ska läggas till när en ny world model ska beräknas. De är i sin tur representerade i en lista som finns i varje operators beskrivning i STRIPS. Det är denna lista som är STRIPS add-list. Operatorbeskrivningarna innehåller även information om vilka satser som inte längre kan antas vara sanna och måste raderas innan konstruktionen

av den nya world model. För att illustrera ett exempel så fungerar det på följande vis; om operatorn goto(u,a,y) appliceras måste alla satser som innehåller predikatet ATR(a). Som med add-list, så innehåller även varje operatorbeskrivning en lista med predikat för radering, kallad delete-list. Add- och delete list bidrar till att regeln för skapandet av nya world models i STRIPS är uppfylld, att radera de satser som innehåller predikat som är instanser från predikat i deletelist. 3. The operation of STRIPS I ett simpelt problemlösande system skulle målformuleringen uppnås genom att låta alla applicerbara operatorer på den ursprungliga world model för att skapa ett set av efterkommande modeller. På dessa modeller skulle sedan operatorerna appliceras och på detta vis via alla de efterföljande set av world models tills det att en av dessa uppfyller att målformuleringen visas vara ett teorem. Detta genomförs med ett teorembevisande system i likhet med QA3. STRIPS är däremot utvecklat för att hantera så pass komplexa system och stort antal operatorer och därför skulle ett sådant enkelt system resultera i stora träd av world models, så stora att systemet skulle bli ineffektivt. STRIPS använder sig av en GPS strategi som kan delas upp i två huvudsakliga steg. Det första steget är en beräkning som plockar ut de skillnader mellan den nuvarande world model och målformuleringen. Det andra steget identifierar de operatorer som är relevanta för att reduceringen av trädstorleken ska kunna genomföras. En world model genereas för att försöka skapa en world model i vilken operatorn är applicerbar. Om en sådan model kan skapas, testas den sedan mot det den ursprungliga målformuleringen. Genom att använda sig av en sådan här strategi genomför STRIPS en kombinerad forward och backward search. Denna flexibilitet medför alltså att en sökning görs från en nod i initial wold model mot målformuleringen samt en sökning från målformuleringen mot en nod i initial world model. Hela den GPS strategi som STRIPS grundar sig i sin tur på en resolutionsbaserad teorembevisare.

3.1 Resolution När resolutionen tar sin början har vi alltså till förfogande ett set av de satser som visar de skillnader mot målformuleringen som vi tidigare producerat. Detta set kan vi kalla S. Vi har även den målformulering vars negation i sin tur är representerad av ett set satser som vi kallar G. Den strategi som ovan beskrivits försöker därefter beräkna de skillnader mellan seten och försöker hitta en kontradiktion för att få setet S G med en resolutionbaserad teorembevisare så som QA3. Om en kontradiktion visar sig existera, uppfattar STRIPS skillnaden mellan de två seten som noll och därmed är målformuleringen tillfredställd i setet S. Enligt denna beräkning fungerar STRIPS utan problem när en kontradiktion kan hittas. Om däremot en kontradiktion inte hittas då QA3 genomförts sker följande. Ett nytt set R bildas av de kvarvarande satserna av set G och dess resolventer, allstå de set av operatorer som uppför sig väl och är avkomman av set G samt är producerade av QA3. Set D, i set R kan ses som en skillnad mellan set S och målformuleringen. På det viset att en world model hittas i vilken en sats ur set D kan bli kontradikterad, så är det troligt givet att den nya world model tillåter en deduktion av satsen i set D, att beviset för målformuleringen kan slutföras i denna model. Figur 2. Visar ett simpelt flödesschema över hur skillnaderna behandlas i set. De skillnader som nämnts skapas genom ett heuristiskt val av delset av set R, där alla delar representerar och agerar en specifik skillnad. Urvalet baseras på antal predikat representerade

som bokstäver samt dess tillhörande argument, på vilken nivå i bevisträdet en sats var genererad och huruvida en sats har eller inte har någon avkomma i bevisträdet. Sökandet efter de relevanta operatorerna fortsätter med två olika steg. I det första steget skapas en lista av de möjliga operatorer för varje enskilt set. Valet av listans operatorer utförs genom en jämförelse mellan satsen i det set som innehåller skillnaderna med add-list operatorbeskrivningarna. Det andra steget innefattar användning av QA3 för att fastställa huruvida satser i en kandiderade operators add-list kan användas för att fortsätta resolutionen, det vill säga fortsätta bevisföringen för vilken av satserna i setet med skillnader som helst. Om QA3 lyckas producera nya resolventer som är avkommor från till satserna i add-list, är den kandiderande operatorn betraktad som en relevant operator för setet med skillnader. För att kunna slutföra proceduren som bestämmer operatorns lämplighetstest bestämer STRIPS vilka av operatorernas instanser som är relevanta. För att illustrera detta kan vi titta på det set med skillnader bestående av satserna ATR(a) och ATR(b)så kommer operatorn goto(x,y) endast vara relevant om y är instanserad av a eller b. Varje ny resolvent som är en avkomma till satserna av operatorns add-list används för att skapa en relevant instans för operatorn genom applicering på operatorns parametrar de samma instanser som gjordes under produktion av resolventen. Effekten av denna reduktionsprocess av skillnader är att den oftast producerar specifika instanser för operatorns parametrar. Dessa instanser är i sin tur troliga att tillslut användas i den slutgiltiga lösningen, vilket i sin tur leder till en reducerad sökning. Vi kan alltså konstatera att STRIPS har förmågan att överväga operatorer som har tendens att instansera just dessa parametrar med vad den anser vara de mest relevanta konstanter. 3.2 Verkställandet av STRIPS I följande del kommer verkställandet av STRIPS att illustreras i hela sin kedja. De tidigare avsnitten kommer här att kopplas samman och visa hur STRIPS fungerar som en enhet med alla dess delmoment. Planeraren börjar med att försöka hitta skillnader mellan den initiala world model, S 0, och den ursprungliga målformuleringen. Om det inte någon skillnad mellan S 0 och målformuleringen, det vill säga om S 0 är det samma som målformuleringen, så är problemet löst. För det mesta så hittas dock en kontradiktion mellan dessa två. Då genererar STRIPS ett set av operatorer med avsikt att minska de skillnader som uppdagats och på så vis närma sig

målformuleringen och på så vis en lösning. Det som händer om STRIPS uppfattar en sådan skillnad är beskrivet i detalj i föregående avsnitt, här kommer händelseförloppet istället illustreras på ett sätt som mer visar hur de olika delmomenten i STRIPS följer på varandra. STRIPS identifierar först två operatorer, OP1 och OP2, båda dessa har bedömts som relevanta för att minska skillnader mellan S 0 och målformuleringen. Operatorernas respektive preconditions benämns PC1 samt PC2. STRIPS kommer att inleda försöket med att minska skillnaderna på följande sätt: I. Skapar en ny world model där OP1 är applicerbar. När operatorn applicerats på modellen, skapas en ny world model där målformuleringen är uppfylld. Om inte målformuleringen kan uppfyllas av att operatorn appliceras sker följande: II. Skapar en ny world model där OP2 är applicerbar. Applicerar operatorn för att sedan skapa en world model där målformuleringen är uppfylld. Sådana lösningsalternativ representeras som tidigare nämnts som noder i ett sökträd. För detta exempel skulle trädet som genererades se ut som följande: (S, (G ) (S, (G G )) (S, (G G )) G 0, G 1 och G 2 representerar de set av satser som motsvarar de negationer av PC1 och PC2. Utifrån trädet utformning görs det tydligt att dess noder är uppbyggda med en struktur som följer en sådan modell: (<world model>,<mållista>). Delmålet som övervägs för en lösning vid varje nod är det första målet på den givna noden mållista. Det sista målet på varje nods lista motsvarar negationen av den ursprungliga målformuleringen. Varje delmål är i sin tur negationen av operatorns preconditions. Denna uppbyggnad av mållistan medför att varje delmål i listan representerar ett försök att applicera en operator som är relevant till att uppnå nästa mål i mållistan. När sedan en ny nod, (S i,(g m,g m-1,,g 1,G 0 )), som är avkomma till en redan existerande nod konstrueras och bygger på sökträdet, testats även denna om den uppfyller målformuleringen. Detta testas genom QA3 som söker som söker efter en kontradiktion i S G. Om en kontradiktion skulle finnas, samt att m är 0, det vill säga att noden är (S i,(g 0 )) så är

huvudmålformuleringen uppfylld i world model S i och problemet har alltså genererats en lösning. Om en kontradiktion hittas men m är inte 0, så är G m negationen av ett precondition formel från en operator som är applicerbar i S i. Om detta skulle vara fallet så producerar STRIPS en ny world model, S i, genom att applicera den operator som svarar mot G m på world model S i. Noden kommer då få ett nytt värde, (S i,(g m-1,,g 1,G 0 )). Processen av att ändra noden på detta vis fortsätter tills det att ett mål hittas som inte är uppfyllt eller tills det att problemet löses. Om ingen kontradiktion hittas i testet för att uppfylla målet, kommer QA3 att returnera ett set R bestående av satser som i sin tur består av satser från G m och resolventer som är avkommor av satser i G m. Detta set av resolventer kommer att fästas vid noden och användas för att generera efterföljare till noden. Processen som sedan ska generera efterföljare till en nod, (S i,(g m,g m-1,,g 1,G 0 )) med setet R fastsat skapar olika set {D i } utifrån R och hittar operatorinstanser relevanta till förminskningen a skillnader. För varje relevant operatorinstans skapas en ny nod som dess avkomma. Denna nod formas efter samma world model och mållista som dess föräldranod. Till den nya noden läggs ett nytt mål till, att hitta en world model där relevanta operatorinstanser kan appliceras. Detta görs genom att skapa den instans av operatorns preconditions som är nödvändiga samt att lägga till dess tillhörande negation på första position i den nya nodens mållista. En komplikation som STRIPS ställs inför är det faktum att antalet relevanta operatorer som ska användas till reduceringen av skillnaderna kan visa sig vara väldigt stort. Detta medför även att i sökträdet kommer den givna noden får ett väldigt stort antal efterföljare. För att förhindra detta använder sig STRIPS, redan innan efterföljarna har genererats, en heuristisk för att ordna dessa med hänsyn till operatorerna och seten med skillnader som användes för att generera dem. STRIPS beräknar enbart den nästkommande efterföljaren som verkar vara bästa anpassad för att förkorta processen av att beräkna efterföljande noder.

Denna nod läggs sedan till i sökträdet, sedan genomförs ett måltest. STRIPS fortsätter sedan processen genom att välja en annan nod från det set av noder som inte ännu har kända efterföljare. För att genomföra detta kopplar STRIPS samman varje nod med det set av skillnader och operatorer som redan har använts i inledningen av processen för att börja skapandet av efterföljarna. I figur 3 nedan visas ett enkelt flödesschema över STRIPS verkställande från början till slut. Figur 3. Flödesschema över STRIPS verkställand.

Avslut Strips är en planerare som kan tackla komplex problemlösning mer effektivt än tidigare problemlösare kunde på sin tid. Det stora och intressanta med STRIPS är att den både använder sig av trädsökning och deduktion i samband med att den tillåter ospecificerade parametrar som resulterar i en world model som kan beskrivas med ett set wffs. Kanske är det så att många problem skulle kunna lösas enklare utan sökmetod som i STRIPS. En lösning skulle kunna finnas relativt lätt med ett skräddarsytt program till just det problemet. Fördelen med att istället använda STRIPS framför ett sådant program, är att STRPS istället representerar programmets delar som relevanta operatorer inom problemlösaren. En sökgenererad synvinkel skulle på dessa problem inom STRIPS upptäcka hur operatorerna, istället för deras specialskrivna lösningar, tillsammans skulle kunna kopplas ihop till en sekvens med handlingar för att kunna lösa mer komplexa problem. Tillsammans med den reducerade sökrymden är STRIPS en mycket effektiv planerare som bidrog mycket till den tidiga utvecklingen av Artificiell Intelligens.

Referenser Nilsson, Nils J., Fikes, Richard E. STRIPS: A new approach to the application of theorem proving to problem solving Artificial Intelligence Group, Technical Note 43, SRI Project 8259 (1970) Nilsson, Nils J. Problem-solving Methodes in Artificial Intelligence McGraw-Hill Book Company (1971) Russel, S & Norvig,P Artificial Intelligence, A Modern Approach 2:nd edition (2003)