En kedja av koder. Isak Lyckberg Peder Skrivares skola, Varberg. 23 april 2009

Storlek: px
Starta visningen från sidan:

Download "En kedja av koder. Isak Lyckberg Peder Skrivares skola, Varberg. 23 april 2009"

Transkript

1 En kedja av koder Isak Lyckberg Peder Skrivares skola, Varberg 23 april 2009 Sammanfattning I detta projektarbete undersöks en egenskap hos strängar av tecken, som är viktig för att analysera säkerheten hos vissa typer av kodlås, nämligen möjligheten att väva in dem i varandra. Att två teckensträngar vävs in i varandra betyder att de skrivs ihop till en ny teckensträng av samma eller större längd och 3456 kan t.ex. skrivas ihop till , där de båda ursprungliga teckensträngarna åternns. I arbetet formuleras en matematisk teori kring att väva in de koder som åternns hos vissa typer av kodlås, och utifrån mina resultat analyserar säkerheten mellan olika kodlåstyper. 1

2 Innehåll 1 Introduktion Bakgrund Notation och denition Förmodan Problemformulering Syfte Frågeställningar Mål Teori Teori och problemlösning Introduktion till grafteori Hamiltonvägar och Eulercykler, att vandra i en graf Riktade och oriktade grafer Bevis Grafteoretiskt bevis Exempel och kommentarer till beviset Algoritm och beräkningar Grafteoretisk algoritm Andra beräkningar Tillämpningar Matematiska tillämpningar Tillämpningar på kodlås Säkerhetsjämförelse av kodlås Resultat Beviset Algoritmer Säkerhet Svar på frågeställningarna Diskussion Generellt Bevismetod Algoritm Slutsatser 11 9 Referenser och källor 12 A Ytterligare exempel 12 2

3 1 Introduktion 1.1 Bakgrund Kodteori är ett matematiskt område det forskas febrilt inom. Vanligtvis rör det sig om data vilken ska krypteras eller dekrypteras för militära ändamål, eller data som ska sändas på säkrast sätt över internet. Ett något mer trivialt exempel på koder är de kodlås vi har utanför våra trappuppgångar eller arbetsplatser. Dock forskas det mycket lite kring dessa kodlås, något detta projektarbete råder bot på. Detta projekt går ut på att analysera och jämföra säkerheten hos i huvudsak två olika sorters kodlås. Den första, kallat LmAK-lås 1 och det andra kallas LuAK 2. Skillnaden mellan låsen är följande: För att ett LmAK-lås ska öppna själva låset krävs att koden avslutas av ett tryck på en speciell avslutningsknapp, vanligtvis fyrkant eller stjärna, som säger: Kontrollera om de sista knapptryckningarna var rätt kod. Ett LuAK-lås öppnas så fort som den rätta koden är slagen, utan ett tryck på någon avslutningsknapp. Det må tyckas att skillnaden mellan låstyperna är liten men en svaghet i säkerheten hos LuAK-lås, den typ som inte behöver en knapptryckning på någon avslutningsknapp, skapar en väldigt intressant frågeställning: Anta att ett LmAK-lås med * (stjärna) som avslutningsknapp har en kod som är fyra tecken lång och att de tillåtna tecknen är 0 till 9. För att på så få knapptryckningar som möjligt testa alla koder och därmed garanterat knäcka låset ska följande sträng knapptryckningar tryckas in: 0000*0001*0002* * Detta betyder att det krävs fem knapptryckningar för att testa en kod och knapptryckningar för att testa alla koder, då det nns olika koder. På ett LuAK-lås med motsvarande egenskaper som LmAK-låset ovan kan er koder testas snabbare, om koderna vävs in i varandra. Till exempel ger knapptryckningarna (tio knapptryckningar) koderna 0123, 1234, 2345, 3456, 4567, 5678, 6789 (sju koder). Sju koder testas på tio knapptryckningar, det vill säga mycket snabbare än i LmAK-låset. På hur få knapptryckningar kan egentligen alla möjliga koder testas? I avsnitten nedan beskrivs denna frågeställning på ett matematiskt sätt. 1.2 Notation och denition Givet är: En kod är en sekvens av tecken med en bestämd längd som är uppbyggd av ett bestämt antal olika tecken. En sträng är en sekvens av tecken som är uppbyggd av ett givet antal olika tecken, utan bestämd längd. t = antal olika tecken koden kan vara uppbygd av l = kodens längd L = längden av den kortaste strängen vari alla olika koder åternns t l = antalet olika koder med längden l som är uppbygda av t olika tecken 1.3 Förmodan För LuAK-lås gäller: L = t l + l 1 Förmodan innebär att efter de l 1 första knapparna tryckts in så kommer varje ny knapptryckning ge en ny kod, givet att man trycker in knapparna i optimal ordning. Att de l 1 första knapparna inte ger någon kod är uppenbart, då det behövs minst l knapptryckningar för att få en kod. 1 Lås med AvslutningsKnapp, uttalas Ell-mack-lås 2 Lås utan AvslutnngsKnapp, uttalas Lu-ack-lås 3

4 1.4 Problemformulering Bevisa att förmodan stämmer, eller motbevisa den. Beskriv även en algoritm för att nna den kortaste strängen vari alla t l olika koder åternns. 1.5 Syfte Projektets syfte är att matematiskt undersöka vilka egenskaper koder har när det gäller att väva in dem i varandra. Detta för att kunna jämföra säkerheten mellan olika typer av kodlås. 1.6 Frågeställningar Primära frågeställningar: Stämmer förmodan? Om inte: Hur lång blir den kortaste sträng vari alla t l åternns? Vad nns det för skillnad i säkerhet mellan LmAK-lås och LuAK-lås? olika koder Sekundära frågeställningar: Hur kan en algoritm utformas för att ge denna kortaste sträng? 1.7 Mål Målet med projektet är att presentera ett stringent bevis för förmodan, samt att besvara övriga frågeställningar på ett tillfredställande sätt. 2 Teori 2.1 Teori och problemlösning För att angripa detta problem nns olika möjligheter. Det går att försöka resonera sig fram till en hållbar teori, eller kanske försöka beksriva problemet algebraiskt. Ett annat alternativ skulle vara att hitta en algoritm för att få fram den kortaste strängen innehållandes alla olika koder, och sedan formulera ett bevis utifrån denna algoritm. I detta projektarbete väljs dock att visualisera problemet, och detta sker genom att formulera om det hela till ett grafteoretiskt problem. Innan detaljerna i omformuleringen presenteras är det på sin plats för en liten introduktion till grafteori. 2.2 Introduktion till grafteori En graf är ett nätverk av kanter och noder, det vill säga linjer som sitter ihop med varandra med hjälp av punkter. Varje kant har sin början och slut i en nod, och varje nod kan vara ändpunkt på era kanter. På detta sätt är kanterna sammanbundna i noderna. Varje graf G kan beksrivas med ett talpar G = (V, E), där V är en mängd noder, och E är en mängd kanter 3. Detta säger ingenting om hur grafen är uppbyggd eller om vilka noder som binder ihop vilka kanter, men denna beskrivning är ändå en bra formell grund att stå på. En egenskap som alla grafer har är att varje kant e a kommer nnas bland produktmängden V 2. V 2 är mängden kanter som uppstår om kanter dras mellan alla olika noder på alla olika sätt 4. Alltså 5 : E V 2 För att vidare beskriva en graf kan varje kant beskrivas som ett par av noder. Detta gör att följande beskrivning för grafen i gur 1 är komplett och entydig: 3 V kommer av engelskans ord för nod: vertex (plural vertices). E kommer av engelskans ord för kant: edge (plural edges). 4 Produktmängden V 2 är alltså mängden av alla tänkbara kanter. Matematiskt skrivs V 2 som följande: V 2 = {(e a,b ) a, b V } 5 betyder att objektet/objekten till vänster av symbolen är en del av mängden till höger om symbolen 4

