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 AXEL LEWENHAUPT 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Graärgning och kromatiska formler

Graärgning och kromatiska formler Graärgning och kromatiska formler Henrik Bäärnhielm, d98-hba 2 mars 2000 Sammanfattning I denna uppsats beskrivs, för en ickematematiker, färgning av grafer samt kromatiska formler för grafer. Det hela

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

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

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

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

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

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

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

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

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

NATIONELLT KURSPROV I MATEMATIK KURS D HÖSTEN Del I, 9 uppgifter utan miniräknare 3. Del II, 8 uppgifter med miniräknare 6

NATIONELLT KURSPROV I MATEMATIK KURS D HÖSTEN Del I, 9 uppgifter utan miniräknare 3. Del II, 8 uppgifter med miniräknare 6 freeleaks NpMaD ht2007 för Ma4 1(10) Innehåll Förord 1 NATIONELLT KURSPROV I MATEMATIK KURS D HÖSTEN 2007 2 Del I, 9 uppgifter utan miniräknare 3 Del II, 8 uppgifter med miniräknare 6 Förord Kom ihåg Matematik

Läs mer

Kundts rör - ljudhastigheten i luft

Kundts rör - ljudhastigheten i luft Kundts rör - ljudhastigheten i luft Laboration 4, FyL VT00 Sten Hellman FyL 3 00-03-1 Laborationen utförd 00-03-0 i par med Sune Svensson Assisten: Jörgen Sjölin 1. Inledning Syftet med försöket är att

Läs mer

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1 Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4

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

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

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 och Komplexitet ht 08. Övning 5. Flöden. Reduktioner. Förändrat flöde

Algoritmer och Komplexitet ht 08. Övning 5. Flöden. Reduktioner. Förändrat flöde Algoritmer och Komplexitet ht 08. Övning 5 Flöden. Reduktioner Förändrat flöde a) Beskriv en effektiv algoritm som hittar ett nytt maximalt flöde om kapaciteten längs en viss kant ökar med en enhet. Algoritmens

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 6 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Sortering Selectionsort, Bubblesort,

Läs mer

Föreläsning 7 Datastrukturer (DAT037)

Föreläsning 7 Datastrukturer (DAT037) Föreläsning 7 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-21 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra

Läs mer

Algoritmer och datastrukturer 2012, fo rela sning 8

Algoritmer och datastrukturer 2012, fo rela sning 8 lgoritmer och datastrukturer 01, fo rela sning 8 Komplexitet för binära sökträd De viktigaste operationerna på binära sökträd är insert, find och remove Tiden det tar att utföra en operation bestäms till

Läs mer

Aktivitetsschemaläggning för flerkärninga processorer

Aktivitetsschemaläggning för flerkärninga processorer Lunds Tekniska Högskola Datorarkitekturer med Operativsystem EDT621 Aktivitetsschemaläggning för flerkärninga processorer Tobias Lilja 5 december 2016 Innehåll 1 Inledning 3 1.1 Syfte................................

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

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

Optimering av synvinkeln i en biosalong

Optimering av synvinkeln i en biosalong Optimering av synvinkeln i en biosalong The Mad Mathematician s Mathematical Consultancy Bureau Johanna Kilander Optimering av synvinkeln i en biosalong Frågeställning Mitt uppdrag är att ta reda på vart

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

kl Tentaupplägg

kl Tentaupplägg Tentaupplägg TIPS 1: Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter. Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer

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

Tobii C12. Grunderna för hur du kommer igång och arbetar med Tobiis C12 och ögonstyrningen CEye. Habilitering & Hjälpmedel

Tobii C12. Grunderna för hur du kommer igång och arbetar med Tobiis C12 och ögonstyrningen CEye. Habilitering & Hjälpmedel Tobii C12 Grunderna för hur du kommer igång och arbetar med Tobiis C12 och ögonstyrningen CEye. Habilitering & Hjälpmedel Förord Detta du nu håller i din hand är inte en komplett manual utan en kortfattad

Läs mer

Programmeringsolympiaden 2014

Programmeringsolympiaden 2014 Programmeringsolympiaden 2014 TÄVLINGSREGLER FÖR SKOLKVALET Tävlingen äger rum på av skolan bestämt datum under sex timmar effektiv tid. Eleven ska i förväg komma överens med läraren om att använda egen

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

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

Laboration i Fourieroptik

Laboration i Fourieroptik Laboration i Fourieroptik David Winge Uppdaterad 30 januari 2015 1 Introduktion I detta experiment ska vi titta på en verklig avbildning av Fouriertransformen. Detta ska ske med hjälp av en bild som projiceras

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

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

Övningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt.

Övningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt. 1 Samlingar 1.1 Frekvenstabell En Integer är icke-muterbar (precis som String, Float, Boolean et.c.). Ickemuterbarhet har många fördelar, men en nackdel är att ett helt nytt objekt måste skapas när ett

Läs mer

Lösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), Tiden det tar att utföra en iteration av loopen är oberoende av värdet på

Lösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), Tiden det tar att utföra en iteration av loopen är oberoende av värdet på Lösningsförslag till tentamen Datastrukturer, DAT037 (DAT036), 2017-01-11 1. Loopen upprepas n gånger. getat på en dynamisk array tar tiden O(1). member på ett AVL-träd av storlek n tar tiden O(log n).

Läs mer

Test av kranspetsvågar i virkesfordon

Test av kranspetsvågar i virkesfordon Datum 2016-02-18 Författare Sven Gustafsson Test av kranspetsvågar i virkesfordon WWW.SDC.SE P o s t a d r e s s : 8 5 1 8 3 S u n d s v a l l B e s ö k s a d r e s s : S k e p p a r p l a t s e n 1 T

Läs mer

Lektion 1: Fördelningar och deskriptiv analys

Lektion 1: Fördelningar och deskriptiv analys Density Lektion 1: Fördelningar och deskriptiv analys 1.,3 Uniform; Lower=1; Upper=6,3,2,2,1,, 1 2 3 X 4 6 7 Figuren ovan visar täthetsfunktionen för en likformig fördelning. Kurvan antar värdet.2 över

Läs mer

IT för personligt arbete F5

IT för personligt arbete F5 IT för personligt arbete F5 Datalogi del 1 DSV Peter Mozelius 1 En dators beståndsdelar 1) Minne 2) Processor 3) Inmatningsenheter 1) tangentbord 2) scanner 3) mus 4) Utmatningsenheter 1) bildskärm 2)

Läs mer

Föreläsning 11: Beräkningsgeometri

Föreläsning 11: Beräkningsgeometri DD2458, Problemlösning och programmering under press Föreläsning 11: Beräkningsgeometri Datum: 2009-11-24 Skribenter: David Björklund, Christoer Lundell Johansson och Mårten Selin Föreläsare: Fredrik Niemelä

Läs mer

a) Ange ekvationen för den räta linjen L. (1/0/0)

a) Ange ekvationen för den räta linjen L. (1/0/0) Delprov B: Digitala verktyg är inte tillåtna. Endast svar krävs. Skriv dina svar direkt i provhäftet. 1. Ange det uttryck som ska stå i parentesen för att likheten ska gälla. ( ) ( x 5) = x 5 (1/0/0).

Läs mer

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X Algoritmer och Datastrukturer Kary FRÄMLING/Göran PULKKIS (v23) Kap. 7, Sid 1 BINÄRA TRÄD Träd används för att representera olika slags hierarkier som ordnats på något sätt. Den mest använda trädstrukturen

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

Datastrukturer och algoritmer. Innehåll. Trie. Informell specifikation. Organisation av Trie. Föreläsning 13 Trie och Sökträd.

Datastrukturer och algoritmer. Innehåll. Trie. Informell specifikation. Organisation av Trie. Föreläsning 13 Trie och Sökträd. Datastrukturer och algoritmer Föreläsning 13 rie och ökträd Innehåll rie rådar rie ökträd tterligare en variant av träd. Vi har tidigare sett: Oordnat träd där barnen till en nod bildar en mängd Ordnat

Läs mer

Algoritmanalys. Inledning. Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016

Algoritmanalys. Inledning. Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016 Informationsteknologi Malin Källén, Tom Smedsaas 1 september 2016 Algoritmanalys Inledning Exempel 1: x n När vi talade om rekursion presenterade vi två olika sätt att beräkna x n, ett iterativt: x n =

Läs mer

Checklista för funktionsundersökning

Checklista för funktionsundersökning Linköpings universitet Matematiska institutionen TATA41 Envariabelanalys 1 Hans Lundmark 2015-02-10 Checklista för funktionsundersökning 1. Vad är definitionsmängden D f? 2. Har funktionen några uppenbara

Läs mer

Läsanvisningar till kapitel 6 i Naturlig matematik. Avsnitt 6.6 ingår inte.

Läsanvisningar till kapitel 6 i Naturlig matematik. Avsnitt 6.6 ingår inte. Läsanvisningar till kapitel 6 i Naturlig matematik Avsnitt 6.6 ingår inte. Avsnitt 6.1 Detta avsnitt illustrerar hur sekanten övergår i en tangent genom att den ena skärningspunkten rör sig mot den andra.

Läs mer

Välkommen till kursen i Avancerad interaktionsdesign. Certec & EAT Institutionen för designvetenskaper

