Stabil modellsemantik

Konceptet med en stabil modell , eller svarsuppsättning , används för att definiera en deklarativ semantik för logikprogram med negation som misslyckande . Detta är en av flera standardmetoder för betydelsen av negation i logisk programmering, tillsammans med programslutförande och den välgrundade semantiken . Den stabila modellens semantik är grunden för programmering av svarsuppsättningar .

Motivering

Forskning om den deklarativa semantiken för negation i logisk programmering motiverades av det faktum att beteendet hos SLDNF- upplösning – generaliseringen av SLD-upplösning som används av Prolog i närvaro av negation i regelsamlingarna – inte helt matchar sanningstabellerna som är bekanta från klassisk propositionell logik . Tänk till exempel på programmet

Givet detta program kommer frågan p att lyckas, eftersom programmet inkluderar p som ett faktum; frågan q kommer att misslyckas, eftersom den inte förekommer i huvudet på någon av reglerna. Frågan r kommer också att misslyckas, eftersom den enda regeln med r i huvudet innehåller delmålet q i sin kropp; som vi har sett misslyckas det delmålet. Slutligen, frågan s lyckas, eftersom vart och ett av delmålen p , lyckas. (Det senare lyckas eftersom det motsvarande positiva målet q misslyckas.) Sammanfattningsvis kan beteendet hos SLDNF-upplösning på det givna programmet representeras av följande sanningsuppgift:

sid q r s
T F F T .

Å andra sidan kan reglerna för det givna programmet ses som propositionsformler om vi identifierar kommatecken med konjunktion , symbolen med negation , och samtycker till att behandla som implikationen skriven baklänges. Till exempel är den sista regeln i det givna programmet, ur denna synvinkel, alternativ notation för propositionsformeln

Om vi ​​beräknar sanningsvärdena för programmets regler för sanningsuppgiften som visas ovan kommer vi att se att varje regel får värdet T . Det uppdraget är med andra ord en modell av programmet. Men detta program har också andra modeller, till exempel

sid q r s
T T T F .

Således är en av modellerna för det givna programmet speciell i den meningen att den korrekt representerar beteendet hos SLDNF-upplösning. Vilka är de matematiska egenskaperna hos den modellen som gör den speciell? Ett svar på denna fråga tillhandahålls av definitionen av en stabil modell.

Relation till icke-monotonisk logik

Betydelsen av negation i logikprogram är nära besläktad med två teorier om icke-monotona resonemang - autoepistemisk logik och standardlogik . Upptäckten av dessa samband var ett nyckelsteg mot uppfinningen av den stabila modellens semantik.

Syntaxen för autoepistemisk logik använder en modal operator som tillåter oss att skilja mellan vad som är sant och vad man tror. Michael Gelfond [1987] föreslog att läsa i en regel eftersom " inte tros", och att förstå en regel med negation som motsvarande formel för autoepistemisk logik. Den stabila modellsemantiken, i sin grundläggande form, kan ses som en omformulering av denna idé som undviker explicita referenser till autoepistemisk logik.

I standardlogik liknar en standard en inferensregel , förutom att den innehåller, förutom sina premisser och slutsatser, en lista med formler som kallas motiveringar. En standard kan användas för att dra sin slutsats under antagandet att dess motiveringar är förenliga med vad man för närvarande tror. Nicole Bidoit och Christine Froidevaux [1987] föreslog att negerade atomer i reglerna skulle behandlas som motiveringar. Till exempel regeln

kan förstås som standarden som tillåter oss att härleda från förutsatt att är konsekvent. Den stabila modellens semantik använder samma idé, men den hänvisar inte uttryckligen till standardlogik.

Stabila modeller

Definitionen av en stabil modell nedan, återgiven från [Gelfond och Lifschitz, 1988], använder två konventioner. Först identifieras en sanningsuppgift med den mängd atomer som får värdet T . Till exempel sanningsuppdraget

sid q r s
T F F T .

identifieras med mängden . Denna konvention tillåter oss att använda den fastställda inklusionsrelationen för att jämföra sanningsuppdrag med varandra. Den minsta av alla sanningstilldelningar är den som gör varje atom falsk; det största sanningsuppdraget gör varje atom sann.

För det andra ses ett logikprogram med variabler som en förkortning för uppsättningen av alla grundinstanser av dess regler, det vill säga resultatet av att variabelfria termer ersätts med variabler i programmets regler på alla möjliga sätt. Till exempel den logiska programmeringsdefinitionen av jämna tal

tolkas som resultatet av att X i detta program ersätts med grundvillkoren

på alla möjliga sätt. Resultatet är det oändliga markprogrammet

Definition

Låt P vara en uppsättning regler för formen

där är malda atomer. Om P inte innehåller negation ( i varje regel i programmet) så är, per definition, den enda stabila modellen av P dess modell som är minimal i förhållande till setinkludering. (Varje program utan negation har exakt en minimal modell.) För att utvidga denna definition till fallet med program med negation behöver vi hjälpkonceptet för reduktion, definierat enligt följande.

För varje uppsättning I av markatomer är reduktionen av P relativt I den uppsättning regler utan negation som erhålls från P genom att först släppa varje regel så att minst en av atomerna i dess kropp

tillhör I , och sedan släpper delarna från kropparna i alla återstående regler.

Vi säger att I är en stabil modell av P om I är den stabila modellen av reduktionen av P relativt I . (Eftersom reduktionen inte innehåller negation, har dess stabila modell redan definierats.) Som termen "stabil modell" antyder, är varje stabil modell av P en modell av P .

Exempel

För att illustrera dessa definitioner, låt oss kontrollera att är en stabil modell av programmet

Reduktionen av detta program i förhållande till är

