Föreläsning 11 Logik med tillämpningar 97-11-28. Innehåll u Generell resolution u Kapitel 4.4-4.5 i Ben-Ari.

Slides:



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

Talföljder formler och summor
Examensarbete - ett projekt
Hej hypotestest!. Bakgrund  Signifikansanalys  Signifikansprövning  Signifikanstest  Hypotesprövning  Hypotestest Kärt barn har många namn Inblandade:
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning
Point Estimation Dan Hedlin
hej och välkomna EKVATIONER Ta reda på det okända talet.
Funktioner och programorganisation
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:
Föreläsning 2 21 jan 2008.
Logikprogrammering Ons, 25/9
Datamodellering med E/R-diagram
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Predicting protein folding pathways.  Mohammed J. Zaki, Vinay Nadimpally, Deb Bardhan and Chris Bystroff  Artikel i Bioinformatics 2004.
Algoritmer och datastrukturer
Arv.
Polymorfism.
Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 4 Python: Definiering av egna funktioner Parametrar
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
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Programmering B PHP Lektion 2
Vad är du för typ av person?
Workshop inför Projektet
Pathfinding. –Vad är det? –Sökning från A till B.
Logikprogrammering och Prolog
Positiv Livskraft © Att komma dit du vill
Felkalkyl Ofta mäter man inte direkt den storhet som är den intressanta, utan en grundläggande variabel som sedan används för att beräkna det som man är.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 6: Semantik Statisk semantik Attributgrammatiker Dynamisk semantik Axiomatisk.
Det finns i V en operation kallad addition, betecknad + sådan att
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
En mycket vanlig frågeställning gäller om två storheter har ett samband eller inte, många gånger är det helt klart: y x För en mätserie som denna är det.
Logikprogrammering 21/10 Binära träd
En guide för arbeten i SO
Java paket och jar-filer
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
Föreläsning 6 Logik med tillämpningar F6 Innehåll u Resten om resolution u Varför så många olika beslutsprocedurer? u Teorembevisaren Otter.
Formell logik Kapitel 9 Robin Stenwall Lunds universitet.
Logik med tillämpningar
Föreläsning 4-5 Logik med tillämpningar
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
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.
Satslogik, forts. DAA701/716 Leif Grönqvist 5:e mars, 2003.
Föreläsning 16 Logik med tillämpningar Innehåll u Information kring kursvärdering och tentagenomgång u Genomgång av övningstenta 2.
 x(p(x)  q(x))  (  x p(x)   xq(x))  x(p(x)  q(x))  xp(x)   xq(x)  x(p(x)  q(x)),  (p(a)  q(a))  xp(x),  xq(x)  x (p(x)  q(x)), 
Logik med tillämpningar
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äsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
Föreläsning 1-2 Logik med tillämpningar
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.
Algoritmer och loopar Algoritmer, beräkningsbarhet
Regler för citatteknik
Lars Madej  Talmönster och talföljder  Funktioner.
Manada.se Kapitel 4 Ekvationer och formler. 4.1 Ekvationer och uttryck.
Operativsystem - Baklås Mats Björkman
Kreativa verktyg och metoder
Formell logik Kapitel 7 och 8
Filosofisk logik Kapitel 15
Digitala tal och Boolesk algebra
Presentationens avskrift:

Föreläsning 11 Logik med tillämpningar

Innehåll u Generell resolution u Kapitel i Ben-Ari

Generell Resolution  Generella resolutionsregeln: C 1 och C 2 är klausuler utan gemensamma variabler. l 1  C 1 och l 2 c  C 2 är literaler där l 1 och l 2 c kan unifieras med en MGU . C 1 och C 2 är kolliderande klausuler och de kolliderar på literalerna l 1 och l 2 c. Resolventen C skapas enligt: Res(C 1, C 2 ) = (C 1 - {l 1  }) (C 2 - {l 2 c  })

Standardisera isär variabler u Restriktionen att variablerna inte skall ha gemensamma variabler löser vi genom att ge variablerna nya namn innan unifieringen, vi standardiserar isär variablerna. u Varför kan vi byta namn på det här sättet? – Variablerna är allkvantifierade

Generella resolutionsproceduren:  S är en klausulmängd. Definiera S 0 = S. Välj två kolliderande klausuler C 1, C 2  S i och skapa resolventen C från C 1 och C 2.  Om C =  kan proceduren avslutas och S är osatisfierbar. Annars skapas S i+1 = S i  {C}. u Om S i+1 = S i för alla möjliga par av kolliderande klausuler i S i kan proceduren avbrytas och S är satisfierbar.

u En osatisfierbar klausulmängd medför alltid att  hittas i ett ändligt antal steg. u En satisfierbar klausulmängd kan ge en icketerminerande beräkning, vilket gör att vi för en godtycklig klausulmängd inte vet om den är satisfierbar eller inte. u Resolution är alltså inte en beslutsprocedur för validitet i predikatlogiken.

