Presentation laddar. Vänta.

Presentation laddar. Vänta.

Föreläsning 16 Logik med tillämpningar 020319. Innehåll u Information kring kursvärdering och tentagenomgång u Genomgång av övningstenta 2.

Liknande presentationer


En presentation över ämnet: "Föreläsning 16 Logik med tillämpningar 020319. Innehåll u Information kring kursvärdering och tentagenomgång u Genomgång av övningstenta 2."— Presentationens avskrift:

1 Föreläsning 16 Logik med tillämpningar 020319

2 Innehåll u Information kring kursvärdering och tentagenomgång u Genomgång av övningstenta 2

3 Kursvärdering och tentagenomgång u Kursvärdering öppnas torsdag 21/3 –Sammanfattning på webben u Lösningsförslag på webben u Tentamensresultat via mail u Tentagenomgång –ska vi ha det? –när? (Tis 2/4 enda vettiga alternativet…)

4 Övningstentan u Gavs 010421 av mig – omtenta på DV-prog. u Täcker samma material som kommande tentamen. u Maxpoäng 40p (3, 4, 5 på 20, 26 respektive 32p) u Är en ”normalsvår” tenta.

5 Uppgift 1 u Redovisa stegen i algoritmen inte bara svaret. u Förklara vad du gör i varje steg med några ord. –Kan dock göra flera likadana omskrivningar i varje steg. Exempelvis flytta in alla negationer på en gång. u Visa tydligt vad i ditt svar som är slutsatsen. –Dvs vilken formel du anser vara ditt svar –(Läs noga är det PCNF eller klausulmängd som efterfrågas?) u Använd gärna olika parenteser för att visa vad som hör ihop med vad. {[()]} u Svar: {p(x 1 )   q(x 1,f(x 1 ))  q(x 1, g(x 1 )), p(x 2 )   q(x 2,f(x 2 ))  r(g(x 2 ), z 2 )}

6 Döp om variabler  x(p(x)  {  y q(x, y)   v[q(x, v)   z r(v, z)]}) Ta bort konnektiv utom ,  och   x(p(x)  {  y q(x, y)   v[q(x, v)   z r(v, z)]}) Flytta in negationer  x(p(x)  {  y  q(x, y)   v[q(x, v)   z r(v, z)]}) Flytta ut kvantifierare  x  y  v  z (p(x)  {  q(x, y)  [q(x, v)  r(v, z)]}) Gör om matrisen till CNF  x  y  v  z (p(x)  {[  q(x, y)  q(x, v)]  [  q(x, y)  r(v, z)]})  x  y  v  z ([p(x)   q(x, y)  q(x, v)]  [p(x)   q(x, y)  r(v, z)]) Skolemisera  x  v  z ([p(x)   q(x, f(x))  q(x, v)]  [p(x)   q(x, f(x))  r(v, z)])  x  z((p(x)   q(x,f(x))  q(x, g(x)))  (p(x)   q(x,f(x))  r(g(x), z))) Mängden: {p(x 1 )   q(x 1,f(x 1 ))  q(x 1, g(x 1 )), p(x 2 )   q(x 2,f(x 2 ))  r(g(x 2 ), z 2 )}

7 Uppgift 2 u Måste förklara hur och varför roten i tablån ser ut som den gör. Varför negera? u Måste dra en slutsats från trädet, kan inte bara visa trädet. Det är inte ett svar. u Om tablån för negationen av formeln är öppen måste en ny tablå göras. u Inga förenklingar av formeln får göras varken före, under eller efter man applicerar algoritmen. u Svar: Formeln valid

8 Formeln är valid eftersom negationen är en motsägelse.

9 Uppgift 3 u Var noga att kolla vad ni ska göra och att svara på alla deluppgifter. E = p(x, y)  q(f(x), z)  r(v, u)  = { x  f(y), y  f(a), z  u}  = { y  g(a), u  z, v  f(f(a))} u E  = p(f(y),f(a))  q(f(f(y)), u)  r(v,u) u E  = p(x, g(a))  q(f(x), z)  r(f(f(a)), z) u E  = p(f(g(a)),f(a))  q(f(f(g(a))), z)  r(f(f(a)),z) u  = { x  f(g(a)), y  f(a), u  z, v  f(f(a))}

10 Uppgift 4 u För att veta om den fungerar så gör man en sanningstabell för uttrycket u Uttrycket blev inte lika som output. Alltså fungerar inte kretskortet som etiketten säger. För att få en formel kan man ta de rader där output är T.

11 u Vi får då: (p  q  r)  (p   q  r)  (  p  q  r) u den kan förenklas (alla formler från och med ovanstående är OK som svar, man behöver inte förenkla…) u (p  r)  (q   q)  (  p  q  r) (p  r)  (  p  q  r) (p  (  p  q))  r (p   p)  (p  q)  r (p  q)  r

12 Uppgift 5a) M = 2M = 3N = 3; N = 6; N = 9; no N = 2; N = 3;

13 5b) SVAREN blir N = 3; no

14 Uppgift 6 u Skriv vad du tänker, det kan i princip aldrig bli för mycket text… Antag att U är en mängd satslogiska formler, dvs U = {A 1, A 2,..., A n }, antag dessutom att A och B också är satslogiska formler. Visa att om U  {A} |= B så gäller att U |= A  B.

