STRIPS. En planerares uppbyggnad. Emma Torensjö. Artificiell Intelligens II. Linköpings Universitet HT Emma Torensjö.

Storlek: px
Starta visningen från sidan:

Download "STRIPS. En planerares uppbyggnad. Emma Torensjö. Artificiell Intelligens II. Linköpings Universitet HT Emma Torensjö."

Transkript

1 STRIPS En planerares uppbyggnad Artificiell Intelligens II Linköpings Universitet HT 2012

2

3 Innehållsförteckning Innehåll Innehållsförteckning... 3 Inledning Introduktion till STRIPS Operatorbeskrivning och applikationer Add- och delete list The operation of STRIPS Resolution Verkställandet av STRIPS Avslut Referenser... 15

4 Inledning Namnet STRIPS är en förkortning av Stanford Research Institute Problem Solver och är som nanmet antyder ett problemlösande program. Programmet utvecklades ursprungligen för att implementeras i programspråket LISP för att användas vid pågående robotforskning, forskning som till slut resulterade i den första logiska målbaserade agenten, roboten Shakey. STRIPS kunde producera för Shakey en lista med de handlingar som skulle utföras för att uppfylla de mål som givits. Den process som STRIPS använder sig av för att tillslut kunna presentera listan med handlingar för Shakey använde sig av var ny och snabbare än tidigare problemlösare. Den här rapporten kommer att steg för steg gå igenom de olika operatorer och processer som STRIPS är uppbyggd av, samt hur dessa tillslut fungerar i ett flöde och, förhoppningsvis, finner en lösning på problemet som den ställts inför. 1. Introduktion till STRIPS Syftet med STRIPS är att finna en lösning till ett givet problem i en rymd av world models. För att finna denna lösning genomförs en sökning i rymden av world models för att identifiera en modell där målformuleringen är uppnådd. För att planeraren ska generera en lista med handlingar som kan omvandla en world model till en annan måste det finnas operatorer som kan tillåta omvandligen mellan world models. STRIPS generella uppgift är att hitta den sammansättning av operatorer i en world model som omvandlar den ursprungliga modellen till en modell där målformuleringar är uppfyllda i enighet med målformuleringen. Figur 1. Enkel illustration över en world model övergår till en ny world model STRIPS använder sig av både trädsökning och deduktion för att uppfylla de mål som satts. Hur detta går till exakt kommer att beskrivas i kommande avsnitt. Till att börja med kommer den generella strategin samt de operatorer och dess instanser som STRIPS är uppbyggt av att presenteras.

5 Ett problem som STRIPS måste kunna hantera är det format som dess world models är representerade i. Detta format måste vara kompatibelt med både den deduktion och den sökprocess som STRIPS involverar. Genom att representera en world model som även är kompatibel med de då ledande datorprogrammen, lät man modellen utformas som formalistiska antaganden i första ordningens predikatlogik. Genom att representera en world model som logiska antaganden möjliggörs den deduktiva processen.. Detta system tillåter den deduktion som beskrevs tidigare att genomföras. Det teorembivisande system som STRIPS använder sig av är QA3, och kommer hädanefter att refereras till med det namnet. För att målformuleringarna ska kunna bevisas som sanna måste även dessa representeras så att QA3 kan genomföra en deduktion. Det görs genom att målformuleringarna representeras i en form som är kompatibel med QA3s deduktionsprocess. Denna form är av första ordningens predikat calculus well formed formulas, hädanefter refererade till som wffs. Nedan visas ett exempel på ett wffs för målformuleringen flytta en låda till position b. ( u)[box(u) AT(u, b)] STRIPS använder sig dock inte enbart utav logisk deduktion för att verifiera sina antaganden, utan även ett sökträd av dess world models genom en sökprocess som kan liknas med General Problem Solver. Genom denna kombination tillåts de modeller som representeras att vara mer komplexa och generella än vad tidigare var möjligt att implementera i en GPS. För att djupare kunna beskriva hur GPS fungerar inom STRIPS, måste vi först titta på hur de olika operatorerna är uppbyggda.

6 2. Operatorbeskrivning och applikationer En lösning från en avslutad planering består av en sekvens av operatorer. Operatorerna är de grundläggande elementen i en genererad lösning. Det en operator representerar är inte ett egentligt agerande. Operatorerna beskriver istället den förändring som sker på en aktuell world model under tiden som planeringen genomförs. Varje operator har associerade rutiner. Rutinerna är de faktiska handlingarna som operatorn endast beskriver. Operatorerna är en del av problemlösningen när en world model genererats och målformuleringen försöker verifieras mot den. Operatorerna har i sin tur tilldelade parametrar som måste vara beskrivna i problemlösaren. Dessa operatorbeskrivningar är i STRIPS uppbyggda av tre huvudsakliga komponenter: I. Namnet på operatorn och dess parametrar II. Preconditions III. Effekt Den första komponenten består enbart av namnet på operatorn och dess parametrar. Den andra är en formel formulerad i första ordningens logik som möjliggör för operatorn att appliceras i en world model där precondition är det sista steget i en härledning ur ett formellt system. Exempelvis kan en godtycklig operator goto(u,x,y) vilken motsvarar ett objekt, x som förflyttar sig från position y till position z kunna ha följande precontiotions: ( x, u)[at(u, x) ATR(x)] ATR(x) beskriver objektet x nya position. Den sista komponenten beskriver effekten av ett set av wffs när operatorn appliceras. Processen som sker när operatorn appliceras på wff och beräknar effekten är en av huvudpelarna inom STRIPS. Det som sker när en operator appliceras, är att de påverkade wffs i olika world models inte längre kan konstateras vara sanna eller falska, utan i det här stadiet kan deras värde endast betraktas som osäkert. För att kunna beräkna lösningen på en world model utifrån en annan world model behövs någon form av addering av några wffs och radering av några av wffs. Till exempel kan vi tänka att en wffs som ska läggas till är, om vi använder exemplet ovan, objektets x nya position medan en wffs som ska raderas är objektet x ursprungliga position. Dessa procedurer utförs genom två listor; en kallad delete list och en kallas add list. Dessa procedurer behöver en närmare beskrivning.