5 Figur 1: En graf V = {1, 2, 3, 4, 5, 6} E = {{1, 2}, {1, 4}, {2, 3}, {2, 4}, {3, 3}, {3, 4}, {3, 5}} Två noder v x, v y kallas sammanhängande om en tänkt kant e x,y från v x till v y är sådan att e x,y E En egenskap varje nod v a i en graf har är dess grad. En nods grad är antalet kanter som utgår från noden. Till exempel har noden V 1 i gur 1 graden 2 och noden V 3 har graden 4. Noden V 6 har graden 0. Skillnad bör också göras mellan sammanhängande och osammanhängande grafer. Att en graf är sammanhängande innebär att det från varje nod går att kan ta sig till varje annan nod genom att vandra längs kanterna. Grafen i gur 1 är inte sammanhängande, då man inte kan ta sig till nod V 6 från någon annan nod, eller ta sig från nod 6 till någon annan nod. Riktade grafer är osammanhängande om man kan ta sig till en nod men inte från den. Riktade grafer beskrivs vidare i avsnitt En bro i en graf G är en kant som skulle göra G osammanhängande om den togs bort. I gur 2 är e 3,4 en bro, och likaså e 3,5 Figur 2: Graf med bro Hamiltonvägar och Eulercykler, att vandra i en graf De esta problem vilka angrips med hjälp av grafteori är optimeringsproblem. Optimeringsproblem handlar ofta om att beskriva en situation med en graf och sedan ta sig från en plats till en annan i grafen, att vandra i den. Grafvandring innebär att ta sig från en nod i grafen till en annan genom att följa de kanter som nns. En vandring sker alltså från nod till nod längs de kanter som nns i grafen. Att ta sig från nod e x till nod e y genom att följa grafens kanter är att vandra en väg från e x till e y. Om en vandring har samma slutnod som utgångsnod, så har det vandrats en cykel. Om vandringens utgångsnod inte är densamma som dess slutnod har det vandrats en väg. 5

6 För att beskriva en vandring i en graf används en notation vilken växlar mellan noder och kanter, för att en väg är ju just det: en nod till en nod genom en kant. En väg W skrivs då alltså som v 0 e 0,1 v 1 e 1,2... e n 1,n v n Det nns några typer av problem som ofta förekommer i grafteori, och nedan presenteras tre stycken: Eulervägar Att vandra en Eulerväg i en graf innebär att en vandring utförs längs varje kant en och endast en gång. Om samma nod är vandringens utgångs- och slutnod, och varje kant passerats precis en gång, så är vandringen en Eulercykel. I både en Eulerväg och en Eulercykel kan man passera varje nod mer än en gång. Det nns ett villkor för när en Eulerväg/Eulercykel existerar och när den inte gör det. Villkoret är mycket enkelt: Om varje nod i grafen G har en jämn grad existerar en Eulercykel i G. Då kan en cykel vandras med vilken nod som helst som utgångs- och slutnod i cykeln. Om varje nod i grafen G har en jämn grad förutom två vilka har en udda grad existerar en Eulerväg i G. Då är de två noderna med udda grad start- och slutnoder. Här följer ett bevis 6 för att en graf innehåller en Eulercykel om alla noder har en jämn grad: Vi antar att vi har en sammanhängande graf G där varje nod har en jämn grad. Låt W = v 0 e 0,1... e l 1,l v l där W är den längsta vägen man kan vandra i G om man endast får använda varje kant en gång. Eftersom W inte kan förlängas, den är ju den längsta vägen i G som endast använder varje kant en gång, så innehåller W alla kanter ut från v l. Från grundantagandet, att alla noder i G har en jämn grad, vet vi att antalet kanter från v l är jämt. Detta innebär att v 0 = v l, annars skulle v l ha en udda grad, vilket den av antagande inte har. Detta innebär att W är en cykel. Antag nu att W inte är en Eulercykel i G. Detta innebär att det nns minst en kant e utanför W som har en av sina två noder i W. e = uv i där v i nns i W. Om v i inte nns i W så är grafen inte sammanhängande, vilket vi antog att den var. Då skulle vägen W 1 = u e v i e i... e l 1 v 0 e 0... e i 1 v i vara längre än W vilket är en motsägelse eftersom W var den längsta vägen man kunde vandra i G utan att använda samma kant mer än en gång. Därför måste W vara en Eulercykel. I gur 3 nns en Eulerväg: W = v 4 e 4,2 v 2 e 2,1 v 1 e 1,4 v 4 e 4,3 v 3 e 3,3 v 3 e 3,5 v 5 Figur 3: Graf med Eulerväg Hamiltonsk väg Att vandra en Hamiltonsk väg eller cykel innebär att varje nod passeras i vandringen en och endast en gång. Det nns inga klara villkor för när en Hamiltonsk väg existerar, annat än väldigt lösa förutsättningar: Om varje nod i grafen G har en kant som går till varje annan nod är det klart att det nns en Hamiltonsk väg i G. Självfallet kan det fortfarande existera Hamiltonska vägar i en graf även om inte alla noder är förbundna med varandra. För att få fram en Hamiltonsk väg i en graf G får man ofta helt enkelt pröva sig fram. I gur 4 nns en Hamiltonsk väg: 6 Det nns mer än ett bevis för denna egenskap hos en graf. Just detta bevis är hämtat från boken Graph Theory av Reinhard Diestel, s (Referens nr. [2]) 6

7 W = v 4 e 4,5 v 5 e 5,7 v 7 e 7,6 v 6 e 6,1 v 1 e 1,3 v 3 e 3,2 v 2 Figur 4: Graf med Hamiltonsk väg Notera att kanten e 2,1 inte ingår i vandringen. I princip alltid nns det kanter som inte vandras när man vandrar en Hamiltonsk väg eller cykel. Handelsresandeproblemet Handelsresandeproblemet går ut på att beräkna hur en handelsresande kan ta sig till alla de platser den ska på minsta möjliga tid. Ett exempel: En svensk handelsresande ska ta sig till alla svenska städer med mer än invånare på minsta möjliga tid och komma tillbaka till sin hemstad. Detta beskrivs med en graf, där alla städer är noder, och alla möjliga vägar mellan städerna är kanter mellan noderna. På varje kant skriver man vägens längd (alternativt hur lång tid det tar att färdas vägen) och sedan ska man försöka vandra en cykel i grafen och besöka alla noder, samtidigt som cykeln ska ha en så liten sammanlagd längd som möjligt. För detta problem nns ingen enkel eller fullständig lösning, utan endast algoritmer som kan lösa problemet till en viss grad Riktade och oriktade grafer Många olika uppdelningar kan göras mellan grafer, men en av de viktigaste är distinktionen mellan riktade och oriktade grafer. Hittills har vi endast studerat oriktade grafer, det vill säga sådana grafer där man kan vandra längs en kant åt båda håll. En riktad graf däremot har endast enkelriktade kanter. Figur 5: Osammanhängande riktad graf Riktade och oriktade grafer delar många egenskaper, men har en del skillnader. Istället för att tala om en nods grad i en riktad graf, så talar man om en nods ingrad och utgrad. Ingraden är det antal kanter som går in mot noden, och utgraden är antal kanter som går ut från noden. 7

8 Men allt behöver inte bli krångligare med riktade grafer: Villkoret för att en riktad graf ska innehålla en Eulercykel är en smula lättare, även om beviset för det härleds på liknande sätt som för en oriktad graf. Om varje nods ingrad är lika med dess utgrad i en sammanhängande graf G så innehåller G en Eulercykel. En annan sak som bör påpekas är att en riktad graf är osammanhängande om den innehåller en bro. Denna bro gör det omöjligt att vandra från vilken nod som helst till vilken annan nod som helst. Detta till skillnad från oriktade grafer som endast är osammanhängande om det inte nns någon kant alls mellan två delar av grafen. 3 Bevis 3.1 Grafteoretiskt bevis Nu har all teori förklarats som behövs för att bevisa den ställda förmodan: Alla koder ska vävas samman för ett lås som kan ha t olika tecken i sin kod och som har kodlängden l. Först noteras att totala antalet olika koder är t l stycken. De t stycken olika tecknen kallas T 1, T 2... T t Anta att har en graf G existerar, i vilken alla olika l 1 långa kombinationer av de t olika tecknen vilka koden kan bestå placeras av som noder. Detta blir t l 1 olika noder. Från varje nod dras nu t olika riktade kanter på vilka det skrivs T 1, T 2... T t på respektive kant. Varje kant går till den nod vilken heter den teckenkombination som bildas när tecknet längst till vänster i ursprungsnoden tas bort och tecknet som skrivits på kanten läggs till längst till höger. Grafen G som nu beskrivits har t l 1 antal noder och varje nod har nu ingraden t och utgraden t. Om det nu kan visas att det går att vandra en Eulerväg i denna graf så innebär detta att man kan väva in alla koder i varandra. Eftersom villkoret för att en Eulercykel existerar i en riktad graf är att varje nods ingrad är lika med dess utgrad. Alltså går det att vandra en Eulerväg i G, och koderna går då att väva in i varandra. För att få fram den kortaste sträng i vilken alla koder åternns vandras nu en Eulercykel i grafen G. Eftersom en Eulercykel, och inte bara en Eulerväg, som är möjlig spelar det ingen roll vilken nod som är utgångsnoden. Först antecknas de tecken som utgångsnoden kallas. Sedan skrives det tecknet till som står på varje kant när Eulercykeln vandras. När hela Eulercykeln vandrats är den kortaste strängen av tecken som innehåller alla koder bestämd. Längden L av denna sträng är mycket enkel att beräkna. Eftersom startnoden är l 1 tecken lång och det nns t l kanter längs vilka det läggs till ett tecken är L = t l + l 1. Därmed är den ställda förmodan bevisad. 3.2 Exempel och kommentarer till beviset Figur 6: Graf då t = 2 och l = 3 En kortaste sträng som kan bestå av t = 2 antal tecken, 0 och 1, och har längden l = 3, 8

9 kan beräknas ur grafen i gur 6. En av de kortaste strängarna blir då Grafen blir allt mer komplicerad ju större t och l blir: Polynomiskt mer komplicerad då t ökar och exponentiellt mer komplicerad då l ökar, eftersom antalet noder V = t l 1 och antalet kanter E = t l. Ytterligare ett exempel nns i appendix A. 4 Algoritm och beräkningar 4.1 Grafteoretisk algoritm När det gäller att bestämma dessa kortaste strängar, och inte bara visa vilken längd de har, används också grafen som målas upp i beviset. Om en Eulercykel vandras i grafen, där de l 1 tecknen som står på startnoden först antecknas och det tecknet som står på varje kant man passerar sedan skrivs till, så har en av dessa kortaste strängar bestämts. Som tur är nns det en mycket enkel algoritm för att beräkna Eulervägar: Fleurys algoritm 7. Fleurys algoritm består i princip av att vandra godtyckligt i en graf, men undvika att vandra längs en bro om det nns alternativ. Algoritm för att ta fram en kortaste sträng: 1. Måla upp grafen enligt följande algoritm (a) Placera ut alla l 1 olika långa kombinationer, av de t olika tecknen vilka koden kan bestå av, som noder. Detta blir t l 1 olika noder. (b) Dra nu t olika riktade kanter från varje nod på vilka det skrives de t tecknen T 1, T 2... T t på respektive kant. Varje kant ska gå till den nod som heter den teckenkombination vilken bildas när tecknet längst till vänster i utgångsnoden tas bort, och tecknet som skrivits på kanten läggs till längst till höger. 2. Välj startnod och anteckna den. 3. Vandra längs en kant och stryk sedan denna ur grafen. Lägg till den strukna kantens Tecken, T a efter den sträng som redan antecknats. Undvik att vandra längs en bro, det vill säga skapa inte en osammanhängande graf, om det nns alternativ. Upprepa steg 3 tills alla kanter är strukna. 4.2 Andra beräkningar Det går som sagt att utläsa en del intressanta saker om kodlås och dess säkerhet ur grafen som konstrueras. Med hjälp av det så kallade BEST-teoremet kan det beräknas hur många olika cykler det går att göra i grafen, vilket är detsamma som antalet olika optimala strängar som nns 8. Dock kräver BEST-teoremet en stor fördjupning i grafteori och i linjär algebra varför ingen utläggning om detta ges här. 5 Tillämpningar 5.1 Matematiska tillämpningar Beviset är allmängiltigt för alla mängder vari elementen är av samma längd och alla är permutationer av samma uppsättning tecken. Detta innebär helt enkelt att alla elementen i dessa mängder går att väva ihop till en kortaste sträng med längden L = t l + l 1. Eftersom resultatet är allmängiltigt nns det säkert många tillämpningsområden, dock är kodlås den enda tillmäpning jag vidare utforskar. 5.2 Tillämpningar på kodlås Ur grafen kan många intressanta saker utläsas, såsom hur många knapptryckningar en optimal knäckning skulle ta, vilka knappar denna optimala knäckning skulle bestå av, samt hur många olika optimala strängar som nns. 7 Från avsnitt Constructing Eulerian paths and cycles (Referens nr. [3]) 8 Från avsnitt Counting Eulerian circuits (Referens nr. [3]) 9

