Texinmatning med Swype

Storlek: px
Starta visningen från sidan:

Download "Texinmatning med Swype"

Transkript

1 Texinmatning med Swype Kandidatexamensarbete i datateknik DD143X dkand13 MATTIS KANCANS ENVALL MATTISKE@KTH.SE AXEL LEWENHAUPT AXELLEW@KTH.SE Handledare: Anders Askenfelt Stockholm,

2

3 Abstract Typing is probably always going to be an current topic, with the absolute goal of transferring text between the user and a technical device freely. This study means to examine a typing technique, where user-drawn continuous lines on a virtual keyboard are transfered into words, also known as swype. The results show that using a fairly simple algorithm combined with a few optimizations, it is possible to implement a swype accurate enough to be considered a realistic alternative to current typing methods on devices with touch screens. Sammanfattning Textinmatning kommer troligtvis alltid vara ett aktuellt ämne, där målet är att användaren skall kunna förmedla text till teknisk apparatur obehindrat. Denna rapport undersöker en textinmatningsmetod där kontinuerliga streck på ett tangentbord översätts till ord, även känt som swype. Resultaten visar att det med en förållandevis enkel algoritm och ett fåtal optimeringar, är fullt möjligt implementera ett swype tillräckligt noggrant för att vara ett realistiskt alternativ till nuvarande inmatningsmetoder för enheter med pekskärm.

4 Förord Arbetet har bestått av tre delar: Algoritmutforskning, användartestning och rapportförfattande. Vi har båda två deltagit i samtliga delar, men arbetet har inom delarna fördelats enligt följande: Axel Lewenhaupt slutförde vår algoritm, bearbetade och sammanställde testdata samt gjorde grafer. Mattis Kancans Envall gjorde mobilappen, genomförde användartester samt stod för stor del av rapportens slutgiltiga innehåll. Tillsammans gjorde vi algoritmutforskningar, optimeringar av vår valda algoritm och rapporten. Vi vill tacka vår handledare Anders Askenfelt för god assistans.

5 Innehåll Introduktion 1 Syfte, frågeställning och avgränsning Teoretisk bakgrund 3 Definitioner Avsett ord Felmätning Vad är en tydlig kurva? Teknisk bakgrund Datastrukturen Trie Metoder och algoritmer 5 Att spela in en kurva Att hitta en vändpunkt Triealgoritmen Implementerade optimeringar Minimerade punktavstånd Minimerade omvägar Dubbelteckningar Resultat 8 Minimerade punktavstånd Minimerade omvägar Båda optimeringar Diskussion 12 Svårtydda ord Insamling av testdata Dubbelteckningar Jämförelse optimeringarna emellan Tänkbara optimeringar Maskininlärning Ordföljdsanalys Bättre dubbelteckningshantering Minskat antal mätpunkter Komprimerade grenar i trie Prestanda Slutsats 15

6 Introduktion Förekomsten av så kallade smarta telefoner med pekskärm har ökat markant de senaste åren. Populariteten grundas bland annat i intuitiv interaktion med menyer och stor skärm i förhållande till sitt behändiga fickformat. Men fickformatet kommer på bekostnad av antalet fysiska knappar och detta medför en stor nackdel för produktkategorin; textinmatning. Alla användningsområden som behöver mer än minimal textinmatning utförs därför hellre på en enhet med ett fysiskt tangentbord, till exempel en bärbar dator[2]. Det finns idag flera alternativ för att underlätta textinmatning[3] på enheter med pekskärm, däribland autokorrigering (eng. autocorrect), taligenkänning och swype. Swype är en textinmatningsteknik där användaren i stället för att skriva varje bokstav enskilt, drar ett streck som går igenom varje bokstav i ordet i den ordning de förekommer. Figur 1: Exempel på hur ordet ramp skrivits med swype som textinmatningsmetod. En kurva besöker utan avbrott bokstäverna i ordet i tur och ordning. 1

7 Syfte, frågeställning och avgränsning Denna studie syftar undersöka ifall swype realistiskt kan vara en lösning på textinmatningsproblemet hos mobila enheter med pekskärm. Fokus ligger i att presentera ett tänkbart tillvägagångssätt för svepande inmatningar och bedöma dess potential. Vidare kommer tänkbara optimeringsalternativ att diskuteras, samt svagheter hos swype som inmatningsmetod påvisas, för att utreda: Hur träffsäker kan tolkning av enstaka, fristående ord göras med swype som textinmatningsmetod? Eftersom studien endast presenterar ett förslag till algoritm samt tänkbara optimeringsalternativ och inte gör anspråk på att algoritmen är färdigoptimerad, faller det inte inom studiens ram att jämföra algoritmen med andra inmatningsmetoder eller andra lösningar för samma inmatningsmetod. 2

8 Teoretisk bakgrund Definitioner Avsett ord Det avsedda ordet är det ord som användaren haft i åtanke när den svepande gesten utförts. Det avsedda ordet kan betraktas som ett facit för algoritmen. Felmätning Det finns i dagsläget inget konsensus för felmätning vid ordigenkänning. Vanligt förekommande är att med någon modell beräkna avståndet mellan det resulterande ordet och det avsedda, för att avgöra hur fel ett identifierat ord är. Exempel på en vanlig sådan modell är Levenshteinavstånd [1]. I denna studie kommer en enklare felmätningsmodell användas, som vi valt att kalla felkvot: felkvoten = ɛ(o 2) ɛ(o 1) 1, om a = 1 ( ɛ(oa) ɛ(o 1) 1 ), annars. där O x är det x:e ordet vår algoritm föreslår som avsett ord och ɛ(o x ) är hur troligt algoritmen finner ordet som avsett, normerat mellan 0 1 där lägre är bättre. a är placeringen som det avsedda ordet fått bland de sorterade orden. Således motsvarar alltså det övre fallet när a = 1, att algoritmen har funnit det avsedda ordet som mest troligt och alltså lyckats. Felkvoten motsvarar den procentuella skillnaden mellan det avsedda ordet och det bästa icke avsedda ordet. Felkvoten har dessutom gjorts negativ i de fall då algoritmen misslyckats med att identifiera det avsedda ordet, för att tydliggöra detta. Vad är en tydlig kurva? En av de viktigaste premisserna för denna studie är att kurvan som analyseras faktiskt syftar till ett ord, eftersom detta tillåter förkastande av otydliga kurvor. En tydlig kurva är en kurva med tydlig begynnelse- och slutpunkt, tydliga vändningar, rimliga avstånd till de bokstäver kurvan antyder samt små omvägar bokstäverna emellan. Antagandet om tydliga kurvor minskar drastiskt värdemängden tänkbara ord och således behöver färre kurvor efterbehandlas. Dessutom behöver inte tydandet av kurvan göras allt för avancerad eftersom t.ex. vändpunkter skall vara skarpa. Teknisk bakgrund Datastrukturen Trie En trie, också känt som prefixträd, är en datastruktur avsedd att lagra elementföljder (ofta text) effektivt med avseende på insättning och uppslagning, samt 3

