Algoritmer och datastrukturer

Slides:



Advertisements
Liknande presentationer
Föreläsning 6 Slumptal Testa slumptal Slumptal för olika fördelningar
Advertisements

© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 4.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning
Algoritmer och data strukturer -Länkade listor
Fortsättningskurs i Programmering lektion 6
För utveckling av verksamhet, produkter och livskvalitet. Rekursiva algoritmer, en annan sort tänkande -Hur -När -Bra/Dåligt (kap 7)
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 4.
Datastrukturer och algoritmer Föreläsning 11. Datastrukturer och algoritmer VT08 Innehåll  Mängd  Lexikon  Heap  Kapitel , , 14.4.
Predicting protein folding pathways.  Mohammed J. Zaki, Vinay Nadimpally, Deb Bardhan and Chris Bystroff  Artikel i Bioinformatics 2004.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - Lite mer rekursivitet -Sorterrings algoritmer -- Kapitel 8 Algoritmer.
Binära Sökträd, kapitel 19
1 Sårbarhetsanalys av vägtransportnätverk Erik Jenelius Avd. för transport- och lokaliseringsanalys, KTH VTI Transportforum, Linköping, januari 2007.
1 Sårbarhetsanalyser av vägnät Erik Jenelius Transport- och lokaliseringsanalys, KTH Referensgruppsmöte 30 november 2006.
Föreläsning 6 Länkade lista Komplexitet Linjärsökning & binärsökning
Övning5 Så här ska man tänka när man löser uppgift 1 på tentan lite grafik, så här söker man genom en lista så här läser man från en fil i java lösa uppgift.
Programmeringsteknik för K och Media
Tar fram v ur kön v = R(true,0,Null) och q = (). d = 0 Leta sedan fram grannarna = {A, B} För granne A: newDist = 0+4 = 4. Ej besökt. q = (A(true,4,R))
ABC EFG IJK Markera noden som besökt och lägg in den i kön. q = (A) Ta fram första elementet (A), q = ( ) Ta sedan fram grannmängden till A S = {B, F,
ABC EFG IJK Markera noden som besökt. Grannar = {E, F, B} E ej besökt, rekursivt anrop. depthFirst(A) * Djupet först i en oriktad graf.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 7 Träd.
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - Routingprotokoll - Interior gateway protocols - Exterior gateway protocols - Link state routing.
Hashing / Hash tabeller -- Kapitel 20. Hash? Varför en annan datastruktur? Konstant tid för både insert- och find- operationer.
Algoritm analys och rekursiva metoder kap 5,7
i olika programmeringsspråk
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Föreläsning 13 Polymorfism, Paket och JAR-filer. Polymorfism Ordet härstammar från grekiskan Poly – många Morf – form Polymorf – många former Någonting.
Föreläsning 11 Arrayer.
PROCESSPROGRAMMERING
Pathfinding. –Vad är det? –Sökning från A till B.
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Programmeringsteknik för Media1 & K1
”Våga göra överslag!” En learning studie om vardaglig hantering av multiplikation med tvåsiffriga tal.
Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Bredden-först exempel ABCD EFGH IJKL MNOP = Obesökt.
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
För utveckling av verksamhet, produkter och livskvalitet. -Algoritmer och Datastrukturer- -Algoritm analys och sökning algoritmer- Kap 5 -Algoritmer och.
6558/G558 DATAKOMMUNIKATION Ruttning. Algoritmer –hur bygger man ruttningstabeller? –Distansvektoralgoritmen –Länktillståndsalgoritmen Skalning.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Datastrukturer och algoritmer
Prioritets Köer (Priority Queues ), Graph Data Structures & Problem Solving using Java --Kap 21,14.
TILLÄMPAD DATALOGI (TILDA) Övning 3
För utveckling av verksamhet, produkter och livskvalitet. Stack och Kö - Implementering - Tilllämpningar.
Initiera nätverket med nollflöde. Kapaciteterna i svart ovan bågarna och flödet i grönt nedan bågarna. Skicka igenom ett enhetsflöde genom nätverket. Flödesvägen.
Datastrukturer och algoritmer
OOP F14:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 14 Repetition Tips inför inlämningsuppgift 2.
Stack och Kö -Implementering -Tilllämpningar -- Kapitel 16, 11.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - Sökträd, naiva och balancerade lösningar -HashTable -- Kapitel.
Graph och graph-algoritmer. Några enkla graph teorier Hur IP trafik hittar destinationen i Internät ? GPS-system ? Sociala nätverk. Vanligaste frågeställningar:
Köer -- Kapitel 16. Principen med en kö Köer är FIFO datastrukturer  First In – First Out  enqueue() Lägg till data i kön (först)  dequeue() Hämta.
Datastrukturer och algoritmer VT08 P = ((C,F,3), (B,D,3), (C,G,4),(A,F,4), (A,R,4), (C,D,5), (E,G,6), (B,R,6), (A,E,6), (A,C,8)) A R B F C D E G
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer - En annan sort tänkande, rekursiva metoder -Datastrukturen träd,
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Sorterings algoritmer.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 9 Grafalgoritmer.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 13 Sortering.
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Datastrukturer och algoritmer
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - Routingprotokoll - Interior gateway protocols - Exterior gateway protocols - Link state routing.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 8 Relationer, prioritetsköer och grafer.
Malmö högskola Rolf Axelsson 2003/2004 DA7235, 4 poäng Fält som returvärde Sortera fält Söka i fält Tvådimensionella fält Fält och spelplan Föreläsning.
DA7351 Programmering 1 Fält och objekt Tvådimensionella fält Sortera fält Föreläsning 13.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 8-9 Relationer, prioritetsköer, grafer och grafalgoritmer.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Sökning, Symbol tabeller Binära sökträd.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Hash Tabeller och Graf.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastructurer - En annan sort tänkande, rekursiva metoder -Datastrukturen träd.
Relationer, prioritetsköer, grafer och grafalgoritmer
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003
 U Q  A  S V   P R T   Prioritetskö <P,0>
Topologisk ordning Antag att G = (V,E,C) är en riktad acyklisk graf (DAG) En topologisk ordning av noderna i G är en uppräkning av elementen i V sådan.
Presentationens avskrift:

Algoritmer och datastrukturer Graf och Grafalgoritmer

Några enkla graf teorier Hur IP trafik hittar destinationen i Internät ? GPS-system ?

Några enkla graf teorier Sociala nätverk Vanligaste frågeställningar: Hur hittar man från A->B? Hur beräknas den kortaste vägen mellan A B

Terminology Vertices & edges ( Noder och förbindelse eller bågar) En nod a är granne till b i en oriktad graf om det finns en båge mellan a och b. Paths (väg) Viktad Oviktad Riktad Oriktad Göteborg Halmstad Varberg Göteborg Borås Jönköping Växjö 40 70 100 200 120 60 40 Borås 60 Jönköping 60 70 Varberg 200 120 70 Växjö 100 Halmstad

Mer terminology Path length Oviktad path length – antalet förbindelse mellan två noder Viktad path length- summan av vikter mellan två nod Riktad graph Visa förbindelse är enbart envägs Vikten för en förbindelse behövs inte vara dessama i båda riktningarna ( om båda finns) Göteborg Halmstad Varberg Göteborg Borås Jönköping Växjö 40 70 100 200 120 60 40 Borås 60 Jönköping 60 70 Varberg 200 120 70 Växjö 100 Halmstad

Mer terminology Simple paths ( Enkla vägar) Innehåller en nod enbart en gång Cyclic paths ( cykliska vägar) Startar och slutar i samma nod. Halmstad Varberg Göteborg Borås Jönköping Växjö 40 70 100 200 120 60

Ännu mer terminology Graph täthet Refererar till antalet förbindelse i grafen gles graph tät graph ( ~~ N2 förbindelse ) Node 1 Node 2 Node 1 Node 2 Node 6 Node 3 Node 6 Node 3 Node 5 Node 4 Node 5 Node 4

Graph representation Adjacent list Varje node håller en länkad lista som innehåller information om grann- noder och vikt. 1 2 (2) 4 (1) 2 5 (10) 4 (3) Node 1 2 Node 2 3 1 (4) 6 (5) 4 1 3 10 4 5 (2) 7 (4) 6 (8) 3 (2) Node 3 Node 4 Node 5 2 2 5 7 (6) 5 8 4 6 Node 6 Node 7 6 1 7 6 (1)

Graph representation Adjacent matrix En kvadratisk matris där raderna och kolumnerna är representerade av noder och elementen i matrisen av förbindelser. För viktad graph innehåller elemnenten i matrisen just vikten 1 2 3 4 5 6 7 1 2 1 Node 1 2 Node 2 2 3 10 1 3 4 5 4 3 10 4 2 2 8 4 Node 3 Node 4 Node 5 2 2 5 6 5 8 4 6 6 Node 6 Node 7 7 1 1

Vad är en nod (vertex) ? protected class Vertex { String name; List adjacents; Vertex (String n) { name = n; adjacents = new LinkedList(); } }

Vad är en förbindelse? public class Edge { public Vertex dest; public double cost; public Edge( Vertex d, double c) { dest=d; cost=c; } }

Traversera graf- Bredden-först: Motsvarar närmast level-by-level-traversering av träd. Man besöker först utgångsnoden, sedan dess grannar, sedan grannarnas grannar osv. Använder en extra attribut ”visited-attribut”. Endast noder till vilka det finns en väg från utgångsnoden kommer att besökas. Djupet först- ett annat teknik för graf traversering

Bredden-först – tillämpning – hitta kortaste vägen i oviktade grafer 1 2 Node 3 Node 1 Node 2 1 Node 1 1 Node 6 2 3 Node 3 Node 4 Node 5 2 Node 2 2 Node 4 1 3 3 Node 5 Node 6 Node 7 3 Node 7

Dijkstra’s Algorithm For viktade grafer Distance From 2 1 3 4 5 8 Node 1 Node 2 Node 1 Node 2 Node 3 Node 3 Node 4 Node 5 Node 4 Node 5 Node 6 Node 6 Node 7 Node 7

Dijkstra’s Algorithm För viktade grfer Distance From 2 1 3 4 5 8 Node 1 Node 2 Node 1 4 INF 3 Node 1 (4) Node 2 6 INF 1 Node 4 (5) Node 2 (6) Node 6 (5) Node 3 - Node 3 Node 4 Node 5 Node 4 5 INF 1 Node 5 INF Node 6 5 INF 3 Node 6 Node 7 Node 7 INF

Dijkstra’s Algorithm Distance From 2 1 3 4 5 8 Node 1 4 3 Node 6 (5) For viktade grafer! Distance From 2 1 3 4 5 8 Node 1 Node 2 Node 1 4 3 Node 6 (5) Node 2 6 1 Node 4 (5) Node 5 (8) Node 3 - Node 3 Node 4 Node 5 Node 7 (9) Node 2 (6) Node 4 5 1 Node 5 INF 8 4 Node 6 5 3 Node 6 Node 7 Node 7 INF 9 4

Dijkstra’s Algorithm Distance From 2 1 3 4 5 8 Node 1 4 3 Node 2 (6) För viktade grapher! Distance From 2 1 3 4 5 8 Node 1 Node 2 Node 1 4 3 Node 2 (6) Node 5 (7) Node 2 6 1 Node 5 (8) Node 3 - Node 3 Node 4 Node 5 Node 7 (9) Node 4 5 1 Node 5 7 8 4 2 Node 6 5 3 Node 6 Node 7 Node 7 8 9 5 4

Dijkstra’s Algorithm Node 1 3 Node 2 1 3 Node 1 Node 2 Node 3 Node 4 För viktade grapher! Node 1 3 Node 2 1 3 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Distance From - 4 5 3 1 6 7 2 8 Node 6 Node 7 Node 1 Node 2 Node 5 Node 3 Node 4 2 1 3 4 5 8 Node 3 Node 4 1 3 Node 5 2 1 3 Node 6 3 Node 7 5 2 1 3