10 5.3 Säkerhetsjämförelse av kodlås För att återgå till jämförelsen mellan LuAK-lås och LmAK-lås, kan några slutsatser dras vad gäller låsens säkerhet: Ett LuAK-lås kan knäckas på maximalt t l + l 1 knapptryckningar. Ett LmAK kräver maximalt t l (l + 1) knapptryckningar för att knäckas. Detta eftersom alla t l olika koder måste testas var för sig och en l lång kod kräver l + 1 knapptryckningar (kodens längd plus avslutningsknappen) för att testas. Det krävs alltså cirka l + 1 gånger färre knapptryckningar att knäcka ett LuAK-lås än att knäcka ett LmAK-lås om det knäcks det genom att testa alla möjliga koder 9. Ett LmAK-lås är alltså cirka l + 1 gånger säkrare än ett LuAK-lås, om hänsyn endast tas till hur många knappar som måste tryckas för att testa alla koder. Värt att notera är att skillnaden i säkerhet mellan kodlåstyperna i princip endast beror på kodens längd. Ju längre koden är, desto säkrare blir LmAK-låsen. Att öka antalet tillåtna tecken i koden ökar säkerheten för båda typerna, inte skillnaden i säkerhet mellan dem. Detta eftersom kvoten mellan LuAK och LmAK vad gäller antalet knapptryckningar som behövs för att knäcka låsen,l + 1, endast beror av l och inte av t. 6 Resultat 6.1 Beviset Beviset visar att den kortaste längden L, som en sträng vilken innehåller alla koder med längden l som kan bildas av t olika tecken, är L = t l + l 1. Detta har visats genom att representera alla koder med en graf. Ur denna graf har slutsatser dragits med hjälp av elementär grafteori. 6.2 Algoritmer Den grafteoretiska algoritmen, Fleurys algoritm, är en känd och enkel algoritm som med lätt modikation går att tillämpa på den graf vilken används för att bevisa den ställda förmodan. Algoritmen given i arbetet är anpassat efter vad som sökes, nämligen den kortaste sträng i vilken alla koder åternnes. 6.3 Säkerhet Med hjälp av beviset fastslås att det krävs cirka l + 1 gånger er knapptryckningar för att knäcka ett kodlås på vilket man måste avsluta en inslagen kod med en avslutningsknapp (t.ex. # eller *) än det krävs för att knäcka ett kodlås vilket hela tiden automatiskt testar om de senast tryckta knapparna är den rätta koden, givet att den sökta kodens längd är l. Med att knäcka ett lås menas här att testa alla koder. 6.4 Svar på frågeställningarna De primära frågeställningarna gällde om den ställda förmodan stämde, vilket konstateras att den gör. Den kortaste strängen knapptryckningar som kan knäcka ett kodlås av den typ utan avslutningsknapp, i enlighet med den bevisade förmodan, har då längden L = t l + l 1 där t är antalet tillåtna tecken i koden, och l är kodens längd. Säkerheten mellan kodlås med avslutningsknapp och kodlås utan avslutningsknapp, vad gäller att att knäcka dem genom att testa alla koder, förhåller sig som (l + 1):1. Det krävs alltså cirka l + 1 gånger er knapptryckningar för att testa alla koder samt att trycka avslutningsknappen för varje kod på ett lås med avslutningsknapp, än det krävs för att testa alla koder genom att väva in dem i varandra på ett lås utan avslutningsknapp. Den sekundära frågeställningen gällde hur en algoritm för att få fram en av de kortaste strängar knapptryckningar som optimalt kan knäcka ett kodlås av den typ utan avslutningsknapp kan se ut. Det har beskrivits en algoritm för hur man målar upp grafen och i denna vandrar för att få fram strängen. Denna algoritm baseras på Fleurys algoritm för att vandra en Eulerväg i en graf. 9 De l 1 första knapptryckningarna är så få relativt de övriga knapptryckningarna, så kvoten mellan de båda låstyperna kan approximeras till l

11 7 Diskussion 7.1 Generellt I detta arbete har jag valt att utgå från olika typer av kodlås, då jag funnit att detta är en väldigt bra visualisering av problemet med att väva in elementen i vissa mängder i varandra. Det var även genom att fundera på skillnaderna mellan säkerheten hos dessa kodlås som jag ck idén till arbetet. Det ska poängteras att resultatet i detta arbete är tillämpbart på alla mängder som innehåller alla kombinationer av ett visst antal olika element. 7.2 Bevismetod Beviset grundar sig på att representera problemet som en graf, och därifrån använda de verktyg som grafteorin har. Eftersom det motsvarande problemet jag formulerar (kan jag vandra en Eulerväg i denna graf?) är ekvivalent med min ursprungliga frågeställning så gäller mitt bevis även för min ursprungliga frågeställning. I mitt sökande efter en lämplig bevismetod letade jag primärt efter algebraiska metoder, innan jag insåg vilket kraftfullt verktyg grafer är. Jag började med att representera grafen som ett nätverk där varje kod var en nod och från varje nod gick det ut t olika kanter. I grafen skulle jag sedan visa att en Hamiltonsk väg eller -cykel existerade. Efter att ha förstått hur svårt det är att visa att Hamiltonska vägars eller -cyklers existens, förstod jag att en modikation av grafen måste till. Jag vände på steken, så att varje kant var en kod, genom att varje kant från en nod representerade koden som bildas efter denna nod. Alla kombinationer av de t tillåtna tecknen som var en kortare än kodens längd, alltså l 1 långa, ck bli noderna. Jag gjorde grafen riktad, så att man på varje kant endast kunde vandra åt ett håll, och efter detta var det enkelt att visa att en Eulerväg kunde vandras. Hela bevisprocessen handlade om att formulera ett ekvivalent problem som man kan angripa med de verktyg som man har till sitt förfogande. 7.3 Algoritm Själva algoritmen jag använt, Fleurys algoritm, är som tidigare nämnts en standardalgoritm för att få fram en Eulercykel eller Eulerväg i en graf. Den är enkel och sinnrik i teorin, men det kan bli problem att tillämpa den i praktiken. Idealiskt vore att översätta algoritmen till något programspråk och då låta en dator utföra de beräkningar algoritmen kräver. Detta blir speciellt praktiskt då antalet tillåtna tecken t i koden och kodens längd l är så stora att själva grafen blir ohanterlig. För att denna översättning ska bli till ett eektivt program krävs så stora programmeringskunskaper att jag undlåter att ge ett exempel här. Problemet med själva algoritmen är alltså att utföra den på ett smidigt sätt när grafen blir ohanterligt stor. 8 Slutsatser Ett konkret problem som det jag formulerade i början av detta arbete kan eektivt lösas med något så abstrakt som grafteori. Genom att representera det ursprungliga problemet med en graf låter jag den information som är relevant nnas kvar och kan sen dra vissa slutsatser. Jag visar att den kortaste längden L på en optimal serie knapptryckningar som krävs för att knäcka den sortens kodlås jag beskriver i avsnitt 1.1 (bakgrunden), om antalet tillåtna tecken för kodlåset är t och längden på en kod är l, är L = t l + l 1. I och med detta så har jag bevisat den förmodan jag formulerat. Detta innebär att säkerhetsskillnaden mellan LuAK-lås och LmAK-lås förhåller sig som (l + 1) : 1, om man ska knäcka kodlåsen genom att testa alla möjliga koder. 11

12 9 Referenser och källor Referenser [1] Barnett, Stephen (1998) Discrete Matematics Numbers and Beyond Addison Wesley. [2] Diestel, Reinhard (2005) Graph Theory Springer. [3] Wikimedia Foundation Inc (2009), Eulerian Path. Hämtad 1 mars 2009 från: A Ytterligare exempel I gur 7 är grafen uppmålad då t = 3 och l = 3. En av kortaste strängarna blir då , då noden 00 valts som startnod. Figur 7: Graf då t = 3 och l = 3 12

Kaliningrad) låg vid bägge sidor av floden Pregel samt på