9 där gemensamma pre- eller postfix är vanligt förekommande. En trie är ett grafträd där alla barn med en gemensam förälder har samma prefix. Varje nod i trädet lagrar precis ett element samt ifall det finns en elementföljd som slutar med noden ifråga. Således är det möjligt att finna en lagrad elementföljd genom att lägga ihop alla element noderna i vägen till roten. Figur 2: Exempel på en trie med orden mat, matt, man och eld. Bokstäver i en kvadrat representerar förekomsten av ett ord. Triens styrkor är att insättning, uppslagning och borttagning går fort O(m), där m är antalet element i elementföljden som skall lagras och det är mycket lätt att hitta ord med gemensamma prefix. Minneseffektiviteten kan variera kraftigt, beroende på andelen gemensamma prefix.[6] Som exempel skulle lagring av ordet el i figur 2 vara helt gratis, medan ord med begynnelsebokstav skilt från m och e är relativt dyra att lagra. Läsaren bör observera att varje ändnod i trien alltid representerar en lagrad elementföljd, eller lite slarvigt uttryckt är sann. [6] 4

10 Metoder och algoritmer Att spela in en kurva En kurva representeras av en följd koordinater med tidsstämpel, som representerar var testpersonen dragit fingret vid given tidpunkt. Dessa samlas i vårt fall in m.h.a. en egenutvecklad android-app och sparas i json-format 1. Tidsintervallet mellan punkterna beror helt på hårdvaran. Telefonen som använts i denna studie har en 110 mm skärmstorlek i diameter och 58,3% av skärmen används som tangentbord, vilket gav en knappstorlek på 8 11 mm för varje bokstav på tangentbordet. Att hitta en vändpunkt Att hitta de punkter där kurvan vänder är användbart av flera anledningar, främst eftersom det kan användas för att identifiera ordet som svepts. En vändning indikerar att den bokstav nåtts som skulle antydas och att kurvan bytt riktning mot nästa bokstav i ordet. Således kan en vändpunkt betyda att en av bokstäverna i närheten skall inkluderas, sannolikt den närmsta. Vändpunkter är även mycket användbara i felsökningssyfte, då de underlättar tydandet av kurvor som exempelvis överlappar mycket och annars lätt uppfattas som plottriga. En vändpunkt kan hittas med linjärsökning: Välj tre punkter med ett givet avstånd sinsemellan, där avståndet punkterna emellan avgör hur skarpa vändpunkter som eftersöks. Låt punkterna spänna upp en triangel och beräkna vinkeln vid den mellersta punkten av de tre, lämpligen med cosinussatsen. Denna vinkel kan användas för att identifiera en vändpunkt. Därefter flyttas alla punkterna och processen upprepas tills hela kurvan undersökts. Triealgoritmen Algoritmen exekveras i tre steg. Först beräknas värdemängden av tänkbara ord från ordlistan. För varje bokstav inom ett givet avstånd l från kurvans startpunkt påbörjas en vandring från noderna som håller dessa bokstäver i trien. För varje barn till dessa noder, som representerar nästkommande bokstav i något möjligt ord, undersöks om den återstående delen av kurvan någonstans befinner sig inom avståndet l från bokstaven. Om detta villkor uppfyllts så förbrukas kurvan fram till den nyfunna punkten och så upprepas det sistnämnda steget för nodens barn i trien. Att algoritmen förbrukar kurvan och endast använder den återstående delen ser till att bokstäverna inte kan inkluderas i omkastad ordning. Varje nod i trien indikerar ifall ett ord slutar med bokstaven för noden ifråga. Varje gång en sådan nod stöts på i iterationen jämförs den också mot kurvans slut; skulle villkoret uppfyllas är detta en del av värdemängden och således ett möjligt ord. 1 Ett sätt att (de-)serialisera data till text. 5

11 Figur 3: Avståndet till en bokstav beräknas med linjärsökning längs kurvan. Figuren illustrerar en pågående iteration där bokstäverna A och V matchats. Fortsättningsvis kan inga bokstäver hittas på den streckade delen av kurvan och endast bokstäver som kan resultera i ord med AV som prefix i trien kommer att testas. Nästa steg i algoritmen beräknar ett värde för hur troligt det är att kurvan antyder varje ord i värdemängden. Detta diskuteras ytterligare under optimeringar, men exempelvis kan genomsnittsavståndet till varje bokstav i ordet användas. Algoritmen avslutas med att sortera dessa värden, och det bästa värdet är då förhoppningsvis det ord som användaren haft i åtanke. Implementerade optimeringar Minimerade punktavstånd Den enklaste formen av algoritmen placerar varje bokstav på den första punkt på kurvan där avståndet till punkten underskrider en given konstant. Men eftersom kurvan för en avsedd bokstav sannolikt går närmre än denna konstant, ger en efterbehandling där punktera flyttas närmre de bokstäver de associerats till bättre precision. Detta kan exempelvis göras iterativt. Minimerade omvägar Om algoritmen endast skulle ta hänsyn till huruvida bokstäverna i ett ord besöks i rätt ordning, samt hur nära kurvan kommer dessa bokstäver, kommer den förbise ett par viktiga egenskaper som skiljer ett ord från ett annat. Genom att straffa ord som placerar två bokstäver med onödig omväg emellan, kan kurvor som uppenbarligen antyder ytterligare en bokstav emellan de två bokstäverna i fråga premieras. Figur 3 antyder exempelvis en bokstav mellan A och V, eftersom användaren annars hade valt den kortare vägen mellan bokstäverna. Genom att beräkna den genomsnittliga omvägen mellan varje inkluderat bokstavspar, dvs. kvoten mellan längden av kurvans väg och fågelvägen, kan ett straffvärde för ordet beräknas och vägas in i slutbedömningen av ordet. 6