7 2.1 Add- och delete list De set av wffs som ska adderas till den nya world model beror på de resultat som framkommit av operatorns applicering. Dessa resultat är inte specificerade tills det att alla parametrar av den rutin som ska utföras är instanserade av konstanter. Processen kan illustreras på följande sätt. Operatorn goto(u,x,y) modellerar roboten u att förflytta sig från position x till position y, där x och y kan representera vilka godtyckliga positioner som helst. När sedan operatorns rutin har genomförts ska parametrarna x och y bli instanserade av konstanter. STRIPS har även möjlighet att hantera att en operator kan appliceras till en world model med en, flera eller alla av operatorns parametrar ospecificerade. För till exempel operatorn goto(u,a,z) där a är en konstant medan z är en ospecificerad parameter, kommer den resulterande world model även den vara ospecificerad. Appliceringen av goto(u,a,z) resulterar på så vis i ett träd av olika world models parametriserade av z. Att genomföra en sökning i detta träd ökar effektiviteten hos STRIPS i jämförelse till att genomföra en sökning i den större rymden av individuella world models som i en vanlig trädsökning. För att kunna dra nytta av den reducerade storleken på sökrymden måste alla de träd av world models som resulteras från applikationen av en operator med fria parametrar kunna beskrivas med ett set av wffs. Detta görs genom att lägga till operatorn goto(u,a,x) på en godtycklig world model, S 0. Vår operator kommer då att skrivas på följande sätt: ( x)( s)atr(x, s) Här beskrivs att för alla parametrar med värdet x, existerar det en world model där vårt objekt befinner sig på position x. Genom att använda uttryck formulerade på det här sättet, kan vi med ett set av wffs beskriva hela det träd av world models som vi tidigare genererat. Dock är vi inte färdiga med arbetet med wffs, STRIPS använder sig av ett resolutionsbaserad teorembevisande vilket medför att vi måste skriva om en formel till en sats på följande vis: ATR(x, goto (a, x, s )) Här är som en funktion av x som ersätter kvantifieraren. Värdet av funktionen för vilket x som helst är den world model producerad genom just appliceringen av operatorn goto(u,a,x) på world model S 0. Det är dessa satser som ska läggas till när en ny world model ska beräknas. De är i sin tur representerade i en lista som finns i varje operators beskrivning i STRIPS. Det är denna lista som är STRIPS add-list. Operatorbeskrivningarna innehåller även information om vilka satser som inte längre kan antas vara sanna och måste raderas innan konstruktionen

8 av den nya world model. För att illustrera ett exempel så fungerar det på följande vis; om operatorn goto(u,a,y) appliceras måste alla satser som innehåller predikatet ATR(a). Som med add-list, så innehåller även varje operatorbeskrivning en lista med predikat för radering, kallad delete-list. Add- och delete list bidrar till att regeln för skapandet av nya world models i STRIPS är uppfylld, att radera de satser som innehåller predikat som är instanser från predikat i deletelist. 3. The operation of STRIPS I ett simpelt problemlösande system skulle målformuleringen uppnås genom att låta alla applicerbara operatorer på den ursprungliga world model för att skapa ett set av efterkommande modeller. På dessa modeller skulle sedan operatorerna appliceras och på detta vis via alla de efterföljande set av world models tills det att en av dessa uppfyller att målformuleringen visas vara ett teorem. Detta genomförs med ett teorembevisande system i likhet med QA3. STRIPS är däremot utvecklat för att hantera så pass komplexa system och stort antal operatorer och därför skulle ett sådant enkelt system resultera i stora träd av world models, så stora att systemet skulle bli ineffektivt. STRIPS använder sig av en GPS strategi som kan delas upp i två huvudsakliga steg. Det första steget är en beräkning som plockar ut de skillnader mellan den nuvarande world model och målformuleringen. Det andra steget identifierar de operatorer som är relevanta för att reduceringen av trädstorleken ska kunna genomföras. En world model genereas för att försöka skapa en world model i vilken operatorn är applicerbar. Om en sådan model kan skapas, testas den sedan mot det den ursprungliga målformuleringen. Genom att använda sig av en sådan här strategi genomför STRIPS en kombinerad forward och backward search. Denna flexibilitet medför alltså att en sökning görs från en nod i initial wold model mot målformuleringen samt en sökning från målformuleringen mot en nod i initial world model. Hela den GPS strategi som STRIPS grundar sig i sin tur på en resolutionsbaserad teorembevisare.

9 3.1 Resolution När resolutionen tar sin början har vi alltså till förfogande ett set av de satser som visar de skillnader mot målformuleringen som vi tidigare producerat. Detta set kan vi kalla S. Vi har även den målformulering vars negation i sin tur är representerad av ett set satser som vi kallar G. Den strategi som ovan beskrivits försöker därefter beräkna de skillnader mellan seten och försöker hitta en kontradiktion för att få setet S G med en resolutionbaserad teorembevisare så som QA3. Om en kontradiktion visar sig existera, uppfattar STRIPS skillnaden mellan de två seten som noll och därmed är målformuleringen tillfredställd i setet S. Enligt denna beräkning fungerar STRIPS utan problem när en kontradiktion kan hittas. Om däremot en kontradiktion inte hittas då QA3 genomförts sker följande. Ett nytt set R bildas av de kvarvarande satserna av set G och dess resolventer, allstå de set av operatorer som uppför sig väl och är avkomman av set G samt är producerade av QA3. Set D, i set R kan ses som en skillnad mellan set S och målformuleringen. På det viset att en world model hittas i vilken en sats ur set D kan bli kontradikterad, så är det troligt givet att den nya world model tillåter en deduktion av satsen i set D, att beviset för målformuleringen kan slutföras i denna model. Figur 2. Visar ett simpelt flödesschema över hur skillnaderna behandlas i set. De skillnader som nämnts skapas genom ett heuristiskt val av delset av set R, där alla delar representerar och agerar en specifik skillnad. Urvalet baseras på antal predikat representerade

