Föreläsning 2. Teori. Övningar. Unifiering Unifiering i Prolog Sökning efter bevis. Ett lite större exempel: kampsport.pl Praktisk träning (hemläxa)

Storlek: px
Starta visningen från sidan:

Download "Föreläsning 2. Teori. Övningar. Unifiering Unifiering i Prolog Sökning efter bevis. Ett lite större exempel: kampsport.pl Praktisk träning (hemläxa)"

Transkript

1 Föreläsning 2 Teori Unifiering Unifiering i Prolog Sökning efter bevis Övningar Ett lite större exempel: kampsport.pl Praktisk träning (hemläxa)

2 Målet med denna föreläsning Diskutera unifiering i Prolog Visa hur Prologs unifiering skiljer sig från standardunifiering Förklara den sökstrategi som Prolog använder sig av när den försöker härleda ny information från redan existerande dito, mha modus ponens

3 Unifiering Tänk på exemplet från förra FL, där vi konstaterade att Prolog unifierar med woman(x) woman(mia) och instantierar därmed variabeln X med atomen mia.

4 Repetition: Prologs termer Terms Simple Terms Constants Variables Atoms Numbers Complex Terms

5 Unifiering Working definition : Två termer unifierar om de är samma term eller om de innehåller variabler som kan uniformt instantieras med termer på så sätt att de resulterande termerna är lika.

6 Unifiering Detta betyder att: mia och mia unifierar 42 och 42 unifierar woman(mia) och woman(mia) unifierar Detta betyder också att: vincent och mia inte unifierar woman(mia) och woman(jody) inte unifierar

7 Unifiering Hur går det med... mia och X X

8 Unifiering Hur går det med... woman(z) och woman(mia) mia z

9 Unifiering Hur går det med... loves(mia,x) och loves(x,vincent) mia X loves(mia,mia) loves(mia, vincent) X kan ej bindas till två olika värden samtidigt! loves(vincent, vincent) X vincent

10 Instantieringar När Prolog unifierar två termer, utför det alla de nödvändiga instantieringarna, så att termerna därefter är lika Detta gör unifieringen en kraftig programmingsmekanism

11 Reviderad definition 1/3 1. Om T 1 och T 2 är konstanter, så unifierar T 1 och T 2 ifall de är samma atom eller samma tal. 2 2 mia mia

12 Reviderad definition 2/ Om T 1 är en variabel och T 2 är vilken som helst term (any type of term), så unifierar T 1 och T 2, och T 1 instantieras till T 2. (och vice versa) X Y mia woman(mia)

13 Reviderad definition 3/ Om T 1 och T 2 är komplexa termer så unifierar de ifall: a) De har samma funktor och aritet, och b) alla deras motsvarande argument unifierar, och c) variabelinstantieringarna är kompatibla.

14 Prologs unifiering: =/2?- mia = mia. yes?- = unifieringsoperator (inbyggt predikat)

15 Prologs unifiering: =/2?- mia = mia. yes?- mia = vincent. no?-

16 Prologs unifiering: =/2?- mia = X. X=mia yes?- Kan mia unifieras med X? Ja, och X instantieras då till mia.

17 Hur kommer Prolog att reagera??- X=mia, X=vincent. X? mia vincent

18 Hur kommer Prolog att reagera??- X=mia, X=vincent. no?-, = and Varför? Efter att ha jobbat genom det första delmålet har Prolog instantierat X till mia, så att det nu inte längre kan unifiera X med vincent. Därför misslyckas det andra delmålet.

19 Exempel med komplexa termer?- k(s(g),y) = k(x,t(k)).

20 Exempel med komplexa termer?- k(s(g),y) = k(x,t(k)). X=s(g) Y=t(k) yes?-

21 Exempel med komplexa termer?- k(s(g),t(k)) = k(x,t(y)).

22 Example with complex terms?- k(s(g),t(k)) = k(x,t(y)). X=s(g) Y=k yes?-

23 Ett sista exempel...?- loves(x,x) = loves(marsellus,mia).

24 Ett sista exempel...?- loves(x,x) = loves(marsellus,mia). no. loves(x,x) = loves(marsellus,marsellus). loves(x,x) = loves(mia,mia).... skulle fungera.

25 Prolog och unifiering Prolog använder inte en standard unifieringsalgoritm Betrakta följande förfrågning:?- father(x) = X. Unifierar dessa termer eller ej?