12 Dubbelteckningar Ett enkelt sätt att hantera dubbelteckningar är att för varje förekomst av dubbelteckning, vid iteration över trien, placera den andra bokstaven i dubbelteckningen på samma punkt på kurvan som den första bokstaven. 7

13 Resultat Samtliga test har utförts på en ordlista 2 med svenska ord. Femton personer har bidragit med totalt 390 textinmatningar. Felaktiga inmatningar har i enlighet med försökets premiss om korrekt indata (se avsnitt 2.1.3) exkluderats. Detta inbegriper testdata där användaren uppenbarligen har skrivit fel, t.ex. där kurvan uppenbarligen missat en eller flera bokstäver eller besöker bokstäverna i fel ordning. Totalt Korrekta Fel % Top 4 Top 4 (%) Minsta punktavstånd , ,3 Minimala omvägar , ,6 Båda , ,2 Tabell 1: Optimeringseffekterna i siffror. Minimering av omvägar är den enskilt bästa optimeringen för att finna det avsedda ordet, men skillnaden är mindre mellan optimeringarna ifall de avsedda ordet tillåts återfinnas bland de fyra mest troliga orden. Diagrammen i fig 4-6 ger läsaren en uppfattning om testresultaten i stort. Storleken av enskilda testfall med onormala värden har sekundärt intresse. Varje stapel motsvarar ett ord. Testfallen har delats in i två kategorier, beroende på ifall algoritmen lyckats identifiera det avsedda ordet eller ej, för att illustrera förhållandet mellan antalet testfall där algoritmen lyckats respektive misslyckats. Kategoriernas har inte sorterats inbördes. Tidsåtgång totalt: Tidsåtgång i genomsnitt: 2942 ms 7,54 ms Tabell 2: Exekveringstid för 390 ord och alla optimeringar påslagna. Tested kördes på en Core2 Quad CPU Q9550 med endast en tråd. 2 Den Stora Svenska Ordlistan: swedish-spelling-dictionary-den-stora-svenska-ordlistan 8

14 Minimerade punktavstånd Figur 4: Resultat med minimerade punktavstånd som enda optimering. Antal korrekta ord: 144 av 390. I figur 4 framgår att med felkvoten enbart baserad på kvoten mellan kurvans avstånd och fågelavståndet mellan bokstäverna, kan förhållandevis goda resultat uppnås. Viktigt att inse är att ord med negativ stapel inte nödvändigtvis har fått ett dåligt värde, utan endast att ett annat ord fått ett bättre. Därför bör noteras att spridningen i stapelhöjd är liten. 9

15 Minimerade omvägar Figur 5: Felkvot med minimerade omvägar som enda optimering. Antal korrekta ord: 270 av 390. Figur 5 visar med fler höga felkvoter att minimerade omvägar bättre tolkar kurva till ord än minimerade punktavstånd. Intressant är även att spridningen i felkvoterna överlag är större, och framförallt att fler ord med extrema värden förekommer. 10

16 Båda optimeringar Figur 6: Resultatet med båda optimeringarna. Antal korrekta ord: 333 av 390. När båda optimeringar används lyckas algoritmen identifiera 85,4% av alla ord och många av de ord som misslyckas är nära det korrekta ordet, vilket de små felstaplarna i figur 6 antyder. 11

17 Diskussion Svårtydda ord En klar nackdel men swype som inmatningsmetod är att vissa ord kan bli mycket svåra att urskilja. För att urskilja vilket ord som avsetts skulle mycket subtila positioner där användaren börjar vända behöva identifieras. Figur 7: Exempel på ett ord som är mycket svårt att tyda. Står det kota, kora eller möjligen korsa? Insamling av testdata Vid insamlandet av våra testdata användes en telefon med förhållandevis stor skärm och en betydande del av den användes till just textinmatningen. Vid kommersiellt användande skulle troligen inte så stor skärmyta kunna undvaras till tangentbordet. Om algoritmen användes på en telefon med mindre skärmyta är träffsäkerheten sannolikt inte tillräcklig för att algoritmen skulle kunna användas rakt av. Dubbelteckningar Dubbelteckningar är vanligt förekommande i det svenska språket och behöver hanteras på något sätt. Lösningen med att helt enkelt slå samman dubbeltecknade bokstäver är uppenbarligen inte optimal, eftersom den inte gör någon skillnad på exempelvis mata och matta. När en dubbelteckning förekommer och dubbelteckningen är det enda som skiljer två ord, är det i vår algoritm odefinierat vilket ord som kommer först. Detta diskuteras vidare under 5.3 Tänkbara optimeringar. Jämförelse optimeringarna emellan Som tidigare nämnts i anslutning till tabell 1 är skillnaden mellan optimeringarna större i kolumnen för antalet korrekta än i kolumnen för top 4. Punktavståndsoptimeringen tar ingen hänsyn till kurvans längd eller utseende i övrigt, varför vissa typer av ord premieras. Ett delord av ett längre ord kommer ha samma avstånd till alla de gemensamma bokstäverna, men sannolikht är att någon av 12