10 som bokstäver samt dess tillhörande argument, på vilken nivå i bevisträdet en sats var genererad och huruvida en sats har eller inte har någon avkomma i bevisträdet. Sökandet efter de relevanta operatorerna fortsätter med två olika steg. I det första steget skapas en lista av de möjliga operatorer för varje enskilt set. Valet av listans operatorer utförs genom en jämförelse mellan satsen i det set som innehåller skillnaderna med add-list operatorbeskrivningarna. Det andra steget innefattar användning av QA3 för att fastställa huruvida satser i en kandiderade operators add-list kan användas för att fortsätta resolutionen, det vill säga fortsätta bevisföringen för vilken av satserna i setet med skillnader som helst. Om QA3 lyckas producera nya resolventer som är avkommor från till satserna i add-list, är den kandiderande operatorn betraktad som en relevant operator för setet med skillnader. För att kunna slutföra proceduren som bestämmer operatorns lämplighetstest bestämer STRIPS vilka av operatorernas instanser som är relevanta. För att illustrera detta kan vi titta på det set med skillnader bestående av satserna ATR(a) och ATR(b)så kommer operatorn goto(x,y) endast vara relevant om y är instanserad av a eller b. Varje ny resolvent som är en avkomma till satserna av operatorns add-list används för att skapa en relevant instans för operatorn genom applicering på operatorns parametrar de samma instanser som gjordes under produktion av resolventen. Effekten av denna reduktionsprocess av skillnader är att den oftast producerar specifika instanser för operatorns parametrar. Dessa instanser är i sin tur troliga att tillslut användas i den slutgiltiga lösningen, vilket i sin tur leder till en reducerad sökning. Vi kan alltså konstatera att STRIPS har förmågan att överväga operatorer som har tendens att instansera just dessa parametrar med vad den anser vara de mest relevanta konstanter. 3.2 Verkställandet av STRIPS I följande del kommer verkställandet av STRIPS att illustreras i hela sin kedja. De tidigare avsnitten kommer här att kopplas samman och visa hur STRIPS fungerar som en enhet med alla dess delmoment. Planeraren börjar med att försöka hitta skillnader mellan den initiala world model, S 0, och den ursprungliga målformuleringen. Om det inte någon skillnad mellan S 0 och målformuleringen, det vill säga om S 0 är det samma som målformuleringen, så är problemet löst. För det mesta så hittas dock en kontradiktion mellan dessa två. Då genererar STRIPS ett set av operatorer med avsikt att minska de skillnader som uppdagats och på så vis närma sig

