500 likes | 614 Views
Automatische Redeneer-systemen. Voor Eerste-orde Predicaten Logica. Is F een logisch gevolg van T ?. AR: algemene context. Gegeven is een kennisbank in predicaten logica: T. is een verzameling van eerste-orde formules formeel ook genoemd: een “Theorie’’.
E N D
Automatische Redeneer-systemen Voor Eerste-orde Predicaten Logica
Is F een logisch gevolg van T ? AR: algemene context. • Gegeven is een kennisbank in predicaten logica: T • is een verzameling van eerste-orde formules • formeel ook genoemd: een “Theorie’’ • Gegeven een bijkomende eerste-orde formule: F • Notatie: T |=F (T impliceert F) • Vind afleidingstechnieken die dit uitmaken voor ELKE F en T. • Vereisten: • correctheid -- volledigheid -- efficientie
Er kan GEEN ENKEL ALGORITME bestaan dat beslist of T|=F, voor elke theorie T en elke formule F. • Er bestaat een redeneertechniek, zo dat voor elke theorie T en formule F, waarvoor T|=F, de redeneer-techniek bewijst dat T |= F. AR: beslisbaarheid. • Stelling Church ‘36: • MAAR: semi-beslisbaar! • Volledigheidsstelling van Goedel ‘31: • DUS: als F volgt uit T, dan kunnen we dat bewijzen, anders is het mogelijk dat onze procedure niet eindigt.
De stellingen van Church en Goedel zijn contradic-torisch: We kunnen in parallel F en ~F proberen te bewijzen en volgens de stelling van Goedel moet na eindige tijd 1 van de twee lukken. Even uittesten... • Fout ! • Stel: T ={slim(Kelly)} en F =sterk(Kelly) • Alhoewel sterk(Kelly) ~sterk(Kelly) altijd waar is, hebben we: • noch: {slim(Kelly)} |= sterk(Kelly) • noch: {slim(Kelly)} |= ~sterk(Kelly)
achterwaartse resolutie AR: algemene outline (1). • Eerst schetsen we de meest algemeen gebruikte aanpak voor automatisch redeneren in eerste-orde: • De verschillende technische componenten worden pas later in volledig technisch detail uitgewerkt (outline (2)).
gegronde Horn clause logica AR: algemene outline (2) . • We bestuderen verschillende subsets van predicaten logica: • Horn clause logica • Clausale logica • volledige predicaten logica • Voor elk geval bestuderen we semi-beslissende procedures. • Elke uitbreiding vereist de introductie van nieuwe technieken.
Achterwaarts redenerendeResolutie … in een notedop
0) De taak: een voorbeeld. • 1) Bewijs door inconsistentie. • 2) Conversie naar clausale vorm. • 3) Unificatie. • 4) De resolutie stap. • 5) (Achterwaartse) resolutie bewijzen. Achterwaartse resolutie:
T p= parent f= father r= rich q= old z ~ q(z) y p(f(y)) x p(x) q(x) r(x) F • Is in deze wereld: steeds waar ? u r(f(u)) 0) De TAAK (voorbeeld): • Zijn axioma’s: beschrijven kennis over een of andere wereld. • Hoe in het algemeen zo’n stelling bewijzen?
F • Niet F rechtstreeks bewijzen: u r(f(u)) • NIEUWE TAAK: ~ u r(f(u)) z ~ q(z) y p(f(y)) x p(x) q(x) r(x) • is inconsistent. 1) Bewijs door inconsistentie • Maar de negatie van F toevoegen aan de axioma’s een bewijzen dat de uitbreiding inconsistent is. • de 4 axioma’s zijn nooit samen waar is één interpretatie
Elke verzameling axioma’s kan getransformeerd worden in een verzameling die alleen formules bevat van de vorm: xy…zp(…) q(…) …r(…) t(…) s(…) … u(…) 2) Clausale vorm: = Normaliseer de formules tot een (eenvoudigere) standaard vorm. • alleen links; alleen rechts • geen ~ ; geen die inconsistentisals en slechts als het originele stel inconsistent was. Merk op: je kan “x y … z“weglaten.
u false r(f(u)) z false q(z) x q(x) r(x) p(x) Voorbeeld: • ~ u r(f(u)) • z ~ q(z) • y p(f(y)) : is al in clausale vorm: ( P P true) • x p(x) q(x) r(x) Ps: vereist meestal veel meer werk !
Vb.: p(f(A),y) p(x, g(x)) • Vb.: x moet worden: f(A) • g(x) moet worden: g(f(A)) • y moet worden: g(f(A)) p(f(A), g(f(A))) 3) Unificatie: • Gegeven 2 atomaire formules: • vind hun meest algemene gemeenschappelijke instantiatie. • Meest algemene unifier (mgu) : x -> f(A) • y -> g(f(A))
Modus tollens Modus ponens P Q P Q P Q ~Q ~P Q P P true Q true Q P false Q false P Resolutie P1 P2 … PnQ1 ... Qm R1 … Rk P1 S1 … Sl P2 … Pn R1 … RkQ1 ... Qm S1 … Sl 4) De resolutie stap • Propositie logica:
p(x,f(A)) q(g(x)) r(z) p(B,z) r(f(A)) q(g(B)) mgu(p(x,f(A)),p(B,z)) = x-> B z-> f(A) De resolutie stap (2): • Predicaten logica: • Voorbeeld: = mgu toegepast opr(z) q(g(x)) De clausules waarop je resolutie uitvoert mogen geen variabelen gemeenschappelijk hebben.
selecteer er 2 uit, waarop resolutie mogelijk is EN inconsistentie van de oorspronkelijke EN dat F geïmpliceerd was door T 5) Resolutie bewijzen: • Om een stel clauses inconsistent te bewijzen: • pas resolutie toe en voeg het resultaat toe aan de set • als je de clause false vindt: STOP ! Betekent inconsistentie van de laatste set
q(x) r(x) p(x) false r(f(u)) x -> f(u) q(f(u)) p(f(u)) false q(z) z -> f(u) false p(f(u)) p(f(y)) y -> u false Voorbeeld: Dus: inconsistent !
Gegronde Horn Logica Modus ponens • Horn Logica Unificatie • Clausale Logica Resolutie • Volledige Predicaten Logica Normalizatie Een diepere studie
Alle formules in T zijn van de vorm: • x1 … xk A B1 B2 … Bn Horn clause logica • waarin A, B1, B2,…,Bnatomenzijn. • Een atoom is een formule van de vorm p(t1,…,tm), met p een predicaat symbool en t1,…,tm termen. • Horn clause formules zijn universeel gequantificeerd over alle variabelen die erin voorkomen. • B1,…,Bn noemen we body-atomen van de Horn clause; A is het hoofd van de Horn clause. • n mag ook nul zijn: in dat geval noemen we de Horm clause een feit.
Alternatief kan men een Horn Clause: • schrijven als: • x1 … xk A B1 B2 … Bn Q P Q ~P • x1 … xk A ~B1 ~B2 … ~Bn Implicatieve vorm Conjunctieve vorm Alternative notatie: • Is een bijzonder geval van de “conjunctieve normaal vorm” (alleen disjuncties en negaties), met slechts 1 positieve disjunct.
In Horn clause logica, beperken we ons tot formules F van de vorm: • waarin B1, B2, …, Bn opnieuw atomen zijn. x1 … xk B1 B2 … Bn Welke soort van formules kunnen we bewijzen? • Alle variabelen zijn existentieel gequantificeerd !
Een heel simpel voorbeeld: • Bosmans is showmaster (1) • Showmasters zijn rijk (2) • Rijke mensen hebben grote huizen (3) • Grote huizen vereisen veel onderhoud (4) • Doel: automatisch afleiden dat Bosmans’ huis veel onderhoud vereist.
Representatie in Horn logica: • Bosmans is showmaster (1) • Showmasters zijn rijk (2) • Rijke mensen hebben grote huizen (3) • Grote huizen vereisen veel onderhoud (4) • Te bewijzen: showmaster(Bosmans) p rijk(p) showmaster(p) p groot(huis(p)) rijk(p) p veel_werk(huis(p)) groot(huis(p)) veel_werk(huis(Bosmans))
AR voor gegronde Horn clause logica Achterwaarts (en voorwaarts) redenerenende bewijsprocedures gebaseerd op veralgemeende Modus ponens
Dus voorlopig: Horn clauses zonder variabelen: • Voorbeeld: showmaster(Bosmans) rijk(Bosmans) showmaster(Bosmans) groot(huis(Bosmans)) rijk(Bosmans) veel_werk(huis(Bosmans)) groot(huis(Bosmans)) • Bewijs: veel_werk(huis(Bosmans)) Beperking tot gegronde Horn clauses:
3 toepassingen van modus ponens: showm(Bos) rijk(Bos) showm(Bos) rijk(Bos) groot(huis(Bos)) rijk(Bos) groot(huis(Bos)) veel_werk(huis(Bos)) groot(huis(Bos)) veel_werk(huis(Bos)) • geeft de gewenste conclusie. Eenvoudig met modus ponens !
Modus ponens is correct: B A B Neem een interpretatie waarin zowel B als A B waar zijn(= neem een model van {B , A B} ) A Modus ponens in AR: Dan: A is ook waar in die interpretatie (zie waarheidstafels) • Probleem: hoe dit organizeren in een procedure zodat het ook volledig wordt (voor gegronde Horn clauses)?
Verhoog het aantal conjuncten: B1 B2 … Bn A B1 B2 … Bn A Veralgemeende Modus ponens • Is evident nog steeds correct (waarheidstafels).
Derived := { }; Repeat Select someA B1 B2 … Bnfrom T, such that allB1,B2,…,BnDerived, andADerived; Derived:= Derived {A}; Until all atoms ofF=C1 C2 … Cmare in Derived or no more Selection are possible Een voorwaartse bewijs- procedure • Gegeven theorie T en formule F: • Indien alle atomen uit F in Derived zitten bij terminatie, dan T impliceert F, anders niet.
showm(Bos) belg(Bos) europeaan(Bos) belg(Bos) rijk(Bos) showm(Bos) europeaan(Bos) groot(huis(Bos)) rijk(Bos) veel_werk(huis(Bos)) groot(huis(Bos)) Uitgebreid voorbeeld: • Eén mogelijke afleiding: Stap 0:Derived:= { } Stap 1:Derived := {showm(Bos)} Stap 2:Derived := Derived {belg(Bos)} Stap 3:Derived := Derived {europeaan(Bos)} Stap 4:Derived := Derived {rijk(Bos)} Stap 5:Derived := Derived {groot(huis(Bos))} Einde :Derived := Derived {veel_werk(huis(Bos))}
Bemerkingen: • Correctheid: veralgemeende modus ponens is correct • Volledigheid: intuitie: • voor een eindige gegronde Horn clause theorie, zijn er maar een eindig aantal atomaire gevolgen • die worden allemaal afgeleid na eindige tijd • Efficientie: • kan bijzonder traag zijn! • Als T veel Horn clauses omvat die niet aan F gerelateerd zijn, dan worden veel voor F irrelevante atomen afgeleid.
Definieer TP: 2Atoms 2Atoms: TP(S) = {A | A B1 B2 … Bn alle Bi S } • Voorbeeld: TP 0 = , TP 1 = {showm(Bos), belg(Bos)} TP 2 = TP 1 {europeaan(Bos)}, TP 3 = TP 2 {rijk(Bos)}, etc. Relatie tot fix-point theorie: • Stel Atoms de verzameling van alle atomen in de taal. • TP 0= ,TP 1 =TP(TP 0), etc. • Het fix-point voor TPis een (het kleinste) model for T
Achterwaarts redeneren Voor gegronde Horn Clause logica
Stelling: Stel T een theorie en F een formule. T impliceert Fals en slechts alsT {~F} inconsistent is. Inconsistentie: • Een theorie T is inconsistent als ze geen enkel model heeft. • Bewijs: T impliceert F asa Elk model van T maakt F waar asa Elk model van T maakt ~F onwaar asaT {~F} heeft geen model asaT {~F} is inconsistent
Toon dat de theorie: Opnieuw het voorbeeld showm(Bos) belg(Bos) europeaan(Bos) belg(Bos) rijk(Bos) showm(Bos) europeaan(Bos) groot(huis(Bos)) rijk(Bos) veel_werk(huis(Bos)) groot(huis(Bos)) ~ veel_werk(huis(Bos)) • inconsistent is. • Probleem: dit is geen Horn clause theorie !?
We introduceren een nieuw predicaat symbool: false Refutatie bewijzen:het “false” predicaat • We spreken af dat false de waarheidswaarde ‘onwaar’ heeft onder elke interpretatie. • Stel je voor dat false gedefinieerd is als : false p ~p voor één of ander predicaat p
In de Horn logica setting heeft F de vorm: x1 … xm B1 B2 … Bn “definiete” doelstellingen: • Wat is dan de vorm van ~F? • ~(x1 … xm B1 B2 … Bn) • x1 … xm ~(B1 B2 … Bn) • x1 … xm false ~(B1 B2 … Bn) • x1 … xm false B1 B2 … Bn A ~B A B • Merk op: ~F is nu opnieuw een Horn clause !!
Opnieuw: • x1 … xm false B1 B2 … Bn x1 … xm false ~B1 ~B2 … ~Bn • is equivalent met: x1 … xm ~B1 ~B2 … ~Bn • In het bijzonder is “false” de lege disjunctie: false In conjunctieve normaalvorm: 0 positievedisjuncten! • Implicatieve en disjunctieve vorm blijven consistent • (een lege disjunctie is altijd onwaar)
De uitgebreide theorie (inconsistent te bewijzen) is nu: showm(Bos) belg(Bos) europeaan(Bos) belg(Bos) rijk(Bos) showm(Bos) europeaan(Bos) groot(huis(Bos)) rijk(Bos) veel_werk(huis(Bos)) groot(huis(Bos)) false veel_werk(huis(Bos)) Opnieuw het voorbeeld • een gegronde Horn clause theorie !
A B1 B2 … Bi … Bn Bi C1 C2 … Cm A B1 B2 … C1 C2 … Cm … Bn Modus ponens verder veralgemeend: • Gewone Modus ponens is het bijzonder geval met: • n = i = 1 and m =0 • Correctheid: via waarheidstafels
false veel_werk(huis(Bos)) veel_werk(huis(Bos)) groot(huis(Bos)) false groot(huis(Bos)) groot(huis(Bos)) rijk(Bos) Enkele achterwaartse stappen met ons voorbeeld: • en zo verder ... false groot(huis(Bos)) false rijk(Bos)
Converteer F in een definiete doelstelling: false B1 B2 … Bi … Bn • totdat: wordt afgeleid. false we hebben inconsistentie vanT {~F} bewezen De achterwaartse procedure:het idee • Pas veralgemeende modus ponens toe op de body- atomen Bi van de doelstelling, gebruik makend van de Horn clauses in T • Dus: een onware formule is logisch gevolg van T {~F}
Goal := false B1 B2 … Bn; Repeat Select someBiatom from the body of Goal Select some clauseBi C1 C2 … CmfromT ReplaceBiin the body of Goal byC1 C2 … Cm UntilGoal = false or no more Selections possible Achterwaartse procedure • Hier bovenop moet je backtracking toelaten over de geselecteerde clauses en geselecteerde body atomen. • Als het algoritme stopt omdat het al deze alter-natieven heeft geprobeerd: F was geen gevolg!
Opnieuw het voorbeeld Stap 0: Goal :=false veel_werk(huis(Bos)) select: veel_werk(huis(Bos)) groot(huis(Bos)) Stap 1: Goal :=false groot(huis(Bos)) select: groot(huis(Bos)) rijk(Bos) Stap 2: Goal :=false rijk(Bos) select: rijk(Bos) showm(Bos) europeaan(Bos) Stap 3: Goal :=false showm(Bos) europeaan(Bos) select:showm(Bos) Stap 4: Goal :=false europeaan(Bos) select:europeaan(Bos) belg(Bos) Stap 5: Goal :=false belg(Bos) select: belg(Bos) Stap 6: Goal :=false
p q r q t q s r n r o s o n Nog een voorbeeld (propositioneel) • Bewijs: p • Bemerk: non-determinisme zowel op atoom selectie ALS op clause selectie ! • we illustreren het alleen op clause selectie hier
false q r false t r false s r false r false n false o false false Zoekboom doorlopen door de achterwaartse procedure false p p q r q t q s r n r o s o n
Achterwaartse procedure is efficiënter • Bewijs is nu doelgericht naar de te bewijzen stelling. • geen exploratie van irrelevante regelsmeer • Verschillende zoekmethodeskunnen gebruikt worden om deze zoekboom te doorlopen. • Atoom-selectie kan ook de efficiëntie beïnvloeden: • bv.: door het sneller detecteren van een falende tak • maar heeft geen effect op het vinden van een oplossing (in het geval er maar eindig veel ground Horn clauses zijn)
(2) (1) false p false (1) false p (1) …… Volledigheid: • Voorbeeld: false p p p(1) p (2) • Mogelijke afleidingen: false p • Is alleen volledig indien de zoekboom wordt doorzocht met een volledige zoekstrategie.
Voorbeeld: showm(Bos) showm_Bos groot(huis(Bos)) groot_huis_Bos Representie-kracht van gegronde Horn clauses • Is een subset van propositie logica. • In het algemeen zijn expressievere logica’s nodig. • Essentie: met variabelen kan 1 formule equivalent zijn aan een heel groot aantal propositie logica formules