(Faktiskt, eftersom , erhålls reduktionen från programmet genom att släppa delen ) Den stabila modellen av redukten är . (Faktiskt, denna uppsättning atomer uppfyller alla regler för redukten, och den har inga riktiga delmängder med samma egenskap.) Efter ha beräknat den stabila modellen av redukten kom vi alltså fram till samma mängd { p , s som vi började med. Följaktligen är den uppsättningen en stabil modell.

Att på samma sätt kontrollera de andra 15 uppsättningarna som består av atomerna visar att detta program inte har några andra stabila modeller. Till exempel är reduktionen av programmet i förhållande till

Den stabila modellen av redukten är , vilket skiljer sig från mängden som vi började med .

Program utan en unik stabil modell

Ett program med negation kan ha många stabila modeller eller inga stabila modeller. Till exempel programmet

har två stabila modeller , . Enregelprogrammet

har inga stabila modeller.

Om vi ​​tänker på den stabila modellens semantik som en beskrivning av beteendet hos Prolog i närvaro av negation så kan program utan en unik stabil modell bedömas som otillfredsställande: de ger inte en entydig specifikation för prolog-liknande frågesvar. Till exempel är de två programmen ovan inte rimliga eftersom Prolog-program – SLDNF-upplösning avslutas inte på dem.

Men användningen av stabila modeller i svarsuppsättningsprogrammering ger ett annat perspektiv på sådana program. I det programmeringsparadigmet representeras ett givet sökproblem av ett logikprogram så att programmets stabila modeller motsvarar lösningar. Då motsvarar program med många stabila modeller problem med många lösningar, och program utan stabila modeller motsvarar olösliga problem. Till exempel pusslet med åtta drottningar 92 lösningar; för att lösa det med svarsuppsättningsprogrammering kodar vi det med ett logikprogram med 92 stabila modeller. Ur denna synvinkel är logikprogram med exakt en stabil modell ganska speciella i svarsuppsättningsprogrammering, som polynom med exakt en rot i algebra.

Egenskaper för den stabila modellens semantik

I det här avsnittet, liksom i definitionen av en stabil modell ovan, menar vi med ett logikprogram en uppsättning regler av formen

där är malda atomer.

Huvudatomer
Om en atom A tillhör en stabil modell av ett logiskt program P så är A huvudet för en av reglerna för P .
Minimalitet
Varje stabil modell av ett logikprogram P är minimal bland modellerna av P i förhållande till uppsättningsinkludering.
Antikedjeegenskapen
Om I och J är stabila modeller av samma logikprogram så är I inte en riktig delmängd av J . Med andra ord är uppsättningen av stabila modeller av ett program en antikedja .
NP-fullständighet
Att testa om ett ändligt jordlogikprogram har en stabil modell är NP-komplett .

Relation till andra teorier om negation som misslyckande

Slutförande av programmet

Varje stabil modell av ett ändligt markprogram är inte bara en modell av själva programmet, utan också en modell av dess slutförande [Marek och Subrahmanian, 1989]. Det omvända är dock inte sant. Till exempel slutförandet av enregelprogrammet

är tautologin . Modellen av denna tautologi är en stabil modell av , men dess andra modell är det inte. François Fages [1994] fann ett syntaktisk tillstånd på logikprogram som eliminerar sådana motexempel och garanterar stabiliteten för varje modell av programmets slutförande. De program som tillfredsställer hans tillstånd kallas tight .

Fangzhen Lin och Yuting Zhao [2004] visade hur man kan göra slutförandet av ett icke-tight program starkare så att alla dess instabila modeller kommer att elimineras. De ytterligare formlerna som de lägger till i kompletteringen kallas loopformler .

Välgrundad semantik

Den välgrundade modellen av ett logikprogram delar upp alla jordatomer i tre uppsättningar: sant, falskt och okänt. Om en atom är sann i den välgrundade modellen av så tillhör den varje stabil modell av . Det omvända håller i allmänhet inte. Till exempel programmet

har två stabila modeller, och . Även om tillhör dem båda är dess värde i den välgrundade modellen okänt .

Dessutom, om en atom är falsk i den välgrundade modellen av ett program så tillhör den inte någon av dess stabila modeller. Således ger den välgrundade modellen av ett logikprogram en nedre gräns för skärningspunkten mellan dess stabila modeller och en övre gräns för deras förening.

Stark negation

Representerar ofullständig information

kunskapsrepresentationens perspektiv kan en uppsättning markatomer ses som en beskrivning av ett fullständigt kunskapstillstånd: de atomer som hör till mängden är kända för att vara sanna, och de atomer som inte hör till mängden är känd för att vara falsk. Ett möjligen ofullständigt kunskapstillstånd kan beskrivas med hjälp av en konsekvent men möjligen ofullständig uppsättning bokstavsord; om en atom inte tillhör mängden och dess negation inte heller tillhör mängden så är det inte känt om är sant eller falskt.

I samband med logisk programmering leder denna idé till behovet av att skilja mellan två typer av negation — negation som misslyckande , diskuterad ovan, och stark negation , som här betecknas med . Följande exempel, som illustrerar skillnaden mellan de två typerna av negation, tillhör John McCarthy . En skolbuss får korsa järnvägsspår under förutsättning att det inte finns något tåg som närmar sig. Om vi ​​inte nödvändigtvis vet om ett tåg närmar sig så är regeln att använda negation som misslyckande

är inte en adekvat representation av denna idé: den säger att det är okej att korsa i avsaknad av information om ett annalkande tåg. Den svagare regeln, som använder stark negation i kroppen, är att föredra:

Det står att det är okej att gå över om vi vet att inget tåg närmar sig.

Sammanhängande stabila modeller

För att införliva stark negation i teorin om stabila modeller tillät Gelfond och Lifschitz [1991] vart och ett av uttrycken , C i en regel

att vara antingen en atom eller en atom med den starka negationssymbolen som prefix. Istället för stabila modeller använder denna generalisering svarsuppsättningar , som kan inkludera både atomer och atomer med prefix med stark negation.

Ett alternativt tillvägagångssätt [Ferraris och Lifschitz, 2005] behandlar stark negation som en del av en atom, och det kräver inga förändringar i definitionen av en stabil modell. I denna teori om stark negation skiljer vi mellan atomer av två slag, positiva och negativa , och antar att varje negativ atom är ett uttryck för formen där är en positiv atom. En uppsättning atomer kallas koherenta om den inte innehåller "komplementära" par av atomer . Koherenta stabila modeller av ett program är identiska med dess konsekventa svarsuppsättningar i betydelsen av [Gelfond och Lifschitz, 1991].

Till exempel programmet

har två stabila modeller, och . Den första modellen är sammanhängande; den andra är det inte, eftersom den innehåller både atomen och atomen .

Stängt världsantagande

Enligt [Gelfond och Lifschitz, 1991] kan det slutna världsantagandet för ett predikat uttryckas med regeln

(relationen gäller inte för en tuppel om det inte finns några bevis för att det gör det). Till exempel den stabila modellen av programmet

består av 2 positiva atomer

och 14 negativa atomer

dvs de starka negationerna av alla andra positiva markatomer bildade av .

Ett logikprogram med stark negation kan inkludera antagandereglerna för den slutna världen för några av dess predikat och lämna de andra predikaten i det öppna världsantagandets område .

Program med begränsningar

Den stabila modellsemantiken har generaliserats till många typer av logikprogram andra än samlingar av "traditionella" regler som diskuterats ovan - regler i formen

där är atomer. En enkel tillägg tillåter program att innehålla begränsningar - regler med det tomma huvudet:

Kom ihåg att en traditionell regel kan ses som alternativ notation för en propositionsformel om vi identifierar kommatecken med konjunktion , symbolen med negation , och samtycker till att behandla som implikationen skriven baklänges. För att utvidga denna konvention till begränsningar identifierar vi en begränsning med negationen av formeln som motsvarar dess kropp:

Vi kan nu utöka definitionen av en stabil modell till program med begränsningar. Som i fallet med traditionella program börjar vi med program som inte innehåller negation. Ett sådant program kan vara inkonsekvent; då säger vi att den inte har några stabila modeller. Om ett sådant program är konsekvent så har en unik minimal modell, och den modellen anses vara den enda stabila modellen av .

Därefter definieras stabila modeller av godtyckliga program med begränsningar med hjälp av redukter, bildade på samma sätt som i fallet med traditionella program (se definitionen av en stabil modell ovan). En uppsättning av atomer är en stabil modell av ett program med begränsningar om reduktionen av relativt har en stabil modell, och att stabil modell är lika med .

Egenskaperna för den stabila modellsemantiken som anges ovan för traditionella program gäller även i närvaro av begränsningar.

Restriktioner spelar en viktig roll i svarsuppsättningsprogrammering eftersom att lägga till en begränsning till ett logikprogram påverkar samlingen av stabila modeller av på ett mycket enkelt sätt: det eliminerar de stabila modeller som bryter mot begränsning. Med andra ord, för alla program med begränsningar och alla begränsningar de stabila modellerna av karakteriseras som de stabila modellerna av som uppfyller .

Disjunktiva program

I en disjunktiv regel kan huvudet vara disjunktionen av flera atomer:

(semikolonet ses som alternativ notation för disjunktion . Traditionella regler motsvarar , och begränsningar till . För att utvidga den stabila modellsemantiken till disjunktiva program [Gelfond och Lifschitz, 1991] definierar vi först att i frånvaro av negation ( i varje regel) är de stabila modellerna för ett program dess minimala modeller . Definitionen av reduktionen för disjunktiva program är densamma som tidigare . En mängd av atomer är en stabil modell av om är en stabil modell av reduktionen av relativt .

Till exempel är mängden en stabil modell av det disjunktiva programmet

eftersom det är en av två minimala modeller av redukten

Programmet ovan har en mer stabil modell, .

Som i fallet med traditionella program är varje element i varje stabil modell av ett disjunktivt program en huvudatom av i den meningen att det förekommer i huvudet av en av reglerna av . Som i det traditionella fallet är de stabila modellerna av ett disjunktivt program minimala och bildar en antikedja. Att testa om ett ändligt disjunktivt program har en stabil modell är -komplett [Eiter och Gottlob, 1993].

Stabila modeller av en uppsättning propositionsformler

Regler, och även disjunktiva regler , har en ganska speciell syntaktisk form, i jämförelse med godtyckliga propositionsformler . Varje disjunktiv regel är i huvudsak en implikation så att dess antecedent (regelkroppen) är en konjunktion av bokstavliga ord och dess följd (huvud) är en disjunktion av atomer. David Pearce [1997] och Paolo Ferraris [2005] visade hur man utvidgar definitionen av en stabil modell till uppsättningar av godtyckliga propositionsformler. Denna generalisering har applikationer för svarsuppsättningsprogrammering .

Pearces formulering ser väldigt annorlunda ut från den ursprungliga definitionen av en stabil modell . Istället för redukter hänvisar det till jämviktslogik - ett system av icke-monotonisk logik baserat på Kripke-modeller . Ferraris formulering, å andra sidan, är baserad på redukter, även om processen för att konstruera redukten som den använder skiljer sig från den som beskrivs ovan . De två tillvägagångssätten för att definiera stabila modeller för uppsättningar av propositionsformler är likvärdiga med varandra.

Allmän definition av en stabil modell

Enligt [Ferraris, 2005] är reduktionen av en propositionsformel i förhållande till en uppsättning av atomer formeln som erhålls från genom att ersätta varje maximal subformel som är inte nöjd med med den logiska konstanten (falskt). Reduktionen av en uppsättning av propositionsformler relativt består av reduktionerna av alla formler från relativt { . Liksom i fallet med disjunktiva program, säger vi att en mängd av atomer är en stabil modell av om är minimal (med avseende på mängdinkludering) bland modeller av reduktionen av relativt .

Till exempel reduktionen av setet

relativt till är

Eftersom är en modell av redukten, och de rätta delmängderna av den mängden inte är modeller av redukten, är en stabil modell av den givna uppsättningen formler.

Vi har sett att också är en stabil modell av samma formel, skriven i logisk programmeringsnotation, i betydelsen av den ursprungliga definitionen . Detta är ett exempel på ett allmänt faktum: vid tillämpning på en uppsättning (formler som motsvarar) traditionella regler, är definitionen av en stabil modell enligt Ferraris ekvivalent med den ursprungliga definitionen. Detsamma gäller mer generellt för program med begränsningar och för disjunktiva program .

Egenskaper för den allmänna stabila modellens semantik

Satsen som hävdar att alla element i en stabil modell av ett program är huvudatomer av kan utökas till uppsättningar av propositionsformler, om vi definierar huvudatomer enligt följande. En atom är en huvudatom i en uppsättning av propositionsformler om minst en förekomst av i en formel från varken finns i omfattningen av en negation eller i föregångaren till en implikation. (Vi antar här att ekvivalens behandlas som en förkortning, inte ett primitivt bindemedel.)

Minimaliteten och antikedjeegenskapen hos stabila modeller av ett traditionellt program håller inte i det allmänna fallet. Till exempel (den singleton-uppsättning som består av) formeln

har två stabila modeller, och . Det senare är inte minimalt, och det är en riktig superset av det förra.

Att testa om en ändlig uppsättning satsformler har en stabil modell är -komplett , som i fallet med disjunktiva program .

Se även

Anteckningar