11 målformuleringen och på så vis en lösning. Det som händer om STRIPS uppfattar en sådan skillnad är beskrivet i detalj i föregående avsnitt, här kommer händelseförloppet istället illustreras på ett sätt som mer visar hur de olika delmomenten i STRIPS följer på varandra. STRIPS identifierar först två operatorer, OP1 och OP2, båda dessa har bedömts som relevanta för att minska skillnader mellan S 0 och målformuleringen. Operatorernas respektive preconditions benämns PC1 samt PC2. STRIPS kommer att inleda försöket med att minska skillnaderna på följande sätt: I. Skapar en ny world model där OP1 är applicerbar. När operatorn applicerats på modellen, skapas en ny world model där målformuleringen är uppfylld. Om inte målformuleringen kan uppfyllas av att operatorn appliceras sker följande: II. Skapar en ny world model där OP2 är applicerbar. Applicerar operatorn för att sedan skapa en world model där målformuleringen är uppfylld. Sådana lösningsalternativ representeras som tidigare nämnts som noder i ett sökträd. För detta exempel skulle trädet som genererades se ut som följande: (S, (G ) (S, (G G )) (S, (G G )) G 0, G 1 och G 2 representerar de set av satser som motsvarar de negationer av PC1 och PC2. Utifrån trädet utformning görs det tydligt att dess noder är uppbyggda med en struktur som följer en sådan modell: (<world model>,<mållista>). Delmålet som övervägs för en lösning vid varje nod är det första målet på den givna noden mållista. Det sista målet på varje nods lista motsvarar negationen av den ursprungliga målformuleringen. Varje delmål är i sin tur negationen av operatorns preconditions. Denna uppbyggnad av mållistan medför att varje delmål i listan representerar ett försök att applicera en operator som är relevant till att uppnå nästa mål i mållistan. När sedan en ny nod, (S i,(g m,g m-1,,g 1,G 0 )), som är avkomma till en redan existerande nod konstrueras och bygger på sökträdet, testats även denna om den uppfyller målformuleringen. Detta testas genom QA3 som söker som söker efter en kontradiktion i S G. Om en kontradiktion skulle finnas, samt att m är 0, det vill säga att noden är (S i,(g 0 )) så är

12 huvudmålformuleringen uppfylld i world model S i och problemet har alltså genererats en lösning. Om en kontradiktion hittas men m är inte 0, så är G m negationen av ett precondition formel från en operator som är applicerbar i S i. Om detta skulle vara fallet så producerar STRIPS en ny world model, S i, genom att applicera den operator som svarar mot G m på world model S i. Noden kommer då få ett nytt värde, (S i,(g m-1,,g 1,G 0 )). Processen av att ändra noden på detta vis fortsätter tills det att ett mål hittas som inte är uppfyllt eller tills det att problemet löses. Om ingen kontradiktion hittas i testet för att uppfylla målet, kommer QA3 att returnera ett set R bestående av satser som i sin tur består av satser från G m och resolventer som är avkommor av satser i G m. Detta set av resolventer kommer att fästas vid noden och användas för att generera efterföljare till noden. Processen som sedan ska generera efterföljare till en nod, (S i,(g m,g m-1,,g 1,G 0 )) med setet R fastsat skapar olika set {D i } utifrån R och hittar operatorinstanser relevanta till förminskningen a skillnader. För varje relevant operatorinstans skapas en ny nod som dess avkomma. Denna nod formas efter samma world model och mållista som dess föräldranod. Till den nya noden läggs ett nytt mål till, att hitta en world model där relevanta operatorinstanser kan appliceras. Detta görs genom att skapa den instans av operatorns preconditions som är nödvändiga samt att lägga till dess tillhörande negation på första position i den nya nodens mållista. En komplikation som STRIPS ställs inför är det faktum att antalet relevanta operatorer som ska användas till reduceringen av skillnaderna kan visa sig vara väldigt stort. Detta medför även att i sökträdet kommer den givna noden får ett väldigt stort antal efterföljare. För att förhindra detta använder sig STRIPS, redan innan efterföljarna har genererats, en heuristisk för att ordna dessa med hänsyn till operatorerna och seten med skillnader som användes för att generera dem. STRIPS beräknar enbart den nästkommande efterföljaren som verkar vara bästa anpassad för att förkorta processen av att beräkna efterföljande noder.

13 Denna nod läggs sedan till i sökträdet, sedan genomförs ett måltest. STRIPS fortsätter sedan processen genom att välja en annan nod från det set av noder som inte ännu har kända efterföljare. För att genomföra detta kopplar STRIPS samman varje nod med det set av skillnader och operatorer som redan har använts i inledningen av processen för att börja skapandet av efterföljarna. I figur 3 nedan visas ett enkelt flödesschema över STRIPS verkställande från början till slut. Figur 3. Flödesschema över STRIPS verkställand.

14 Avslut Strips är en planerare som kan tackla komplex problemlösning mer effektivt än tidigare problemlösare kunde på sin tid. Det stora och intressanta med STRIPS är att den både använder sig av trädsökning och deduktion i samband med att den tillåter ospecificerade parametrar som resulterar i en world model som kan beskrivas med ett set wffs. Kanske är det så att många problem skulle kunna lösas enklare utan sökmetod som i STRIPS. En lösning skulle kunna finnas relativt lätt med ett skräddarsytt program till just det problemet. Fördelen med att istället använda STRIPS framför ett sådant program, är att STRPS istället representerar programmets delar som relevanta operatorer inom problemlösaren. En sökgenererad synvinkel skulle på dessa problem inom STRIPS upptäcka hur operatorerna, istället för deras specialskrivna lösningar, tillsammans skulle kunna kopplas ihop till en sekvens med handlingar för att kunna lösa mer komplexa problem. Tillsammans med den reducerade sökrymden är STRIPS en mycket effektiv planerare som bidrog mycket till den tidiga utvecklingen av Artificiell Intelligens.

15 Referenser Nilsson, Nils J., Fikes, Richard E. STRIPS: A new approach to the application of theorem proving to problem solving Artificial Intelligence Group, Technical Note 43, SRI Project 8259 (1970) Nilsson, Nils J. Problem-solving Methodes in Artificial Intelligence McGraw-Hill Book Company (1971) Russel, S & Norvig,P Artificial Intelligence, A Modern Approach 2:nd edition (2003)

Shakey s värld med HTNplanering

Shakey s värld med HTNplanering Shakey s värld med HTNplanering 2010-10-03 Artificiell Intelligens 2, 729G11 Maria Lindqvist Fördjupningsarbete, HT 2010 880913-0506 Linköpings Universitet marli314 2 Innehållsförteckning Inledning...

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

PROBLEMLÖSNING. ! GPS! Mål medel analys! Problemlösning i programmering. Lars-Erik Janlert 2007

PROBLEMLÖSNING. ! GPS! Mål medel analys! Problemlösning i programmering. Lars-Erik Janlert 2007 PROBLEMLÖSNING! Problem & lösning! Sökträd, sökgraf! Automatisk problemlösning! Heuristik! Heuristisk sökning! GPS! Mål medel analys! Problemlösning i programmering 1 Problem (snäv mening)! Ett problem

Läs mer

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1.

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1. UPPSALA UNIVERSITET Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf http://stp.ling.uu.se/ matsd/uv/uv07/dg1/ Logisk semantik I 1 Lite om satslogik 1.1

Läs mer

Övningshäfte 1: Logik och matematikens språk

Övningshäfte 1: Logik och matematikens språk GÖTEBORGS UNIVERSITET MATEMATIK 1, MMG200, HT2014 INLEDANDE ALGEBRA Övningshäfte 1: Logik och matematikens språk Övning A Målet är att genom att lösa och diskutera några inledande uppgifter få erfarenheter

Läs mer

Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping

Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping Fuzzy Logic När oskarpa definitioner blir kristallklara Linköpings Universitet Linköping Sammanfattning I denna fördjupningsuppgift har jag fokuserat på Fuzzy Logic och försökt att beskriva det på ett

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

Föreläsning 5. Deduktion

Föreläsning 5. Deduktion Föreläsning 5 Deduktion Hur ett deduktivt system fungerar Komponenter - Vokabulär Ett deduktivt system använder ett visst slags språk som kan kallas för systemets vokabulär. I mindre formella fall är kanske

Läs mer

de var svåra att implementera och var väldigt ineffektiva.

de var svåra att implementera och var väldigt ineffektiva. OBS! För flervalsfrågorna gäller att flera alternativ eller inget alternativ kan vara korrekt. På flervalsfrågorna kan man bara ha rätt eller fel, dvs frågan måste vara helt korrekt besvarad. Totalt kan

Läs mer

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden. MATEMATISK LOGIK Matematisk logik formaliserar korrekta resonemang och definierar formellt bindeord (konnektiv) mellan påståenden (utsagor, satser) I matematisk logik betraktar vi påståenden som antingen

Läs mer

Programmering = modellering

Programmering = modellering Programmering = modellering Ett datorprogram är en modell av en verklig eller tänkt värld. Ofta är det komplexa system som skall modelleras I objektorienterad programmering består denna värld av ett antal

Läs mer

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 2 Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.) - Iteratorer