Kaliningrad) låg vid bägge sidor av floden Pregel samt på Grunder i matematik och logik (2018) Grafteori Marco Kuhlmann Grafteori är det område inom matematiken som undersöker egenskaper hos grafer. Inom grafteorin har begreppet graf en annan betydelse än graf

Läs mer

Grafer och grannmatriser

Grafer och grannmatriser Föreläsning 2, Linjär algebra IT VT2008 Som avslutning på kursen ska vi knyta samman linjär algebra med grafteori och sannolikhetsteori från första kursen. Resultatet blir så kallade slumpvandringar på

Läs mer

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

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

Läs mer

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

Algoritmer, datastrukturer och komplexitet

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

Läs mer

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

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

Läs mer

Algoritmer, datastrukturer och komplexitet

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

Läs mer

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

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

Läs mer

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

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

Läs mer

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

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

TNK049 Optimeringslära

TNK049 Optimeringslära TNK49 Optimeringslära Clas Rydergren, ITN Föreläsning 7 Nätverksoptimering Billigaste uppspännande träd (MST) Billigaste väg (SP) Projektnätverk Minkostnadsflödesproblem Agenda Terminologi för grafer/nätverk

Läs mer

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

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

Läs mer

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

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

Läs mer

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

Föreläsningsanteckningar F6

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

Läs mer

MA2047 Algebra och diskret matematik

MA2047 Algebra och diskret matematik MA2047 Algebra och diskret matematik Något om grafer Mikael Hindgren 26 september 2018 roarna i Königsberg De sju broarna i Königsberg (nuvarande Kaliningrad) på 1700-talet: (a) Königsberg 1652 (b) Graf

Läs mer

729G04 - Diskret matematik. Lektion 4