26 Infinita termer?- father(x) = X. X=father(father(father(father(father(father (father(father(father(father(father(father (father(father(father(father(father(father (father(father(father(father(father(father (father(father(father(father(father(father (father(father(father(father(father(father (father(father(father(father(father(father (father(father(father(father(father(father (

27 Infinita terms?- father(x) = X. X=father(father(father( )))) yes?-

28 Obs! swipl på tuxedo:?- father(x) = X. X = father(x)?-

29 Occurs Check En standard unifieringsalgoritm utför en occurs check Om den ombes att unifiera en variabel med en annan term kontrollerar den ifall variabeln ifråga ingår i termen I Prolog:?- unify_with_occurs_check(father(x), X). no

30 Occurs Check Prolog på tuxedo:?- father(x) = X. X = father(x).?- man(x) = X. X = man(x).?- unify_with_occurs_check(father(x),x). false.

31 Att programmera med unifiering vertical( line(point(x,y), point(x,z))). horizontal( line(point(x,y), point(z,y))). Y X

32 Att programmera med unifiering vertical( line(point(x,y), point(x,z))). horizontal( line(point(x,y), point(z,y))).?-

33 Programming with Unification vertical( line(point(x,y), point(x,z))). horizontal( line(point(x,y), point(z,y))).?- vertical(line(point(1,1),point(1,3))). yes?-

34 Att programmera med unifiering vertical( line(point(x,y), point(x,z))). horizontal( line(point(x,y), point(z,y))).?- vertical(line(point(1,1),point(1,3))). yes?- vertical(line(point(1,1),point(3,2))). no?-

35 Att programmera med unifiering vertical( line(point(x,y), point(x,z))). horizontal( line(point(x,y), point(z,y))).?- horizontal(line(point(1,1),point(1,y))). Y = 1; no?-

36 Att programmera med unifiering vertical( line(point(x,y), point(x,z))). horizontal( line(point(x,y), point(z,y))).?- horizontal(line(point(2,3),point)). Point = point(_554,3); no?-

37 Prolog på tuxedo... vertical( line(point(x,y), point(x,z))). horizontal( line(point(x,y), point(z,y))).?- horizontal(line(point(2,3),point)). Point = point(_g8, 3).?-

38 Att söka efter bevis Nu när vi vet om unifiering, kan vi börja se hur Prolog söker genom sin kunskapsbas för att se om ett mål kan satisfieras. Med andra ord: vi är redo att börja lära oss sökning efter bevis (proof search)

39 Exempel f(a). f(b). g(a). g(b). h(b). k(x):- f(x), g(x), h(x).?- k(y). För vilket/ vilka Y gäller k?

40 Exempel: sökträd (resolutionsträd) f(a). f(b). g(a). g(b). h(b). k(x):- f(x), g(x), h(x).?- k(y).?- k(y). Vi börjar med målet som ställdes.

41 Exempel: sökträd (resolutionsträd) f(a). f(b). g(a). g(b). h(b). k(x):- f(x), g(x), h(x).?- k(y). matcha Y mot X Y=X?- k(y).?- f(x), g(x), h(x). Nu får vi en hel del nya delmål från regelns kropp att bevisa

42 Exempel: sökträd (resolutionsträd) f(a). f(b). g(a). Y=X?- k(y). g(b). h(b). k(x):- f(x), g(x), h(x).?- k(y). matcha X mot a?- f(x), g(x), h(x). X=a?- g(a), h(a). Gäller dessa också?

43 Exempel: sökträd (resolutionsträd) f(a). f(b). g(a). g(b). h(b). k(x):- f(x), g(x), h(x).?- k(y).?- k(y). Y=X?- f(x), g(x), h(x). X=a?- g(a), h(a).?- h(a).

44 Exempel: sökträd (resolutionsträd) f(a). f(b). g(a). g(b). h(b). k(x):- f(x), g(x), h(x).?- k(y).?- k(y). Y=X?- f(x), g(x), h(x). X=a?- g(a), h(a).?- h(a). Misslyckades bevisa h(a)

45 Exempel: sökträd (resolutionsträd) f(a). f(b). g(a). g(b). h(b). k(x):- f(x), g(x), h(x).?- k(y).?- g(a), h(a).?- h(a).?- k(y).?- f(x), g(x), h(x). X=a Y=X X=b?- g(b), h(b). Ett nytt försök: x binds till b

46 Exempel: sökträd (resolutionsträd) f(a). f(b). g(a). g(b). h(b). k(x):- f(x), g(x), h(x).?- k(y).?- k(y). Y=X?- f(x), g(x), h(x). X=a X=b?- g(a), h(a).?- g(b), h(b).?- h(a).?- h(b).

47 Exempel: sökträd (resolutionsträd) f(a). f(b). g(a). g(b). h(b). k(x):- f(x), g(x), h(x).?- k(y). Y=b?- k(y). Y=X?- f(x), g(x), h(x). X=a X=b?- g(a), h(a).?- g(b), h(b).?- h(a).?- h(b). NU!

48 Exempel: sökträd (resolutionsträd) f(a). f(b). g(a). g(b). h(b). k(x):- f(x), g(x), h(x).?- k(y). Y=b; no?-?- k(y). Y=X?- f(x), g(x), h(x). X=a X=b?- g(a), h(a).?- g(b), h(b).?- h(a).?- h(b). Inga andra svar

49 Ett annat exempel loves(vincent,mia). loves(marsellus,mia). jealous(a,b):- loves(a,c), loves(b,c).?- jealous(x,y).

50 Ett annat exempel loves(vincent,mia). loves(marsellus,mia).?- jealous(x,y). jealous(a,b):- loves(a,c), loves(b,c).?- jealous(x,y).

51 Ett annat exempel loves(vincent,mia). loves(marsellus,mia).?- jealous(x,y). X=A Y=B jealous(a,b):- loves(a,c), loves(b,c).?- jealous(x,y).?- loves(a,c), loves(b,c). Vem är svartsjuk på vem...

52 Ett annat exempel loves(vincent,mia). loves(marsellus,mia).?- jealous(x,y). X=A Y=B jealous(a,b):- loves(a,c), loves(b,c).?- jealous(x,y).?- loves(a,c), loves(b,c). A=vincent C=mia?- loves(b,mia). Vilket/vilka B älskar mia?

53 Ett annat exempel loves(vincent,mia). loves(marsellus,mia).?- jealous(x,y). X=A Y=B jealous(a,b):- loves(a,c), loves(b,c).?- jealous(x,y). X=vincent Y=vincent?- loves(a,c), loves(b,c). A=vincent C=mia?- loves(b,mia). B=vincent Ingenting hindrar A = B

54 Ett annat exempel loves(vincent,mia). loves(marsellus,mia).?- jealous(x,y). X=A Y=B jealous(a,b):- loves(a,c), loves(b,c).?- jealous(x,y). X=vincent Y=vincent; X=vincent Y=marsellus?- loves(a,c), loves(b,c). A=vincent C=mia?- loves(b,mia). B=vincent B=marsellus Nu binds B till marsellus

55 Ett annat exempel loves(vincent,mia). loves(marsellus,mia).?- jealous(x,y). X=A Y=B jealous(a,b):- loves(a,c), loves(b,c).?- jealous(x,y). X=vincent Y=vincent; X=vincent Y=marsellus;?- loves(a,c), loves(b,c). A=vincent C=mia?- loves(b,mia). B=vincent B=marsellus A=marsellus C=mia?- loves(b,mia). A och C binds på nytt

56 Ett annat exempel loves(vincent,mia). loves(marsellus,mia).?- jealous(x,y). X=A Y=B jealous(a,b):- loves(a,c),. loves(b,c). X=vincent Y=marsellus; X=marsellus Y=vincent?- loves(a,c), loves(b,c). A=vincent A=marsellus C=mia C=mia?- loves(b,mia).?- loves(b,mia). B=vincent B=vincent B=marsellus

57 Ett annat exempel loves(vincent,mia). loves(marsellus,mia).?- jealous(x,y). X=A Y=B jealous(a,b):- loves(a,c),. loves(b,c). X=marsellus Y=vincent; X=marsellus Y=marsellus?- loves(a,c), loves(b,c). A=vincent A=marsellus C=mia C=mia?- loves(b,mia).?- loves(b,mia). B=vincent B=vincent B=marsellus B=marsellus

58 Ett annat exempel loves(vincent,mia). loves(marsellus,mia).?- jealous(x,y). X=A Y=B jealous(a,b):- loves(a,c),. loves(b,c). X=marsellus Y=vincent; X=marsellus Y=marsellus; no?- loves(a,c), loves(b,c). A=vincent A=marsellus C=mia C=mia?- loves(b,mia).?- loves(b,mia). B=vincent B=vincent B=marsellus B=marsellus

59 Ett nytt exempel: kampsport.pl

60 Ett nytt exempel: kampsport.pl /* Ett litet expertsystem om olika kampsporter - kan med fördel utvidgas */ kampart(kungfu). /* en gemensam benämning för ett flertal kinesiska kamparter */ kampart(karate). /* den tomma handens väg */ kampart(sumo). /* De välberömda massiva brottarna */ kampart(ninjutsu). /* ninjornas hemliga kampkonster */ kampart(aikido). /* den harmoniska vägen */ kampart(judo). /* den mjuka vägen (med hårda fall =) */ kampart(kendo). /* japansk svärd med parkamp */ kampart(iaido). /* konsten att dra det japanska svärdet - ensam */ kampart(kyudo). /* bågskyttets väg */ kampart(taido). /* kroppens väg - extremt akrobatiskt */ kampart(taekwondo)./* koreansk kampsport */ kampart(hapkido). /* mjukare koreansk kampsport */ kampart(kobudo). /* traditionella vapen från Okinawa */ kampart(tessenjutsu). /* den japanska kampsolfjäderns teknik */ kampart(katorishintoryu). /* vapenskola från 1400-talet */

61 Ett nytt exempel: kampsport.pl delgrenav(taiji, kungfu). delgrenav(wingchun, kungfu). delgrenav(prayingmantis, kungfu). delgrenav(choylifut, kungfu). delgrenav(shotokan, karate). delgrenav(shotokai, karate). delgrenav(goryu, karate). delgrenav(sankukai, karate). delgrenav(yuishinkai, karate).

62 Ett nytt exempel: kampsport.pl harstammarfran(kungfu, kina). harstammarfran(kobudo, okinawa). harstammarfran(karate, okinawa). harstammarfran(sumo, japan). harstammarfran(ninjutsu, japan). harstammarfran(aikido, japan). harstammarfran(judo, japan). harstammarfran(kendo, japan). harstammarfran(iaido, japan). harstammarfran(kyudo, japan). harstammarfran(taido, japan). harstammarfran(tessenjutsu, japan). harstammarfran(katorishintoryu, japan). harstammarfran(taekwondo, korea). harstammarfran(hapkido, korea). harstammarfran(x,y) :- delgrenav(x,z), harstammarfran(z,y).

63 Ett nytt exempel: kampsport.pl harstammarfran(x,y) :- delgrenav(x,z), harstammarfran(z,y).?- harstammarfran(karate, X). X = okinawa.?- harstammarfran(goryu, X). X = okinawa ; false.?- harstammarfran(x, okinawa). X = kobudo ; X = karate ; X = shotokan ; X = shotokai ; X = goryu ; X = sankukai ; X = yuishinkai ; false.

64 Ett nytt exempel: kampsport.pl vapen(sabel). /* det breda svärdet */ vapen(svard). /*smalare svärd, ex. katana */ vapen(spjut). /* ex. japansk yari */ vapen(kapp). /* hanbo, jo, bo */ vapen(bage). /* en lång båge för kyudo */ vapen(nunchaku). /* korta käppar med kedja emellan */ vapen(kusarifundo). /* en viktad kedja */ vapen(kusarigama). /* kedjevapen med en hacka i ena ändan */ vapen(shuriken). /* kaststjarna */ vapen(solfjader). /* japansk tessen eller taijishan */ vapen(naginata). /* tank dig en lång ishockeylatka, skarpt */ vapen(sai). /* en kort trespiksgaffel */ harvapen(x,y) :- har(x,y), vapen(y).

65 Ett nytt exempel: kampsport.pl?- harvapen(aikido, X). X = kapp ; X = svard ; false. Jag vill veta vilka vapen aikido har?- harvapen(aikido, _). true ; true ; false.?- harvapen(x, svard). X = kungfu ; X = ninjutsu ; X = taiji ; X = aikido ; X = kendo ; X = iaido ; X = katorishintoryu. Jag vill veta om aikido har vapen överhuvudtaget Jag vill veta vilka grenar som tränar med svärd

66 Ett nytt exempel: kampsport.pl harejvapen(x) :- kampart(x), not(harvapen(x,_)). /* X binds har till de olika kamparterna som sedan testas för vapen. Man skulle också kunna ställa frågan till systemet, och då får man samma svar. Vad man INTE kan ha är definitionen eller frågan */ not(harvapen(x,_)) ensam; systemresponsen blir "fail". not kan inte här användas för att generera de önskade svaren. Så fort harvapen(x,_) kan bevisas med något X och något vapen, misslyckas not.

67 Ett nytt exempel: kampsport.pl /* not(harvapen(x,_)) */ ensam; systemresponsen blir "fail". not kan inte här användas för att generera de önskade svaren. Så fort harvapen(x,_) kan bevisas med något X och något vapen, misslyckas not.?- not(harvapen(x, _)). false.

68 Ett nytt exempel: kampsport.pl harejvapen(x) :- kampart(x), not(harvapen(x,_)). /* X binds har till de olika kamparterna som sedan testas för vapen. Man skulle också kunna ställa frågan till systemet, och då får man samma svar. */?- harejvapen(x). X = karate ; X = sumo ; X = judo ; X = taido ; X = taekwondo ; X = hapkido ; false. Detta stämmer ju inte med verkligheten, men nog med vår slutna värld, där man inte explicit har registrerat några vapen för karate.

69 Ett nytt exempel: kampsport.pl harejvapen(x) :- kampart(x), not(harvapen(x,_)). /* X binds har till de olika kamparterna som sedan testas för vapen. Man skulle också kunna ställa frågan till systemet, och då får man samma svar. */?- harejvapen(x). X = karate ; X = sumo ; X = judo ; X = taido ; X = taekwondo ; X = hapkido ; false. Regeln harvapen borde korrigeras så, att om X är delgren av Y, och harvapen gäller för X, så gäller harvapen även för Y. Då räknas kobudos vapen som karates.

70 Ett nytt exempel: kampsport.pl harejfall(x) :- kampart(x), not(har(x, fallteknik)).?- harejfall(x). X = karate ; X = kendo ; X = iaido ; X = kyudo ; X = taido ; X = taekwondo ; X = kobudo ; X = tessenjutsu ; X = katorishintoryu. Om du inte gillar ukemin... Ljuger igen... taidos kast har inte blivit registrerade, och åtm goryu bland karategrenar förutsätter både kast och fall.

71 Ett nytt exempel: kampsport.pl har(yuishinkai, kast). har(sumo, kast). har(ninjutsu, kast). har(kungfu, kast). har(aikido, kast). har(judo, kast). har(jujutsu, kast). har(hapkido, kast). har(karate, sparkar). har(kungfu, sparkar). har(taekwondo, sparkar). har(jujutsu, sparkar). har(karate, slag). har(kungfu, slag). har(taekwondo, slag). har(jujutsu, slag). har(ninjutsu, slag). har(taido, slag). har(aikido, slag). har(ninjutsu, struptag). har(jujutsu, struptag). har(karate, tavlingar). har(kungfu, tavlingar). har(jujutsu, tavlingar). har(sumo, tavlingar). har(judo, tavlingar). har(kendo, tavlingar). har(taido, tavlingar). har(taekwondo, tavlingar). har(kungfu, sabel). har(kungfu, svard). har(kungfu, spjut). har(kobudo, kapp). har(kobudo, nunchaku). har(kobudo, sai). har(ninjutsu, kapp). har(ninjutsu, nunchaku). har(ninjutsu, kusarifundo).

72 Ett nytt exempel: kampsport.pl har(ninjutsu, kusarigama). har(ninjutsu, shuriken). har(ninjutsu, svard). har(taiji, solfjader). har(taiji, svard). har(taiji, sabel). har(aikido, kapp). har(aikido, svard). har(kendo, svard). har(iaido, svard). har(kyudo, bage). har(tessenjutsu, solfjader). har(katorishintoryu, kapp). har(katorishintoryu, spjut). har(katorishintoryu, svard). har(katorishintoryu, naginata). har(x, fallteknik) :- har(x, kast). har(x, blockeringar) :- har(x, slag). har(x, blockeringar) :- har(x, sparkar).

73 Ett nytt exempel: kampsport.pl?- har(x, sparkar). X = karate ; X = kungfu ; X = taekwondo ; X = jujutsu.?- har(x, blockeringar). X = karate ; X = kungfu ; X = taekwondo ; X = jujutsu ; X = ninjutsu ; X = taido ; X = aikido ; X = karate ; X = kungfu ; X = taekwondo ; X = jujutsu. Obs! Igen, ofullständig beskrivning; också ex. ninjutsu har både slag och sparkar... för att dom har slag för att dom har sparkar

74 Ett nytt exempel: kampsport.pl harjuniorverksamhet(aikido). harjuniorverksamhet(karate). harjuniorverksamhet(judo). harjuniorverksamhet(taido). harjuniorverksamhet(taekwondo). harjuniorverksamhet(jujutsu). ejforbarn(x) :- harvapen(x, _), not(harjuniorverksamhet(x)). ejforbarn(x) :- har(x, struptag), not(harjuniorverksamhet(x)). Strypningar tränas inte med barn under 15 år. När det tränas bland vuxna, ska åtm. en lärare med svart bälte vara närvarande.

75 Ett nytt exempel: kampsport.pl?- ejforbarn(karate). false.?- ejforbarn(aikido). false.?- ejforbarn(kungfu). true ; true ; true ; false. har(kungfu, sabel). har(kungfu, svard). har(kungfu, spjut).

76 Ett nytt exempel: kampsport.pl?- ejforbarn(kungfu). true ; true ; true ; false.?- trace. true. [trace]?- ejforbarn(kungfu). Call: (6) ejforbarn(kungfu)? creep Call: (7) harvapen(kungfu, _G393)? creep Call: (8) har(kungfu, _G393)? creep Exit: (8) har(kungfu, kast)? creep Call: (8) vapen(kast)? creep Fail: (8) vapen(kast)? creep Redo: (8) har(kungfu, _G393)? creep... har(kungfu, sabel). har(kungfu, svard). har(kungfu, spjut).

77 Ett nytt exempel: kampsport.pl Exit: (8) har(kungfu, sparkar)? creep Call: (8) vapen(sparkar)? creep Fail: (8) vapen(sparkar)? creep Redo: (8) har(kungfu, _G393)? creep Exit: (8) har(kungfu, slag)? creep Call: (8) vapen(slag)? creep Fail: (8) vapen(slag)? creep Redo: (8) har(kungfu, _G393)? creep Exit: (8) har(kungfu, tavlingar)? creep Call: (8) vapen(tavlingar)? creep Fail: (8) vapen(tavlingar)? creep Redo: (8) har(kungfu, _G393)? creep Exit: (8) har(kungfu, sabel)? creep Call: (8) vapen(sabel)? creep Exit: (8) vapen(sabel)? creep Exit: (7) harvapen(kungfu, sabel)? creep ^ Call: (7) not(harjuniorverksamhet(kungfu))? creep Call: (8) harjuniorverksamhet(kungfu)? creep Fail: (8) harjuniorverksamhet(kungfu)? creep ^ Exit: (7) not(user:harjuniorverksamhet(kungfu))? creep Exit: (6) ejforbarn(kungfu)? creep true ; har(kungfu, sabel). har(kungfu, svard). har(kungfu, spjut).

78 Ett nytt exempel: kampsport.pl Redo: (8) har(kungfu, _G393)? creep Exit: (8) har(kungfu, svard)? creep Call: (8) vapen(svard)? creep Exit: (8) vapen(svard)? creep Exit: (7) harvapen(kungfu, svard)? creep ^ Call: (7) not(harjuniorverksamhet(kungfu))? creep Call: (8) harjuniorverksamhet(kungfu)? creep Fail: (8) harjuniorverksamhet(kungfu)? creep ^ Exit: (7) not(user:harjuniorverksamhet(kungfu))? creep Exit: (6) ejforbarn(kungfu)? creep true ; har(kungfu, sabel). har(kungfu, svard). har(kungfu, spjut).

79 Ett nytt exempel: kampsport.pl Redo: (8) har(kungfu, _G393)? creep Exit: (8) har(kungfu, spjut)? creep Call: (8) vapen(spjut)? creep Exit: (8) vapen(spjut)? creep Exit: (7) harvapen(kungfu, spjut)? creep ^ Call: (7) not(harjuniorverksamhet(kungfu))? creep Call: (8) harjuniorverksamhet(kungfu)? creep Fail: (8) harjuniorverksamhet(kungfu)? creep ^ Exit: (7) not(user:harjuniorverksamhet(kungfu))? creep Exit: (6) ejforbarn(kungfu)? creep true ; har(kungfu, sabel). har(kungfu, svard). har(kungfu, spjut).

80 Ett nytt exempel: kampsport.pl Redo: (8) har(kungfu, _G393)? creep Call: (9) har(kungfu, kast)? creep Exit: (9) har(kungfu, kast)? creep Exit: (8) har(kungfu, fallteknik)? creep Call: (8) vapen(fallteknik)? creep Fail: (8) vapen(fallteknik)? creep Redo: (9) har(kungfu, kast)? creep Fail: (9) har(kungfu, kast)? creep Redo: (8) har(kungfu, _G393)? creep Call: (9) har(kungfu, slag)? creep Exit: (9) har(kungfu, slag)? creep Exit: (8) har(kungfu, blockeringar)? creep Call: (8) vapen(blockeringar)? creep Fail: (8) vapen(blockeringar)? creep Redo: (9) har(kungfu, slag)? creep Fail: (9) har(kungfu, slag)? creep Redo: (8) har(kungfu, _G393)? creep Call: (9) har(kungfu, sparkar)? creep Exit: (9) har(kungfu, sparkar)? creep Exit: (8) har(kungfu, blockeringar)? creep har(x, fallteknik) :- har(x, kast). har(x, blockeringar) :- har(x, slag). har(x, blockeringar) :- har(x,sparkar).

81 Ett nytt exempel: kampsport.pl Call: (8) vapen(blockeringar)? creep Fail: (8) vapen(blockeringar)? creep Redo: (9) har(kungfu, sparkar)? creep Fail: (9) har(kungfu, sparkar)? creep Fail: (8) har(kungfu, _G393)? creep Fail: (7) harvapen(kungfu, _G393)? creep Redo: (6) ejforbarn(kungfu)? creep Call: (7) har(kungfu, struptag)? creep Fail: (7) har(kungfu, struptag)? creep Fail: (6) ejforbarn(kungfu)? creep false. [trace]?- notrace. true. [debug]?- nodebug. true.?- Inga ytterligare sätt att bevisa varför kungfu inte lämpar sig för barn.

82 Det var det...

83 Sammandrag av dagens FL Under denna föreläsning har vi definierat unifiering tittat på skillnaden mellan standard unifiering och Prologs unifiering introducerat sökträd (resolutionsträd)

84 Nästa föreläsning Diskuterar rekursion i Prolog Introducerar rekursiva definitioner i Prolog Visar att det kan finnas diskrepanser mellan den deklarativa betydelsen av ett Prologprogram och dess procedurala betydelse.

Logikprogrammering. Undervisningsmaterialet NYTT för 2013: Learn Prolog Now! SWI Prolog-tolk, startas under tuxedo/ pingvinerna med swipl!

Logikprogrammering. Undervisningsmaterialet NYTT för 2013: Learn Prolog Now! SWI Prolog-tolk, startas under tuxedo/ pingvinerna med swipl! Logikprogrammering Undervisningsmaterialet NYTT för 2013: Learn Prolog Now! SWI Prolog-tolk, startas under tuxedo/ pingvinerna med swipl! Learn Prolog Now! SWI Prolog Gratis Prolog-tolk Lesser GNU Public

Läs mer

Centrala begrepp i prolog och logikprogrammering. Annamaris lista

Centrala begrepp i prolog och logikprogrammering. Annamaris lista Centrala begrepp i prolog och logikprogrammering Annamaris lista Databas med fakta och regler: Ett prolog-system består av en databas av fakta, och regler som gäller för dessa fakta. Fakta har formen av

Läs mer

Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1).

Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1). Föreläsning 9 i programmeringsparadigm. Unifiering (Brna Chapter 4.1). Repetition: I Haskell är mönster-passning (pattern-matchning) jättepraktiskt: När vi gör ett anrop av en funktion med ett visst argument

Läs mer

Föreläsning 3: rekursion

Föreläsning 3: rekursion Föreläsning 3: rekursion Teori Introducera rekursiva definitioner i Prolog Fyra exempel Visa att det kan finnas diskrepanser mellan Prolog-programmets deklarativa och procedurala betydelse! Rekursiva definitioner

Läs mer

FL 5: Aritmetik. Teori

FL 5: Aritmetik. Teori FL 5: Aritmetik Teori Introducerar Prologs inbyggda operationer för aritmetik Tillämpar dessa på enkla listhanteringsproblem, mha ackumulatorer Ser på svansrekursiva predikat och förklarar varför de är

Läs mer

Traditionell Programmering

Traditionell Programmering Crash Course in Prolog Baran Çürüklü Introduktion till PROLOG, dvs. PROgramming in LOGic Prolog-programmen är deklarativa och består av egenskaper, relationer och regler. Lisp and Prolog är de vanligaste

Läs mer

DD1361 Programmeringsparadigm HT17

DD1361 Programmeringsparadigm HT17 DD1361 Programmeringsparadigm HT17 Logikprogrammering 1 Dilian Gurov, KTH Delkursinnehåll Logisk versus procedurell läsning Kontrollflöde: Unifiering, Backtracking, Snitt Induktiva datatyper och rekursion

Läs mer

DD1361 Programmeringsparadigm HT15

DD1361 Programmeringsparadigm HT15 DD1361 Programmeringsparadigm HT15 Logikprogrammering 1 Dilian Gurov, TCS Innehåll Logikprogrammering Kontrollflöde Unifiering Backtracking Negation Snitt Induktiva datatyper och rekursion Inbyggda datatyper:

Läs mer

Ett Logikprogram. Logik och Programmering. Introduktion till PROLOG, dvs. PROgramming in LOGic. Viktiga begrepp/områden i Prolog. Framtiden?

Ett Logikprogram. Logik och Programmering. Introduktion till PROLOG, dvs. PROgramming in LOGic. Viktiga begrepp/områden i Prolog. Framtiden? Crash Course in Prolog Peter Funk FUKO HT2001 IDt, Computer Science and Engineering Mälardalen University Västerås, Sweden Peter.Funk@mdh.se Introduktion till PROLOG, dvs. PROgramming in LOGic Prolog-programmen

Läs mer

DD1361 Programmeringsparadigm HT16

DD1361 Programmeringsparadigm HT16 DD1361 Programmeringsparadigm HT16 Logikprogrammering 1 Dilian Gurov, TCS Delkursinnehåll Logikprogrammering Logisk versus procedurell läsning Kontrollflöde Unifiering, Backtracking, Snitt Negation Induktiva

Läs mer

Prova på-laboration i Prolog

Prova på-laboration i Prolog Prova på-laboration i Prolog Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2006-09-12 1. Introduktion till Prolog Programspråket Prolog konstruerades i början

Läs mer

Sommarlägret 2015. På Visingsö

Sommarlägret 2015. På Visingsö Sommarlägret 2015 På Visingsö Sommarlägret vänder sig till alla oavsett ålder och bältesgrad. Lägret pågår under fem dagar, fyllda av träning. Sommarlägrets träningar motsvarar mer än en månads vanlig

Läs mer

FL 6: Definite Clause Grammars (kap. 7)

FL 6: Definite Clause Grammars (kap. 7) FL 6: Definite Clause Grammars (kap. 7) Teori Introducerar kontextfria grammatikor och några besläktade begrepp Introducerar definite clause - grammatikor, Prologs sätt att jobba med kontextfria grammatikor

Läs mer

Svensk biblioteksförenings kommitté för Klassifikationssystem för svenska bibliotek (SAB-systemet)

Svensk biblioteksförenings kommitté för Klassifikationssystem för svenska bibliotek (SAB-systemet) Svensk biblioteksförenings kommitté för Klassifikationssystem för svenska bibliotek (SAB-systemet) Sammanträde: 2011-09-14 Plats: BTJ, Lund Närvarande: Anders Noaksson (ordf) BTJ Ebon Gentili MSB Olle

Läs mer

Semantik och pragmatik (Serie 4)

Semantik och pragmatik (Serie 4) Semantik och pragmatik (Serie 4) Satser och logik. Mats Dahllöf Institutionen för lingvistik och filologi April 2015 1 / 30 Så här långt (satslogik) Konjunktion (p q): att två enklare satser båda är uppfyllda.

Läs mer

Våra enkla funktioner eller procedurer

Våra enkla funktioner eller procedurer Föreläsning 3 Våra enkla funktioner eller procedurer Programmönster 1. Repetition 2. Högre-ordningens procedurer/programmönster - Procedurer som argument - Procedurer som returnerade värden 3. Scope och

Läs mer

FUZZY LOGIC. Christopher Palm chrpa087

FUZZY LOGIC. Christopher Palm chrpa087 FUZZY LOGIC 900223-1554 Innehållsförteckning INLEDNING...2 HUR DET FUNGERAR...3 Crisp Sets och Fuzzy Sets...3 Operatorer...5 IF THEN regler...7 FUZZY INFERENCE...7 Fuzzification...8 Regelsättning...8

Läs mer

Föreläsning 8. newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK -- data istället för newtype krävs om >1 konstruerare.

Föreläsning 8. newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK -- data istället för newtype krävs om >1 konstruerare. Föreläsning 8. Typer och programmeringsstil i Haskell. När vi definerade ett schack gjorde vi så här: newtype Chess = Chess [(Square, Chessman)] -- data ist f newtype OK deriving Show -- newtype effektivare

Läs mer

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

*UXSS YQLQJ±/RJLNPHGWLOOlPSQLQJDUYW

*UXSS YQLQJ±/RJLNPHGWLOOlPSQLQJDUYW *USS YQLQJ±/RJLNPHGWLOOlPSQLQJDUYW 8SSJLIW Här kommer några teoretiska frågor, skriv svaren med egna ord, dvs skriv inte av ohbilderna: a. Vad är en beslutsprocedur? En algoritm som terminerar och som

Läs mer

Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem.

Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem. Omgivningar Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem. (define (sqrroot c) (define (fixpoint guess c eps) (define

Läs mer

Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1.

Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Föreläsning 9 i programmeringsparadigm. Paradigmöversikt, paradigmhistoria, paradigmgeografi. Se även föreläsning 1. Användning av Prolog. Prolog har framför allt används inom AI ( Articifial Intellegence),

Läs mer

Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar

Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar Innehåll Föreläsning 7 Logik med tillämpningar 99-03-01 Första ordningens predikatlogik Objekt, predikat, kvantifierare Funktioner, termer, wffs Bindning och räckvidd Tolkningar och värderingar Satisfiering,

Läs mer

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn. Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0

Läs mer

DD1361 Programmeringsparadigm HT15

DD1361 Programmeringsparadigm HT15 DD1361 Programmeringsparadigm HT15 Logikprogrammering 3 Dilian Gurov, TCS Idag Induktiva datatyper: Träd (inte inbyggd) Binära träd utan data Binära träd med data Prolog-specifika konstruktioner Negation,

Läs mer

TATA42: Föreläsning 9 Linjära differentialekvationer av ännu högre ordning

TATA42: Föreläsning 9 Linjära differentialekvationer av ännu högre ordning TATA42: Föreläsning 9 Linjära differentialekvationer av ännu högre ordning Johan Thim 4 mars 2018 1 Linjära DE av godtycklig ordning med konstanta koefficienter Vi kommer nu att betrakta linjära differentialekvationer

Läs mer

Innehållsförtekning Sida. Inledning 3 Vad är fuzzy logic? 3 Mängder 3 Medlemsfunktioner 5 Operationer 6 Fuzzification 8 Litteraturförteckning 9

Innehållsförtekning Sida. Inledning 3 Vad är fuzzy logic? 3 Mängder 3 Medlemsfunktioner 5 Operationer 6 Fuzzification 8 Litteraturförteckning 9 Fuzzy Logic Innehållsförtekning Sida Inledning 3 Vad är fuzzy logic? 3 Mängder 3 Medlemsfunktioner 5 Operationer 6 Fuzzification 8 Litteraturförteckning 9 2 Inledning Med detta fördjupningsarbete vill

Läs mer

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 8: Predikatlogik Henrik Björklund Umeå universitet 2. oktober, 2014 Första ordningens predikatlogik Signaturer och termer Första ordningens predikatlogik Formler

Läs mer

Grundläggande logik och modellteori (5DV102)

Grundläggande logik och modellteori (5DV102) Tentamen 2013-10-31 Grundläggande logik och modellteori (5DV102) M. Berglund och K. Markström Totalt antal uppgifter 11 Maximalt antal poäng 30 Krav för 3 i betyg 14 poäng Krav för 4 i betyg 19 poäng,

Läs mer

MAA7 Derivatan. 2. Funktionens egenskaper. 2.1 Repetition av grundbegerepp

MAA7 Derivatan. 2. Funktionens egenskaper. 2.1 Repetition av grundbegerepp MAA7 Derivatan 2. Funktionens egenskaper 2.1 Repetition av grundbegerepp - Det finns vissa begrepp som återkommer i nästan alla kurser i matematik. Några av dessa är definitionsmängd, värdemängd, största

Läs mer

Svenska Budo & Kampsportsförbundet Bilaga 2. Organisationsnummer

Svenska Budo & Kampsportsförbundet Bilaga 2. Organisationsnummer Årsredovisning för räkenskapsåret 2009-01-01-2009-12-31 Styrelsen för Svenska Budo & Kampsportsförbundet avger härmed följande årsredovisning. Innehåll Sida Förvaltningsberättelse 2 Resultaträkning - kostnadsslagsindelad

Läs mer

Vad behövs för att skapa en tillståndsrymd?

Vad behövs för att skapa en tillståndsrymd? OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervarlsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd. OBS! För flervalsfrågorna gäller att ett, flera eller inget alternativ kan vara korrekt. På flervalsfrågorna ges 1 poäng för korrekt svar och 0,5 poäng om skillnaden mellan antalet korrekta svar och antalet

Läs mer

SF1626 Flervariabelanalys

SF1626 Flervariabelanalys 1 / 14 SF1626 Flervariabelanalys Föreläsning 7 Henrik Shahgholian Vid Institutionen för matematik, KTH VT 2018, Period 3 2 / 14 SF1626 Flervariabelanalys Dagens Lektion Kap 12.8 1. Implicit definierade

Läs mer

Motion till riksdagen. 1987/88:Ju810 av Göran Ericsson (m) om karateklubbar. Bakgrund. Kampsportens egenskaper

Motion till riksdagen. 1987/88:Ju810 av Göran Ericsson (m) om karateklubbar. Bakgrund. Kampsportens egenskaper Motion till riksdagen 1987/88:Ju810 av Göran Ericsson (m) om karateklubbar Bakgrund Internationellt är karate en sport. l Sverige sorterar denna gren under Svenska Budoförbundet, som är anslutet till Riksidrottsförbundet.

Läs mer

TATA42: Föreläsning 8 Linjära differentialekvationer av högre ordning

TATA42: Föreläsning 8 Linjära differentialekvationer av högre ordning TATA42: Föreläsning 8 Linjära differentialekvationer av högre ordning Johan Thim 23 april 2018 1 Differentialoperatorer För att underlätta notation och visa på underliggande struktur introducerar vi begreppet

Läs mer

DD1361 Programmeringsparadigm HT15

DD1361 Programmeringsparadigm HT15 DD1361 Programmeringsparadigm HT15 Logikprogrammering 3 Dilian Gurov, TCS Idag Induktiva datatyper: Träd (inte inbyggd) Binära träd utan data Binära träd med data Prolog-specifika konstruktioner Negation,

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 12: Logikprogrammering Henrik Björklund Umeå universitet 16. oktober, 2014 Prolog Prolog har två klasser av formler. Atomära formler: country(sweden, 9000000).

Läs mer

Programmering II (ID1019) :00-17:00

Programmering II (ID1019) :00-17:00 ID1019 Johan Montelius Programmering II (ID1019) 2014-03-10 14:00-17:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.

Läs mer

ÖVN 6 - DIFFERENTIALEKVATIONER OCH TRANSFORMMETODER - SF Nyckelord och innehåll. a n (x x 0 ) n.

ÖVN 6 - DIFFERENTIALEKVATIONER OCH TRANSFORMMETODER - SF Nyckelord och innehåll. a n (x x 0 ) n. ÖVN 6 - DIFFERENTIALEKVATIONER OCH TRANSFORMMETODER - SF683 HTTP://KARLJODIFFTRANS.WORDPRESS.COM KARL JONSSON Nyckelord och innehåll Potensserielösningar Analytiska funktioner Konvergensradie Rot- och

Läs mer

Robin Stenwall Lunds universitet

Robin Stenwall Lunds universitet Robin Stenwall Lunds universitet Dagens föreläsning Informella bevismetoder för kvantifikatorer Universell elimination Existentiell introduktion Existentiell elimination Universell introduktion General

Läs mer

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska ni kunna?

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska ni kunna? Avslutning Anmärkningar inför tentan Vad ska ni kunna? Avslutning 1 Vad? Anmärkningar inför tentan 1 Att ha en bra förståelse för det som behandlades på föreläsningarna, inlämningsuppgifterna och gruppövningarna

Läs mer

Länkning av Prolog under C

Länkning av Prolog under C Länkning av Prolog under C Kent Boortz Swedish Institute of Computer Science Box 1263, S-164 28 Kista, Sweden 1 september 1991 T91:14 Sammanfattning SICStus länkmoduler ger möjlighet att blanda Prolog-

Läs mer

3 Deriveringsregler. Vi ska nu bestämma derivatan för dessa fyra funktioner med hjälp av derivatans definition

3 Deriveringsregler. Vi ska nu bestämma derivatan för dessa fyra funktioner med hjälp av derivatans definition 3 Deriveringsregler 3.1 Dagens Teori Vi ar lärt oss derivera en funktion, främst polynom, med jälp av derivatans definition. Vi ar funnit denna teknik ganska krävande. 3.1.1 Vi är på jakt efter ett mönster

Läs mer

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion Introduktion till programmering D0009E Föreläsning 6: Iteration Multipel tilldelning Helt ok att tilldela en variabel flera gånger: bruce = bruce, bruce = 7 bruce Output: 7 Som tillståndsdiagram: bruce

Läs mer

Det finns både SM (varje år), EM (vartannat år) och VM (vartannat år). Sverige

Det finns både SM (varje år), EM (vartannat år) och VM (vartannat år). Sverige Det var flera som tog ett glänsande farväl på VM i ju-jutsu i Malmö sista helgen i november förra året. De som lät VM-medaljerna avsluta tävlingskarriären lämnar stora hål efter sig och generationsskiftet

Läs mer

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section Föreläsning 1 Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section 1.1-1.3 i kursboken Definition En utsaga (proposition) är ett

Läs mer

Verbal judo. "Den mjuka vägen" är en modern japansk kampsport skapad av Jigoro Kano ur olika jujutsustilar vid talets slut

Verbal judo. Den mjuka vägen är en modern japansk kampsport skapad av Jigoro Kano ur olika jujutsustilar vid talets slut "Den mjuka vägen" är en modern japansk kampsport skapad av Jigoro Kano ur olika jujutsustilar vid 1800- talets slut I judo förekommer det inte sparkar och slag, till skillnad från andra budoarter som karate

Läs mer

Lådmodellen....eller procedure box control flow model. Dynamisk bild av ett prologprogram Förklarar i detalj procedurell läsning av ett program.

Lådmodellen....eller procedure box control flow model. Dynamisk bild av ett prologprogram Förklarar i detalj procedurell läsning av ett program. Lådmodellen...eller procedure box control flow model. Dynamisk bild av ett prologprogram Förklarar i detalj procedurell läsning av ett program. Lådmodellen...eller procedure box control flow model. Dynamisk

Läs mer

TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer

TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer TATA42: Föreläsning 7 Differentialekvationer av första ordningen och integralekvationer Johan Thim 0 januari 207 Introduktion En differentialekvation (DE) i en variabel är en ekvation som innehåller både

Läs mer

Anteckningar för kursen "Analys i en Variabel"

Anteckningar för kursen Analys i en Variabel Anteckningar för kursen "Analys i en Variabel" Simone Calogero Vecka 4 Viktig information. Dessa anteckningar är inte avsedda som en ersättning för kurs litteratur men bara som en kort sammanfattning av

Läs mer

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar.

Del : Funktionell programmering. I alla deluppgifterna, använd Haskell och skriv typen för de identifierare du definierar. Nada Tentamensdag 2005 jan11 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 10p +(6p + 10p +14p+ 20p) + (9p +11p + 8p +12p) = 10p + 50p + 40 p

Läs mer

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18

TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18 TDDC74 Programmering: Abstraktion och modellering Tentamen, onsdag 9 juni 2016, kl 14 18 Läs alla frågorna först, och bestäm dig för i vilken ordning du vill lösa uppgifterna. Skriv tydligt och läsligt.

Läs mer

Modul 1 Mål och Sammanfattning

Modul 1 Mål och Sammanfattning Institutionen för Matematik SF1625 Envariabelanalys Läsåret 2016-2017 Lars Filipsson Modul 1 Mål och Sammanfattning 1. Reella tal. 1. MÅL FÖR MODUL 1 Känna till talsystememet och kunna använda notation

Läs mer

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas?

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas? Avslutning Anmärkningar inför tentan Vad ska kunnas? Avslutning 1 Vad? Anmärkningar inför tentan 1 Att ha en bra förståelse för det som behandlades på föreläsningarna och gruppövningarna räcker i princip.

Läs mer

Matematik 5 Kap 3 Derivator och Integraler

Matematik 5 Kap 3 Derivator och Integraler Matematik 5 Kap 3 Derivator och Integraler Inledning I kap 4 Differentialekvationer behövs derivator (och integraler) och i kap 5 Omfångsrika problemsituationer finns intressanta problem med användning

Läs mer

Shotokan Karateklubb

Shotokan Karateklubb Shotokan Karateklubb Helsingborg Shotokan Karate Do MOTION SJÄLVFÖRSVAR TÄVLING Vad är karate? Karaten är svår att beskriva med några få ord. Man kan säga att det är en gammal stridskonst som har utvecklats

Läs mer

FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS

FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS 729G06 Logik FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS 160208 Idag C-regeln, informell (och formell) inledning till predikatlogik (Bevis kommer senare.) 2 3 Vår (Snöfritt Cykla) (Vår Snöfritt) Cykla Lätt

Läs mer

LEDARE KALENDARIUM I DETTA NUMMER

LEDARE KALENDARIUM I DETTA NUMMER Kime - juni 2015 LEDARE Allt har ett slut och så även vårterminen 2015. House of Samurai går in i ett lugnare tempo under cirka två månaders tid med träning en gång i veckan för jujutsuutövarna och två

Läs mer

DD1361 Programmeringsparadigm HT17

DD1361 Programmeringsparadigm HT17 DD1361 Programmeringsparadigm HT17 Logikprogrammering 3 Dilian Gurov, TCS Idag Induktiva datatyper: Träd (inte inbyggd) Binära träd utan data Binära träd med data Problemdomänbeskrivning Läsmaterial Prolog-fil:

Läs mer

Formell logik Kapitel 9. Robin Stenwall Lunds universitet

Formell logik Kapitel 9. Robin Stenwall Lunds universitet Formell logik Kapitel 9 Robin Stenwall Lunds universitet Kapitel 9: Introduktion till kvantifiering Vi har hittills betraktat logiska resonemang vars giltighet enbart beror på meningen hos konnektiv som

Läs mer

SF1625 Envariabelanalys

SF1625 Envariabelanalys Föreläsning 5 Institutionen för matematik KTH 5 september 2017 Hur mycket behöver man jobba? Vi har ett gemensamt ansvar: Jag visar vad som behöver göras Men det är ni som måste göra det Viktigt faktum:

Läs mer

Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13

Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Nada KTH 2003 okt 23 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 9 10p +(14p + 12p +10p+ 14p) + (8p +12p + 12p +8p) = 10p + 50p

Läs mer

Kontinuitet och gränsvärden

Kontinuitet och gränsvärden Kapitel Kontinuitet och gränsvärden.1 Introduktion till kontinuerliga funktioner Kapitlet börjar med allmänna definitioner. Därefter utvidgar vi successivt familjen av kontinuerliga funktioner, genom specifika

Läs mer

Föreläsning 6. SF1625 Envariabelanalys. Hans Thunberg, 9 november 2018

Föreläsning 6. SF1625 Envariabelanalys. Hans Thunberg, 9 november 2018 Föreläsning 6 SF1625 Envariabelanalys 9 november 2018 SF1625 CDEPR1, CENMI1, CLGYM TEMI2 HT18 F6 1 / 18 Dagens teman: Primitiva funktioner (Antiderivator) och differentialekvationer (2.10) Tillämpningar

Läs mer

Perunas mjölksyrade grönsaker

Perunas mjölksyrade grönsaker Perunas mjölksyrade grönsaker Mjölksyrade tomater, morötter, eller paprikor (med lök), surkål. Man börjar med att noga rengöra en tvåliters glasburk. Koka till exempel burken i vatten. Koka 1 liter vatten

Läs mer

Styrelsemöte nr. 16. Datum: 2011-12-04 Plats: Ölandsgatan 42, Svenska Budo & Kampsportsförbundets kansli Tid: Kl.14:00-18:00

Styrelsemöte nr. 16. Datum: 2011-12-04 Plats: Ölandsgatan 42, Svenska Budo & Kampsportsförbundets kansli Tid: Kl.14:00-18:00 1 Styrelsemöte nr. 16 Datum: 2011-12-04 Plats: Ölandsgatan 42, Svenska Budo & Kampsportsförbundets kansli Tid: Kl.14:00-18:00 Kallade, närvarande Anette Persson Sunje, ordförande Anders Bergström, kassör

Läs mer

Läsanvisningar till kapitel

Läsanvisningar till kapitel Läsanvisningar till kapitel 2.3 2.5 2.3 Analytiska funktioner Analytiska funktioner, eller holomorfa funktioner som vi kommer kalla dem, är de funktioner som vi komer studera så gott som resten av kursen.

Läs mer

5 Blandade problem. b(t) = t. b t ln b(t) = e

5 Blandade problem. b(t) = t. b t ln b(t) = e 5 Blandade problem 5.1 Dagens Teori Ett person sätter in 10000 kr på banken vid nyår 2000 till 4% ränta. Teckna en funktion, b(t) för beloppets utveckling. b(t) = 10000 1.04 t Skriv om funktionen med basen

Läs mer

DD1361 Programmeringsparadigm. Carina Edlund

DD1361 Programmeringsparadigm. Carina Edlund DD1361 Programmeringsparadigm Carina Edlund carina@nada.kth.se Funktionell programmering Grundidéen med funktionell programmering är att härma matematiken och dess funktionsbegrepp. Matematiskt funktionsbegrepp

Läs mer

FÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION

FÖRELÄSNING 2, TDDC74, VT2018 BEGREPP PROBLEMLÖSNING MED HJÄLP AV FALLANALYS PROBLEMLÖSNING MED HJÄLP AV REKURSION FÖRELÄSNING 2, TDDC74, VT2018 Begrepp och definitioner (delvis från föreläsning 1) Fallanalys som problemlösningsmetod Rekursivt fallanalys Rekursiva beskrivningar och processer de kan skapa Rekursiva

Läs mer

Robin Stenwall Lunds universitet

Robin Stenwall Lunds universitet Robin Stenwall Lunds universitet Dagens föreläsning Informella bevismetoder för kvantifikatorer Universell elimination Existentiell introduktion Existentiell elimination Universell introduktion General

Läs mer

Del : Paradigmer allmänt.

Del : Paradigmer allmänt. Nada Tentamensdag 2003 aug 25 Tentamen Programmeringsparadigm Skrivtid 5 h Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 5p +(12p + 15p +5p+ 20p) + (10p +14p + 8p +11p) = 5p + 52p + 43 p

Läs mer

Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13

Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Nada KTH 2004 jan 12 Tentamen Programmeringsparadigm 2D1350 Skrivtid 5 h 8-13 Antalet uppgifter : 1 (allmänt)+ 4 (Haskell) + 4 (Prolog) = 9 10p +( 5p + 14p +15p+ 16p) + (12p +10p + 10p +8p) = 10p + 50p

Läs mer

Konsten att lösa icke-linjära ekvationssystem

Konsten att lösa icke-linjära ekvationssystem Konsten att lösa icke-linjära ekvationssystem Andreas Axelsson Vi beskriver här de grundläggande teknikerna för att lösa icke-linjära ekvationssystem. Detta är en nödvändig kunskap för att kunna lösa diverse

Läs mer

Mer om generaliserad integral

Mer om generaliserad integral Föreläsning XI Mer om generaliserad integral Ex 64: Givet h(x) = ( x 2 5x + 2 ) e x/2. (a) Bestäm en p.f. till h(x). (b) Beräkna h(x)dx. (a) Vi har här en integrand som är en produkt av ett polynom av

Läs mer

Sidor i boken KB 6, 66

Sidor i boken KB 6, 66 Sidor i boken KB 6, 66 Funktioner Ordet funktion syftar inom matematiken på en regel som innebär att till varje invärde associeras ett utvärde. Ofta beskrivs sambandet mellan invärde och utvärde med en

Läs mer

SB&K-nr Röster Antal medlemmar Ombudets namn 019 Boxing gym Idrottsförening 2046 1 18 Abada Capoeira Göteborg IF 1623 1 31 Abada Capoeira Umeå -IF

SB&K-nr Röster Antal medlemmar Ombudets namn 019 Boxing gym Idrottsförening 2046 1 18 Abada Capoeira Göteborg IF 1623 1 31 Abada Capoeira Umeå -IF Förening SB&K-nr Röster Antal medlemmar Ombudets namn 019 Boxing gym Idrottsförening 2046 1 18 Abada Capoeira Göteborg IF 1623 1 31 Abada Capoeira Umeå -IF 1662 1 15 Abadá Capoeira Kristianstad IF 2072

Läs mer

10.1 Linjära första ordningens differentialekvationer

10.1 Linjära första ordningens differentialekvationer 10.1 Linjära första ordningens differentialekvationer Här ska vi studera linjära första ordningens differentialekvationer som kan skrivas y (x) + g(x)y(x) = h(x) Om g(x) har en primitiv funktion G(x) så

Läs mer

Manual för att arrangera tävling i wushu

Manual för att arrangera tävling i wushu Sida 1 av 31 Manual för att arrangera tävling i wushu Baserad på Svenska Budo & Kampsportsförbundets tävlingspärm, omarbetad och anpassad för wushu av Peder Finnsiö 2011-09-25 INNEHÅLL 1. Arrangemanget...

Läs mer

M0038M Differentialkalkyl, Lekt 17, H15

M0038M Differentialkalkyl, Lekt 17, H15 M0038M Differentialkalkyl, Lekt 17, H15 Staffan Lundberg Luleå Tekniska Universitet Staffan Lundberg M0038M H15 1/ 38 Repetition Lekt 16 Uppskatta (8.2) 1/3 genom att använda differentialer. Svara på bråkform.

Läs mer

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.

Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18. Föreläsningen ger en introduktion till differentialekvationer och behandlar stoff från delkapitel 18.1, 18.3 och 7.9 i Adams. 18.1 Delkapitlet introducerar en del terminologi och beteckningar som används.

Läs mer

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson Uppsala Universitet Matematiska Institutionen Thomas Erlandsson LÄSANVISNINGAR VECKA 36 VERSION 1. ARITMETIK FÖR RATIONELLA OCH REELLA TAL, OLIKHETER, ABSOLUTBELOPP ADAMS P.1 Real Numbers and the Real

Läs mer

Introduktion till formella metoder Programmeringsmetodik 1. Inledning

Introduktion till formella metoder Programmeringsmetodik 1. Inledning Introduktion till formella metoder Programmeringsmetodik 1. Inledning Fokus på imperativa program (ex. C, Java) program betyder härefter ett imperativt program Program bestäms i en abstrakt mening av hur

Läs mer

Väl mött! /Ulf Nilsson, red. I DETTA NUMMER. Taekwondo fighting från Korea sid 2. Från Grästorp till Lund sid 3. Ordlista: Grader sid 6 KALENDARIUM

Väl mött! /Ulf Nilsson, red. I DETTA NUMMER. Taekwondo fighting från Korea sid 2. Från Grästorp till Lund sid 3. Ordlista: Grader sid 6 KALENDARIUM Kime - sep 2015 LEDARE En vän till mig som spenderar mycket tid i Nepal berättade att munkarna och nunnorna i det kloster hon brukar bo i brukar säga att utan ett fungerande inre kan vi inte nå nirvana

Läs mer

Kapitel 7. Kontinuitet. 7.1 Definitioner

Kapitel 7. Kontinuitet. 7.1 Definitioner Kapitel 7 Kontinuitet 7.1 Definitioner Vi har sett på olika typer av funktioner. Vi skall fortsätta att undersöka dem, men ur en ny synvinkel. Vår utgångspunkt är nu att försöka undersöka om de är sammanhängande.

Läs mer

Exempel på ett litet Ada-program

Exempel på ett litet Ada-program Exempel på ett litet Ada-program -- En kommentar som beskriver något. with Ada.Text_IO; procedure Mini is -- Deklarationer. K : constant Integer := 5; X, Y : Integer; -- Körbar kod. Ada.Text_IO.Put( Utskrift

Läs mer

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner

Läs mer

13 Potensfunktioner. Vi ska titta närmare på några potensfunktioner och skaffa oss en idé om hur deras kurvor ser ut. Vi har tidigare sett grafen till

13 Potensfunktioner. Vi ska titta närmare på några potensfunktioner och skaffa oss en idé om hur deras kurvor ser ut. Vi har tidigare sett grafen till 3 Potensfunktioner 3. Dagens teori Vi ska titta närmare på några potensfunktioner och skaffa oss en idé om hur deras kurvor ser ut. Vi har tidigare sett grafen till f(x) = x 8 6 4 2-3 -2-2 3-2 -4-6 -8

Läs mer

Facit till Några extra uppgifter inför tentan Matematik Baskurs. x 2 x 3 1 2.

Facit till Några extra uppgifter inför tentan Matematik Baskurs. x 2 x 3 1 2. KTH Matematik Lars Filipsson Facit till Några extra uppgifter inför tentan Matematik Baskurs 1. Låt f(x) = ln 2x + 4x 2 + 9 + ln 2x 4x 2 + 9. Bestäm definitionsmängd och värdemängd till f och rita kurvan

Läs mer

Föreläsninsanteckningar till föreläsning 3: Entropi

Föreläsninsanteckningar till föreläsning 3: Entropi Föreläsninsanteckningar till föreläsning 3: Entropi Johan Håstad, transkriberat av Pehr Söderman 2006-01-20 1 Entropi Entropi är, inom kryptografin, ett mått på informationsinnehållet i en slumpvariabel.

Läs mer

Konvertering från sträng. Winstrand Development

Konvertering från sträng. Winstrand Development 1 Winstrand Development Konvertering mellan strängar och datatyper När vi arbetar med de inbyggda datatyperna (int, double etc.) går det lätt att konvertera värdet till en sträng mha metoden.tostring()

Läs mer

DD1350 Logik för dataloger

DD1350 Logik för dataloger DD1350 Logik för dataloger Fö 4 Predikatlogik 1 Kort repetition Satslogik Naturlig deduktion är ett sunt och fullständigt bevissystem för satslogik Avgörbarhet Så vad saknas? Egenskaper Satslogiken är

Läs mer

PIA. Publicerat med.llstånd Titel Text Bild Förlag

PIA. Publicerat med.llstånd Titel Text Bild Förlag PIA Jonatan är så glad att han nästan svävar in genom dörren till sporthallen. Han är barfota och har träningsbyxor och T-shirt på sig. Han ser fram emot att få flyga genom luften med ena benet framför

Läs mer

Programkonstruktion och Datastrukturer

Programkonstruktion och Datastrukturer Programkonstruktion och Datastrukturer VT 2012 Tidskomplexitet Elias Castegren elias.castegren.7381@student.uu.se Problem och algoritmer Ett problem är en uppgift som ska lösas. Beräkna n! givet n>0 Räkna

Läs mer

Grundläggande logik och modellteori (5DV102)

Grundläggande logik och modellteori (5DV102) Tentamen 2014-01-10 Grundläggande logik och modellteori (5DV102) M. Berglund och K. Markström Totalt antal uppgifter 10 Maximalt antal poäng 30 Krav för 3 i betyg 1 Krav för 4 i betyg 19 poäng, vara minst

Läs mer

15. Ordinära differentialekvationer

15. Ordinära differentialekvationer 153 15. Orinära ifferentialekvationer 15.1. Inlening Differentialekvationer är en gren inom matematiken som beskriver en värl vi lever i bäst. Såana ekvationer kan beskriva matematiska moeller för många

Läs mer

PIA. Publicerat med tillstånd Taekwondo är tuffast Text Lise Blomquist Bild Stina Lövkvist Opal 2006

PIA. Publicerat med tillstånd Taekwondo är tuffast Text Lise Blomquist Bild Stina Lövkvist Opal 2006 PIA Jonatan är så glad att han nästan svävar in genom dörren till sporthallen. Han är barfota och har träningsbyxor och T-shirt på sig. Han ser fram emot att få flyga genom luften med ena benet framför

Läs mer

Buddhismen, lä xä till fredäg 6 feb

Buddhismen, lä xä till fredäg 6 feb Buddhismen, lä xä till fredäg 6 feb Buddhismen är den viktigaste religionen i Sydostasien, på Sri Lanka och i Tibet. Det finns också många buddhister i Kina och Japan. Hindusimen och buddhismen har mycket

Läs mer