AR voor Horn clause logica Introductie van: Unificatie.

Slides:



Advertisements
Verwante presentaties
Sudoku puzzels: hoe los je ze op en hoe maak je ze?
Advertisements

Op zoek naar de ware Over de zoektocht naar een christelijke partner
Doublet deel 1 – de basis.
Leer de namen van de noten 1
Op zoek naar de ware This material is freely provided to help you build your own Power Point presentation to meet the needs of your group. 1 Based on eBook:
Downloaden: Ad-aware. Downloaden bestaat uit 3 delen: •1. Zoeken naar de plek waar je het bestand kan vinden op het internet •2. Het nemen van een kopie.
Programmeren met Alice
Ronde (Sport & Spel) Quiz Night !
Basisgeheugenschakelingen
Diagnosticeer uw schouder Dit is een interactieve gids om u te helpen vinden relevante patiënten informatie over uw schouderprobleem. Het is bedoeld als.
Hogere Wiskunde Complexe getallen college week 6
Start.
Bezit – possessive – genitive – 2e naamval Welke is juist: De pet van mijn vader.= The cap of my father. My father’s cap. My fathers’ cap.
Datastructuren Analyse van Algoritmen en O
Leer de namen van de noten 2
Oppervlakten berekenen
WISKUNDIGE FORMULES.
Automatische Redeneer-systemen
Automatisch Redeneren in de praktijk
AR: clausale logica De stap naar: resolutie. 2 Clausale vorm  Veralgemeende vorm van de formules:  x1 …  xk A1  A2 …  Am  B1  B2 …  Bn  Horn.
1 Datastructuren Zoekbomen II Invoegen en weglaten.
Coordinated path planning for Multiple Robots Siu-Siu Ha.
Visibility-based Probabilistic Roadmaps for Motion Planning Tim Schlechter 13 februari 2003.
Oppervlakten berekenen een mogelijke ontstaansgeschiedenis voor integralen... 6de jaar – 3 & 4u wiskunde Pedro Tytgat: Aanpassing Ronny Vrijsen.
H51 12 resolutie H51 PHOTOSHOP 1 audiovisueel centrum meise.
De grafiek van een lineair verband is ALTIJD een rechte lijn.
1 het type x² = getal 2 ontbinden in factoren 3 de abc-formule
Deze les wordt verzorgd door de Kansrekening en statistiekgroep Faculteit W&I TU/e.
IJspakketten Annette Ficker Tim Oosterwijk
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen Mei 2005.
Neurale Netwerken Kunstmatige Intelligentie Rijksuniversiteit Groningen April 2005.
Beslisbomen Robert de Hoog College Beslissingsondersteuning 26 september 2002.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 5 Cees Witteveen.
Divide and Conquer in Multi-agent Planning Multi-Agent Planning as the Process of Merging Distributed Sub-plans Eithan Ephrati and Jeffrey S. Rosenschein.
Hoofdstuk 1, 2 en 3 Toegepaste Mechanica deel 1
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica In3005 Deel 2 College 3 Cees Witteveen
Werken aan Intergenerationele Samenwerking en Expertise.
SPLD : Simple Programmable Logic Devices Dirk Smets KHLim - dep. IWT Digitale Elektronica Programmeerbare Logica DIA 1 DIA 1 Logische functie n Elke logische.
Les 2 Elektrische velden
Elektriciteit 1 Basisteksten
PLAYBOY Kalender 2006 Dit is wat mannen boeit!.
ribwis1 Toegepaste wiskunde Lesweek 3
ribwis1 Toegepaste wiskunde Lesweek 2
ribwis1 Toegepaste wiskunde Lesweek 01 – Deel B
Tweedegraadsfuncties
AFGELEIDEN.
Datastructuren Sorteren, zoeken en tijdsanalyse
ZijActief Koningslust 10 jaar Truusje Trap
Vergelijkingen oplossen.
ECHT ONGELOOFLIJK. Lees alle getallen. langzaam en rij voor rij
Presentatie vergelijkingen oplossen.
Hoofdstuk 5 Vijfkaart hoog, eerste verkenning 1e9 NdF-h1 NdF-h5 1 1.
De financiële functie: Integrale bedrijfsanalyse©
Lucas 15: 11 En Hij zeide: Iemand had twee zonen
1 Zie ook identiteit.pdf willen denkenvoelen 5 Zie ook identiteit.pdf.
ZijActief Koningslust
AI101  Historisch Perspectief Weak Methods Logic Theorist General Problem Solver  Resolution Theorem Proving Leeswijzer: Hoofdstuk 13.0, 13.1, 13.2 AI.
CONTROLESTRUCTUREN (DEEL 1)
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 4 Cees Witteveen
Evidence-Based Medicine
1 XSLT processing & control Datamodellering 2006.
Functioneel programmeren Een snelle herhaling…. Functie-definitie static int kwad (int x) { return x*x ; } kwad x = x * x Haskell kwad :: Int  Int.
T U Delft Parallel and Distributed Systems group PGS Fundamentele Informatica in345 Deel 2 College 6 Cees Witteveen.
MBR AtT1 College 9 Diagnose met correctmodellen. Verdieping in de formalisatie. In reader: Characterizing diagnoses and Systems J. de Kleer, A.
Automatische Redeneer-systemen
De stap naar: resolutie
AR voor Horn clause logica
Transcript van de presentatie:

AR voor Horn clause logica Introductie van: Unificatie

2 Hoe variabelen behandelen?  Voorbeeld:  p veel_werk(huis(p))  groot(huis(p))  p veel_werk(huis(p))  groot(huis(p)) false  veel_werk(huis(Bos))  We willen graag besluiten:  door middel van veralgemeende modus ponens. false  groot(huis(Bos)) Principe: gebruik instantiaties van de 2 Horn clauses, zodanig dat ze wél ‘matchen’.

3 Meer voorbeelden:  Vanaf nu laten we universele quantificatie weg, ver- mits alle variabelen universeel gequantificeerd zijn.  Enkele voorbeelden met standard modus ponens: verwant(x,y)  ouder(x,y) ouder(John,Mary) ouder(John,Mary) verwant(John,Mary) houdtvan(John,x)  verwant(John,x) verwant(y,vader(y)) verwant(y,vader(y)) houdtvan(John,vader(John)) Unificatie !!

4 Substituties:  Voorbeelden:  ={ x / h(g(A)), y / g(A), z / w}  = { x / g(z), y / B}  Een substitutie is een eindige verzameling koppels van het type variabele / term, zo dat alle variabelen aan de linkerkanten van koppels verschillend zijn.  In onze substituties zullen we hier NIET toelaten dat variabelen die links voorkomen ooit in een rechterkant term voorkomen.

5 Substituties toepassen:  Substituties kunnen toegepast worden op enkelvoudige expressies (atomen of termen), door het vervangen van alle voorkomens van de linker variabelen door hun corresponderende termen.  = { x / g(z), y / B} p(x, f(y, z))  = p(g(z), f(B, z))  ={ x / h(g(A)), y / g(A), z / w} p(x, f(y, z))  =p(h(g(A)), f(g(A), w)) p(x, f(y, z))  = p(h(g(A)), f(g(A), w))  Voorbeelden:

6 Herinner de motivatie:  We wensen substituties die atomen gelijk maken. veel_werk(huis(p))  groot(huis(p)) veel_werk(huis(p))  groot(huis(p)) false  veel_werk(huis(Bos))  De twee atomen in de clauses:  moeten gelijk worden.

7 “Unifiers”  Voorbeeld: S = {verwant(John,x), verwant(y, vader(y))}  = {y / John, x / vader(John)} is een unifier voor S S  = {verwant(John,vader(John))}  Gegeven een verzameling van enkelvoudige expressies S, dan noemen we een substitutie  een unifier voor S als: S  is a singleton

8 Nog een extra verfijning:  Voor afleidingsstap: verwant(x,y)  ouder(x,y) ouder(John,z) ouder(John,z)  hebben we: S = {ouder(x,y), ouder(John,z)}  en zijn er verschillende unifiers:  = {x / John, y / z}  = {x / John, y / Mary, z / Mary} enz.  Alleen de meest algemene, , laat de sterkste afgeleide conclusie toe: verwant(John,z)

9 Relatie tussen deze?  Voorbeeld: S = {ouder(x,y), ouder(John,z)}  = {x / John, y / z} S  = {ouder(John,z)}  = {x / John, y / Mary, z / Mary} S  = {ouder(John,Mary)} Er bestaat een bijkomende substitutie:  = {z / Mary} met S  = ( S  ) 