Läs mer

Dagens föreläsning Programmering i Lisp Fö 5

Dagens föreläsning Programmering i Lisp Fö 5 Anders Haraldsson 1 Dagens föreläsning Programmering i Lisp Fö 5 - Funktioner - lambda-uttryck (avs 7.1) - funcall och function (avs 7.2) - Högre ordningens funktioner (avs 7.3) - Iteratorer - Egenskaper

Läs mer

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 27 augusti 2016, kl 8 12 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

729G43 Artificiell intelligens Planering

729G43 Artificiell intelligens Planering 729G43 Artificiell intelligens Planering Arne Jönsson HCS/IDA Planering Sökning vs planering Planeringsnotationer Enkel planering Partialordningsplanering Resursplanering Hierarkisk planering Planering

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet Föreläsning 9 Pekare, länkade noder, länkade listor TDDD86: DALP Utskriftsversion av föreläsning i Datastrukturer, algoritmer och programmeringsparadigm 25 september 2015 Tommy Färnqvist, IDA, Linköpings

Läs mer

Varför är logik viktig för datavetare?

Varför är logik viktig för datavetare? Varför är logik viktig för datavetare? 1. Datavetenskap handlar ofta om att automatisera processer som tidigare styrts av människor. Intuition, intelligens och mänskliga resonemang ersätts av beräkningar.

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

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19 Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium IV v. 2.0, den 29/4 2013 III. Metalogik 17-19 Modeller för satslogiken 18.1 Vi har tidigare sagt att en modell är en tolkning av en teori

Läs mer

Lektion 8: Konstruktion av semantiska tablåer för PTL-formler

Lektion 8: Konstruktion av semantiska tablåer för PTL-formler Lektion 8: Konstruktion av semantiska tablåer för PTL-formler Till denna lektion hör uppgift 2, 6 och 0 i lärobokens avsnitt.6 (sid. 255). Lös uppgift 2 genom att konstruera en semantisk tablå. Följande

Läs mer

Statistisk mönsterigenkänning

Statistisk mönsterigenkänning Statistisk mönsterigenkänning Jonas Sandström Artificiell intelligens II Linköpings universitet HT 2011 Innehållsförteckning 1. Innehållsförteckning sid 2 2. Inledning sid 3 3. Statistisk mönsterigenkänning

Läs mer

Föreläsning 13. Träd

Föreläsning 13. Träd Föreläsning 13 Träd Träd Ett träd är en datastruktur som tillåter oss att modellera sådant som vi inte kan modellera med linjära datastrukturer. Ett datavetenskapligt träd består av noder med pilar emellan.

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

Övningsuppgifter kapitel 8

Övningsuppgifter kapitel 8 Inst. för Systemteknik Introduktion till programmering (SMD 180), 5 p Övningsuppgifter kapitel 8 1. Listor är en viktig datatyp i Python. Hur definierar kursboken lista? Vad kallas de värden som tillsammans

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer 2 2.1 Domäner... 2 2.2 Tolkningar... 3

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer 2 2.1 Domäner... 2 2.2 Tolkningar... 3 Föreläsning 2 Semantik 729G06 Logikdelen Föreläsningsanteckningar i Programmering och logik 27 januari 2014 Tommy Färnqvist, IDA, Linköpings universitet 2.1 Innehåll Innehåll 1 Lite mer syntax 1 2 Strukturer

Läs mer

A B C D E F A B C D E F (3) Svar: Tabellen ger grafen:

A B C D E F A B C D E F (3) Svar: Tabellen ger grafen: 1. Russel & Norvig menar att man kan utveckla AI-system som antingen tänker som en människa, handlar som en människa, tänker rationellt eller handlar rationellt. Förklara och exemplifiera dessa fyra synsätt.

Läs mer

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet

Formell logik Kapitel 1 och 2. Robin Stenwall Lunds universitet Formell logik Kapitel 1 och 2 Robin Stenwall Lunds universitet Kapitel 1: Atomära satser Drömmen om ett perfekt språk fritt från vardagsspråkets mångtydighet och vaghet (jmf Leibniz, Russell, Wittgenstein,

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

Karlstads Universitet, Datavetenskap 1

Karlstads Universitet, Datavetenskap 1 2003-01-20 DAV B04 - Databasteknik 2003-01-20 KaU - Datavetenskap - DAV B04 - MGö 26 Relationsmodellen En formell teori som baserar sig på (främst) mängdlära predikatlogik Föreslogs av E.F Codd 1970 i

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 7: SAT-lösare Henrik Björklund Umeå universitet 29. september, 2014 SAT En instans av SAT är en mängd av mängder av literaler. Exempel: {{p, q, r}, {p, q, s},

Läs mer

Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)

Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c) Programmönster: # Listan som sekvens, Rekursiv process Enkel genomgång av sekvens (element på toppnivån i en lista)) TDDC60 Programmering: abstraktion och modellering Föreläsning 5 Rekursiva och iterativa