18 det längre ordets bokstäver försämrar ordets snitt. När detta sker är det längre ordet endast något sämre och hamnar sannolikt strax efter i rankingen, vilket överensstämmer också med att det avsedda ordet i många (73%) fall återfinns bland de fyra första av algoritmens föreslagna ord, vilket framgår i Tabell 2. Omvägsoptimeringen har redan konstaterats individuellt bättre, men vi bedömmer att punktavståndsoptimeringens stabilare resultat ger algoritmen bättre översende för otydliga kurvor, där användaren till exempel tagit en oavsiktlig omväg men fortfarande besöker samtliga bokstäver i ordet. De båda algoritmerna kompletterar alltså varandra väl eftersom de tar hänsyn till olika saker, vilket vi tror är en betydande orsak till vårt goda resultat. Tänkbara optimeringar Maskininlärning Vi tror att kurvigenkänning skulle kunna vara en metod att tolka kurvor som annars ter sig antyda två olika ord. Till exempel skulle studier där användare får skriva samma ord flera gånger kunna bidra med insikter om hur subtila skillnader i kurvor kan uppkomma av små skillnader i bokstavsföljder. Ordföljdsanalys Ordföljdsanalys är ytterligare ett verktyg som skulle kunna användas när en kurva påträffas som tycks kunna antyda två ord. Enstaka bokstavsändringar kan ge helt nya innebörder och böjningsändelser kan verifieras med hjälp av grammatiska regler, vilket troligen skulle kunna öka precisionen markant. Bättre dubbelteckningshantering Det finns flera lösningar på hur dubbelteckningar kan hanteras. En av de vanligast kommersiellt förekommande är att klottra eller göra en liten loop på bokstaven som skall dubbeltecknas[5]. En annan lösning är att helt enkelt hålla fingret stilla en kort stund på bokstaven innan resten av kurvan skrivs. Båda lösningar skulle kunna implementeras som påbyggnad till vår algoritm, och därmed ge vår algoritm en chans att klara de testfall där två ord endast skiljs av en dubbelteckning. Minskat antal mätpunkter I våra tester varierar antalet mätpunkter per svept längdenhet ganska mycket, framför allt beroende på hur fort testpersonen sveper. Eftersom både huvudalgoritmen och optimeringar itererar över testpunkterna har detta förhållandevis stor inverkan på prestandan. Ifall punkterna ligger för tätt tillför varje punkt inte så mycket ny information. Redan vid inspelandet av kruvan skulle mätpunkter som kommer för nära inpå föregående kunna filtreras, och därmed förbättra prestandan betydligt. 13

19 Komprimerade grenar i trie Andra implementationer av trie kan komprimera grenar där det fortsättingsvis endast existerar en väg. Detta sparar utrymme och beroende på implementation kan det även minska det nödvändiga antalet iterationer något. Denna optimering görs till en kostand av högre implementationskomplexitet och långsammare insättningar, men det senare behöver inte påverka triealgoritmen eftersom den ser trien som konstant och troligen kommer ha den förberäknad. Det finns också implementationer som låter varje kjedja utmynna i ett binärträd för att minska minnesanvändningen. [6] Prestanda Trots att inga optimeringar gjorts med avseende på beräkningsprestanda är algoritmen snabb. Ett ord tolkas på en dator i genomsnitt på ca 8 ms. Även om algoritmen skulle köras på en mobil enhet, med en faktor upp emot kanske 50 i exekveringstid, skulle fortfarande algoritmen klara de riktlinjer för vad användare uppfattar som responsivt med god marginal[4]. Detta betyder främst att det finns gott om utrymme för fler optimeringar eller att ta hänsyn till användarfel i större utsträckning. 14

20 Slutsats Trots triealgoritmens enkelhet kan den med endast två rättframma optimeringar producera förvånansvärt goda resultat. Med god prestandamarginal, potential för fler optimeringar och hantering av specialfall, skulle triealgoritmen som föreslås i denna studie sannolikt kunna vidareutvecklas till en väl fungerande textinmatningsapplikation. 15

21 Referenser [1] Levenshtein distance. Levenshtein.html, (Hämtad 12 April 2013). [2] United states patent us com/ pdf. [3] Per Ola Kristensson. Discrete and continuous shape writing for text entry and control /FULLTEXT01. [4] Robert B. Miller. Response time in man-computer conversational transactions [5] Inc. Nuance Communications. Swype basics. tips/swype-basics/. (Hämtad 12 April 2013). [6] Hugh E. Williams Steffen Heinz, Justin Zobel. Burst Tries: A Fast, Efficient Data Structure for String Keys. acmtois02.pdf. 16

The Swype Input Method Degree Project in Computer Science

The Swype Input Method Degree Project in Computer Science The Swype Input Method Degree Project in Computer Science Mattis Kancans Envall mattiske@kth.se Axel Lewenhaupt axellew@kth.se 12 april 2013 Abstract Typing is probably always going to be an contemporary

Läs mer

Interaktion 2 STYRDON, PEKDON OCH ANNAN INTERAKTION ATT RÄKNA MED

Interaktion 2 STYRDON, PEKDON OCH ANNAN INTERAKTION ATT RÄKNA MED Interaktion 2 STYRDON, PEKDON OCH ANNAN INTERAKTION ATT RÄKNA MED Sammanfattning Styrdon Tangentbord och textinmatning Pekdon Fitts lag GOMS-KLM Styrdon Tangentbord Pekdon Tangentbord QWERTY-layout QWERTY-layout

Läs mer

Mälardalens högskola

Mälardalens högskola Teknisk rapportskrivning - en kortfattad handledning (Version 1.2) Mälardalens högskola Institutionen för datateknik (IDt) Thomas Larsson 10 september 1998 Västerås Sammanfattning En mycket viktig del

Läs mer

Datastrukturer och Algoritmer D0041D

Datastrukturer och Algoritmer D0041D Luleå Tekniska Universitet 19 mars 2014 Laborationsrapport Laboration 3 Datastrukturer och Algoritmer D0041D Primms Algoritm Namn E-mail Magnus Björk magbjr-3@ltu.student.se Handledare Felix Hansson Primms

Läs mer

Ett enkelt OCR-system

Ett enkelt OCR-system P r o j e k t i B i l d a n a l y s Ett enkelt OCR-system av Anders Fredriksson F98 Fredrik Rosqvist F98 Handledare: Magnus Oskarsson Lunds Tekniska Högskola 2001-11-29 - Sida 1 - 1.Inledning Många människor

Läs mer

Öka prestanda i Shared-Cache multi-core processorer

Öka prestanda i Shared-Cache multi-core processorer Öka prestanda i Shared-Cache multi-core processorer 1. Abstract Många processorer har nuförtiden flera kärnor. Det är även vanligt att dessa kärnor delar på högsta nivås cachen för att förbättra prestandan.

Läs mer

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Föreläsning 11. Giriga algoritmer

Föreläsning 11. Giriga algoritmer Föreläsning 11 Giriga algoritmer Föreläsning 11 Giriga algoritmer Användning Växelproblemet Kappsäcksproblemet Schemaläggning Färgläggning Handelsresandeproblemet Giriga algoritmer (Greedy algorithms)

Läs mer

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare Prov i DAT 312: Algoritmer och datastrukturer för systemvetare Jacek Malec Datavetenskap, LU 11 april 2003 Datum 11 april 2003 Tid 14 19 Ansvarig lärare Jacek Malec (tel. 03 9890431) Hjälpmedel inga Antal

Läs mer

Värmedistribution i plåt