10 Meest algemene unifier:  Gegeven een verzameling van enkelvoudige expressies S, een meest algemene unifier  voor S is een unifier voor S, zó dat voor alle andere unifiers  voor S, er een substitutie  bestaat zodat: S  = (S  )   Sleutel-idee: creeer minimale instantiaties!  Notatie:  = mgu(S), of  = mgu(A, B) voor S = {A,B}

11 Veralgemeende modus ponens voor Horn clauses A  B1  B2  …  Bi  …  Bn Bi’  C1  C2  …  Cm  (A  B1  B2  …  C1  C2  …  Cm  …  Bn)   Veralgemeende modus ponens moet verder uitgebreid worden tot:  waarin  = mgu( Bi, Bi’)  Let wel: Bi and Bi’ moet hetzelfde predicaat hebben.  Correctheid: wegens correctheid van alle gegronde instantiaties van deze afleiding.

12 Voorbeeld: enkele stappen  Bemerk: we zullen variabelen altijd van nieuwe namen voorzien teneinde ‘toevallige’ clashes te vermijden. false  veel_werk(huis(x)) veel_werk(huis(y))  groot(huis(y)) false  groot(huis(y)) false  showm(z)  belg(z) showm(Bos) false  belg(Bos)  Een stap, veel later:

13 Achterwaartse procedure voor Horn clauses Goal := false  B1  B2  …  Bn ; Repeat Select some Bi atom from the body of Goal Select some clause Bi’  C1  C2  …  Cm from Select some clause Bi’  C1  C2  …  Cm from T such that  = mgu(Bi, Bi’) exists T such that  = mgu(Bi, Bi’) exists Goal := false  (B1  …  Bi-1  C1  C2  …  Cm Goal := false  (B1  …  Bi-1  C1  C2  …  Cm  Bi+1  …  Bn)   Bi+1  …  Bn)  Until Goal = false  or no more Selections possible  Opnieuw: concrete versies van dit generisch schema vereisen mogelijk backtracking over eerdere selecties,  of behandelen het probleem als een algemeen zoekprobleem doorheen de zoekruimte van algeleide doelstellingen.

14 Terug naar het voorbeeld: false  veel_werk(huis(x)) europeaan(x)  belg(x) rijk(x)  showm(x)  europeaan(x) groot(huis(x))  rijk(x) veel_werk(huis(x))  groot(huis(x)) false  veel_werk(huis(x)) showm(Bos) belg(Bos) veel_werk(huis(x1))  groot(huis(x1))  = { x1 / x} false  groot(huis(x))  = { x2 / x} groot(huis(x2))  rijk(x2) false  rijk(x)  = { x3 / x } rijk(x3)  showm(x3)  europeaan(x3) false  showm(x)  europeaan(x) false  showm(x)  belg(x) europeaan(x4)  belg(x4)  = { x4 / x } belg(Bos)  = { x / Bos } false  showm(Bos) showm(Bos)  = { } false 

15 Waarom variabelen hernoemen? false  p(x) p(y)  q(z,y) false  q(z,y)  = {x/y } false  p(x) p(y)  q(x,y) false  q(y,y)  = {x/y }  Beschouw de afleidingsstap:  Probleem: p(y)  q(x,y) is equivalent met p(y)  q(z,y) en dus kon ook de afleidingsstap:  waaruit we een strikt sterkere conclusie krijgen !  Altijd eerst variabelen van disjuncte namen voorzien !!

16 Ander voorbeeld: anc(x,y)  parent(x,y) (1) anc(x,y)  parent(x,z)  anc(z,y) (2) parent(A,B) (3) parent(B,C) (4) false  anc(u,v) false  parent(x1,z1)  anc(z1,y1) (2) {u/x1,v/y1} false  anc(B,y1) (3) {x1/A,z1/B} false  parent(B,y1) (1) {x2/B,y2/y1} false  (4) {y1/C} false  parent(x1,y1) (1) {u/x1,v/y1} false  (3) {x1/A,y1/B} false  (4) {x1/B,y1/C} Verschillende manieren van bewijzen !

17 Volledigheid:  Achterwaartse veralgemeende modus ponens, met een volledige zoekmethode over de zoekruimte van de afgeleide doelstellingen en met hernoeming van de variabelen is volledig.  Merk op dat het alleen maar semi-beslissend is, want de zoekruimte van doelstellingen kan oneindig groot zijn,  dus, in het algemeen, kunnen we hiermee niet beslissen of we tot false  kunnen herleiden.