15 Svar Om U  {A} |= B så innebär det att för alla tolkningar v så att v(U  {A} ) = T så är v(B) = T Om v(U  {A} ) = T så är v(U) = T och v(A) = T. Enda tillfället då U |= A  B inte gäller är om det finns en tolkning v så att v(U) =v(A) =T och v(B) = F. Men om v(U) =v(A) =T så är v(U  {A} ) = T och då vet vi att v(B) = T. Alltså gäller påståendet.

16 Uppgift 7 u Kom ihåg att om det står omm måste man bevisa ”åt båda hållen”. u Svar –Antag att S' satisfierbar då finns en modell v så att v(C) = T för alla klausuler C i S'. Lägg till i tolkningen att v(l) = T. Då blir v(C) = T för alla klausuler C i mängden S- S'. –Om S satisfierbar så är S' satisfierbar eftersom S' är en delmängd av S.

17 Uppgift 8 Ett exempel på lösning är: % everynth(N, L1, L2) % Tar var N:te element ur listan L1 % och returnerar det i L2... everynth(_, [], []). everynth(N, Xs, Ys) :- everynth(N, 1, Xs, Ys).

18 everynth(_, _, [], []). everynth(N, M, [X | Xs], [X | Ys]):- A is M mod N, A == 0, M1 is M + 1, everynth(N, M1, Xs, Ys). everynth(N, M, [X |Xs], Ys) :- A is M mod N, A \== 0, M1 is M + 1, everynth(N, M1, Xs, Ys).

19 Vilka lösningar ger ditt program på frågan everynth(3, X, [1, 2]) ? X = [_A,_B,1,_C,_D,2] ? ; X = [_A,_B,1,_C,_D,2,_E] ? ; X = [_A,_B,1,_C,_D,2,_E,_F] ? ; No Där _A till _F är namn på anonyma variabler

20 Uppgift 9 u Läs uppgiften noga, kan finnas flera frågor i en fråga. u Kortfattade svar: a) En algoritm är en beslutsprocedur om den terminerar och ger svaret 'yes' om formeln A tillhör U och 'no' om den ej tillhör U. b) Negera formeln och om den är osatisfierbar så är den falsk i alla tolkningar. Om v(  A) = F i alla tolkningar så är v(A) = T i alla tolkningar dvs A är valid.

21 Uppgift 9 c) Om X förekommer flera gånger i listan kommer programmet att lyckas flera gånger. Detta kan undvikas antingen genom att skriva om programmet member(X, [X |Xs]). member(X, [Y|Xs]) :- X \== Y, member(X, Xs). eller genom att lägga till ett rött cut member(X, [X |Xs]):- !. member(X, [Y|Xs]) :- member(X, Xs). Det går att argumentera för båda varianterna. Huvudargument alt.1 är att det fortfarande är ett logiskt korrekt program. Den andra varianten är mer effektiv med avseende på exekveringshastigheten.

22 Uppgift 10 u Det finns tre typer av studenter: vanliga, exjobbare och forskarstudenter.  x(fostud (x)  vanlig(x)  exjobbare(x)) u Studenter är inte forskarstudenter om det finns studenter som läst mer än dem.  x  y(läst_mer(x, y)   fostud (y)) u De studenter som läst mer än andra studenter är inte vanliga studenter.  x  y(läst_mer(x, y)   vanlig(x))

23 Uppgift 10 u Studenter är inte exjobbare om det finns andra studenter som läst mer och som är exjobbare.  x  y(läst_mer(x, y)  exjobbare(x)   exjobbare(y)) u Jane har läst mer än Jill som i sin tur har läst mer än Mary läst_mer(Jane,Jill) läst_mer(Jill,Mary) u Sedan vet vi också att egenskapen ”läst mer” är transitiv, dvs att följande förhållande gäller:  x  y  z(läst_mer(x,y)  läst_mer(y,z)  läst_mer(x,z))

24 b) 1.  läst_mer(x1,y1)   fostud (y1) 2.  läst_mer(x2,y2)   vanlig(x2) 3. fostud (x3)  vanlig(x3)  exjobbare(x3) 4.  läst_mer(x4,y4)   läst_mer(y4,z4)  läst_mer(x4,z4) 5.  läst_mer(x5,y5)   exjobbare(x5)   exjobbare(y5) 6. läst_mer(Jane,Jill) 7. läst_mer(Jill,Mary)

25 c) 8. exjobbare(Jane) 9.  läst_mer(Jane,y5)   exjobbare(y5){x5  Jane} 5 o 8 10.  exjobbare(Jill){y5  Jill} 6 o 9 11. fostud (Jill)  vanlig(Jill){x3  Jill} 3 o 10 12.  läst_mer(x1,Jill)  vanlig(Jill) {y1  Jill} 1 o 11 13.  läst_mer(x1,Jill)   läst_mer(Jill, y2){x2  Jill} 2 o 12 14.  läst_mer(Jill, y2){x1  Jane} 6 o 13 15. []{y2  Mary} 7 o 14


Ladda ner ppt "Föreläsning 16 Logik med tillämpningar 020319. Innehåll u Information kring kursvärdering och tentagenomgång u Genomgång av övningstenta 2."

Liknande presentationer


Google-annonser