Läs mer

Tentamen: Programutveckling ht 2015

Tentamen: Programutveckling ht 2015 Tentamen: Programutveckling ht 2015 Datum: 2015-11-04 Tid: 09:00-13:00 Sal: Ansvarig: Resultat: Hjälpmedel: Maxpoäng: Betygsgränser: Anslås inom 3 veckor. Inga 40 p 20 p för G, 32 p för VG. Iakttag följande:

Läs mer

Antag att följande träd genereras i ett spelförande program om vi applicerar evalueringsfunktionen

Antag att följande träd genereras i ett spelförande program om vi applicerar evalueringsfunktionen 1. Komplexiteten hos en agent beror mycket på vilken omgivning den skall verka i. Vad innebär det att en omgivning är stokastisk, episodisk och dynamisk? Ge exempel på en omgivning som är stokastisk, episodisk

Läs mer

Algebra I, 1MA004. Lektionsplanering

Algebra I, 1MA004. Lektionsplanering UPPSALA UNIVERSITET Matematiska Institutionen Dan Strängberg HT2016 Fristående, IT, KandDv, KandMa, Lärare 2016-11-02 Algebra I, 1MA004 Lektionsplanering Här anges rekommenderade uppgifter ur boken till

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 6: Binära beslutsdiagram (BDD) Henrik Björklund Umeå universitet 22. september, 2014 Binära beslutsdiagram Binära beslutsdiagram (Binary decision diagrams, BDDs)

Läs mer

DD1350 Logik för dataloger. Vad är logik?

DD1350 Logik för dataloger. Vad är logik? DD1350 Logik för dataloger Fö 1 - Introduktion Vad är logik? Vetenskapen som studerar hur man bör resoneraoch dra slutsatser utifrån givna påståenden (=utsagor, satser). 1 Aristoteles (384-322 f.kr) Logik

Läs mer

Övningshäfte 2: Induktion och rekursion

Övningshäfte 2: Induktion och rekursion GÖTEBORGS UNIVERSITET MATEMATIK 1, MMG200, HT2017 INLEDANDE ALGEBRA Övningshäfte 2: Induktion och rekursion Övning D Syftet är att öva förmågan att utgående från enkla samband, aritmetiska och geometriska,

Läs mer

Artificiell intelligens

Artificiell intelligens 2013-08-13 Introduktion Artificiell intelligens Vad är AI? Olika mål Intelligenta agenter Områden inom AI Arne Jönsson HCS/IA Vad är AI? Intelligens: Förmågan till tänkande och analys (Svenska ORboken)

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

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

Logik och kontrollstrukturer

Logik och kontrollstrukturer Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch

Läs mer

Föreläsning 9: NP-fullständighet

Föreläsning 9: NP-fullständighet Föreläsning 9: NP-fullständighet Olika typer av problem: 1. Beslutsproblem: A(x) =Ja. 2. Optimeringsproblem: A(x) =m Vanligen max/min. 3. Konstruktionsproblem: A(x) =En struktur. Vanligen lösningen till

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 10 Anton Grensjö grensjo@csc.kth.se 9 november 2017 1 Idag En konstruktionsreduktion Fler bevis av NP-fullständighet 2 Teori Repetition Ett problem tillhör

Läs mer

Föreläsning 8: Intro till Komplexitetsteori

Föreläsning 8: Intro till Komplexitetsteori Föreläsning 8: Intro till Komplexitetsteori Formalisering av rimlig tid En algoritm som har körtid O(n k ) för någon konstant k är rimligt snabb. En algoritm som har körtid Ω(c n ) för någon konstant c>1

Läs mer

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

FÖRELÄSNING 8 ANDERS MÄRAK LEFFLER IDA/HCS 729G06 Logik FÖRELÄSNING 8 ANDERS MÄRAK LEFFLER IDA/HCS 160309 Idag Sammanfattning*/uppsamling 2 Mer problemöversikt (och lite definitioner) Inte ersättning för andra föreläsningar! 3 Vad är enlogik? Syntax

Läs mer

Filosofisk logik Kapitel 19. Robin Stenwall Lunds universitet

Filosofisk logik Kapitel 19. Robin Stenwall Lunds universitet Filosofisk logik Kapitel 19 Robin Stenwall Lunds universitet Dagens upplägg Gödels fullständighetsteorem Sundhet och fullständighet Fullständighetsbeviset Vittneskonstanter Henkinteorin Eliminationsteoremet

Läs mer

K2 Något om modeller, kompakthetssatsen