Värmedistribution i plåt Sid 1 (6) Värmedistribution i plåt Introduktion Om vi med konstant temperatur värmer kanterna på en jämntjock plåt så kommer värmen att sprida sig och temperaturen i plåten så småningom stabilisera sig.

Läs mer

Optimering av depåpositioner för den minimala bensinförbrukningen i öknen

Optimering av depåpositioner för den minimala bensinförbrukningen i öknen Optimering av depåpositioner för den minimala bensinförbrukningen i öknen Frågeställning: En jeep kan sammanlagt ha 200 liter bensin i tanken samt i lösa dunkar. Jeepen kommer 2,5 km på 1 liter bensin.

Läs mer

Lösningar och kommentarer till uppgifter i 1.1

Lösningar och kommentarer till uppgifter i 1.1 Lösningar och kommentarer till uppgifter i 1.1 1106 d) 1107 d) 5t(t t 1) t (t 3) + t 3 5t 3 10t 5t (t 3 3t ) + t 3 5t 3 10t 5t t 3 + 3t + t 3 6t 3 7t 5t Kommentarer: Starta med att multiplicera in faktorerna

Läs mer

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod.

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod. Polyeder 0 x, 0 x, 0 x, x + x + x, x + x + x Grafdefinitioner N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar

Läs mer

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet Föreläsning 13 Innehåll Algoritm 1: Sortera Exempel på problem där materialet i kursen används Histogramproblemet Schemaläggning Abstrakta datatyper Datastrukturer Att jämföra objekt Om tentamen Skriftlig

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet Föreläsning 8 Sortering och urval TDDC70/91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 1 oktober 2013 Tommy Färnqvist, IDA, Linköpings universitet 8.1 Innehåll Innehåll 1 Sortering

Läs mer

Innehåll. Styrdon (ej i boken) Fitts lag (sidan ) Natural user interfaces. Kap 6.2.9, , Kap

Innehåll. Styrdon (ej i boken) Fitts lag (sidan ) Natural user interfaces. Kap 6.2.9, , Kap Interaktion 2 Innehåll Styrdon (ej i boken) Fitts lag (sidan 527-528) Natural user interfaces Kap 6.2.9, 6.2.11, 6.2.12 Kap 6.3-6.4 Styrdon Styrdon Tangentbord Pekdon Tangentbord QWERTY-layout QWERTY-layout

Läs mer

Om ellipsen och hyperbelns optiska egenskaper

Om ellipsen och hyperbelns optiska egenskaper Om ellipsen och hyperbelns optiska egenskaper Anders Källén MatematikCentrum LTH anderskallen@gmail.com Sammanfattning Ellipser och hyperbler är, liksom parabeln, s.k. kägelsnitt, dvs kurvor som uppkommer

Läs mer

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm Grafalgoritmer 1 Douglas Wikström KTH Stockholm popup-help@csc.kth.se Oriktade och riktade grafer Definition. En oriktad graf består av en mängd noder V och en mängd kanter E, där en kant är ett oordnat

Läs mer

Hantering av högkostnadsskyddet för tandläkarvård i KPI

Hantering av högkostnadsskyddet för tandläkarvård i KPI ES/PR Henrik Björk PM till Nämnden för KPI 2015-05-18 1(6) Hantering av högkostnadsskyddet för tandläkarvård i KPI För beslut Prisenheten föreslår en förbättring av prismätningen av tandvård i konsumentprisindex.

Läs mer

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation Innehåll Föreläsning 11 Trie Sökträd Trie och Sökträd 356 357 Trie Ytterligare en variant av träd. Vi har tidigare sett: Oordnat träd där barnen till en nod bildar en mängd Ordnat träd där barnen till

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Exempel på problem där materialet i kursen används Hitta k största bland n element Histogramproblemet Schemaläggning PFK (Föreläsning 13) VT 2013 1 / 15 Hitta k största bland n

Läs mer

TDDI16: Datastrukturer och algoritmer

TDDI16: Datastrukturer och algoritmer TDDI16: Datastrukturer och algoritmer Lab 3: Ordkedjor Höstterminen 2018 2018-05-14 1 Upplägg Första delen av instruktionen, avsnitt 2 till 6, innehåller en fullständig beskrivning av problemet utan några

Läs mer

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1 Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens

Läs mer

Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen.

Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen. Sidor i boken 40-4 Komposanter, koordinater och vektorlängd Ja, den här teorin gick vi igenom igår. Istället koncentrerar vi oss på träning inför KS3 och tentamen. Läxa 1. En rät linje, L 1, skär y-axeln

Läs mer

Oppositionsprotokoll-DD143x

Oppositionsprotokoll-DD143x Oppositionsprotokoll-DD143x Datum: 2011-04-26 Rapportförfattare Sara Sjödin Rapportens titel En jämförelse av två webbsidor ur ett MDI perspektiv Opponent Sebastian Remnerud Var det lätt att förstå vad

Läs mer

Några svar till TDDC70/91 Datastrukturer och algoritmer

Några svar till TDDC70/91 Datastrukturer och algoritmer Några svar till TDDC70/91 Datastrukturer och algoritmer 2011--18 Följande är lösningsskisser och svar till uppgifterna på tentan. Lösningarna som ges här ska bara ses som vägledning och är oftast inte

Läs mer

Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca

Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca Från Smart TV till Smartare upplevelse Av: Kim Huber och Connie Huanca System vi undersökte Den system vi valde att undersöka var en av de senaste smart tv som finns i markanden och var nämnd till bästa

Läs mer

Föreläsning 5: Grafer Del 1

Föreläsning 5: Grafer Del 1 2D1458, Problemlösning och programmering under press Föreläsning 5: Grafer Del 1 Datum: 2006-10-02 Skribent(er): Henrik Sjögren, Patrik Glas Föreläsare: Gunnar Kreitz Den här föreläsningen var den första

Läs mer

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning

LAB 3. INTERPOLATION. 1 Inledning. 2 Interpolation med polynom. 3 Splineinterpolation. 1.1 Innehåll. 3.1 Problembeskrivning TANA18/20 mars 2015 LAB 3. INTERPOLATION 1 Inledning Vi ska studera problemet att interpolera givna data med ett polynom och att interpolera med kubiska splinefunktioner, s(x), som är styckvisa polynom.

Läs mer

Laboration i datateknik

Laboration i datateknik KUNGLIGA TEKNISKA HÖGSKOLAN Laboration i datateknik Felsökning och programmering av LEGO NXT robot Daniel Willén 2012 09 06 dwill@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Syftet med

