Negarea ca eșec

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Negarea ca eșec [1] (cunoscută și sub numele de NaF , din engleză negation as failure , sau negație în mod implicit ) este o regulă de inferență non- monotonă utilizată în programarea logică pentru a obține din eșecul derivării , unde este este un atom care nu poate fi dedus automat din program (deoarece nu este o consecință logică a faptelor și regulilor conținute în program).

Conceptul negației ca eșec a fost introdus de Keith L. Clark în articolul cu același nume din 1978.

Descriere

Această metodă este implementarea tipică a presupunerii lumii închise (CWA), conform căreia orice atom care nu este o consecință logică directă a programului este considerat fals. Acesta din urmă nu poate fi implementat literal, deoarece, în general, deducerea logică a unui atom pornind de la un anumit program este o problemă care nu poate fi rezolvată în timp finit.

De exemplu, având în vedere o bază de cunoștințe:

în teorie, este imposibil să se evalueze afirmația a priori , întrucât este imposibil de spus a priori dacă este derivabil (prin urmare adevărat) sau nedirectabil (prin urmare fals, pentru CWA) din celelalte afirmații.

Din acest motiv, au fost implementate modele CWA mai limitate în limbajele de programare logice, dar care garantează încetarea programului și corectitudinea răspunsului. Negarea ca eșec, de fapt, de verificat (adică pentru a verifica asta nu este diferențiat) utilizează rezoluția SLD examinând doar așa-numiții arbori de eșec finit înrădăcinat . Din acest motiv, regula se numește mai corect negație ca eșec finalizat .

Prolog

De exemplu, având în vedere următorul program Prolog :

 bunic ( X , Z ) : - tată ( X , Y ), părinte ( Y , Z ).
părinte ( X , Y ) : - tată ( X , Y ).
părinte ( X , Y ) : - mamă ( X , Y ).
tată ( a , b ).
mama ( b , c ).

să răspund la întrebare ?- not nonno(a,b). , va trebui să extindă arborele cu nonno(a,b) rădăcină nonno(a,b) , din care urmează padre(a,X), genitore(X,b) și apoi, nedeterminat , padre(X,b) și madre(X,b) . Ambele ramuri ale copacului eșuează: prima pentru că nu există un X care să satisfacă simultan padre(a,X) și padre(X,b) ; a doua deoarece madre(X,b) nu are nicio referință în extensia la baza de date.

Rezultă că nonno(a,b) este fals și răspunsul a

 ? - nu bunicul ( a , b ).

Sara

 da .

Notă

  1. ^ Russel-Norvig , p. 453 .

Bibliografie

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT