Fördelning. Fördelningsprinciper. Lastbalansering

Storlek: px
Starta visningen från sidan:

Download "Fördelning. Fördelningsprinciper. Lastbalansering"

Transkript

1 Fördelning Föreläsning : Lastbalansering MIMD-parallellt program Ett antal tasks som exekverar seriellt eller parallellt Fördelningsproblemet NP-komplett problem (i generella fallet) Fördela tasks på processorer så att minimal exekveringstid erhålls Optimal fördelning Processorallokering + exekveringsordning sådan att exekveringstiden minimeras Fördelningssystem (Konsument, Policy, Resurs) Konsument Schedulerare Policy Resurs Läsanvisning kap. 7 Lastbalansering Fördelningsprinciper Imperfekt balans Perfekt balans Lokal fördelning Tidsdelning mellan jämnlöpande processer på en processor Global fördelning Tilldela processor i //-system arbete Statisk fördelning (innan exekvering, vid kompilering) Dynamisk fördelning (under exekvering) fördelare statisk dynamisk sub-optimal optimal distr icke-distr heuristisk approx kooperativ icke kooper För betraktaren är det längsta exekveringstiden som spelar roll!!! optimal heuristisk sub-optimal approx

2 Statisk lastbalansering Dynamisk lastbalansering Fördelningsbeslut fattas innan exekvering Uppgiftsgraf känd innan exekvering Varje jobb tilldelas en processor statiskt Optimal fördelning (omöjligt?) Sub-optimal fördelning Heuristik (använda kunskap man fått genom erfarenhet) Exempel: Tasks som kommunicerar mycket på samma processor Approximativ Begränsa maskin-/program-modell Nackdelar Klarar ej ickedeterminism i program, bör ej användas då vi inte vet exakt vad som kommer att hända (ex. DFS-sökning) Fördelningsbeslut under programexekvering Distribuerad Beslut fattas av lokala distribuerade fördelare Kooperativ Lokala fördelare samarbetar global fördelning Icke kooperativ Lokala fördelare samarbetar ej påverkar endast lokal prestanda Icke distribuerad Beslut fattas av en processor (master) Nackdelar Svårt att hitta optimala fördelare Overhead då det sker under exekvering Andra indelningar av fördelning Statisk fördelning Single application / multiple application system Endast en applikation i taget, minimera exekveringstiden för denna applikation Flera parallella applikationer (jfr batch-köhantering), minimera genomsnittsexekveringstiden för alla applikationer Adaptiv / icke adaptiv schedulering Ändrar sig beroende på feedback från systemet Påverkas ej av feedback Preemptive / non-preemptive schedulering Tillåter att process avbryts om den får återkomma senare Tillåter ej att process avbryts nonpreemptive preemptive Grafteoretisk Approach (för program utan loopar och hopp) DAG (directed acyclic graph) = taskgraf Start-node (inga föräldrar), exit-node (inga barn) Maskinmodell Processorer P = {P,..., P m Kopplingsmatris (mxm), komm.-kost. P i,j Processor prestanda S i [instruktioner per sekund] Parallellprogrammodell Tasks T = {T,..., T n exekveringsordning anges av pilarna Kommunikationsmatris (nxn), ant. elem. D i,j Antal instruktioner A i 0 T, A, D 8

3 Konstruktion av schema Optimala fördelningsalgoritmer Schema: mappning som tilldelar en eller flera disjunkta tidsintervall till varje task så att Exakt en processor tilldelas varje intervall Summan av intervallen lika med exekveringstid för task Olika intervall på samma processor överlappar ej Ordning mellan de olika tasken upprätthållen Någon processor är alltid tilldelad ett jobb Fördelningsproblemet är NP-komplett i det generella fallet Undantag HLF (Highest Level First), CP (Critical Path), LP (Longest Path) List scheduling: prioritetslista över noder och tilldela noderna en och en till processerna. Vid scheduleringen, välj nod med högst prioritet och tilldela till den proc som blir ledig först. Upprepa tills listan tom. Variationer mellan algoritmerna i hur man tilldelar prioritet Trädstrukturerad taskgraf. Förenklingar införs: Alla tasks samma exekveringstid Alla processorer samma prestanda Godtycklig taskgraf på två processorer. Förenkling införs: Alla tasks samma exekveringstid Listfördelning (List scheduling) Fördelning av trädstrukturerad taskgraf Återigen Varje task tilldelas prioritet & placeras i prioritetsordnad lista När processor ledig allokera task med högst prioritet Om två har samma prioritet tag slumpmässig Olika val av prioritet ger olika fördelningar Nivånummer närmast optimal prioritetsordning (HLF) Task #Pr Level 0 Antal anledningar till att jag inte är ready Nivå max antal noder från x till terminalnod Optimal algoritm (HLF) Bestäm varje nods nivå = prioritet När processor ledig tilldela den ready task som har högst prioritet

4 Godtycklig task graf på två processorer Fördelningsheuristik Algoritm. Tilldela terminal tasks etiketter,,.. j -. Definiera mängden S som alla tasks utan etiketter och där samtliga direkta efterföljare har etiketter.. För varje element x i S Konstruera l(x): En sorterad lista av etiketterna på alla direkta efterföljare till x i fallande ordning. Sortera alla listor l(x) lexikografiskt i stigande ordning Tilldela det x som har lägst l(x) j, näst lägst j +, osv. Om det fortfarande finns tasks utan etiketter goto Komplexiteten ökar om modellen tillåter Tasks med olika exekveringstid Olika snabba kommunikationslänkar Kommunikationskrockar Loopar och hopp Begränsade nätverk Hitta suboptimala lösningar Hitta mha heuristik lösningar som oftast är nära optimala Parallellitet vs Kommunikationsfördröjning Exempel, Trade-off // vs kommunikationstid Fördelning måste baseras på både Kommunikationsfördröjning Tidpunkt då processor redo att arbeta Trade-off mellan maximera parallellitet & minimera kommunikation (max-min problemet) Dx P P Dx P P Dx D D Dx Dy Dy P P D Dx P P D < T, assign T to P Time = T + D + T + Dy + T, or Time = T + T + Dx + T D P Dx > T Dx < T Om min(dx, Dy) > T assign T To P

5 Kornstorleksproblemet Arbetsduplicering (redundant computing) Hitta bästa klustring av tasks i task graf (minimera exekveringstiden) Grovkornigt Mindre parallellitet Finkornigt Mer fördelningstid Mer kommunikationskonflikter Kan eliminera kommunikationsfördröjningar genom att upprepa arbete P P P P Dynamisk lastbalansering Arbetspooler Lokal fördelning. Exempel: Trådar. Processer. I/O. Global fördelning. Exempel: Vissa simuleringar. Arbetspool / fördelad arbetspool receiver-initiated sender-initiated Kölinjestruktur Centraliserade Decentraliserade Distribuerade Hur välja processor att kommunicera med? Centralized Distributed Decentralized

6 Arbetsöverföring - distribuerad Arbetsöverföring - distribuerad Mottagaren tar initiativet. Pull En process frågar en annan process om jobb Processen frågar när den har slut på uppgifter, eller har lite att göra. Fungerar bra, även vid höga systemlaster Kan vara dyrt att uppskatta systemlaster Sändaren tar initiativet. Push En process skickar över jobb till en annan process Processen frågar när den har väldigt många uppgifter, eller hög last Fungerar bra vid låga systemlaster Svårt att veta när man ska skicka Arbetsöverföring - decentraliserad Kölinjestruktur Exempel på processval Last (svårt) Round robin Gäller att se till att processerna ej kommer i fas Slumpmässigt (random polling) Bra generator nödvändig?? Se exempel loadbalance.f Kan ha två processer per nod En arbetsprocess som beräknar frågar kön efter jobb En som frågar (till vänster) efter nya jobb om kön är nästan tom får nya jobb från vänster får förfrågningar från höger och från arbetsprocessen som svarar på dessa förfrågningar 6

7 Trädbaserad kö Exempel Shortest Path Varje process skickar till en av två processer generalisering av föregående teknik Kortaste vägen. Givet en mängd av sammankopplade noder där kanterna mellan noderna är markerade med vikter, hitta den väg från en specifik nod till en annan specifik nod som har den minsta ackumulerade vikten. Hur representera grafen? Exempel Shortest Path Moores algoritm d j =min(d j, d i +w i,j ) Håll en kö, som innehåller hörn att beräkna på. Börja med starthörnet. Håll en lista med kortaste avstånd. Börja med noll för starthörnet, och oändligheten för resten. För varje nod i början på kön, uppdatera listan enligt uttrycket ovan. Om det blev en uppdatering, lägg till det nya hörnet i listan. 7

8 Sekventiell kod Parallell implementation Antar adjacency matrix. while ((i = next_vertex())!= no_vertex) /* while a vertex */ for (j = ; j < n; j++) /* get next edge */ if (w[i][j]!= infinity) { /* if an edge */ newdist_j = dist[i] + w[i][j]; if (newdist_j < dist[j]) { dist[j] = newdist_j; append_queue(j); /* vertex to queue if not there */ /* no more vertices to consider */ Dynamisk lastbalansering Centraliserad arbetspool. Varje beräkningsnod tar hörn från kön och returnerar nya hörn. Avstånden lagras som lista, kopieras ut till noderna. Parallell implementation Parallell implementation II Kod: while (vertex_queue()!= empty) { recv(pany, source = Pi); v = get_vertex_queue(); send(&v, Pi); send(&dist, &n, Pi);. recv(&j, &dist[j], PANY, source = Pi); append_queue(j, dist[j]); ; recv(pany, source = Pi); send(pi, termination_tag); While(true){ send(pmaster); recv(&v, Pmaster, tag); if (tag!= termination_tag) { recv(&dist, &n, Pmaster); for (j = ; j < n; j++){ if (w[v][j]!= infinity) { newdist_j = dist[v] + w[v][j]; if (newdist_j < dist[j]) { dist[j] = newdist_j; send(&j, &dist[j], Pmaster); else {break; Decentraliserad arbetspool. Varje hörn är en process. Så fort ett hörn får en ny vikt (startnoden sig själv), skickar den nya avstånd till sina grannar. 8

9 Parallell implementation II Shortest path Kod: recv(newdist, PANY); if (newdist < dist) dist = newdist; /* start searching around vertex */ for (j = ; j < n; j++) /* get next edge */ if (w[j]!= infinity) { d = dist + w[j]; send(&d, Pj); /* send distance to proc j */ Måste hantera meddelande i luften. (MPI_Probe) Måste nog gruppera hörnen, dvs flera hörn/processor. Hörn som ligger nära på samma processor Liten kommunikation Liten parallellism Hörn som ligger långt borta på samma processor (scatter) Mycket kommunikation Stor parallellism Gruppera meddelanden? Hur synkronisera? Terminering. Termineringsalgoritmer Termineringsalgoritmer Ringalgoritm: Låt en process p 0 skicka ut ett token på ringen när p 0 har slut på jobb. När en process tar emot ett token: Om slut på jobb, skicka token vidare Om inte, vänta till slut, skicka sedan vidare När p 0 får tillbaka token, vet p 0 att alla har slut på arbete. Kan då meddela andra. Fungerar inte om processer lånar jobb av varandra. p 0 Dijkstras ringalgoritm: Låt en process p 0 skicka ut ett vit token på ringen när p 0 har slut på jobb. Om en process p i skickar arbete till p j, j < i, blir den svart. När en process tar emot ett token: Om processen är svart, färgas token:et svart Om slut på jobb, skicka token vidare Om inte, vänta till slut, skicka sedan vidare Om p 0 får tillbaka vitt token, vet p 0 att alla har slut på arbete skickar termineringmeddelande (ex. röd token) Om p 0 får tillbaka svart token, skickar p 0 ut ett vitt token. jobb p 0 p j p i 9

10 Kontrollfrågor Antag att fem (arbets-)processer ska lösa shortest path för grafen till höger med Parallell implementation I. Hur många, och vilka, meddelanden skickas? Antag att fem (arbets-)processer ska lösa shortest path för grafen till höger med Parallell implementation II. Hur många, och vilka, meddelanden skickas? Hitta en optimal tidsfördelning för task-grafen till höger för två processorer. Hitta ett exempel (task-graf) där algoritmen Godtycklig task graf på två processorer inte ger en optimal lösning på tre processorer

Lastbalansering. Fördelningsprinciper. Fördelning. balans. MIMD-parallellt program Ett antal tasks som exekverar seriellt eller parallellt

Lastbalansering. Fördelningsprinciper. Fördelning. balans. MIMD-parallellt program Ett antal tasks som exekverar seriellt eller parallellt Lastbalansering Föreläsning : Lastbalansering Imperfekt balans balans Perfekt För betraktaren är det längsta exekveringstiden som spelar roll!!! Fördelning MIMD-parallellt program Ett antal tasks som exekverar

Läs mer

Installation Site Country/Year Earth Simulator Center Japan/2002 Los Alamos National Laboratory USA/2002. Los Alamos National Laboratory USA/2002

Installation Site Country/Year Earth Simulator Center Japan/2002 Los Alamos National Laboratory USA/2002. Los Alamos National Laboratory USA/2002 Uppgift (p) Vid en testkörning på en processor tog ett program sekunder för att lösa ett problem av storlek n. När ytterligare tre processorer lades till krävde samma program sekunder för samma problemstorlek.

Läs mer

Datastrukturer. föreläsning 8. Lecture 6 1

Datastrukturer. föreläsning 8. Lecture 6 1 atastrukturer föreläsning 8 Lecture 6 1 jupet-först sökning (S) och bredden-först sökning (S) Två metoder att genomsöka en graf; två grafiteratorer! Kan även användas för att avgöra om två noder är sammanbundna.

Läs mer

Översikt. Parallella sökalgoritmer för diskreta optimeringsproblem. 8-pusslet. Problemdefinitioner

Översikt. Parallella sökalgoritmer för diskreta optimeringsproblem. 8-pusslet. Problemdefinitioner Översikt 2 Parallella sökalgoritmer för diskreta optimeringsproblem Kumar et. al. Introduction to Parallel Computing Kapitel 11 Robert Granat efter material från Mikael Rännar och Erik Elmroth 5/5 2006

Läs mer

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4 Grafer, traversering Koffman & Wolfgang kapitel 1, avsnitt 4 1 Traversering av grafer De flesta grafalgoritmer innebär att besöka varje nod i någon systematisk ordning precis som med träd så finns det

Läs mer

Trädstrukturer och grafer

Trädstrukturer och grafer Översikt Trädstrukturer och grafer Trädstrukturer Grundbegrepp Binära träd Sökning i träd Grafer Sökning i grafer Programmering tillämpningar och datastrukturer Varför olika datastrukturer? Olika datastrukturer

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

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

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

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

Grafer, allmänt. Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges).

Grafer, allmänt. Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges). Grafer, allmänt Allmänt Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges). En graf kan vara riktad (directed) eller oriktad (undirected). En graf kan vara

Läs mer

Sortering. Intern/ extern? Antaganden. Vad kan vi kräva? Rank sort. Rank sort. På en nod/ distribuerad? Jämförelsebaserad/ icke jämförelsebaserad?

Sortering. Intern/ extern? Antaganden. Vad kan vi kräva? Rank sort. Rank sort. På en nod/ distribuerad? Jämförelsebaserad/ icke jämförelsebaserad? Sortering Föreläsning : Sorteringsalgoritmer Sortering: att ordna data i någon sekventiell ordning Sortering förekommer som del i många applikationer Kanonisk form för sorterat data? Skall den sorterade

Läs mer

Prestanda och skalbarhet

Prestanda och skalbarhet Prestanda och skalbarhet Grama et al. Introduction to Parallel Computing Kapitel 5 Erik Elmroth Översikt 2 Exekveringstid Uppsnabbning Effektivitet Kostnad Kostnadsoptimal algoritm Ahmdals lag Gustafson-Barsis

Läs mer

Graphs (chapter 14) 1

Graphs (chapter 14) 1 Graphs (chapter ) Terminologi En graf är en datastruktur som består av en mängd noder (vertices) och en mängd bågar (edges) en båge är ett par (a, b) av två noder en båge kan vara cyklisk peka på sig själv

Läs mer

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

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

Läs mer

Föreläsning 13 Innehåll

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

Läs mer

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

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-18 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Prims algoritm. Kruskals algoritm. Djupet först-sökning. Cykel

Läs mer

Synkronisering. Föreläsning 8

Synkronisering. Föreläsning 8 Synkronisering Föreläsning 8 Synkronisering Så stort, intrikat och viktigt att det finns hela kurser om det i parallellprogrammering. Vi fuskar lite med några av de viktigaste bitarna! Synkronisering Vad

Läs mer

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram? Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden Parallellitet Ofta är det nödvändigt eller önskvärt att programdelar exekveras

Läs mer

Föreläsning 5: Dynamisk programmering

Föreläsning 5: Dynamisk programmering Föreläsning 5: Dynamisk programmering Vi betraktar en typ av problem vi tidigare sett: Indata: En uppsättning intervall [s i,f i ] med vikt w i. Mål: Att hitta en uppsättning icke överlappande intervall

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

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

Föreläsning 2. Kortaste vägar i grafer.

Föreläsning 2. Kortaste vägar i grafer. Föreläsning 2. Kortaste vägar i grafer. Problem: KORTASTE VÄGAR Den enklaste varianten är om vi inte har kantvikter och kortaste väg är en väg med såfåkanter som möjligt. Indata: En riktad graf G och en

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 7 Datastrukturer (DAT037)

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

Läs mer

Föreläsning 4: Kombinatorisk sökning

Föreläsning 4: Kombinatorisk sökning DD2458, Problemlösning och programmering under press Föreläsning 4: Kombinatorisk sökning Datum: 2009-09-25 Skribent(er): Kristina Nylander, Dennis Ekblom, Marcus Öman Föreläsare: Fredrik Niemelä 1 Introduktion

Läs mer

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

Föreläsning 4: Giriga algoritmer. Giriga algoritmer Föreläsning 4: Giriga algoritmer Giriga algoritmer Denna typ av algoritmer arbetar efter följande princip: Gör i varje situation det som är lokalt optimalt, d.v.s. bäst för stunden. Några exempel vi redan

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

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

Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.

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

Optimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.

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

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2012-11-13 Idag Mer om grafer: Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. Floyd-Warshall. Topologisk sortering

Läs mer

Föreläsning 2. Kortaste vägar i grafer.

Föreläsning 2. Kortaste vägar i grafer. Föreläsning 2. Kortaste vägar i grafer. Problem: KORTASTE VÄGAR Den enklaste varianten är om vi inte har kantvikter och kortaste väg är en väg med såfåkanter som möjligt. Indata: En riktad graf G och en

Läs mer

Trafiksimulering: Grafalgoritmer

Trafiksimulering: Grafalgoritmer 1 (38) Trafiksimulering: Grafalgoritmer Michael Hanke Skolan för teknikvetenskap SF1538 Projekt i simuleringsteknik 2 (38) Introduktion Varför grafalgoritmer? Grafer möjliggör en enkel och systematisk

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

Avancerad Problemlösning och Programmering i Praktiken

Avancerad Problemlösning och Programmering i Praktiken Avancerad Problemlösning och Programmering i Praktiken Grafalgoritmer II High Performance Computing Center North (HPC2N) Grafrepresentation Igår: Grafrepresentation DFS BFS Kortaste vägen MST Kortaste

Läs mer

Nät med flera länkar. Vägval. Enklaste formen av kommunikation:

Nät med flera länkar. Vägval. Enklaste formen av kommunikation: Nät med flera länkar väljarstrukturer Vägval vägvalsalgoritmer Dijkstra Bellman-Ford-Fulkerson ) UHOlVQLQJ 2002-10-11 Gunnar Karlsson, Bengt Sahlin 1 )UnQOlQNWLOOQlW Enklaste formen av kommunikation: kommunikation

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

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

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

Läs mer

Lektion 2: Sökagenter. Robin Keskisärkkä

Lektion 2: Sökagenter. Robin Keskisärkkä Lektion 2: Sökagenter Robin Keskisärkkä Lektionens innehåll Introduktion till laboration 2 Implementation av en sökalgoritm Livekodning Konfrontera ett liknande problem själva Extra: Heuristisk sökning

Läs mer

Operativsystem. Informationsteknologi sommarkurs 5p, 2004. Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Operativsystem. Informationsteknologi sommarkurs 5p, 2004. Agenda. Slideset 7. Exempel på operativsystem. Operativsystem Informationsteknologi sommarkurs 5p, 2004 Mattias Wiggberg Dept. of Information Technology Box 337 SE751 05 Uppsala +46 18471 31 76 Collaboration Jakob Carlström Slideset 7 Agenda Exempel på operativsystem

Läs mer

Tillämpad Programmering (ID1218) :00-13:00

Tillämpad Programmering (ID1218) :00-13:00 ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2014-03-13 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Datastrukturer och algoritmer Föreläsning 16 2 Innehåll Snabbrepetition Exempeltentamen Kursutvärdering Mina målsättningar Kursens mål: 3 Rolig och viktig kurs Bli en bättre programmerare och inse att

Läs mer

Föreläsning 13 Innehåll

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

Läs mer

Datastrukturer. föreläsning 8. Maps 1

Datastrukturer. föreläsning 8. Maps 1 Datastrukturer föreläsning 8 Maps 1 Att hitta den kortaste vägen 0 8 A 4 2 8 B 7 2 C 1 D 2 5 3 9 8 E F 5 3 Lecture 6 2 Viktade grafer I en viktad graf tillordnar vi ett tal till varje båge. Detta tal kallas

Läs mer

FÖRELÄSNING 11 DATALOGI I

FÖRELÄSNING 11 DATALOGI I Föreläsning I07 FÖRELÄSNING DATALOGI I Grafer Beatrice Åkerblom beatrice@dsv.su.se Institutionen för Data- och Systemvetenskap SU/KTH Föreläsning I07 Läsanvisningar Michael Main Data Structures & Other

Läs mer

TENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

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

Läs mer

Öka prestanda i Shared-Cache multi-core processorer

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

Läs mer

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

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum: Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60 Superscalar vs VLIW Cornelia Kloth IDA2 Inlämningsdatum: 2018-12-05 Abstract Rapporten handlar om två tekniker inom multiple issue processorer

Läs mer

ETS052 Internet Routing. Jens A Andersson

ETS052 Internet Routing. Jens A Andersson ETS052 Internet Routing Jens A Andersson Routing Routing-konceptet Unicast Routing Multicast Routing (en kort översikt) Läsanvisning: Kapitel 8 Nätverkslagret /Lager 3 Olika länkprotokoll! Datagram och

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Pipelining Tid SSA P Pipelining FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Superscalar pipelining FI DI CO FO EI WO FI DI

Läs mer

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

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

Läs mer

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15 ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 160119 kl. 08:15 13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilogarna. ***

Läs mer

Föreläsning 13. Dynamisk programmering

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

Tentamen Datastrukturer, DAT037 (DAT036)

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

Datastrukturer. föreläsning 7. Maps 1

Datastrukturer. föreläsning 7. Maps 1 Datastrukturer föreläsning 7 Maps 1 Grafer Maps 2 Grafer ett exempel En oriktad graf: Noderna är flygplatser (trebokstavskombinationer) Det finns en båge mellan två noder omm det finns en flyglinje mellan

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

En överblick. Pseudo-parallell simulering. Snabbköpsexemplet, forts. Två olika sätt att modellera och simulera. Schedulering

En överblick. Pseudo-parallell simulering. Snabbköpsexemplet, forts. Två olika sätt att modellera och simulera. Schedulering En överblick Pseudo-parallell simulering Kjartan Halvorsen Systemteknik Inst för IT Uppsala Universitet På föreläsningen Simulering pseudo-parallell simulering SimPy Implementering av snabbköpsexemplet

Läs mer

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

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

Läs mer

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

Föreläsning 2 Datastrukturer (DAT037)

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

Läs mer

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15 ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 150112 kl. 08:15 13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilogarna. ***

Läs mer

Spekulativ exekvering i CPU pipelining

Spekulativ exekvering i CPU pipelining Spekulativ exekvering i CPU pipelining Max Faxälv Datum: 2018-12-05 1 Abstrakt Speculative execution is an optimisation technique used by modern-day CPU's to guess which path a computer code will take,

Läs mer

Tentamen i Realtidsprogrammering för Au3, D3, E3

Tentamen i Realtidsprogrammering för Au3, D3, E3 Tentamen i Realtidsprogrammering för Au3, D3, E3 Ordinarie Tentamen Datum: 2005-10-21 Tid: 14:00-19:00 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng

Läs mer

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö

Datastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö Datastrukturer och algoritmer Föreläsning 4 Test, Stack och Kö 1 Innehåll Test Datatyperna Stack och kö Specifikation och Gränssnitt Konstruktion Tillämpning 2 Testa VIKTIGT! Test går att göra under många

Läs mer

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera

Läs mer

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

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

Läs mer

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition. Eulercykel Definition En Eulercykel är en cykel som använder varje båge exakt en gång. Definition En nods valens är antalet bågar som ansluter till noden. Kinesiska brevbärarproblemet En brevbärartur är

Läs mer

Algoritmer, datastrukturer och komplexitet

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

Läs mer

Pipelining i Intel Pentium II

Pipelining i Intel Pentium II Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.

Läs mer

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15 OMTENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 140818 kl. 08:15 13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna. Betygsgräns: *** OBS *** Kurs:

Läs mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-25 Idag Starkt sammanhängande komponenter Duggaresultat Sökträd Starkt sammanhängande komponenter Uppspännande skog Graf, och en möjlig

Läs mer

Realtidsprogrammering Ordinarie tentamen

Realtidsprogrammering Ordinarie tentamen Tentamen i Realtidsprogrammering Ordinarie tentamen Datum: 2006-10-20 Tid: 08:00 13:00 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng fördelade på 7 uppgifter.

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

729G04 - Diskret matematik. Lektion 4

729G04 - Diskret matematik. Lektion 4 729G04 - Diskret matematik. Lektion 4 Ett generellt råd är att rita upp noder och bågar för graferna nedan. 1 Uppgifter 1.1 Vägar, stigar och annat 1. Vi ges den oriktade grafen G=(V,E), V = {a, b, c,

Läs mer

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035 Tentamen med lösningsförslag Datastrukturer för D2 DAT 035 17 december 2005 Tid: 8.30-12.30 Ansvarig: Peter Dybjer, tel 7721035 eller 405836 Max poäng på tentamen: 60. (Bonuspoäng från övningarna tillkommer.)

Läs mer

Aktivitetsschemaläggning för flerkärninga processorer

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

Läs mer

JAVAUTVECKLING LEKTION 4

JAVAUTVECKLING LEKTION 4 JAVAUTVECKLING LEKTION 4 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Iterationer (loopar) Algoritmer Mer om felsökning 1 WHILE-SATSEN String s = JOptionPane.showInputDialog("Talet

Läs mer

Algoritmer, datastrukturer och komplexitet

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

Läs mer

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

Datastrukturer. föreläsning 9. Maps 1

Datastrukturer. föreläsning 9. Maps 1 Datastrukturer föreläsning 9 Maps 1 Grafer och grafalgoritmer Hur implementerar man grafer? Hur genomsöker (traverserar) man grafer? Hur genomsöker man viktade grafer (och hittar kortaste vägen)? Hur beräknar

Läs mer

Programmering II (ID1019) :00-11:00

Programmering II (ID1019) :00-11:00 ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren

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

Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6 Realtidssystem - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 6 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad på: Föreläsningsmaterial

Läs mer

Lösningsförslag till tentamen Datastrukturer, DAT037,

Lösningsförslag till tentamen Datastrukturer, DAT037, Lösningsförslag till tentamen Datastrukturer, DAT037, 2018-04-05 1. q.dequeue() tar O(1) (eventuellt amorterat) s.contains(x) tar O(1) pq.add(x) tar O(log i) I värsta fall exekveras innehållet i if-satsen.

Läs mer

Programmering II (ID1019) :00-17:00

Programmering II (ID1019) :00-17:00 ID1019 Johan Montelius Programmering II (ID1019) 2014-03-10 14:00-17:00 Förnamn: Efternamn: Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.

Läs mer

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find TDDI16 Datastrukturer och algoritmer Prioritetsköer, heapar, Union/Find Prioritetsköer En vanligt förekommande situation: Väntelista (jobbhantering på skrivare, simulering av händelser) Om en resurs blir

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

Några svar till TDDC70/91 Datastrukturer och algoritmer

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

Läs mer

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

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

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

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Inledning Ken Thompson och Dennis M. Ritchie utvecklade C Turingpriset( Nobelpris i datavetenskap ), 1983 Alan Turing (1912-1954) För deras utveckling av generell OS teori och

Läs mer

Datastrukturer. föreläsning 3. Stacks 1

Datastrukturer. föreläsning 3. Stacks 1 Datastrukturer föreläsning 3 Stacks 1 Abstrakta datatyper Stackar - stacks Köer - queues Dubbeländade köer - deques Vektorer vectors (array lists) All är listor men ger tillgång till olika operationer

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

Föreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor

Föreläsning 4 Programmeringsteknik och Matlab DD1312. Logiska operatorer. Listor. Listor, tupler, strängar och forslingor Föreläsning 4 Programmeringsteknik och Matlab DD1312, tupler, strängar och forslingor Villkor kan kombineras med operatorerna and,or,not Exempel: if pris=100: print Telefonfynd! A B A

Läs mer