Läs mer

Matematik D (MA1204)

Matematik D (MA1204) Matematik D (MA104) 100 p Betygskriterier med eempeluppgifter Värmdö Gymnasium Betygskriterier enligt Skolverket Kriterier för betyget Godkänd Eleven använder lämpliga matematiska begrepp, metoder och

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

campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning

campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning En rapport från CATD-projektet, januari-2001 1 2 Förstudie Beslutsstöd för operativ tågtrafikstyrning Bakgrund Bland de grundläggande

Läs mer

Kristian Almgren Artificiell Intelligens Linköpings Universitet 2011. Talstyrning

Kristian Almgren Artificiell Intelligens Linköpings Universitet 2011. Talstyrning Talstyrning Abstrakt Talstyrning är en teknik som gör det möjligt för oss människor att mer eller mindre verbalt kommunicera med en dator eller ett system. Det här är ett tillvägagångssätt inom AI och

Läs mer

Magnus Nielsen, IDA, Linköpings universitet

Magnus Nielsen, IDA, Linköpings universitet Föreläsning 7 Introduktion till sortering TDDC91,TDDE22,725G97: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 24 september 2018 Magnus Nielsen, IDA, Linköpings universitet 7.1 1

Läs mer

Föreläsningsanteckningar F6

Föreläsningsanteckningar F6 Föreläsningsanteckningar F6 Martin Andersson & Patrik Falkman Kortaste vägen mellan en nod och alla andra noder Detta problem innebär att givet en graf G = (E,V) hitta den kortaste vägen över E från en

Läs mer

Tema: Hur träffsäkra är ESV:s budgetprognoser?

Tema: Hur träffsäkra är ESV:s budgetprognoser? Tema: Hur träffsäkra är ESV:s budgetprognoser? ESV:s budgetprognoser fungerar som beslutsunderlag för regeringen och beräknas utifrån de regler som gäller vid respektive prognostillfälle. På uppdrag av

Läs mer

Samtidig utvärdering av form- & lägekrav

Samtidig utvärdering av form- & lägekrav Samtidig utvärdering av form- & lägekrav Allmän information Samtidig utvärdering (ISO) eller samtidiga krav (ASME) är väletablerade principer som gäller för form- & lägetoleranser. Samtidig utvärdering

Läs mer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, )}, i N, N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg innehåller

Läs mer

Fönsterbeteende. Mike McBride Jost Schenck Översättare: Stefan Asserhäll

Fönsterbeteende. Mike McBride Jost Schenck Översättare: Stefan Asserhäll Mike McBride Jost Schenck Översättare: Stefan Asserhäll 2 Innehåll 1 Fönsterbeteende 4 1.1 Fokus............................................. 4 1.1.1 Fokuspolicy..................................... 4

Läs mer

Föreläsning 13 Innehåll

Föreläsning 13 Innehåll Föreläsning 13 Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Heapar Implementering av prioritetskö med heap Klassen PriorityQueue i java.util Programexempel LPT-algoritmen

Läs mer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg

Läs mer

LÄSLANDET - BOKSTÄVER OCH ORD

LÄSLANDET - BOKSTÄVER OCH ORD LÄSLANDET - BOKSTÄVER OCH ORD Programmet består av 21 övningar som övar förmågan att känna igen bokstäver och ord. Här tränas såväl läsning som stavning och bokstavsordning. Du får hela tiden stöd av inspelat

Läs mer

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar

ADT Prioritetskö. Föreläsning 13 Innehåll. Prioritetskö vs FIFO-kö. Prioritetskö Exempel på användning. Prioritetsköer och heapar Föreläsning 1 Innehåll ADT Prioritetskö Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util ar Implementering av prioritetskö med heap Sortering med hjälp

Läs mer

Lösningsförslag för tentamen i Datastrukturer (DAT037) från