729G04 - Diskret matematik. Lektion 4 729G04 - Diskret matematik. Lektion 4 1 Lösningsförslag 1.1 Vägar, stigar och annat 1. Vi ges den oriktade grafen G=(V,E), V = {a, b, c, d, f, g, h, i, j}, E = {{a, b}, {b, c}, {a, c}, {f, g}, {c, d},

Läs mer

Lite Kommentarer om Gränsvärden

Lite Kommentarer om Gränsvärden Lite Kommentarer om Gränsvärden På föreläsningen (Föreläsning 2 för att vara eakt) så introducerade vi denitionen Denition. Vi säger att f() går mot a då går mot oändligheten, uttryckt i symboler som f()

Läs mer

Föreläsning 12+13: Approximationsalgoritmer

Föreläsning 12+13: Approximationsalgoritmer Föreläsning 12+13: Approximationsalgoritmer Många av de NP-fullständiga problemen är från början optimeringsproblem: TSP, Graph Coloring, Vertex Cover etc. Man tror att P NP och att det alltså inte går

Läs mer

NÅGOT OM KRYPTERING. Kapitel 1

NÅGOT OM KRYPTERING. Kapitel 1 Kapitel 1 NÅGOT OM KRYPTERING Behovet av att skydda information har funnits mycket länge, men först i samband med utvecklingen av datatekniken har det blivit ett allmänt problem för alla moderna samhällen.

Läs mer

Föreläsning 6. Slumptal Testa slumptal Slumptal för olika fördelningar Grafer Datastrukturen graf

Föreläsning 6. Slumptal Testa slumptal Slumptal för olika fördelningar Grafer Datastrukturen graf Föreläsning 6 Slumptal Testa slumptal Slumptal för olika fördelningar Grafer Datastrukturen graf Repetition En dator kan inte generera slumptal då den är helt deterministisk, däremot kan den generera pseudo-slumptal

Läs mer

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann Marco Kuhlmann 1 En graf är en struktur av prickar förbundna med streck. Ett tidsenligt exempel på en sådan struktur är ett social nätverk, där prickarna motsvarar personer och en streck mellan två prickar

Läs mer

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

Lö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 mer

Korsningar i kompletta multipartita grafer

Korsningar i kompletta multipartita grafer Institutionen för naturvetenskap och teknik Korsningar i kompletta multipartita grafer Erik Lissel Örebro universitet Institutionen för naturvetenskap och teknik Matematik C Korsningar i kompletta multipartita

Läs mer

Algebra och kryptografi Facit till udda uppgifter

Algebra och kryptografi Facit till udda uppgifter VK Algebra och kryptografi Facit till udda uppgifter Tomas Ekholm Niklas Eriksen Magnus Rosenlund Matematiska institutionen, 2002 48 Grupper. Lösning 1.1. Vi väljer att studera varje element i G H för

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

Föreläsning 5: Grafer Del 1

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

Läs mer

Föreläsning 8: Intro till Komplexitetsteori

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

Läs mer

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall COMPUTABILITY BERÄKNINGSBARHET Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall Den centrala frågan: givet ett problem, kan det ha en algoritmisk lösning?

Läs mer

Grafer. Bilder: Illustrationer s.9 av Hans Hillerström. Grafiska konstruktioner av Nils-Göran Mattsson. Författarna och Bokförlaget Borken, 2011

Grafer. Bilder: Illustrationer s.9 av Hans Hillerström. Grafiska konstruktioner av Nils-Göran Mattsson. Författarna och Bokförlaget Borken, 2011 Grafer 1.Broarna i Köningsberg och grundläggande grafbegrepp 2 2.Hamiltoncykler 9 Teori Handelsresandeproblemet.11 3.Träd och skog 14 Modell Kruskals algoritm.16 4.Fyrfärgsproblemet..18 Facit 20 Bilder:

Läs mer

inte följa någon enkel eller fiffig princip, vad man nu skulle mena med det. All right, men

inte följa någon enkel eller fiffig princip, vad man nu skulle mena med det. All right, men MATEMATISKA INSTITUTIONEN STOCKHOLMS UNIVERSITET Christian Gottlieb Gymnasieskolans matematik med akademiska ögon Induktion Dag 2. Explicita formler och rekursionsformler. Dag mötte vi flera talföljder,

Läs mer

Tentamen TMV210 Inledande Diskret Matematik, D1/DI2

Tentamen TMV210 Inledande Diskret Matematik, D1/DI2 Tentamen TMV20 Inledande Diskret Matematik, D/DI2 208-0-27 kl. 4.00 8.00 Examinator: Peter Hegarty, Matematiska vetenskaper, Chalmers Telefonvakt: Anton Johansson, telefon: 5325 (alt. Peter Hegarty 070-5705475)

Läs mer

Lösningsförslag till övningsuppgifter, del II

Lösningsförslag till övningsuppgifter, del II Lösningsförslag till övningsuppgifter del II Obs! Preliminär version! Ö.1. För varje delare d till n låt A d var mängden av element a sådana att gcd(a n = d. Partitionen ges av {A d : d delar n}. n = 6:

Läs mer

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer Föreläsning 5: Giriga algoritmer Kruskals och Prims algoritmer Spännande träd: Om G är en sammanhängande graf så är ett spännande träd ett träd som innehåller alla noder i V (G). Viantarattviharkantvikterw(e)

Läs mer

Föreläsning 6 Datastrukturer (DAT037)

Föreläsning 6 Datastrukturer (DAT037) Föreläsning 6 Datastrukturer (DAT037) Fredrik Lindblad 1 15 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037

Läs mer

Kap.6 Grafer. Egenskaper: Handskakningslemmat och Eulers formel Sats om eulerkrets/väg Isomorfi och representation av grafer Graffärgning

Kap.6 Grafer. Egenskaper: Handskakningslemmat och Eulers formel Sats om eulerkrets/väg Isomorfi och representation av grafer Graffärgning Kap.6 Grafer Allmänna begrepp: graf, delraf, multigraf, enkelgraf, riktad graf, nodsgrad vandring, väg, stig, krets, cykel sammanhängande graf, sammanhängande komponenter Speciella grafer: komplett graf,

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

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer Föreläsning 5: Giriga algoritmer Kruskals och Prims algoritmer Spännande träd: Om G är en sammanhängande graf så är ett spännande träd ett träd som innehåller alla noder i V (G). Viantarattviharkantvikterw(e)

Läs mer

Föreläsning 8 Datastrukturer (DAT037)

Föreläsning 8 Datastrukturer (DAT037) Föreläsning 8 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-23 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

Programkonstruktion och Datastrukturer

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

Läs mer

Basbyten och linjära avbildningar

Basbyten och linjära avbildningar Föreläsning 11, Linjär algebra IT VT2008 1 Basbyten och linjära avbildningar Innan vi fortsätter med egenvärden så ska vi titta på hur matrisen för en linjär avbildning beror på vilken bas vi använder.

Läs mer

SF2715 Tillämpad kombinatorik, 6hp

SF2715 Tillämpad kombinatorik, 6hp SF75 Tillämpad kombinatorik, 6hp Fortsättningskurs i matematik 7 mars 7 maj 009 Kursledare: Jakob Jonsson Upplägg 6 hp = p enligt gamla systemet 8 dubbeltimmar med teori och problemlösning Kursbok och

Läs mer

Föreläsning 7+8: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Föreläsning 7+8: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning? Formalisering av rimlig tid Föreläsning 7+8: NP-problem En algoritm som har körtid O(n k ) för någon konstant k är rimligt snabb. En algoritm som har körtid Ω(c n ) för någon konstant c>1 är för långsam.

Läs mer

Mönster och Algebra. NTA:s första matematiktema. Per Berggren

Mönster och Algebra. NTA:s första matematiktema. Per Berggren Mönster och Algebra NTA:s första matematiktema Per Berggren 1 Lgr11- Matematiska förmågor Genom undervisningen i ämnet matematik ska eleverna sammanfattningsvis ges förutsättningar att utveckla sin förmåga

Läs mer

de Bruijn-sekvenser Det effektiva paketbudet

de Bruijn-sekvenser Det effektiva paketbudet Institutionen för naturvetenskap och teknik de Bruijn-sekvenser Det effektiva paketbudet Anders Löthgren Örebro universitet Institutionen för naturvetenskap och teknik Matematik C, 76 90 högskolepoäng

Läs mer

Föreläsning 11. Giriga algoritmer

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

Läs mer

1. (3p) Bestäm den minsta positiva resten vid division av talet med talet 31.

1. (3p) Bestäm den minsta positiva resten vid division av talet med talet 31. 1 Matematiska Institutionen KTH Lösning till tentamensskrivning på kursen Diskret Matematik, moment A, för D2 och F, SF1631 och SF1630, den 7 juni 2011 kl 08.00-13.00. Examinator: Olof Heden, tel. 0730547891.

Läs mer

Föreläsning 8+9: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Föreläsning 8+9: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning? Formalisering av rimlig tid Föreläsning 8+9: NP-problem En algoritm som har körtid O(n k ) för någon konstant k är rimligt snabb. En algoritm som har körtid Ω(c n ) för någon konstant c>1 är för långsam.

Läs mer

Hjalpmedel: Inga hjalpmedel ar tillatna pa tentamensskrivningen. 1. (3p) Los ekvationen 13x + 18 = 13 i ringen Z 64.

Hjalpmedel: Inga hjalpmedel ar tillatna pa tentamensskrivningen. 1. (3p) Los ekvationen 13x + 18 = 13 i ringen Z 64. Matematiska Institutionen KTH Losning till tentamensskrivning i Diskret Matematik, SF och B8, torsdagen den oktober, kl.-.. Examinator Olof Heden. Hjalpmedel Inga hjalpmedel ar tillatna pa tentamensskrivningen.

Läs mer

Bisektionsalgoritmen. Kapitel Kvadratroten ur 2

Bisektionsalgoritmen. 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 mer

Algoritmer och datastrukturer, föreläsning 11

Algoritmer och datastrukturer, föreläsning 11 lgoritmer och datastrukturer, föreläsning 11 enna föreläsning behandlar grafer. En graf har en mängd noder (vertex) och en mängd bågar (edge). Ett exempel är: E F G H Z enna graf har följande mängd av

Läs mer

Algoritmer, datastrukturer och komplexitet

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

Läs mer

Algoritmer, datastrukturer och komplexitet

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

Läs mer

Algoritmer, datastrukturer och komplexitet

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

Läs mer

Kimmo Eriksson 12 december 1995. Att losa uppgifter av karaktaren \Bevisa att..." uppfattas av manga studenter

Kimmo Eriksson 12 december 1995. Att losa uppgifter av karaktaren \Bevisa att... uppfattas av manga studenter Kimmo Eriksson 12 december 1995 Matematiska institutionen, SU Att genomfora och formulera ett bevis Att losa uppgifter av karaktaren \Bevisa att..." uppfattas av manga studenter som svart. Ofta ar det

Läs mer

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl

Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl 1 Matematiska Institutionen KTH Tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610, onsdagen den 20 augusti 2014, kl 14.00-19.00. Examinator: Olof Heden Hjälpmedel: Inga hjälpmedel är tillåtna

Läs mer

Efternamn förnamn ååmmdd kodnr

Efternamn förnamn ååmmdd kodnr KTH Matematik Olof Heden Σ p G/U bonus Efternamn förnamn ååmmdd kodnr Lösning till kontrollskrivning 5A, den 15 maj 2014, kl 13.00-14.00 i SF1610 Diskret matematik för CINTE och CMETE. Inga hjälpmedel

Läs mer

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18: Svar: Ja, det gäller, vilket kan visas på flera sätt (se nedan).

Lösningar för tenta i TMV200 Diskret matematik kl. 14:00 18: Svar: Ja, det gäller, vilket kan visas på flera sätt (se nedan). Lösningar för tenta i TMV200 Diskret matematik 208-0-2 kl. 4:00 8:00. Ja, det gäller, vilket kan visas på flera sätt (se nedan). Alternativ (induktionsbevis): Vi inför predikatet P (n) : 2 + 2 3 + + n(n

Läs mer

Bra ekonomi för T4. Frågeställning. Svar

Bra ekonomi för T4. Frågeställning. Svar Bra ekonomi för T4 Frågeställning Fyra mycket snåla systrar har fått ärva en kolonilott. Lotten har formen av triangel där alla sidor är tjugo meter. Systrarna är överens om att dela kostnaderna för ett

Läs mer

DEL I. Matematiska Institutionen KTH

DEL I. Matematiska Institutionen KTH 1 Matematiska Institutionen KTH Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, tisdagen den 21 oktober 2008, kl 08.00-13.00. Examinator: Olof Heden.

Läs mer

Tentamen Datastrukturer (DAT036)

Tentamen Datastrukturer (DAT036) Tentamen Datastrukturer (DAT036) Det här är inte originaltesen. Uppgift 6 var felaktigt formulerad, och har rättats till. Datum och tid för tentamen: 2011-12-16, 8:30 12:30. Ansvarig: Nils Anders Danielsson.

Läs mer

Föreläsningsanteckningar Linjär Algebra II Lärarlyftet

Föreläsningsanteckningar Linjär Algebra II Lärarlyftet Föreläsningsanteckningar Linjär Algebra II Lärarlyftet Per Alexandersson Föreläsning I Timme I: Repetition av matriser, linjära ekvationssystem Linjärt ekvationssystem: x + y + z 3w = 3 2x + y + z 4w =

Läs mer

Något om medelvärden

Något om medelvärden 350 Något om medelvärden Pepe Winkler Uppsala Universitet Om a och a är två reella, positiva tal så kallas talet A = a + a för det aritmetiska medelvärdet och talet G = a a för det geometriska medelvärdet

Läs mer

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002

Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002 Institutionen för matematik, KTH Mats Boij och Niklas Eriksen Lösningsförslag till Tentamen i 5B1118 Diskret matematik 5p 14 augusti, 2002 1. Använd induktion för att visa att 8 delar (2n + 1 2 1 för alla

Läs mer

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN KOMBINATORISK OPTIMERING GRUNDKURS Datum: januari 0 Tid: 8.00-.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

Mönster och Algebra. NTA:s första matematiktema. Per Berggren & Maria Lindroth

Mönster och Algebra. NTA:s första matematiktema. Per Berggren & Maria Lindroth Mönster och Algebra NTA:s första matematiktema Per Berggren & Maria Lindroth 1 Lgr11- Matematiska förmågor Genom undervisningen i ämnet matematik ska eleverna sammanfattningsvis ges förutsättningar att

Läs mer

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik

Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik Läsanvisning till Discrete matematics av Norman Biggs - 5B1118 Diskret matematik Mats Boij 28 oktober 2001 1 Heltalen Det första kapitlet handlar om heltalen och deras aritmetik, dvs deras egenskaper som

Läs mer

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

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

Läs mer

DEL I. Matematiska Institutionen KTH

DEL I. Matematiska Institutionen KTH 1 Matematiska Institutionen KTH Lösning till tentamensskrivning på kursen Diskret Matematik, moment A, för D2 och F, SF1631 och SF1630, den 25 mars 2008. DEL I 1. (3p Bestäm antalet binära ord av längd

Läs mer

Uppgifter 6: Grafteori

Uppgifter 6: Grafteori Grunder i matematik och logik (2017) Uppgifter 6: Grafteori Marco Kuhlmann Nivå 6.01 nge antalet noder och bågar. a) b) a) 7 noder, 10 bågar b) 9 noder, 10 bågar 6.02 nge gradtalet för varje nod. a) b)