Sundhet och fullständighet u Teorem (4.2.2) (Resolution är sund) Om vi under generell resolution får den tomma klausulen så är den ursprungliga klausulmängden osatisfierbar. u Teorem (4.2.3) (Resolution är fullständig) Om en mängd klausuler är osatisfierbara så kan den tomma klausulen uppnås genom generell resolution på klausulmängden.

Repetition  Antag att vi har en mängd axiom U och vi vill visa att en formel A är en logisk konsekvens av U, dvs B är sann i alla modeller för U, U  B.  Teorem (2.5.11): U  B omm (A 1  …  A n )  B är en valid formel och A 1...A n är formlerna i U. För att avgöra detta negerar vi formeln,  ((A 1  …  A n )  B ) och använder resolution för att visa att den är osatisfierbar. Men  ((A 1  …  A n )  B )  A 1  …  A n   B dvs, istället för att negera hela implikation kan vi lägga till...  B till axiomen och visa att den formeln inte är satisfierbar!

Hornklausuler  En klausul med endast en positiv literal B  (A 1  …  A n ) eller (A 1  …  A n )  B eller  A 1  …   A n  B kallas för Hornklausul. u En Hornklausul med endast den positiva literalen B kallas ett fakta.  En Hornklausul utan den positiva literalen  (A 1  …  A n ) kallas ett mål.

Effektivitet u Resolution är visserligen en effektiv metod, men det kan ändå ta lång tid att exekvera algoritmen.  Vissa modifikationer av algoritmen bibehåller fullständigheten, dvs vi kan fortfarande vara säkra på att uppnå  om det går med den ursprungliga algoritmen. u Definition (4.5.1) (Set-of-support) S är en klausulmängd och T är en delmängd av S så att S - T är satisfierbar. Vi använder inte resolutions- regeln mellan två klausuler i S - T.

Olika typer av resolution u SLD-resolution G i är en målklausul  A 1, …, A k ) och C i+1 är en Horn klausul A  B 1, …, B n ). Målet G i+1 härleds från G i och C i+1 under unifieringen  i+1 om följande villkor är uppfyllda: –Delmålet A m valdes från G i. –  i+1 är unifieringen som gör A m  i+1 = A  i+1. –G i+1 är det nya målet  A 1, …, A m-1, B 1, …, B n, A m+1, …, A k

u Definition (4.5.2) (Linjär resolution) Låt ursprungsmålet för resolutionen vara centrum-klausulen. I varje steg i resolutionsproceduren sker resolution mellan centrumklausulen och någon annan klausul. Resolventen blir den nya centrumklausulen. u Definition (4.5.3) (Input resolution) En av föräldraklausulerna tillhör alltid den ursprungliga mängden av klausuler.

Problem: u Djur som kan flyga har två ben. Endast djur som har fyra ben äter inte honung. Djur som inte äter honung äter nötter. Det finns djur som inte äter honung. Djur som äter nötter äter djur som äter honung. Svalor kan flyga. u Finns det något djur som äter svalor? Observera att det kan finnas relationer som måste formuleras trots att det inte står uttryckligen i texten.

Hur går man tillväga för att lösa problemet? u Formulera predikatlogiska formler av faktat och frågan. u Negera frågan (eftersom vi vill visa att den är valid). u Omvandla allt till klausulform. u Använd resolution för att (förhoppningsvis) nå tomma klausulen.

Fakta + fråga: 1. Djur som kan flyga har två ben. 2. Endast djur som har fyra ben äter inte honung. 3. Djur som inte äter honung äter nötter. 4. Det finns djur som inte äter honung. 5. Djur som äter nötter äter djur som äter honung. 6. Svalor kan flyga. 7. Finns det något djur som äter svalor?

Konstruktion av klausulform: 1. Ge bundna variabler unika namn. 2. Reducera operatorerna till  och . 3. Pressa in negationer. När en negation pressas in innanför en kvantor, så byt  mot  och tvärt om. 4. Flytta kvantifierarna utanför övriga formeln.Välj en kvantifierare som inte är innanför en kvantifierare som är kvar i matrisen och använd följande regler: A op QxB(x)  Qx(A op B(x)) QxB(x) op A  Qx(B(x) op A) 5. Använd distributiva lagar för att få matrisen i CNF. 6. Använd Skolemkonstanter och skolemfunktioner för att eliminera existenskvantorerna.

Vår klausulmängd: {(1)  kan_flyga(x 1 )  har_ben(x 1, 2), (2)  har_ben(x 2,4)   äter(x 2, honung), (3)  har_ben(x 3, 2)  äter(x 3, honung), (4) äter(x 4, honung)  äter(x 4, nötter), (5)  äter(a, honung), (6)  äter(x 5, nötter)   äter(y, honung)  äter(x 5, y), (7) kan_flyga(svalor), (8)  äter(x 6, svalor)}