Lösningsförslag för tentamen i Datastrukturer (DAT037) från Lösningsförslag för tentamen i Datastrukturer (DAT7) från --9 Nils Anders Danielsson. Träd- och köoperationerna har alla tidskomplexiteten O(log s), där s är antalet element i trädet/kön (notera att jämförelser

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

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6 Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6? DAGENS AGENDA Komplexitet Ordobegreppet Komplexitetsklasser Loopar Datastrukturer Några nyttiga regler OBS! Idag jobbar

Läs mer

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt Kravhantering / Testprocess - Agenda AGENDA Grundläggande kravhanteringsprocess. Insamling, dokumentation, prioritering, Test och förvaltning

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 6 Anton Grensjö grensjo@csc.kth.se 4 oktober 2017 1 Idag Algoritmkonstruktion (lite blandat) Redovisning och inlämning av labbteori 3 2 Uppgifter Uppgift

Läs mer

Sju riktlinjer vid utveckling av hemsidor för mobil och desktop

Sju riktlinjer vid utveckling av hemsidor för mobil och desktop Sju riktlinjer vid utveckling av hemsidor för mobil och desktop Denna artikel går igenom hur du gör en hemsida användarvänlig till både vanliga desktopdatorer och mobilanvändare utan att behöva ha två

Läs mer

Genetisk programmering i Othello

Genetisk programmering i Othello LINKÖPINGS UNIVERSITET Första versionen Fördjupningsuppgift i kursen 729G11 2009-10-09 Genetisk programmering i Othello Kerstin Johansson kerjo104@student.liu.se Innehållsförteckning 1. Inledning... 1

Läs mer

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg

Läs mer

Mätning av fokallängd hos okänd lins

Mätning av fokallängd hos okänd lins Mätning av fokallängd hos okänd lins Syfte Labbens syfte är i första hand att lära sig hantera mätfel och uppnå god noggrannhet, även med systematiska fel. I andra hand är syftet att hantera linser och

Läs mer

Resultat av enkäten om datorvanor och spelande

Resultat av enkäten om datorvanor och spelande Resultat av enkäten om datorvanor och spelande Mellan den 4:e juli 2012 och 10:e mars 2013 har 312 personer svarat på den enkät som vi på GameOver haft uppe hemsidan. Ett stort tack till alla er som bidragit

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Broarna i Königsberg, Euler, 17 Grafer

Läs mer

LKT325/LMA521: Faktorförsök

LKT325/LMA521: Faktorförsök Föreläsning 2 Innehåll Referensfördelning Referensintervall Skatta variansen 1 Flera mätningar i varje grupp. 2 Antag att vissa eekter inte existerar 3 Normalfördelningspapper Referensfördelning Hittills

Läs mer

Tentamen Datastrukturer (DAT036/DAT037/DIT960)

Tentamen Datastrukturer (DAT036/DAT037/DIT960) Tentamen Datastrukturer (DAT036/DAT037/DIT960) Datum och tid för tentamen: 2016-04-07, 14:00 18:00. Författare: Nils Anders Danielsson. (Tack till Per Hallgren och Nick Smallbone för feedback.) Ansvarig:

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,

Läs mer

Vätebränsle. Namn: Rasmus Rynell. Klass: TE14A. Datum: 2015-03-09

Vätebränsle. Namn: Rasmus Rynell. Klass: TE14A. Datum: 2015-03-09 Vätebränsle Namn: Rasmus Rynell Klass: TE14A Datum: 2015-03-09 Abstract This report is about Hydrogen as the future fuel. I chose this topic because I think that it s really interesting to look in to the

Läs mer

Mattekungen åk 6-9 vers. 1.0

Mattekungen åk 6-9 vers. 1.0 Presentation av programvara våren 2008 Bodil Holmström Anna Holmström Bearbetat av Karolina Höglund Mattekungen åk 6-9 vers. 1.0 Allmänt om programmet Mattekungen är ett undervisningsprogram som produceras

Läs mer

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april

GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare. Karlstads universitet 19-20 april GeoGebra i matematikundervisningen - Inspirationsdagar för gymnasielärare Karlstads universitet 19-0 april Exempel på elevaktiviteter framtagna i skolutvecklingsprojektet IKT och lärande i matematik 1

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Teknisk rapportskrivning

Teknisk rapportskrivning Teknisk rapportskrivning - en kortfattad handledning Thomas Larsson Institutionen för datateknik (IDt) Mälardalens högskola 5 oktober 1999 Västerås Skicka gärna synpunkter och kommentarer till thomas.larsson@mdh.se

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

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna

Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Lösningsanvisningar till de icke obligatoriska workoutuppgifterna Linjära system 7. (a) Falskt. Kondition är en egenskap hos problemet oberoende av precisionen i beräkningarna. (b) Falskt. Pivotering påverkar

Läs mer

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary 1 1.1 Definitioner... 1 1.2 Implementation... 2 Föreläsning 4 ADT Map/Dictionary, hashtabeller, skip-listor TDDC91: DALG Utskriftsversion av föreläsning i Datastrukturer och algoritmer 9 september 2015 Tommy Färnqvist, IDA, Linköpings universitet 4.1

Läs mer

Utveckling av ett grafiskt användargränssnitt

Utveckling av ett grafiskt användargränssnitt Datavetenskap Opponenter: Daniel Melani och Therese Axelsson Respondenter: Christoffer Karlsson och Jonas Östlund Utveckling av ett grafiskt användargränssnitt Oppositionsrapport, C-nivå 2010-06-08 1 Sammanfattat

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 6 Anton Grensjö grensjo@csc.kth.se 9 oktober 2015 Anton Grensjö ADK Övning 6 9 oktober 2015 1 / 23 Översikt Kursplanering Ö5: Grafalgoritmer och undre

Läs mer

Programmeringsolympiaden 2012 Kvalificering

Programmeringsolympiaden 2012 Kvalificering Programmeringsolympiaden 2012 Kvalificering TÄVLINGSREGLER Tävlingen äger rum på ett av skolan bestämt datum under sex timmar effektiv tid. Tävlingen består av sex uppgifter som samtliga ska lösas genom

Läs mer

TDDC74 - Projektspecifikation

TDDC74 - Projektspecifikation TDDC74 - Projektspecifikation Projektmedlemmar: Namn Efternamn abcde123@student.liu.se Namn Efternamn abcde123@student.liu.se Handledare: Handledare handledare@ida.liu.se eller handledare@student.liu.se

Läs mer

Laboration 1 Mekanik baskurs

Laboration 1 Mekanik baskurs Laboration 1 Mekanik baskurs Utförs av: Henrik Bergman Mubarak Ali Uppsala 2015 01 19 Introduktion Gravitationen är en självklarhet i vår vardag, de är den som håller oss kvar på jorden. Gravitationen

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

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA

Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA Evelina Andersson 18 maj 2011 1 Introduktion Att träna mycket för att bli duktig på ett språk

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 12 Anton Grensjö grensjo@csc.kth.se 10 december 2015 Anton Grensjö ADK Övning 12 10 december 2015 1 / 19 Idag Idag Komplexitetsklasser Blandade uppgifter

Läs mer

SVÄNGNINGSTIDEN FÖR EN PENDEL

SVÄNGNINGSTIDEN FÖR EN PENDEL Institutionen för fysik 2012-05-21 Umeå universitet SVÄNGNINGSTIDEN FÖR EN PENDEL SAMMANFATTNING Ändamålet med experimentet är att undersöka den matematiska modellen för en fysikalisk pendel. Vi har mätt

Läs mer

Programmering. Den första datorn hette ENIAC.

Programmering. Den första datorn hette ENIAC. Programmering Datorn är bara en burk. Den kan inget själv. Hur får man den att göra saker? Man programmerar den. Människor som funderar ut program som fungerar. Datorn förstår bara ettor och nollor och

Läs mer

Kortaste Ledningsdragningen mellan Tre Städer

Kortaste Ledningsdragningen mellan Tre Städer Kortaste Ledningsdragningen mellan Tre Städer Tre städer A, B och C, belägna som figuren till höger visar, ska förbindas med fiberoptiska kablar. En så kort ledningsdragning som möjligt vill uppnås för

Läs mer

TAIU07 Matematiska beräkningar med Matlab

TAIU07 Matematiska beräkningar med Matlab TAIU07 Matematiska beräkningar med Matlab Laboration 3. Linjär algebra Namn: Personnummer: Epost: Namn: Personnummer: Epost: Godkänd den: Sign: Retur: 1 Introduktion 2 En Komet Kometer rör sig enligt ellipsformade

Läs mer

Tentamen, EDA501/EDAA20 Programmering M MD W BK L

Tentamen, EDA501/EDAA20 Programmering M MD W BK L LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen, EDA501/EDAA20 Programmering M MD W BK L 2017 05 31, 8.00 13.00 Anvisningar: Preliminärt ger uppgifterna 9 + 12 + 10 + 9 = 40 poäng.

Läs mer

Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin.

Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin. Examensarbete Magisterprogrammet Digital Affärsutveckling, kurs uppgift 3 teori-reflektion. Kritisk reflektion av använd teori för införande av digitala teknologier, Tidsläckage Teorin. Författare: Magnus

Läs mer

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon. Datastrukturer och algoritmer Föreläsning 7 Tabell, hashtabell Relation & lexikon Innehåll Tabell Tabell Hashtabell Relation, lexikon Modell Uppslagsbok Organisation Ändlig avbildning av argument på värden

Läs mer

TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter

TATM79: Föreläsning 2 Absolutbelopp, summor och binomialkoefficienter TATM79: Föreläsning Absolutbelopp, summor och binomialkoefficienter Johan Thim 15 augusti 015 1 Absolutbelopp Absolutbelopp Definition. För varje reellt x definieras absolutbeloppet x enligt { x, x 0 x

Läs mer

FMCK Malmö Boris Magnusson. Markering av Endurobana

FMCK Malmö Boris Magnusson. Markering av Endurobana FMCK Malmö Boris Magnusson Markering av Endurobana Markering av en Endurobana finns beskrivet i tävlingsreglementet, paragrafer 4.16-17-18 (se nedan) men dessa är ganska kortfattade. Detta PM är ett försöka

Läs mer

For more information please visit www.rollermouse.com

For more information please visit www.rollermouse.com For more information please visit www.rollermouse.com Contour Design, Inc. 10 Industrial Drive Windham New Hampshire, 03087, USA Phone: 800-462-6678 E-mail: ergoinfo@contourdesign.com Contour Design Europe

Läs mer

Anpassningsbar applikationsstruktur för flerpunktsskärmar

Anpassningsbar applikationsstruktur för flerpunktsskärmar Datavetenskap Opponent(er): Rikard Boström Lars-Olof Moilanen Respondent(er): Mathias Andersson Henrik Bäck Anpassningsbar applikationsstruktur för flerpunktsskärmar Oppositionsrapport, C/D-nivå 2005:xx

Läs mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-27 Idag Balanserade sökträd Splayträd Skipplistor AVL-träd AVL-träd Sökträd Invariant (för varje nod): Vänster och höger delträd har samma

Läs mer

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer

LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer LUNDS UNIVERSITET Parallell exekvering av Float32 och INT32 operationer Samuel Molin Kursansvarig: Erik Larsson Datum 2018-12-05 Referat Grafikkort utför många liknande instruktioner parallellt då typiska

Läs mer

Föreläsning 9 Innehåll

Föreläsning 9 Innehåll Föreläsning 9 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning, implementering effektivitet balanserade binära sökträd, AVL-träd Abstrakta datatyperna mängd (eng. Set) och lexikon

Läs mer

Rotfinder Basic manual

Rotfinder Basic manual Rotfinder Basic manual ver 20061023 Övergripande instruktion Ändra diameter Röta Ingen röta Felmeddelande 1. Koppla samman Rotfinders 5 delar (instrument, 2 pikar, 2 röda kablar) och bege dig till utvalt

Läs mer

Extramaterial till Matematik X

Extramaterial till Matematik X LIBER PROGRMMERING OCH DIGITL KOMPETENS Extramaterial till Matematik X NIVÅ TRE Programmering LÄRRE I den här uppgiften får du och dina elever en introduktion till programmering. Uppgiften vänder sig först

Läs mer

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor Abstrakta datatyper 1 Primitiva vektorer Vektorer kan skapas av primitiva datatyper, objektreferenser eller andra vektorer. Vektorer indexeras liksom i C från 0. För att referera en vektor används hakparenteser.

Läs mer

Tentamen Datastrukturer (DAT036)

Tentamen Datastrukturer (DAT036) Tentamen Datastrukturer (DAT036) Datum och tid för tentamen: 2013-12-16, 14:00 18:00. Ansvarig: Nils Anders Danielsson. Nås på 0700 620 602 eller anknytning 1680. Besöker tentamenssalarna ca 15:00 och

Läs mer

BIO-Mekanik med Robert Andersson

BIO-Mekanik med Robert Andersson BIO-Mekanik med Robert Andersson Undersökningen syftade till att undersöka varför spelare med olika teknik och kroppslängd spelar med samma klothastighet. Det visade sig vara hur tidigt spelaren startade

Läs mer

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk del. Facit Tentamen TDDC (6) Facit Tentamen TDDC30 2014-08-29 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är skillnaden mellan synligheterna public, private och protected? (1p) Svar:public: Nåbar för

Läs mer

Upprepade mönster (fortsättning från del 1)

Upprepade mönster (fortsättning från del 1) Modul: Algebra Del 2: Resonemangsförmåga Upprepade mönster (fortsättning från del 1) Anna-Lena Ekdahl och Robert Gunnarsson, Högskolan i Jönköping Ett viktigt syfte med att arbeta med upprepade mönster

Läs mer

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar Föreläsning 1 Innehåll Prioritetsköer och heapar Prioritetsköer och heapar ADT prioritetskö Klassen PriorityQueue i java.util Heapar Implementering av prioritetskö med heap Sortering med hjälp av heap

Läs mer

Signalbehandling Röstigenkänning

Signalbehandling Röstigenkänning L A B O R A T I O N S R A P P O R T Kurs: Klass: Datum: I ämnet Signalbehandling ISI019 Enk3 011211 Signalbehandling Röstigenkänning Jonas Lindström Martin Bergström INSTITUTIONEN I SKELLEFTEÅ Sida: 1

Läs mer

Givet två naturliga tal a och b, som inte båda två är 0, hur räknar man ut största gemensamma delaren av a och b?

Givet två naturliga tal a och b, som inte båda två är 0, hur räknar man ut största gemensamma delaren av a och b? Euklides algoritm för största gemensamma delaren Givet två naturliga tal a och b, som inte båda två är 0, hur räknar man ut största gemensamma delaren av a och b? Euklides har kommit på en metod (algoritm)

Läs mer

1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till?

1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till? 1. (3p) Inom MDI-området framhåller man att människor lär sig via metaforer. Hur menar man att detta går till? Att lära sig via metaforer innebär att man drar nytta av kunskap som användaren redan har,

Läs mer