Läs mer

Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610 och 5B1118, tisdagen den 7 januari 2014, kl

Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610 och 5B1118, tisdagen den 7 januari 2014, kl 1 Matematiska Institutionen KTH Lösning till tentamensskrivning i Diskret Matematik för CINTE och CMETE, SF1610 och 5B1118, tisdagen den 7 januari 2014, kl 14.00-19.00. Examinator: Olof Heden Hjälpmedel:

Läs mer

Föreläsning Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT037) Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-23 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Djupet först-sökning. Minsta uppspännande träd Träd (utan rot)

Läs mer

Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x).

Fixpunktsiteration. Kapitel Fixpunktsekvation. 1. f(x) = x = g(x). Kapitel 5 Fixpunktsiteration 5.1 Fixpunktsekvation En algebraisk ekvation kan skrivas på följande två ekvivalenta sätt (vilket innebär att lösningarna är desamma). 1. f(x) = 0. En lösning x kallas en rot

Läs mer

Linjär algebra I, vt 12 Vecko PM läsvecka 4

Linjär algebra I, vt 12 Vecko PM läsvecka 4 Linjär algebra I, vt 12 Vecko PM läsvecka 4 Lay: 2.8-2.9, 4.1-4.6 Underrum i R n, dimension och rang. Vektorrum. Innehållet i avsnitten 2.8 och 2.9 täcks av kapitel 4, men presenterar begreppen på ett

