Negace jako selhání - Negation as failure
Negace jako selhání (NAF, zkráceně) je a nemonotónní pravidlo odvození v logické programování, používá se k odvození (tj. to se předpokládá, že nebude držet) ze selhání odvození . Všimněte si, že se může lišit od výpisu z logická negace z , záleží na úplnost odvozovacího algoritmu, a tedy i na formálním logickém systému.
Negace jako selhání byla důležitou vlastností logického programování od prvních dnů obou Plánovač a Prolog. V Prologu se obvykle implementuje pomocí extralogických konstruktů Prologu.
Sémantika plánovače
V Planneru lze negaci jako selhání implementovat takto:
-li (ne (fotbalová branka p)), pak (tvrdit ¬p)
který říká, že pokud je vyčerpávající hledání dokázat p
selže, pak tvrdí ¬p
.[1] To uvádí tento návrh p
se při každém dalším zpracování předpokládá jako „není pravdivé“. Nicméně, Planner není založen na logickém modelu, logická interpretace předchozího zůstává nejasná.
Sémantika prologu
V čistém Prologu, literály NAF formuláře může nastat v těle klauzulí a lze je použít k odvození dalších literálů NAF. Například vzhledem k tomu, jen čtyři věty
NAF je odvozeno , a .
Sémantika dokončení
Sémantika NAF zůstala otevřeným problémem až do roku 1978, kdy Keith Clark ukázal, že je to správné s ohledem na dokončení logického programu, kde, volně řečeno, „pouze“ a jsou interpretovány jako „kdyby a jen kdyby“, psané jako „iff“ nebo „".
Například dokončení čtyř výše uvedených klauzulí je
Pravidlo odvození NAF simuluje uvažování explicitně s dokončením, kde jsou obě strany ekvivalence negovány a negace na pravé straně je distribuována dolů na atomové vzorce. Například ukázat „NAF simuluje uvažování s ekvivalencemi
V non-výrokovém případě je třeba doplnit doplnění o axiomy rovnosti, aby se formalizoval předpoklad, že jednotlivci s odlišnými jmény jsou odlišní. NAF to simuluje selháním sjednocení. Například, vzhledem k tomu pouze dvě věty
- t
NAF je odvozeno .
Dokončení programu je
rozšířené o axiomy jedinečných jmen a axiomy uzavření domény.
Sémantika dokončení úzce souvisí s popis a do předpoklad uzavřeného světa.
Autoepistemická sémantika
Sémantika dokončení ospravedlňuje interpretaci výsledku závěru NAF jako klasické negace z . V roce 1987 však Michael Gelfond ukázal, že je také možné interpretovat doslova jako „ nelze zobrazit "," není známo „nebo“ není věřeno ", jako v autoepistemická logika. Autoepistemickou interpretaci dále rozvinuli Gelfond a Lifschitz v roce 1988 a je základem programování sady odpovědí.
Sémantika autoepistemiky čistého programu Prolog P s literály NAF se získá „rozšířením“ P sadou základních (bez proměnných) literálů NAF Δ, což je stabilní V tom smyslu, že
- Δ = { | není implikováno P ∪ Δ}
Jinými slovy, soubor předpokladů Δ o tom, co nelze zobrazit, je stabilní právě když Δ je množina všech vět, které z programu P rozšířeného o Δ skutečně nelze zobrazit. Tady, kvůli jednoduché syntaxi čistých programů Prolog, lze „implicitně“ chápat velmi jednoduše jako odvozitelnost pomocí modus ponens a samotného univerzálního instancování.
Program může mít nulové, jedno nebo více stabilních rozšíření. Například,
nemá stabilní expanze.
má přesně jednu stabilní expanzi Δ = {}
má přesně dvě stabilní expanze Δ1 = {} a Δ2 = {}.
Autoepistemickou interpretaci NAF lze kombinovat s klasickou negací, jako v rozšířeném logickém programování a programování sady odpovědí. Spojením dvou negací je možné vyjádřit například
- (předpoklad uzavřeného světa) a
- ( výchozí nastavení).
Poznámky pod čarou
- ^ Clark, Keith (1978). Logika a databáze (PDF). Springer-Verlag. str. 293–322 (Negace jako porucha). doi:10.1007/978-1-4684-3384-5_11.
Reference
- K. Clark [1978, 1987]. Negace jako selhání. Čtení v monotónním uvažování, Morgan Kaufmann Publishers, strany 311-325.
- M. Gelfond [1987] O stratifikovaných autoepistemických teoriích Proc. AAAI 1987, strany 207-211.
- M. Gelfond a V. Lifschitz [1988] Sémantika stabilního modelu pro logické programování Proc. 5. mezinárodní konference a sympozium o logickém programování (R. Kowalski a K. Bowen, eds), MIT Press, strany 1070-1080.
- J.C. Shepherdson [1984] Negace jako selhání: Srovnání Clarkovy dokončené datové databáze a Reiterova předpokladu uzavřeného světa, Journal of Logic Programming, svazek 1, 1984, strany 51–81.
- J.C. Shepherdson [1985] Negace jako porucha II, Journal of Logic Programming, sv. 3, 1985, strany 185-202.
externí odkazy
- Zpráva z workshopu W3C o pravidlech jazyků pro interoperabilitu. Zahrnuje poznámky o NAF a SNAF (rozsahovaná negace jako porucha).