Shannon-Fano-Elias-kodning
|
|
- Ove Berg
- för 5 år sedan
- Visningar:
Transkript
1 Datakompression fö 5 p.1 Shannon-Fano-Elias-kodning Antag att vi har en minnesfri källa X i som tar värden i {1, 2,...,L}. Antag att sannolikheterna för alla symboler är strikt positiva: p(i) > 0, i. Fördelningsfunktionen F (i) definieras som F (i) = k i p(k) F (i) är en trappstegsfunktion där steget i k har höjden p(k). Betraktaäven den modifierade fördelningsfunktionen F (i) F (i) = k<i p(k)+ 1 2 p(i) Värdet av F (i) är mittpunktet på steget för i.
2 Datakompression fö 5 p.2 Shannon-Fano-Elias-kodning Eftersom alla sannolikheter är positiva är F (i) F (j) för i j. Alltså kan vi bestämma i om vi vet F (i). Värdet på F (i) kan användas som kodord för i. I allmänhet är dock F (i) ett reellt tal med en oändlig antal bitar i sin binärutveckling, så vi kan inte använda det exakta värdet som kodord. Om vi istället använder ett närmevärde med ändlig binärutveckling, hur stor noggrannhet måste vi använda, dvs hur många bitar måste vi ha i kodordet? Antag att vi trunkerar binärutvecklingen för F (i) till l i bitar (betecknat med F (i) li. Då gäller att F (i) F (i) li < 1 2 l i Om vi låter l i = log p(i) +1så är 1 2 l =2 l i =2 log p(i) 1 2 log p(i) 1 = p(i) i 2 = F (i) F (i 1)
3 Datakompression fö 5 p.3 Shannon-Fano-Elias-kodning Alltså ligger talet F (i) li i steget som motsvarar i och därför räcker det med l i = log p(i) +1bitar för att beskriva i. Är den konstruerade koden prefixfri? Antag att ett kodord är b 1 b 2...b l. Dessa bitar representerar intervallet [0.b 1 b 2...b l 0.b 1 b 2...b l + 1 ) För att koden ska vara prefixfri måste alla 2 l intervall vara disjunkta. Intervallet för kodordet till symbol i har längden 2 l i vilket är mindre än halva längden av motsvarande steg. Startpunkten på intervallet ligger i nedre halvan av steget. Detta betyder att slutpunkten på intervallet ligger under toppen av steget. Alltså är alla intervall disjunkta och koden är prefixfri.
4 Datakompression fö 5 p.4 Shannon-Fano-Elias-kodning Vad har koden för datatakt? Kodordsmedellängden blir l = p(i) l i = p(i) ( log p(i) +1) i i p(i) ( log p(i)+2)= p(i) log p(i)+2 p(i) i i i = H(X i )+2 Vi kodar bara en symbol i taget, så datatakten R = l. Koden är alltså lite sämre än t.ex. en huffmankod. Prestanda kan förbättras genom att man kodar flera symboler i taget. Detta leder oss till aritmetisk kodning.
5 Datakompression fö 5 p.5 Aritmetisk kodning Aritmetisk kodning är i princip en generalisering av Shannon-Fano-Elias-kodning till att koda symbolsekvenser istället för enstaka symboler. Antag att vi vill koda en sekvens x = x 1,x 2,...,x n. Man börjar med hela sannolikhetsintervallet [0, 1). I varje steg delar man in sitt intervall proportionellt enligt fördelningsfunktionen F (i) och väljer just det delintervall som motsvarar den symbol som kodas. Har vi en minneskälla gör man intervalluppdelningen enligt den betingade fördelningsfunktionen. Varje symbolsekvens av längd n identifierar unikt ett delintervall. Kodordet för sekvensen är ett tal i intervallet. Antal bitar i kodordet beror av intervallets storlek, så ett stort intervall (dvs en sekvens med hög sannolikhet) får ett kort kodord, medan ett litet intervall ger ett längre kodord.
6 Datakompression fö 5 p.6 Iterativ algoritm Antag att vi vill koda en sekvens x = x 1,x 2,...,x n. Vi betecknar den undre gränsen i motsvarande intervall med l (n) och den övre gränsen med u (n). Intervallgenereringen ges då iterativt av { l (n) = l (n 1) +(u (n 1) l (n 1) ) F (x n 1) u (n) = l (n 1) +(u (n 1) l (n 1) ) F (x n ) Startvärden är l (0) =0och u (0) =1. F (0) = 0 Intervallstorleken är förstås lika med sannolikheten för sekvensen u (n) l (n) = p(x)
7 Datakompression fö 5 p.7 Kodord Kodordet för ett intervall är den kortaste bitsekvens b 1 b 2...b k sådan att det binära talet 0.b 1 b 2...b k ligger i intervallet och att även alla andra tal som börjar med samma k bitar också ligger i intervallet. Givet ett binärt tal a i intervallet [0, 1) med k bitar 0.b 1 b 2...b k. Alla tal vars k första bitar är samma som för a ligger i intervallet [a, a + 1 ). 2 k Ett nödvändigt villlkor för att hela detta intervall ska ligga inom intervallet som hör till symbolsekvensen, är att det är mindre än eller lika stort som symbolsekvensintervallet, dvs p(x) 1 2 k k log p(x) Vi kan inte vara säkra på att det verkligen räcker med log p(x) bitar, eftersom vi inte kan placera ut dessa intervall på godtyckliga platser. Däremot kan man inse att det maximalt krävs en bit extra om man har otur. Kodordslängden l(x) för en sekvens x ges alltså av l(x) = log p(x) eller l(x) = log p(x) +1
8 Datakompression fö 5 p.8 Kodordsmedellängd l = p(x) l(x) x x x p(x) ( log p(x) +1) p(x) ( log p(x)+2)= x p(x) log p(x)+2 p(x) = H(X 1 X 2...X n )+2 Och den resulterande datatakten begränsas alltså uppåt av x R 1 n H(X 1X 2...X n )+ 2 n Detta är visserligen lite sämre än man skulle få med en utvidgad huffmankod, men huffmankoder är inte praktiskt användbara för stora n. Komplexiteten för en aritmetisk kod är å andra sidan oberoende av hur många symboler n som man kodar i taget.
9 Datakompression fö 5 p.9 Praktiska problem Vi har begränsad precision och kan inte lagra intervallgränser och sannolikheter med godtycklig noggrannhet. Vi vill kunna börja skicka bitar utan att vänta på att hela sekvensen med n symboler kodats. En lösning är att skicka bitar så snart vi är säkra på dem och att när detta görs skala om intervallet, så att vi maximalt utnyttjar den tillgängliga precisionen. Om den första biten i både den lägre och den övre gränsen är den samma måste även den biten i kodordet vara densamma. Då kan man skicka den biten och därefter skifta gränserna en bit, dvs skala om intervallstorleken med en faktor 2.
10 Datakompression fö 5 p.10 Fixpunktsaritmetik Aritmetisk kodning implementeras oftast med fixpunktsaritmetik. Antag att intervallgränserna l (n) och u (n) lagras som heltal med m bitars noggrannhet och att fördelningsfunktionen F (i) lagras som heltal med k bitars noggrannhet. Algoritmen kan då modifieras till l (n) = l (n 1) + (u(n 1) l (n 1) +1)F (x n 1) 2 k u (n) = l (n 1) + (u(n 1) l (n 1) +1)F (x n ) 2 k 1 Startvärden blir l (0) =0och u (0) =2 m 1.
11 Datakompression fö 5 p.11 Intervallskalning Fallen när vi ska göra intervallskalning blir: 1. Intervallet ligger helt inom [0, 2 m 1 1], dvs den mest signifikanta biten i både l (n) och u (n) är 0. Skifta ut mest signifikant bit ur l (n) och u (n) och skicka den. Skifta in 0 i l (n) och 1 i u (n). 2. Intervallet ligger helt inom [2 m 1, 2 m 1], dvs den mest signifikanta biten i både l (n) och u (n) är 1. Samma operationer som i fall 1. När vi har kodat våra n symboler avslutas kodordet genom att vi skickar alla m bitar i l (n). Koden kan visserligen bli en prefixkod även med färre bitar, men implementationen av avkodaren blir enklare om hela l skickas. För stora n blir de extra bitarna försumbara, dessutom måste man förmodligen ända packa bitarna i ett jämnt antal bytes.
12 Datakompression fö 5 p.12 Mer problem Tyvärr kan vi i vår algoritm hamna i problem, om den första biten i l hela tiden är 0 och den första biten i u är 1. I värsta fall hamnar vi i situationen att l = och u = Då kommer vår algoritm inte att fungera. Lyckligtvis kan vi komma runt detta problem. Om de två första bitarna i l blir 01 och de två första i u blir 10, kan vi göra ett bitskift, utan att skicka några bitar i kodordet. När sen de första bitarna i l och u blir detsamma kan vi förutom den biten även skicka en extra, inverterad bit, dvs vi är då säkra på om kodordet ska ha 01 eller 10.
13 Datakompression fö 5 p.13 Intervallskalning Vi får nu tre fall 1. Intervallet ligger helt inom [0, 2 m 1 1], dvs den mest signifikanta biten i både l (n) och u (n) är 0. Skifta ut mest signifikant bit ur l (n) och u (n) och skicka den. Skifta in 0 i l (n) och 1 i u (n). 2. Intervallet ligger helt inom [2 m 1, 2 m 1], dvs den mest signifikanta biten i både l (n) och u (n) är 1. Samma operationer som i fall Vi har inte fall 1 eller 2, men intervallet ligger helt inom [2 m 2, 2 m 1 +2 m 2 1], dvs de två mest signifikanta bitarna är 01 i l (n) och 10 i u (n). Skifta ut mest signifikant bit ur l (n) och u (n). Skifta in 0 i l (n) och 1 i u (n). Invertera de nya mest signifikanta bitarna i l (n) och u (n). Skicka inga bitar, men håll reda på hur många gånger vi gör omskalningar av den här typen. Nästa gång vi gör en omskalning av typen 1, skicka lika många 1:or extra som antalet omskalningar av typ 3. På samma sätt, nästa gång vi gör en omskalning av typ 2 så skickas lika många extra 0:or som antalet omskalningar av typ 3.
14 Datakompression fö 5 p.14 Krav på precisionen Vi måste använda en datatyp med minst m + k bitar för att få plats med delresultaten i beräkningarna. Vi ser också att det minsta intervall vi kan ha utan att någon omskalning görs har storleken 2 m 2 +1, vilket till exempel händer när l (n) =2 m 2 1 och u (n) =2 m 1. För att algoritmen ska fungera får aldrig u (n) bli mindre än l (n) (samma värde är tillåtet, när man skiftar ut bitar skiftas ju nollor in i l ochettoriniu). För att detta ska gälla måste alltså alla intervall i fördelningsfunktionen uppfylla (med en lätt överskattning) F (i) F (i 1) 2 k m+2 ; i =1,...,L Till exempel så måste m k +2om vi har något intervall av storlek 1.
15 Datakompression fö 5 p.15 Avkodning Starta avkodaren i samma tillstånd (dvs l =0och u =2 m 1) som kodaren. Inför t som de m första bitarna i bitströmmen (kodordet). I varje steg räknar vi ut talet (t l +1) 2k 1 u l +1 Jämför detta tal med F för att se vilket intervall detta motsvarar. Detta ger en avkodad symbol. Uppdatera l och u på samma sätt som i kodaren. Vi gör eventuellt ett antal skift (omskalningar). Varje gång vi skalar om l och u ska vi även uppdatera t på samma sätt (skifta ut den mest signifikanta biten, skifta in en ny bit från kodströmmen som minst signifikant bit samt, om det är en om skalning av typ 3, invertera den nya mest signifikanta biten.) Repetera tills hela sekvensen är avkodad. Observera att kodaren kan behöva skicka antalet symboler som sidoinformation, så att avkodaren vet när den ska sluta avkoda. Alternativt kan man införa en extra symbol i sitt alfabet, med lägsta möjliga sannolikhet, som används för att markera när sekvensen tar slut.
Aritmetisk kodning. F (0) = 0 Exempel: A = {1, 2, 3} k=1. Källkodning fö 5 p.1/12
Aritmetisk kodning Vi identifierar varje sekvens av källsymboler med ett tal i intervallet [0, 1). Vi gör det med hjälp av fördelningsfunktionen (cumulative distribution function) F. För enkelhets skull
Läs merKällkodning. Egenskaper hos koder. Några exempel
Källkodning Källkodning innebär att vi avbildar sekvenser av symboler ur en källas alfabet på binära sekvenser (kallade kodord). Mängden av alla kodord kalls för en kod. (Man kan förstås tänka sig att
Läs merOptimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.
Datakompression fö 3 p.3 Datakompression fö 3 p.4 Optimala koder Övre gräns för optimala koder En prefixkod kallas optimal om det inte existerar någon annan kod (för samma alfabet och sannolikhetsfördelning)
Läs merOptimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.
Datakompression fö 3 p.1 Optimala koder En prefixkod kallas optimal om det inte existerar någon annan kod (för samma alfabet och sannolikhetsfördelning) som har lägre kodordsmedellängd. Det existerar förstås
Läs merAdaptiv aritmetisk kodning
Datakompression fö 8 p.1 Adaptiv aritmetisk kodning Aritmetisk kodning är väldigt enkel att göra adaptiv, eftersom vi bara behöver göra en adaptiv sannolikhetsmodell, medan själva kodaren är fix. Till
Läs merKrafts olikhet. En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om. 2 l i. 1 i=1
Datakompression fö 2 p.1 Krafts olikhet En momentant avkodbar kod (prefixkod) med kodordslängderna l 1,...,l N existerar om och endast om N 2 l i 1 Bevis: Antag att vi har en trädkod. Låt l max =max{l
Läs merTSBK04 Datakompression. Övningsuppgifter
TSBK04 Datakompression Övningsuppgifter Innehåll 1 Informationsteoretiska begrepp........................ 1 2 Källkodning................................... 4 Copyright c 2004 Bildkodningsgruppen, Linköpings
Läs merTSBK04 Datakompression Övningsuppgifter
TSBK04 Datakompression Övningsuppgifter Innehåll 1 Informationsteoretiska begrepp........................ 1 2 Källkodning................................... 4 Copyright c 2004 Bildkodningsgruppen, Linköpings
Läs merSkurlängdskodning. aaaabbbbbbbccbbbbaaaa. Man beskriver alltså sekvensen med ett annat alfabet än det ursprungliga.
Datakompression fö 4 p1 Skurlängdskodning Ibland har man källor som producerar långa delsekvenser av samma symbol Det kan då vara praktiskt att istället för att beskriva sekvensen som en följd av enstaka
Läs merOrdbokskodning. Enkel variant av kodning med variabelt antal insymboler och fixlängds kodord. (Jfr tunstallkodning)
Datakompression fö 6 p.1 Ordbokskodning Enkel variant av kodning med variabelt antal insymboler och fixlängds kodord. (Jfr tunstallkodning) Man skapar en ordbok som innehåller 2 b olika sekvenser av symboler
Läs merExempel, minnesfri binär källa. Ordbokskodning. Lempel-Zivkodning. Lempel-Zivkodning, forts.
Datakompression fö 6 p.3 Datakompression fö 6 p.4 Ordbokskodning Exempel, minnesfri binär källa Enkel variant av kodning med variabelt antal insymboler och fixlängds kodord. (Jfr tunstallkodning) Man skapar
Läs merKompression av ljud och bild
Kompression av ljud och bild Harald Nautsch harna@isy.liu.se ISY Informationskodning, Linköpings universitet http://www.icg.isy.liu.se/courses/tsbk35/ Kurslitteratur Rekommenderad bok: Khalid Sayood, Introduction
Läs merKurslitteratur. Kompression av ljud och bild. Föreläsningar, preliminärt program. Laborationer
TSBK35 källkodning p.3/89 TSBK35 källkodning p.4/89 Kurslitteratur Kompression av ljud och bild Harald Nautsch harna@isy.liu.se http://www.icg.isy.liu.se/courses/tsbk35/ ISY Informationskodning, Linköpings
Läs merFLAC (Free Lossless Audio Coding)
Datakompression fö 9 p.1 FLAC (Free Lossless Audio Coding) Distorsionsfri kodning av ljud Ljudsignalen delas in i block (typiskt några tusen sampel). Koda summa/skillnad av de två stereokanalerna om det
Läs merDatakompression. Harald Nautsch ISY Bildkodning, Linköpings universitet.
Datakompression fö 1 p.1 Datakompression Harald Nautsch harna@isy.liu.se http://www.icg.isy.liu.se/courses/tsbk04/ ISY Bildkodning, Linköpings universitet Datakompression fö 1 p.2 Kursinnehåll Källmodellering:
Läs merKursinnehåll. Datakompression. Föreläsningar, preliminärt program. Examination
Datakompression fö 1 p.3 Datakompression fö 1 p.4 Kursinnehåll Datakompression Harald Nautsch harna@isy.liu.se http://www.icg.isy.liu.se/courses/tsbk04/ ISY Bildkodning, Linköpings universitet Källmodellering:
Läs merDigital- och datorteknik
Digital- och datorteknik Föreläsning #7 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Aritmetik i digitala system Speciella egenskaper: Systemet
Läs merDigital- och datorteknik
Digital- och datorteknik Föreläsning #7 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Speciella egenskaper: Systemet arbetar med kodord (s k
Läs merBurrows-Wheelers transform
Datakompression fö 7 p.1 Burrows-Wheelers transform Transformen själv ger ingen kompression, men gör det lättare att koda signalen med en enkel kodare. Antag att vi vill koda en sekvens av längd n. Skapa
Läs merTrä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 merProv 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 merDigital- och datorteknik
Digital- och datorteknik Föreläsning #2 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Talomvandling Principer för omvandling mellan olika talsystem:
Läs merKurslitteratur. Kompression av ljud och bild. Föreläsningar, preliminärt program. Laborationer. Khalid Sayood, Introduction to Data Compression
TSBK35 fö 1 p.3 TSBK35 fö 1 p.4 Kurslitteratur Kompression av ljud och bild Harald Nautsch harna@isy.liu.se http://www.icg.isy.liu.se/courses/tsbk35/ ISY Bildkodning, Linköpings universitet Khalid Sayood,
Läs merFöreläsning 7. Felrättande koder
Föreläsning 7 Felrättande koder Antag att vi vill skicka ett meddelande som består av bokstäver a,b,c,d. Vi kan koda a,b,c,d. Antag att det finns en viss sannolikhet att en bit i ett meddelande som skickas
Läs merEn generell prediktiv kodare utnyttjar signalens utseende N steg tillbaka i tiden för kodningen, dvs vi kodar efter den betingade fördelningen
Prediktiv kodning Närliggande sampel i en signal är oftast starkt korrelerade med varandra, det kan därför vara en bra ide att försöka utnyttja denna korrelation (minnet) innan kvantiseringen för att få
Läs merDIGITALA TAL OCH BOOLESK ALGEBRA
DIGITALA TAL OCH BOOLESK ALGEBRA Innehåll Talsystem och koder Aritmetik för inära tal Grundläggande logiska operationer Logiska grindar Definitioner i Boolesk algera Räknelagar BINÄRA TALSYSTEMET Binärt
Läs merLinjär prediktion. Prediktiv kodning. Linjär prediktion. Prediktiv kodare och avkodare
Prediktiv kodning Linjär prediktion Närliggande sampel i en signal är oftast starkt korrelerade med varandra, det kan därför vara en bra ide att försöka utnyttja denna korrelation (minnet) innan kvantiseringen
Läs merLAB 1. FELANALYS. 1 Inledning. 2 Flyttal. 1.1 Innehåll. 2.1 Avrundningsenheten, µ, och maskinepsilon, ε M
TANA21+22/ 5 juli 2016 LAB 1. FELANALYS 1 Inledning I laborationerna används matrishanteringsprogrammet MATLAB. som genomgående använder dubbel precision vid beräkningarna. 1.1 Innehåll Du ska 1. bestämma
Läs merUpplä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 merProv 1 2. Ellips 12 Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad 20.5.2010. a) i) Nollställen för polynomet 2x 2 3x 1:
Ellips Numeriska och algebraiska metoder lösningar till övningsproven uppdaterad.. Prov a) i) ii) iii) =,, = st 9,876 =,9876,99 = 9,9,66,66 =,7 =,7 Anmärkning. Nollor i början av decimaltal har ingen betydelse
Läs merDIGITAL KOMMUNIKATION
EN KOR SAMMANFANING AV EORIN INOM DIGIAL KOMMUNIKAION Linjär kod En binär linjär kod kännetecknas av att summan av två kodord också är ett kodord. Ett specialfall är summan av ett kodord med sig själv
Läs merBisektionsalgoritmen. Kapitel Kvadratroten ur 2
Kapitel 4 Bisektionsalgoritmen Vi ska konstruera lösningar till algebraiska ekvationer av formen f(x) = 0 med hjälp av bisektionsalgoritmen (intervallhalveringsmetoden). På samma gång ska vi se hur man
Läs merTSBK35 Kompression av ljud och bild
TSBK35 Kompression av ljud och bild Övningshäfte 0 februari 013 Innehåll I Problem 1 1 Informationsteori................................ 1 Källkodning................................... 3 3 Kvantisering...................................
Läs merDigital- och datorteknik
Digital- och datorteknik Föreläsning #24 Biträdande professor Jan Jonsson Institutionen för data- och informationsteknik Chalmers tekniska högskola Allmänt Behovet av processorinstruktioner för multiplikation
Läs merInstruktioner - Datortentamen TDDE24 och TDDD73 Funktionell och imperativ programmering (i Python)
Instruktioner - Datortentamen TDDE24 och 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
Läs merAnmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Läs merMaterial till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning
Matematik, KTH Bengt Ek november 207 Material till kursen SF679, Diskret matematik: Lite om kedjebråk 0 Inledning Talet π (kvoten mellan en cirkels omkrets och dess diameter) är inte ett rationellt tal
Läs merf (a) sin
Hur kan datorn eller räknedosan känna till värdet hos till exempel sin0.23 eller e 2.4? Denna fråga är berättigad samtidigt som ingen tror att apparaterna innehåller en gigantisk tabell. Svaret på frågan
Läs merLösningsförslag till övningsuppgifter, del V
Lösningsförslag till övningsuppgifter, del V Obs! Preliminär version! Ö.1. (a) Vi kan lösa uppgiften genom att helt enkelt räkna ut avståndet mellan vart och ett av de ( 7 ) = 1 paren. Först noterar vi
Läs merInformationsteknologi Tom Smedsaas 19 augusti 2016
Informationsteknologi Tom Smedsaas 19 augusti 016 VL-träd Definition Ett VL-träd är ett binärt sökträd där det för varje nod gäller att skillnaden i höjd mellan nodens vänster och höger subträd är högst
Läs merFöreläsning 9 Datastrukturer (DAT037)
Föreläsning Datastrukturer (DAT07) Fredrik Lindblad 27 november 207 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt Se http://wwwcsechalmersse/edu/year/20/course/dat07 Innehåll 2
Läs merIntroduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa
Läs merMer om reella tal och kontinuitet
Kapitel R Mer om reella tal och kontinuitet I detta kapitel formulerar vi ett av de reella talens grundläggande axiom, axiomet om övre gräns, och studerar några konsekvenser av detta. Med dess hjälp kommer
Läs mer1, 2, 3, 4, 5, 6,...
Dagens nyhet handlar om talföljder, ändliga och oändliga. Talföljden 1,, 3, 4, 5, 6,... är det första vi, som barn, lär oss om matematik över huvud taget. Så småningom lär vi oss att denna talföljd inte
Läs merF2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!
F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Von Neumann-arkitekturen Gemensamt minne för programinstruktioner och data. Sekventiell exekvering av instruktionerna.
Läs merLÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664
LÖSNINGSFÖRSLAG TILL TENTAMEN 2 SF1664 Tillämpad envariabelanalys med numeriska metoder för CFATE1 den 1 mars 214 kl 8.-1. 1. Bestäm värdemängden till funktionen f(x) = 2 arctan x + ln (1 + x 2 ), där
Läs merTentamen. TSEA22 Digitalteknik 5 juni, 2015, kl
Tentamen TSEA22 Digitalteknik 5 juni, 2015, kl. 08.00-12.00 Tillåtna hjälpmedel: Inga. Ansvarig lärare: Mattias Krysander Visning av skrivningen sker mellan 10.00-10.30 den 22 juni på Datorteknik. Totalt
Läs merUppgift 1 ( Betyg 3 uppgift )
2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal
Läs merEkvivalensrelationer
Abstrakt datatyp för disjunkta mängder Vi skall presentera en abstrakt datatyp för att representera disjunkta mängder Kan bl.a. användas för att lösa ekvivalensproblemet avgör om två godtyckliga element
Läs merLö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 merF2 Datarepresentation talbaser, dataformat och teckenkodning
F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Jonas Wisbrant Datarepresentation I en dator lagras och behandlas all information i form av binära tal ettor och nollor.
Läs merInnehå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 merDetta ger oss att kanalkapaciteten för den ursprungliga kanalen är C = q 1 C 1 + q 2 C C =1 h ( ) 0.30.
Lösning på problem a) Kanalen är symmetrisk och vi gör nedanstående uppdelning av den. Vi får två starkt symmetriska kanaler vilkas kanalkapacitet ges av C och C 2. Kanalerna väljes med sannolikheterna
Läs merF3 Introduktion Stickprov
Utrotningshotad tandnoting i arktiska vatten Inferens om väntevärde baserat på medelvärde och standardavvikelse Matematik och statistik för biologer, 10 hp Tandnoting är en torskliknande fisk som lever
Läs merTentamen, Algoritmer och datastrukturer
UNDS TEKNISKA ÖGSKOA (6) Institutionen för datavetenskap Tentamen, Algoritmer och datastrukturer 23 8 29, 8. 3. Anvisningar: Denna tentamen består av fem uppgifter. Totalt är skrivningen på 36 poäng och
Läs merFöreläsning 8: Aritmetik och stora heltal
2D1458, Problemlösning och programmering under press Föreläsning 8: Aritmetik och stora heltal Datum: 2006-11-06 Skribent(er): Elias Freider och Ulf Lundström Föreläsare: Per Austrin Den här föreläsningen
Läs merKodning med distorsion
Kodning med distorsion Vi har en signal x n, n = 1... N som ska kodas. Alfabetet är en delmängd av de reella talen A R. Alfabetet kan vara kontinuerligt. Om vi inte har kravet att den avkodade signalen
Läs merDatorsystemteknik DVG A03 Föreläsning 3
Datorsystemteknik DVG A03 Föreläsning 3 Datoraritmetik Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec Novak IT-inst LTH Hur stora tal kan vi få med N bitar? Största
Läs merF3 Datarepresentation teckenkodning och datakompression EDAA05 Datorer i system! Roger Henriksson!
Teckenkodning historik F3 Datarepresentation teckenkodning och datakompression EDAA05 Roger Henriksson Baudotkod 5-bitars kod för fjärrskrivare (teletype tty). Baudot 1874, Murray 1901 2 EBCDIC ASCII Extended
Läs merF3 Datarepresentation teckenkodning och datakompression
Teckenkodning historik F3 Datarepresentation teckenkodning och datakompression Baudotkod 5-bitars kod för fjärrskrivare (teletype tty). EDAA05 Roger Henriksson Jonas Wisbrant Baudot 1874, Murray 1901 2
Läs merKontinuitet och gränsvärden
Kapitel Kontinuitet och gränsvärden.1 Introduktion till kontinuerliga funktioner Kapitlet börjar med allmänna definitioner. Därefter utvidgar vi successivt familjen av kontinuerliga funktioner, genom specifika
Läs merGiriga algoritmer och dynamisk programmering
Föreläsning 1 Giriga algoritmer och dynamisk programmering Douglas Wikström KTH Stockholm popup-help@csc.kth.se Dagens citat Using the wrong algorithm to solve a problem is like trying to cut a steak with
Läs merKontinuerliga funktioner. Ytterligare en ekvivalent formulering av supremumaxiomet
Kontinuerliga funktioner. Ytterligare en ekvivalent formulering av supremumaxiomet är följande: SATS. (Intervallinkapslingssatsen) Låt I k = [a k, b k ], k = 1, 2,... vara en avtagande följd av slutna
Läs merLinköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram
Mål Lab 2: Underprogram Följande laboration introducerar underprogram; procedurer, funktioner och operatorer. I denna laboration kommer du att lära dig: Hur man skriver underprogram och hur dessa anropas.
Läs mer2 Dataanalys och beskrivande statistik
2 Dataanalys och beskrivande statistik Vad är data, och vad är statistik? Data är en samling fakta ur vilken man kan erhålla information. Statistik är vetenskapen (vissa skulle kalla det konst) om att
Läs merDigitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.
Analog Digitalitet Kontinuerlig Direkt proportionerlig mot källan Ex. sprittermometer Elektrisk signal som representerar ljud Diskret Digital Representation som siffror/symboler Ex. CD-skiva Varje siffra
Läs merTDDI16: Datastrukturer och algoritmer
. TDDI16: Datastrukturer och algoritmer Lab 2: Knäcka lösenord Höstterminen 2018 2018-06-27 1 Upplägg Första delen av instruktionen, avsnitt 2 till 7, innehåller en fullständig beskrivning av problemet
Läs merAdderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45
Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45 Adderare Addition av två tal innebär att samma förfarande upprepas för varje position i talet. För varje position sakapas en summasiffra och en minnessiffra.
Läs merMMA132: Laboration 2 Matriser i MATLAB
MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen
Läs merKonvergens för iterativa metoder
Konvergens för iterativa metoder 1 Terminologi Iterativa metoder används för att lösa olinjära (och ibland linjära) ekvationssystem numeriskt. De utgår från en startgissning x 0 och ger sedan en följd
Läs merSökning och sortering
Sökning och sortering Programmering för språkteknologer 2 Sara Stymne 2013-09-16 Idag Sökning Analys av algoritmer komplexitet Sortering Vad är sökning? Sökning innebär att hitta ett värde i en samling
Läs merInnehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd
Innehåll Föreläsning 12 Sökträd Sökning Sökning och Sökträd 383 384 Binärt sökträd Används för sökning i linjära samlingar av dataobjekt, specifikt för att konstruera tabeller och lexikon. Organisation:
Läs merDAB760: Språk och logik
DAB76: Språk och logik /4: Finita automater och -7 reguljära uttryck Leif Grönqvist (leif.gronqvist@msi.vxu.se) Växjö Universitet (MSI) GSLT (Sveriges nationella forskarskola i språkteknologi) Göteborg
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 10 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 10 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Lägre gräns för sortering Count sort,
Läs merTDDC74 Programmering, abstraktion och modellering. Tentamen
AID-nummer: Datum: 2011-01-11 1 Tekniska högskolan vid Linköpings universitet Institutionen för datavetenskap Anders Haraldsson TDDC74 Programmering, abstraktion och modellering Tentamen Tisdag 11 januari
Läs mer1 Positivt definita och positivt semidefinita matriser
Krister Svanberg, april 1 1 Positivt definita och positivt semidefinita matriser Inom ickelinjär optimering, speciellt kvadratisk optimering, är det viktigt att på ett effektivt sätt kunna avgöra huruvida
Läs merTentamen i Beräkningsvetenskap I och KF, 5.0 hp,
Uppsala universitet Institutionen för informationsteknologi Avdelningen för beräkningsvetenskap Tentamen i Beräkningsvetenskap I och KF, 5.0 hp, 017-0-14 Skrivtid: 14 00 17 00 (OBS! Tre timmars skrivtid!)
Läs merFöreläsninsanteckningar till föreläsning 3: Entropi
Föreläsninsanteckningar till föreläsning 3: Entropi Johan Håstad, transkriberat av Pehr Söderman 2006-01-20 1 Entropi Entropi är, inom kryptografin, ett mått på informationsinnehållet i en slumpvariabel.
Läs merCE_O3. Nios II. Inför lab nios2time
IS1200 Exempelsamling till övning CE_O3, 2015 CE_O3. Nios II. Inför lab nios2time 3.1. Logiska operationer (se uppgift 1.2 c) Repetera (eller lär dig) innebörden av de logiska operationerna "bitvis AND",
Läs merSökning. Översikt. Binärt sökträd. Linjär sökning. Binär sökning. Sorterad array. Linjär sökning. Binär sökning Hashtabeller
Översikt Linjär sökning Sökning Binär sökning Hashtabeller Programmering tillämpningar och datastrukturer 2 Linjär sökning Binärt sökträd Undersök ett element i taget tills du hittar det sökta Komplexitet
Läs merRekursiva algoritmer sortering sökning mönstermatchning
Anders Haraldsson 1 Anders Haraldsson 2 Dagens föreläsning Programmering i Lisp Fö 6-7 Rekursiva strukturer rekursiva definitioner rekursiva funktioner rekursiva bevis: induktion - rekursion strukturell
Läs merTentamen i TDDC75 Diskreta strukturer , lösningsförslag
Tentamen i TDDC75 Diskreta strukturer 2018-10-23, lösningsförslag 1 1. (a) Sanningstabell för uttrycken p q r p q p r r q r p q 0 0 0 1 0 1 1 1 0 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 0 1
Läs merBetingning och LOTS/LOTV
Betingning och LOTS/LOTV Johan Thim (johan.thim@liu.se 4 december 018 Det uppstod lite problem kring ett par uppgifter som hanterade betingning. Jag tror problemen är av lite olika karaktär, men det jag
Läs merALA-a Innehåll RÄKNEÖVNING VECKA 7. 1 Lite teori Kapitel Kapitel Kapitel Kapitel 14...
ALA-a 2005 Innehåll 1 Lite teori 3 RÄKNEÖVNING VECKA 7 1.1 Kapitel 7....................................... 3 1.2 Kapitel 12....................................... 3 1.3 Kapitel 13.......................................
Läs merSF1901: SANNOLIKHETSTEORI OCH KONTINUERLIGA STOKASTISKA VARIABLER STATISTIK. Tatjana Pavlenko. 7 september 2016
SF1901: SANNOLIKHETSTEORI OCH STATISTIK FÖRELÄSNING 4 KONTINUERLIGA STOKASTISKA VARIABLER Tatjana Pavlenko 7 september 2016 PLAN FÖR DAGENS FÖRELÄSNING Repetition av diskreta stokastiska variabler. Väntevärde
Läs merAdderare. Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45
Digitalteknik 7.5 hp distans: 4.6 Adderare 4.45 Adderare Addition av två tal innebär att samma förfarande upprepas för varje position i talet. För varje position sakapas en summasiffra oh en minnessiffra.
Läs mer4.2.1 Binomialfördelning
Ex. Kasta en tärning. 1. Vad är sannolikheten att få en 6:a? 2. Vad är sannolikheten att inte få en 6:a? 3. Vad är sannolikheten att få en 5:a eller 6:a? 4. Om vi kastar två gånger, vad är då sannolikheten
Läs merInformationsteori. Repetition Kanalkapaciteten C. Repetition Källkodhastigheten R 2. Repetition Kanalkodhastigheten R 1. Huffmans algoritm: D-när kod
Informationsteori Repetition Kanalkapaciteten C Källkodare Kanalkodare X Kanal Mats Cedervall Mottagare vkodare Kanalavkodare Y Kanalkodningssatsen C =supi(x; Y ) p(x) Informationsteori, fl#7 1 Informationsteori,
Läs merif (n==null) { return null; } else { return new Node(n.data, copy(n.next));
Inledning I bilagor finns ett antal mer eller mindre ofullständiga klasser. Klassen List innehåller några grundläggande komponenter för att skapa och hantera enkellänkade listor av heltal. Listorna hålls
Läs merTal i bråkform. Kapitlet behandlar. Att förstå tal
Tal i bråkform Kapitlet behandlar Test Användning av hälften och fjärdedel 2 Representation i bråkform av del av antal och av del av helhet 3, Bråkform i vardagssituationer Stambråk, bråkuttryck med 1
Läs merFöreläsning 13. Dynamisk programmering
Föreläsning 13 Dynamisk programmering Föreläsning 13 Dynamisk programmering Fibonacci Myntväxling Floyd-Warshall Kappsäck Handelsresandeproblemet Uppgifter Dynamisk programmering Dynamisk programmering
Läs merkl 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 merFinns det över huvud taget anledning att förvänta sig något speciellt? Finns det en generell fördelning som beskriver en mätning?
När vi nu lärt oss olika sätt att karaktärisera en fördelning av mätvärden, kan vi börja fundera över vad vi förväntar oss t ex för fördelningen av mätdata när vi mätte längden av en parkeringsficka. Finns
Läs merInstruktioner - 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 merFö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 merLösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl
Matematiska Institutionen KTH Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL och Media, SF60 och 5B8, onsdagen den 7 augusti 0, kl 4.00-9.00. Examinator: Olof Heden Hjälpmedel: Inga
Läs merTentamen Datastrukturer, DAT037 (DAT036)
Tentamen Datastrukturer, DAT037 (DAT036) Datum, tid och plats för tentamen: 2017-08-17, 8:30 12:30, M. Ansvarig: Fredrik Lindblad. Nås på tel nr. 031-772 2038. Besöker tentamenssalarna ca 9:30 och ca 11:00.
Läs merModul 4 Tillämpningar av derivata
Institutionen för Matematik SF1625 Envariabelanalys Läsåret 2015/2016 Modul 4 Tillämpningar av derivata Denna modul omfattar kapitel 4 i kursboken Calculus av Adams och Essex och undervisas på tre föreläsningar,
Läs merInstruktioner - 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