Läs mer

Föreläsning 5. Deduktion

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

Läs mer

Googles sidrankning - linjär algebra värt en förmögenhet

Googles sidrankning - linjär algebra värt en förmögenhet Googles sidrankning - linjär algebra värt en förmögenhet Outline 1 Sökmotorer 2 Grafteori Linjär algebra 3 Målet Utifrån användarens sökord lista de mest relevanta webbsidorna. Dessutom i en ordning som

Läs mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-13 Idag Grafer: Terminologi. Datastrukturer. Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. (Vi får

Läs mer

Undflyende delgrafer Några elementära bevis

Undflyende delgrafer Några elementära bevis 1 Natur, Matte- spets Gymnasiearbetet Läsåret 2014-2015 Undflyende delgrafer Några elementära bevis Författare: Sarah Tovatt Handledare: Ulf Backlund ABSTRACT Title: Undflyende delgrafer Date: 2014-03-23

Läs mer

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

Introduktion 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 mer

Modelltentamen. Ditt svar ska vara ett ändligt uttryck utan summationstecken.

Modelltentamen. Ditt svar ska vara ett ändligt uttryck utan summationstecken. SF2715 Tillämpad kombinatorik, våren 2009 Jakob Jonsson Modelltentamen Denna modelltentamen är tänkt att illustrera svårighetsgraden på en riktig tentamen. Att en viss typ av uppgift dyker upp här innebär

Läs mer

18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p.

18 juni 2007, 240 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 15p. för Godkänd, 24p. för Väl Godkänd (av maximalt 36p. HH / Georgi Tchilikov DISKRET MATEMATIK,5p. 8 juni 007, 40 minuter Inga hjälpmedel, förutom skrivmateriel. Betygsgränser: 5p. för Godkänd, 4p. för Väl Godkänd (av maximalt 36p.). Förenkla (så mycket som

Läs mer

LÖSNINGAR TILL UPPGIFTER TILL RÄKNEÖVNING 1

LÖSNINGAR TILL UPPGIFTER TILL RÄKNEÖVNING 1 STOCKHOLMS UNIVERSITET MATEMATISKA INSTITUTIONEN Linjär algebra II LÖSNINGAR TILL UPPGIFTER TILL RÄKNEÖVNING Lös ekvationssystemet x + y + z 9 x + 4y 3z 3x + 6z 5z med hjälp av Gausselimination Lösning:

Läs mer

Kontinuitet och gränsvärden

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

Läs mer

Optimering Kruskal s algoritm Prim-Jarník s algoritm

Optimering Kruskal s algoritm Prim-Jarník s algoritm Optimering Kruskal s Prim-Jarník s 0.7 1.3 0.5 0.3 2.1 0.7 1.3 0.5 0.3 2.1 Viktad graf raf där varje kant har en vikt Vikterna kan motsvara Kostnad Avstånd Tidsåtgång ur hittar man kortaste vägen från

Läs mer

, S(6, 2). = = = =

, S(6, 2). = = = = 1 Matematiska Institutionen KTH Lösningar till tentamensskrivning på kursen Diskret Matematik, moment A, för D2 och F, SF161 och SF160, den 17 april 2010 kl 09.00-14.00. Examinator: Olof Heden. DEL I 1.

Läs mer

Om plana och planära grafer

Om plana och planära grafer Matematik, KTH Bengt Ek november 2017 Material till kurserna SF1679 och SF1688, Diskret matematik: Om plana och planära grafer I många sammanhang (t.ex. vid konstruktion av elektriska kretsar) är det intressant

Läs mer

TNSL05 Optimering, Modellering och Planering. Föreläsning 5

TNSL05 Optimering, Modellering och Planering. Föreläsning 5 TNSL5 Optimering, Modellering och Planering Föreläsning 5 Dagordning Kort repetition Graf/nätverk: Begrepp Representation Exempel: Minkostnadsflödeproblem Billigastevägproblem 28--5 4 Hittills Föreläsning

Läs mer

Föreläsning 6 Datastrukturer (DAT037)

Föreläsning 6 Datastrukturer (DAT037) Föreläsning 6 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-17 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

Matematik för språkteknologer (5LN445) Institutionen för lingvistik och filologi VT 2014 Författare: Marco Kuhlmann 2013

Matematik för språkteknologer (5LN445) Institutionen för lingvistik och filologi VT 2014 Författare: Marco Kuhlmann 2013 UPPSALA UNIVERSITET Matematik för språkteknologer (5LN445) Institutionen för lingvistik och filologi VT 2014 Författare: Marco Kuhlmann 2013 4 Grafer En graf är en struktur av prickar förbundna med streck.

Läs mer

D. x 2 + y 2 ; E. Stockholm ligger i Sverige; F. Månen är en gul ost; G. 3 2 = 6; H. x 2 + y 2 = r 2.

D. x 2 + y 2 ; E. Stockholm ligger i Sverige; F. Månen är en gul ost; G. 3 2 = 6; H. x 2 + y 2 = r 2. Logik Vid alla matematiskt resonemang måste man vara säker på att man verkligen menar det man skriver ner på sitt papper. Därför måste man besinna hur man egentligen tänker. Den vetenskap, som sysslar

Läs mer

TDIU Regler

TDIU Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

Lutande torn och kluriga konster!

Lutande torn och kluriga konster! Lutande torn och kluriga konster! Aktiviteter för barn under Vetenskapsfestivalens skolprogram 2001 Innehåll 1 Bygga lutande torn som inte faller 2 2 Om konsten att vinna betingat godis i spel 5 3 Den

Läs mer

Svar till vissa uppgifter från första veckan.

Svar till vissa uppgifter från första veckan. Svar till vissa uppgifter från första veckan. Svar till kortuppgifter F:. Ja! Förhoppningsvis så ser man direkt att g fx) är ett polynom. Vidare så gäller det att g fα) = gfα)) = gβ) = 0. Använd faktorsatsen!

Läs mer

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

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

Läs mer

Föreläsning Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT037) Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-20 Idag Grafer: Terminologi. Datastrukturer. Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. (Vi får

Läs mer

Material till kursen SF1679, Diskret matematik: Lite om kedjebråk. 0. Inledning

Material 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 mer

ALGORITMER, OPTIMERING OCH LABYRINTER

ALGORITMER, OPTIMERING OCH LABYRINTER ALGORITMER, OPTIMERING OCH LABYRINTER Text: Marie Andersson, Learncode AB Illustrationer: Li Rosén Foton: Shutterstock Har du någonsin lagat mat efter recept eller monterat ihop en möbel från IKEA? Då

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