K2 Något om modeller, kompakthetssatsen KTH Matematik Bengt Ek Maj 2005 Kompletteringsmaterial till kursen 5B1928 Logik för D1: K2 Något om modeller, kompakthetssatsen Vi skall presentera ett enkelt (om man känner till sundhets- och fullständighetssatsen

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

729G11 Artificiell Intelligens Marcus Johansson Marjo581. Fuzzy logic. Marcus Johansson Marjo581

729G11 Artificiell Intelligens Marcus Johansson Marjo581. Fuzzy logic. Marcus Johansson Marjo581 Fuzzy logic 880328-2535 Innehåll Fuzzy logic... 1 1. Inledning... 4 2. Jämförelse mellan fuzzy logic och tvåvärdeslogik.... 4 3. Fuzzy sets.... 4 4. Linvistiska variabler... 5 5. Operatorer... 5 6. If-

Läs mer

i LabVIEW. Några programmeringstekniska grundbegrepp

i LabVIEW. Några programmeringstekniska grundbegrepp Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar

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

Laboration 1: Figurer i hierarki

Laboration 1: Figurer i hierarki Laboration 1: Figurer i hierarki Bakgrund Två grundläggande tekniker i objektorienterad konstruktion är arv och komposition. Mål Laborationen har flera avsikter: 1. Ge kunskaper i hur program kan organiseras

Läs mer

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder Block 2 Algebra och Diskret Matematik A BLOCK INNEHÅLL Referenser Inledning 1. Följder 2. Rekursiva definitioner 3. Sigmanotation för summor 4. Strängar 5. Tal 6. Övningsuppgifter Referenser Följder, strängar

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Grundläggande logik och modellteori Kapitel 3: Bevissystem, Hilbertsystem Henrik Björklund Umeå universitet 8. september, 2014 Bevissystem och Hilbertsystem Teorier och deduktionsproblemet Axiomscheman

Läs mer

Fuzzy Logic Linköpings Universitet

Fuzzy Logic Linköpings Universitet Fuzzy Logic Linköpings Universitet 2 Innehållsförteckning 1. Inledning... 4 2. Bakgrund... 4 3. Fuzzy Logic... 5 3.1. Fuzzy Sets... 6 4. Operatorer... 7 4.1. Union och snitt... 7 4.2. IF, THEN, AND och

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

Grunderna i stegkodsprogrammering

Grunderna i stegkodsprogrammering Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer

Läs mer

Tentamen i. TDDC67 Funktionell programmering och Lisp

Tentamen i. TDDC67 Funktionell programmering och Lisp 1 Linköpings tekniska högskola Institutionen för datavetenskap Anders Haraldsson Tentamen i TDDC67 Funktionell programmering och Lisp och äldre kurser TDDC57 Programmering, Lisp och funktionell programmering

Läs mer

(N) och mängden av heltal (Z); objekten i en mängd behöver dock inte vara tal. De objekt som ingår i en mängd kallas för mängdens element.

(N) och mängden av heltal (Z); objekten i en mängd behöver dock inte vara tal. De objekt som ingår i en mängd kallas för mängdens element. Grunder i matematik och logik (2017) Mängdlära Marco Kuhlmann 1 Grundläggande begrepp Mängder och element 2.01 En mängd är en samling objekt. Två standardexempel är mängden av naturliga tal (N) och mängden

Läs mer

TDDC74 Programmering, abstraktion och modellering DUGGA 2

TDDC74 Programmering, abstraktion och modellering DUGGA 2 AID-nummer: Datum: 2011-02-18 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering DUGGA 2 Fredag 18 feb 2011

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 10 Anton Grensjö grensjo@csc.kth.se 18 november 2015 Anton Grensjö ADK Övning 10 18 november 2015 1 / 20 Översikt Kursplanering Ö9: NP-fullständighetsbevis

Läs mer

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten. OS! 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

Axiom för de reella talen

Axiom för de reella talen Axiom för de reella talen Sara Maad Sasane Matematikcentrum Lunds universitet 28 augusti 2017 1 Kroppsaxiomen (räknelagar) 2 Ordningsaxiomen 3 Axiomet om övre gräns Kroppsaxiomen del 1 Axiom (Kroppsaxiomen)

Läs mer

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet Filosofisk logik Kapitel 15 Robin Stenwall Lunds universitet Dagens upplägg Första ordningens mängdlära Naiv mängdlära Abstraktionsaxiomet (eg. comprehension) Extensionalitetsaxiomet Små mängder Ordnade

Läs mer

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik DD1350 Logik för dataloger Fö 7 Predikatlogikens semantik 1 Kryssprodukt av mängder Om A och B är två mängder så är deras kryssprodukt A B mängden av alla par (a,b), där a A och b B. Ex: A={1,2}, B={3,4},

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal

Läs mer

NKRR. Regelskrivning i praktiken

NKRR. Regelskrivning i praktiken Sida: 1 (13) NKRR Regelskrivning i praktiken Innehåll Sida: 2 (13) 1 Inledning... 3 1.1 Förkortningar och begrepp... 3 2 Ändringshistorik för dokumentet... 4 3 Bakgrund... 5 3.1 Regler i NKRR... 5 3.2

Läs mer

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs... 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

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 9 Anton Grensjö grensjo@csc.kth.se 9 november 2017 1 Idag Bevis av NP-fullständighet Labbteoriredovisning inför labb 4 2 Teori Teori När vi talar om NP-fullständighet

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

Fuzzy Logic: Den oskarpa skarpheten

Fuzzy Logic: Den oskarpa skarpheten Fuzzy Logic: Den oskarpa skarpheten Av: 1 Innehåll Inledning... 3 Vad är Fuzzy Logic?... 4 Fuzzy sets... 4 Medlemsskapsfunktion... 5 Operatorer... 7 Union... 7 Snitt... 8 Komplement... 8 Exempel med de

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

I kursen i endimensionell analys är mängden av reella tal (eng. real number), R, fundamental.

I kursen i endimensionell analys är mängden av reella tal (eng. real number), R, fundamental. Lunds tekniska högskola Datavetenskap Lennart ndersson Föreläsningsanteckningar EDF10 4 Mängder 4.1 Motivering Mängden är den mest grundläggande diskreta strukturen. Nästan alla matematiska begrepp går

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

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

Programmering II (ID1019)

Programmering II (ID1019) ID1019 Johan Montelius Instruktioner Betyg Programmering II (ID1019) 2019-03-08 Svaren skall lämnas på dessa sidor, använd det utrymme som nns under varje uppgift för att skriva ner ditt svar (inte på

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

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 8 Anton Grensjö grensjo@csc.kth.se 12 november 2015 Anton Grensjö ADK Övning 8 12 november 2015 1 / 21 Översikt Kursplanering Ö8: Mästarprov 1, oavgörbarhet

Läs mer

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten. 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

Tommy Färnqvist, IDA, Linköpings universitet. 1 Kursadministration 1. 2 Introduktion 2 2.1 Varför logik?... 2 2.2 Satslogik... 2

Tommy Färnqvist, IDA, Linköpings universitet. 1 Kursadministration 1. 2 Introduktion 2 2.1 Varför logik?... 2 2.2 Satslogik... 2 Föreläsning 1 Syntax 729G06 Logikdelen Föreläsningsanteckningar i Programmering och logik 21 januari 2014 Tommy Färnqvist, IDA, Linköpings universitet 1.1 Innehåll Innehåll 1 Kursadministration 1 2 Introduktion

Läs mer

Artificial Intelligence

Artificial Intelligence Omtentamen Artificial Intelligence Datum: 2014-08-27 Tid: 09.00 13.00 Ansvarig: Resultat: Hjälpmedel: Gränser: Anders Gidenstam Redovisas inom tre veckor Inga G 8p, VG 12p, Max 16p Notera: Skriv läsbart!

Läs mer

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1) Binära träd Algoritmer och Datastrukturer Markus Saers markus.saers@lingfil.uu.se Upplägg Binära träd (9) Binära sökträd (0.) Träd Många botaniska termer Träd, rot, löv, gren, Trädets rot kan ha ett antal

Läs mer

int iarray[]= new int[3]; // deklarera ett heltalsfält med tre heltal int jarray[]={ 1, 3, 5, 7, 9, 11, 13, 15}; // initierat fält 8 element

int iarray[]= new int[3]; // deklarera ett heltalsfält med tre heltal int jarray[]={ 1, 3, 5, 7, 9, 11, 13, 15}; // initierat fält 8 element 1 Arrayer Vid beräkningar med större datamängder än några enstaka tal är det bekvämt att kunna betrakta en talmängd som en enhet. Detta åstadkommer man genom att deklarera och instantiera fält. Ett annat

Läs mer

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic Inledning Starta Microsoft Visual Studio 2005. Välj create Project Välj VB + Vindows Application och välj ett nytt

Läs mer

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem.

Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem. Vectorer, spannet av vektorer, lösningsmängd av ett ekvationssystem. Begrepp som diskuteras i det kapitlet. Vektorer, addition och multiplikation med skalärer. Geometrisk tolkning. Linjär kombination av

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

TENTAMEN: Algoritmer och datastrukturer. Läs detta! 1 (6) TENTAMEN: Algoritmer och datastrukturer Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad. Börja varje uppgift på ett nytt blad. Skriv ditt idnummer på varje blad (så att vi

Läs mer

7, Diskreta strukturer

7, Diskreta strukturer Objektorienterad modellering och diskreta strukturer 7, Diskreta strukturer Sven Gestegård Robertz Datavetenskap, LTH 2015 Modeller Matematiska modeller Kontinuerliga modeller Kontinuerliga funktioner

Läs mer

Semantik och pragmatik

Semantik och pragmatik Semantik och pragmatik OH-serie 4 http://stp.lingfil.uu.se/~matsd/uv/uv12/semp/ Mats Dahllöf Institutionen för lingvistik och filologi Januari 2012 Om barnet har svårt att andas eller har ont i bröstet

Läs mer

Filosofisk logik Kapitel 15 (forts.) Robin Stenwall Lunds universitet

Filosofisk logik Kapitel 15 (forts.) Robin Stenwall Lunds universitet Filosofisk logik Kapitel 15 (forts.) Robin Stenwall Lunds universitet Dagens upplägg Antalet element i en mängd Kardinalitet Humes princip Cantors teorem Den universella mängden Några mängdteoretiska paradoxer

Läs mer

HKGBB0, Artificiell intelligens

HKGBB0, Artificiell intelligens HKGBB0, Artificiell intelligens Kortfattade lösningsförslag till tentan 3 november 2005 Arne Jönsson 1. Vad karaktäriserar dagens AI-forskning jämfört med den AI-forskning som bedrevs perioden 1960-1985.

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Laboration 1. Linjär Algebra och Avbildningar Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion I denna övning skall

Läs mer

Kompletteringsmaterial. K2 Något om modeller, kompakthetssatsen

Kompletteringsmaterial. K2 Något om modeller, kompakthetssatsen KTH Matematik Bengt Ek Maj 2008 Kompletteringsmaterial till kursen SF1642, Logik för D1 och IT3: K2 Något om modeller, kompakthetssatsen Vi skall presentera ett enkelt (om man känner till sundhets- och

Läs mer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

Träd och koder. Anders Björner KTH

Träd och koder. Anders Björner KTH 27 Träd och koder Anders Björner KTH 1. Inledning. Det är i flera sammanhang viktigt att representera information digitalt (d.v.s omvandla till sviter av nollor och ettor). Beroende på vilka villkor som

Läs mer

K3 Om andra ordningens predikatlogik

K3 Om andra ordningens predikatlogik KTH Matematik Bengt Ek Maj 2005 Kompletteringsmaterial till kursen 5B1928 Logik för D1: K3 Om andra ordningens predikatlogik Vi presenterar på dessa sidor kortfattat andra ordningens predikatlogik, vilket

Läs mer

Mängdlära. Kapitel Mängder

Mängdlära. Kapitel Mängder Kapitel 2 Mängdlära 2.1 Mängder Vi har redan stött på begreppet mängd. Med en mängd menar vi en väldefinierad samling av objekt eller element. Ordet väldefinierad syftar på att man för varje tänkbart objekt

Läs mer

Algebraiska egenskaper hos R n i)u + v = v + U

Algebraiska egenskaper hos R n i)u + v = v + U Underrum till R n, nollrum, kolonnrum av en matris, rank, bas, koordinater, dimension. Påminnelse om R n s egenskaper: Algebraiska egenskaper hos R n i)u + v = v + U v) c(u + v) = cu + cv ii) ( u + v)

Läs mer