2003-12-09Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 13: Resolution Resolution i satslogiken Resolution i predikatlogiken.

Slides:



Advertisements
Liknande presentationer
F. Drewes, Inst. f. datavetenskap1 Föreläsning 13: Resolution •Resolution i satslogiken •Resolution i predikatlogiken.
Advertisements

Föreläsning 3 25 jan 2010.
Föreläsning 4 28 jan 2009.
Talföljder formler och summor
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Programstruktur: C för enchipsdatorer
1 Logikprogrammering ons 11/9 David Hjelm. 2 Repetition Listor är sammansatta termer. De består av en ordnad mängd element. Elementen i en lista kan vara.
Prolog, Mån 16/9 Rebecca Jonson.
Logikprogrammering, Mån 23/9 Rebecca Jonson. Repetition P :- Q, R. Deklarativ syn: –P är sann om Q och R är sanna. –Av Q och R följer P Procedurell syn:
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella.
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Logikprogrammering Ons, 25/9
Datamodellering med E/R-diagram
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning.
Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist
© Patrick Blackburn, Johan Bos & Kristina Striegnitz FL 7: Cut och negation (kap. 10) Teori –Förklarar hur man kontrollerar Prologs backtracking-beteende.
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Flödeskontroll Satser i ett program utförs en och en efter varandra. Detta kallas sekvensiell flödeskontroll. Ofta är det dock nödvändigt att modifiera.
Presupposition gemensam kunskap som inte behöver påstås eller förklaras förutsatt information - bakgrundsantaganden konventionaliserade bärare av implicit.
Programmering B PHP Lektion 2
Logikprogrammering och Prolog
Formell logik Kapitel 1 och 2
AV: Clara Jämttjärn 5:1. 1. Upphov är ursprung och skapat av en upphovsman. X. Upphov är en persons jobb. 2. Upphov är när någon gör slut.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
Formell logik Kapitel 9 Robin Stenwall Lunds universitet.
Logik med tillämpningar
Logikprogrammering 16/ : operatorer Staffan Larsson.
Föreläsning 7 Fysikexperiment 5p Poissonfördelningen Poissonfördelningen är en sannolikhetsfördelning för diskreta variabler som är mycket.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax Flertydighet i kontextfri.
Föreläsning 4-5 Logik med tillämpningar
F. Drewes, Inst. f. datavetenskap1 Föreläsning 7: Uttryck och sidoeffekter Uttryck Sidoeffekter Överladdning Tilldelningar i uttryck.
Kan datorer bevisa matematiska teorem?
Föreläsning 11 Logik med tillämpningar Innehåll u Generell resolution u Kapitel i Ben-Ari.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 9: Implementering av underprogram Aktiveringsposter Exekveringsstacken Implementera dynamisk räckvidd.
Föreläsning 9 Logik med tillämpningar Innehåll u Semantiska tablåer i predikatlogiken u Klausulform u Herbrandmodeller u Kapitel 3.5,
Föreläsning 13 Logik med tillämpningar Innehåll u Aritmetik i Prolog u Rekursiva och iterativa program u Typpredikat u Metalogiska predikat.
Föreläsning 15 Logik med tillämpningar Innehåll u Programmeringsstil i Prolog u Expertsystem u Att kunna inför tentan u Kapitel 13 och 14.3.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer.
Karl-Henrik Hagdahl, 11 november Repetition Logikprogrammering: måndag 11 november 2002.
Satslogik, forts. DAA701/716 Leif Grönqvist 5:e mars, 2003.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden.
Lennart Edblom & Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
Föreläsning 16 Logik med tillämpningar Innehåll u Information kring kursvärdering och tentagenomgång u Genomgång av övningstenta 2.
Logik med tillämpningar
F. Drewes, Inst. f. datavetenskap1 Föreläsning 5: Syntaxanalys (parsning) Syntaxanalysens mål Tillvägagångssätt och komplexitet Syntaxanalys.
Föreläsning 14 Logik med tillämpningar Innehåll u Cuts och negation u Input/output u Extralogiska predikat u Interaktiva program, failure-drivna.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 12: -kalkylen allmänt om -kalkylen syntax semantik att programmera i -kalkylen.
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
Föreläsning 4 27 jan I en Fourierserie blir en koefficient t.ex. stor om funktionen harmoniserar med resp. trigonometrisk funktion dvs. De sinus-
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 4: Syntaxdefinition Formell syntaxdefinition Lexikalisk och kontextfri syntax.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 3: Abstrakta datatyper Algebror Abstrakta datatyper Inkapsling och informationsmaskering.
Föreläsning 1-2 Logik med tillämpningar
Logikprogrammering ons 4/9 Rebecca Jonson.
Selektion jämförande och logiska operatorer
FTEA12:2 Filosofisk Metod Grundläggande argumentationsanalys II.
INFERENS & SAMBAND. population Population Stickprov, urval INFERENS = Dra slutsatser från data om hela populationen utifrån ett stickprov Data, observationer.
KPP053, HT2015 MATLAB, Föreläsning 4
Formell logik Kapitel 5 och 6
Formell logik Kapitel 1 och 2
Formell logik Kapitel 7 och 8
Filosofisk logik Kapitel 15
Kvadreringsregeln Pythagoras sats
Presentationens avskrift:

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 13: Resolution Resolution i satslogiken Resolution i predikatlogiken

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 2 Resolution i satslogiken Logisk programmering bygger på logiska inferensregler som används för att härleda korrekta slutsatser  inferensreglerna måste kunna implementeras på ett enkelt och effektivt sätt Resolution (Robinson 1965), som bygger på en enda regel, uppfyller det kravet Resolution används vanligtvis i indirekta bevis, dvs för att härleda en motsägelse Vi fokuserar på specialfallet som ligger till grund för programspråket Prolog

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 3 Resolution i satslogiken (2) Vi betraktar en mängd av satser på formen P  P 1  …  P n (Hornklausuler) där P och alla P i är atomer. Satserna uttrycker de förhållanden som tas för givet. De kallas regler. Om n=0 så är regeln ett faktum och man skriver bara P Ett mål (eng. query) är en sats M =  Q 1  …   Q m (som också skrivs  Q 1  …  Q m ) Resolution syftar på att hitta mål M 1,…,M k sådana att M  M 1  …  M k där M k är det tomma målet  (m=0).  är en motsägelse – man har då bevisat Q 1  …  Q m (dvs att Q 1  …  Q m är en logisk följd av regelmängden)

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 4 Resolution i satslogiken (3) Resolutionsprincipen: Har vi ett mål  Q 1  …   Q m och regelmängden innehåller en Hornklausul P  P 1  …  P n där Q i =P, säg t.ex. Q 1 = P, så får målet ersättas med  P 1  …   P n   Q 2  …   Q m. Om det ursprungliga målet M var satisfierbart så är det nya målet M' också det. (Om M är sant så är något  Q j sant. Om j  i så är alltså M' sant. Om  Q i =  P är sant måste enligt Hornklausulen något P l vara vara falskt och därmed är M' igen sant.)

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 5 Exempel Hornklausuler: B  A, C  A  B, C  D  B, A Vi vill bevisa C (dvs att det är en logisk följd av de här antagandena). Målet är alltså  C. Resolution ger  C  A   B(resolution med andra klausulen)  B(resolution med fjärde klausulen)  A(resolution med första klausulen)  (resolution med fjärde klausulen) (Observera att man kan hamna i lägen där det inte går vidare, t.ex. genom att använda tredje klausulen i första steget  backtracking kan vara nödvändig.)

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 6 Resolution i predikatlogiken I predikatlogiken är resolution inte precis lika lätt eftersom atomerna nu är atomära formler som består av predikatsymboler, funktionssymboler och variabler. Exempel: person(x)  gift(x,y) person(x)  person(mor(x)) gift(mor(Olle), Lasse) Bevisa person(Olle)  person(Olle)(x = Olle)  person(mor(Olle)) (x = mor(Olle))  gift(mor(Olle),y)(y = Lasse) 

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 7 Resolution i predikatlogiken (2) En substitution är en tilldelning  av termer till variabler Att substituera variablerna i en formel P enligt  skrivs  (P) En unifierare för termer eller formler P, Q är en substitution  som gör dem lika:  (P) =  (Q) Om en unifierare för P och Q existerar så finns det en unik mest generell unifierare (mgu)  mgu. "Mest generell" betyder att varje unifierare  för P och Q kan delas upp i  mgu och någon unifierare  ' där  =  '   mgu Variablerna måste alltså substitueras med lämpliga termer. Lämpliga termer hittas med hjälp av unifiering.

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 8 Resolution i predikatlogiken (3) Exempel:t 1 = f(g(x,y),f(g(x,b),y)) och t 2 = f(z,f(z,y)) (där x,y,z är variablerna)   mgu = [z  g(x,b), y  b] Det finns en enkel algoritm för att hitta  mgu 1.börja med  = [] 2.om t 1 = t 2 så är  =  mgu, annars hitta första positionen där termerna är olika (på exemplet g(x,y) och z) 3.om en av dem är en variabel, säg x, och den andra är en term, säg t, som inte innehåller x, låt  x  [x  t] (annars avslutas algoritmen – ingen unifierare existerar). Låt    x   och t i   x (t i ) och fortsätt med steg 2.

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 9 Resolution i predikatlogiken (4) Resolutionsprincipen för predikatlogik: Har vi ett mål  Q 1  …   Q m och en Hornklausul P  P 1  …  P n där något Q i, säg t.ex. Q 1, kan unifieras med P så får målet ersättas med  mgu (P 1 )  …   mgu (P n )   mgu (Q 2 )  …   mgu (Q m ). Om det ursprungliga målet var satisfierbar så är det nya målet också det.

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 10 Exempel 1.Djur som kan flyga har två ben har_ben(x 1,2)  kan_flyga(x 1 ) 2.Djur som har fyra ben äter inte honung medan djur med två ben äter honung.  äter(x 2,honung)  har_ben(x 2,4) äter(x 3,honung)  har_ben(x 3,2) 3.Djur som inte äter honung äter nötter äter(x 4,nötter)   äter(x 4,honung) 4.Det finns djur som inte äter honung  äter(a, honung) 5.Djur som äter nötter äter djur som äter honung äter(x 5, y)  äter(x 5,nötter)  äter(y, honung) 6.Svalor kan flyga kan_flyga (svalor)

Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 11 Exempel (forts) Finns det något djur som äter svalor? Negation:7)  äter(z,svalor) 8.  äter(z,nötter)   äter(svalor,honung)(5+7; x 5 :=z, y:=svalor) 9.  äter(z,nötter)   har_ben(svalor,z) (3+8; x 3 :=svalor) 10.  äter(z,nötter)   kan_flyga(svalor)(1+9; x 1 :=svalor) 11.  äter(z,nötter)(6+10) 12.äter(z,honung)(3+11; x 4 :=z) 13.[ ](4+12; z:=a)