18 Een oneindige afleiding:  Voorbeeld: nat(s(x))  nat(x) false  nat(u) false  nat(x1) {u/s(x1)} false  nat(x2) {x1/s(x2)}...

19 Met volledige zoekmethode wel een antwoord voor:  Voorbeeld: nat(0) nat(s(x))  nat(x) false  nat(u) false  nat(x1) {u/s(x1)} false  nat(x2) {x1/s(x2)}... false  {u/0}{u/0}{u/0}{u/0} {x1/0}

Unificatie Een basis algoritme in Automatische Redeneren

21 Een unificatie algoritme :={ s = t }; mgu:= { s = t }; Stop:= false; Case: t is a variable, s is not a variable: Case: t is a variable, s is not a variable: replace s = t by t = s in mgu; replace s = t by t = s in mgu; Case: s is a variable, t is the SAME variable: Case: s is a variable, t is the SAME variable: delete s = t from mgu; delete s = t from mgu; Case: s is a variable, t is not a variable and Case: s is a variable, t is not a variable and contains s : contains s : Stop:= true; Stop:= true; While not(Stop) and mgu still contains s = t of

22 Unification algorithm (2) If Stop = false : Report mgu ! Case: s is a variable, t is not identical to nor Case: s is a variable, t is not identical to nor contains s and s occurs elsewhere in mgu: contains s and s occurs elsewhere in mgu: replace all other occurrences of s in mgu by t ; replace all other occurrences of s in mgu by t ;... Case: s is of the form f(s1,…,sn), t of g(t1,…,tm): if f  g or n  m : Stop := true; if f  g or n  m : Stop := true; else replace s = t in mgu by else replace s = t in mgu by s1 = t1, s2 = t2, …, sn = tn ; s1 = t1, s2 = t2, …, sn = tn ;End_while

23 Voorbeeld 1:  Unificeer: p(B,y) en p(x,f(x)) :  Init: mgu:= { p(B,y) = p(x,f(x))}  Case 5: mgu:= {B = x, y = f(x) }  Case 1: mgu:= {x = B, y = f(x) }  Case 4: mgu:= {x = B, y = f(B) }  Geen cases meer toepasbaar !  p(B,y) en p(x,f(x)) zijn unificieerbaar  mgu = { x/B, y/f(B) }  resultaat: p(B, f(B))

24 Voorbeelden 2 & 3:  Unificeer: p(A) en p(f(x)) :  Init: mgu:= { p(A) = p(f(x))}  Case 5: mgu:= {A = f(x) }  Case 5: Stop:= true NIET unificeerbaar!  Unificeer: x en f(x) :  Init: mgu:= { x = f(x)}  Case 3: Stop:= true NIET unificeerbaar!

25 Terminatie van het algoritme:  Stop = true  geen unifier  expressies waren niet unificeerbaar  Geen cases meer toepasbaar:  mgu bevat een verzameling gelijkheden van de vorm:  {x1 = t1, …, xn = tn} met  alle x1,…,xn onderling verschillende variabelen !  De substitutie {x1/t1,…,xn/tn} is een meest algemene unifier voor de initiële s en t.  Martelli-Montanari algoritme.  Uitbreidbaar voor meer dan 2 expressies.

26 Rekenen met unificatie  Voorbeeld: geimpliceerd: mgu = {u/point(1,z)} geimpliceerd: mgu = {u/y,v/y } vertikaal(segment(punt(x,y),punt(x,z))) horizontaal(segment(punt(x,y),punt(z,y )))  u vertikaal(segment(punt(1,2),u))  u,v horizontaal(segment(punt(1,u),punt(2,v)))

27 Representatiekracht van Horn clauses  De meeste predicaten logica formules kunnen gemakkelijk hervormd worden tot Horn clauses.  Voorbeelden:  x cat(x)  dog(x)  pet(x)  x poodle(x)  dog(x)  small(x) pet(x)  cat(x) pet(x)  dog(x) dog(x)  poodle(x) small(x)  poodle(x)  MAAR:  x human(x)  male(x)  female(x)  x dog(x)  ~abnormal(x)  has_4_legs(x) ????