2002-12-13F. Drewes, Inst. f. datavetenskap1 Föreläsning 13: Resolution •Resolution i satslogiken •Resolution i predikatlogiken.

Slides:



Advertisements
Liknande presentationer
Föreläsning 3 25 jan 2010.
Advertisements

Föreläsning 4 28 jan 2009.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Talföljder formler och summor
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
hej och välkomna EKVATIONER Ta reda på det okända talet.
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:
Matematiken i Per Nørgårds oändlighetsserie
Datamodellering med E/R-diagram
Föreläsning 2. Operatorer Tilldelning Kodblock { } if – satsen Logiska uttryck Att programmera.
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
Programmering B PHP Lektion 3
Formell logik Kapitel 1 och 2
Max start-guide Liten och väldigt snabbt ihopkastad.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning Singel mot multipelt.
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.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 1: Inledning administrativt o dyl kursens mål varför programspråksteori? språkkategorier användningsområden.
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
F. Drewes, Inst. f. datavetenskap1 Föreläsning 8: Underprogram Underprogram Räckvidd Parameteröverföring.
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. Drewes, Inst. f. datavetenskap1 Föreläsning 2: Variabler och datatyper Variabler Bindning Typkontroll Några viktiga datatyper.
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.
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.
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.
Föreläsning 1-2 Logik med tillämpningar
Logikprogrammering ons 4/9 Rebecca Jonson.
Selektion jämförande och logiska operatorer
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 13: Resolution Resolution i satslogiken Resolution i predikatlogiken.
Vad tycker du? När man diskuterar berättar man vad man tycker om något. När jag tycker något har jag en åsikt. Ett finare ord för att säga något är att.
FTEA12:2 Filosofisk Metod Grundläggande argumentationsanalys II.
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:

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

F. Drewes, Inst. f. datavetenskap2 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 •Jag fokusera på specialfallet som ligger till grund för programspråket Prolog

F. Drewes, Inst. f. datavetenskap3 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)

F. Drewes, Inst. f. datavetenskap4 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.)

F. Drewes, Inst. f. datavetenskap5 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.)

F. Drewes, Inst. f. datavetenskap6 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) 

F. Drewes, Inst. f. datavetenskap7 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.

F. Drewes, Inst. f. datavetenskap8 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 de ä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.

F. Drewes, Inst. f. datavetenskap9 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.