Välkommen till kursen i Avancerad interaktionsdesign. Certec & EAT Institutionen för designvetenskaper Välkommen till kursen i Avancerad interaktionsdesign Certec & EAT Institutionen för designvetenskaper Idag Översikt över kursen Kursmål och metoder Examinationskriterier Inspiration Praktisk information

Läs mer

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser Abstrakta Klasser 1 God klassdesign placerar gemensamma attribut och metoder så högt som möjligt i hierarkin men ibland kan dessa egenskaper inte definieras fullständigt Abstrakta klasser innehåller ofta

Läs mer

4 rörelsemängd. en modell för gaser. Innehåll

4 rörelsemängd. en modell för gaser. Innehåll 4 rörelsemängd. en modell för gaser. Innehåll 8 Allmänna gaslagen 4: 9 Trycket i en ideal gas 4:3 10 Gaskinetisk tolkning av temperaturen 4:6 Svar till kontrolluppgift 4:7 rörelsemängd 4:1 8 Allmänna gaslagen

Läs mer

Facit Tentamen TDDC (7)

Facit Tentamen TDDC (7) Facit Tentamen TDDC30 2014-03-18 1 (7) Teoretisk del 1. (3p) "Snabba frågor" a) Varför kan man tänkas vilja dölja metoder och variabler med private? (0.5p) Svar:För att skydda interna variabler från ändringar

Läs mer

Kravspecifikation Fredrik Berntsson Version 1.3

Kravspecifikation Fredrik Berntsson Version 1.3 Kravspecifikation Fredrik Berntsson Version 1.3 Status Granskad FB 2017-01-27 Godkänd FB 2017-01-27 Dokumenthistorik Version Datum Utförda ändringar Utförda av Granskad 1.0 2014-01-15 Första versionen

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 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 Uppgifter Giriga algoritmer (Greedy algorithms)

Läs mer

Business research methods, Bryman & Bell 2007

Business research methods, Bryman & Bell 2007 Business research methods, Bryman & Bell 2007 Introduktion Kapitlet behandlar analys av kvalitativ data och analysen beskrivs som komplex då kvalitativ data ofta består av en stor mängd ostrukturerad data

Läs mer

Specifikation av kandidatexjobb

Specifikation av kandidatexjobb Specifikation av kandidatexjobb 3D-rekonstruktion av Rubiks kub André Gräsman Rasmus Göransson grasman@kth.se rasmusgo@kth.se 890430-3214 850908-8517 Introduktion Vi vill göra en förstudie om 3D rekonstruktion.

Läs mer

Två innebörder av begreppet statistik. Grundläggande tankegångar i statistik. Vad är ett stickprov? Stickprov och urval

Två innebörder av begreppet statistik. Grundläggande tankegångar i statistik. Vad är ett stickprov? Stickprov och urval Två innebörder av begreppet statistik Grundläggande tankegångar i statistik Matematik och statistik för biologer, 10 hp Informationshantering. Insamling, ordningsskapande, presentation och grundläggande

Läs mer

Skärmtangentbordet som är enkelt att använda både med mus, touchskärmar och interaktiva whiteboards

Skärmtangentbordet som är enkelt att använda både med mus, touchskärmar och interaktiva whiteboards Skärmtangentbordet som är enkelt att använda både med mus, touchskärmar och interaktiva whiteboards Tel: 031-769 00 60 info@frolundadata.se www.frolundadata.se Introduktion WizKeys är flexibelt och kostnadseffektivt

Läs mer

Tentamen TEN1 HI

Tentamen TEN1 HI Tentamen TEN1 HI1029 2015-03-17 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

Manual TorTalk version 1.3

Manual TorTalk version 1.3 Manual TorTalk version 1.3 Introduktion TorTalk är ett program vars funktion är att läsa upp text med talsyntes. Målet är att det ska var så enkelt som möjligt att använda. Därmed har antal funktioner

Läs mer

Jeep-problemet. Kjell Elfström

Jeep-problemet. Kjell Elfström F r å g a L u n d o m m a t e m a t i k Matematikcentrum Matematik NF Jeep-problemet Kjell Elfström Problemet En jeep kan sammanlagt ta 200 liter bensin i tanken och i lösa dunkar. Jeepen kan gå 2,5 km

Läs mer

Föreläsning 2: Grafer. Exempel på graf

Föreläsning 2: Grafer. Exempel på graf Föreläsning 2: Grafer Vad är en graf? Terminologi Representationer Genomgång av hörnen i en graf Kortaste väg-problemet Exempel på graf Falun Uppsala Karlstad Västerås Stockholm Eskilstuna Örebro En graf

Läs mer