Presentation laddar. Vänta.

Presentation laddar. Vänta.

För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.

Liknande presentationer


En presentation över ämnet: "För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph."— Presentationens avskrift:

1 För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph

2 För utveckling av verksamhet, produkter och livskvalitet. Köer med prioritet, varför? Ett behov av olika prioritesnivåer. Skrivare-kö 1-sida skrivs ut/ 100-sidor skrivs ut TCP/IP Stack ”Fast-lane” för real tid trafik (RT) Real-tid system Schemaläggning

3 För utveckling av verksamhet, produkter och livskvalitet. Prioritets tilldellning.Hur? Varje uppgift / objekt i kön innehåller också ett prioritet-nummer Vanligtviss positiva heltal Där största värde har minsta prioritet

4 För utveckling av verksamhet, produkter och livskvalitet. Mer om priority queues… Viktiga operationer Lägg till, nya objekt … med tilldelning av prioritet insert() Hitta, objektet med högst prioritet … den mista prioritet-nummer findMin() Ta bort, objektet med högst prioritet deleteMin() (put, get, remove) or (enqueue, peek, dequeue)

5 För utveckling av verksamhet, produkter och livskvalitet. Passande datastruktur? Snaba insert Helst konstant tid ! Snabba romove och sökning Helst konstant tid ! En kompromis datastruktur mellan kö och binära träd…..??

6 För utveckling av verksamhet, produkter och livskvalitet. Ordnad länkad-lista insert() konstant tid! findMin() Linjär tid… H H T T 4 4 2 2 3 3

7 För utveckling av verksamhet, produkter och livskvalitet. Sorterad länkad-lista insert() Linjär tid… findMin() Konstant tid! H H T T 4 4 2 2 3 3

8 För utveckling av verksamhet, produkter och livskvalitet. Binära sökträd insert() log N findMin() log N

9 För utveckling av verksamhet, produkter och livskvalitet. Binära sökträd insert() log N findMin() log N

10 För utveckling av verksamhet, produkter och livskvalitet. Balancerade binära träd insert() log N findMin() log N Kräver ”hårt” arbete för balancering

11 För utveckling av verksamhet, produkter och livskvalitet. Kompromis – Binary Heap Kombination av två egenskaper Strukturell egenskap Representeras inplicit Order egenskap Heap-order

12 För utveckling av verksamhet, produkter och livskvalitet. Structurell egenskap Implicit representation Representeras som ett komplett binär träd med array För ett objekt på array-position x: Left child på array-position 2x Rigth child på array-position 2x + 1 Parent at array-position x/2 102345678 Root

13 För utveckling av verksamhet, produkter och livskvalitet. Order egenskap Heap-order För ett objekt X som har parent P gäller: X’s priority key has to be greater than P’s priority key Objektet med den minsta prioritets- nummer ( högst prioritet) finns alltid i rooten. Konstant tid for findMin()!

14 För utveckling av verksamhet, produkter och livskvalitet. Exempel – insert() 21 24 31 65 26 32 14 16 68 19 13 Percolate up

15 För utveckling av verksamhet, produkter och livskvalitet. Exempel – Remove() 16 68 19 13 14 24 21 65 26 32 31 Percolate down

16 För utveckling av verksamhet, produkter och livskvalitet. … Hur bra är den? insert() log N -- Worstcase Konstant tid -- Average deleteMin() log N – Worstcase AND as an average

17 För utveckling av verksamhet, produkter och livskvalitet. Prioritets kö för sortering – Heapsort Använder a max heap Heapsort 1.(Strukturerar data ) 2.Bygger heap 3.Använder deleteMax för att ta bort data O(N log N) (worst-case)

18 För utveckling av verksamhet, produkter och livskvalitet. Graph och graph-algoritmer Data Structures & Problem Solving using Java -- Kapitel 14

19 För utveckling av verksamhet, produkter och livskvalitet. Några enkla graf teorier Hur IP trafik hittar destinationen i Internät ? GPS-system ? Hur hittas om det finns ett förbindelae mellan A->B? Hur man beräknar den kortaste vägen mellan dator A och B ?

20 För utveckling av verksamhet, produkter och livskvalitet. Terminology Vertices & edges ( Noder och förbindelse) Paths (väg) Viktad Oviktad 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) Halmstad Varberg Göteborg Borås Jönköping Växjö 40 70 100 200 120 60 Halmstad Varberg Göteborg Borås Jönköping Växjö 40 70 100 200 120 60

21 För utveckling av verksamhet, produkter och livskvalitet. Mer terminology  Path length Oviktad path length – antalet förbindelse mellan två nod Viktad path length- summan av vikter mellan två nod Halmstad Varberg Göteborg Borås Jönköping Växjö 40 70 100 200 120 60 Halmstad Varberg Göteborg Borås Jönköping Växjö 40 70 100 200 120 60

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

23 För utveckling av verksamhet, produkter och livskvalitet. Ännu mer terminology Graph täthet Refererar till antalet förbindelse i grafen gles graph tät graph ( ~~ N 2 förbindelse ) Node 5Node 4 Node 1Node 2 Node 3Node 6 Node 5Node 4 Node 1Node 2 Node 3Node 6

24 För utveckling av verksamhet, produkter och livskvalitet. Graph representation Adjacent list Varje node håller en länkad lista som innehåller information om grann- noder och vikt. Node 6 Node 7 Node 1Node 2 Node 5Node 3 Node 4 2 1 2 2 6 10 3 1 4 54 8 1 1 2 2 3 3 4 4 5 5 6 6 2 (2) 4 (1) 7 7 5 (10) 4 (3) 1 (4) 6 (5) 5 (2) 7 (4) 6 (8) 3 (2) 7 (6) 6 (1)

25 För utveckling av verksamhet, produkter och livskvalitet. 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 Node 6 Node 7 Node 1Node 2 Node 5Node 3 Node 4 2 1 2 2 6 10 3 1 4 54 8 1 1 2 2 3 3 4 4 5 5 6 6 7 7 1 1 2 2 3 3 4 4 5 5 6 6 7 7 21 310 45 2284 6 1

26 För utveckling av verksamhet, produkter och livskvalitet. Vad är en nod (vertex) ? protected class Vertex { String name; List adjacents; Vertex(String n) { name = n; adjacents = new LinkedList(); }

27 För utveckling av verksamhet, produkter och livskvalitet. Vad är en förbindelse? public class Edge { public Vertex dest; public double cost; public Edge( Vertex d, double c) { dest=d; cost=c; } }

28 För utveckling av verksamhet, produkter och livskvalitet....och Graph klassen public class Graph { public static final double INFINITY = Double.MAX_VALUE; private Map vertexMap = new HashMap ( ); public void addEdge( String sourceName, String destName, double cost ) { Vertex v = getVertex( sourceName ); Vertex w = getVertex( destName ); v.adj.add( new Edge( w, cost ) ); } private Vertex getVertex( String vertexName ) { Vertex v = vertexMap.get( vertexName ); if( v == null ) { v = new Vertex( vertexName ); vertexMap.put( vertexName, v ); } return v; } }

29 För utveckling av verksamhet, produkter och livskvalitet. Viktiga frågor … Den kortaste vägen mellan node A och B Breadth First Algorithm, oviktad graph Dijkstra’s Algorithm, viktad graph

30 För utveckling av verksamhet, produkter och livskvalitet. Breadth First Algorithm För oviktade graphs Node 6 Node 7 Node 1Node 2 Node 5Node 3 Node 4 0 12 3 3 2 1 Node 3 Node 1 Node 6 Node 2 Node 4 Node 5 Node 7 0 1 1 2 2 3 3

31 För utveckling av verksamhet, produkter och livskvalitet. Dijkstra’s Algorithm For viktade graphs! Node 6 Node 7 Node 1Node 2 Node 5Node 3 Node 4 2 1 2 3 1 1 3 1 4 54 8 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Distance From

32 För utveckling av verksamhet, produkter och livskvalitet. Dijkstra’s Algorithm För viktade grapher! Node 6 Node 7 Node 1Node 2 Node 5Node 3 Node 4 2 1 2 3 1 1 3 1 4 54 8 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Distance From 0- Node 1 (4) Node 6 (5) INF 4 5 3 3 Node 2 (6)Node 4 (5) 5 1 6 1

33 För utveckling av verksamhet, produkter och livskvalitet. Dijkstra’s Algorithm For viktade grapher! Node 6 Node 7 Node 1Node 2 Node 5Node 3 Node 4 2 1 2 3 1 1 3 1 4 54 8 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Distance From 0- Node 6 (5) INF 4 5 3 3 Node 2 (6) Node 4 (5) 5 1 6 1 Node 5 (8) Node 7 (9) 8 4 9 4

34 För utveckling av verksamhet, produkter och livskvalitet. Dijkstra’s Algorithm För viktade grapher! Node 6 Node 7 Node 1Node 2 Node 5Node 3 Node 4 2 1 2 3 1 1 3 1 4 54 8 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Distance From 0- 4 5 3 3 Node 2 (6) 5 1 6 1 Node 5 (8) Node 7 (9) 8 4 9 4 7 2 Node 5 (7) 8 5

35 För utveckling av verksamhet, produkter och livskvalitet. Dijkstra’s Algorithm För viktade grapher! Node 6 Node 7 Node 1Node 2 Node 5Node 3 Node 4 2 1 2 3 1 1 3 1 4 54 8 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 Distance From 0- 4 5 3 3 5 1 6 1 7 2 8 5 Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7 3 3 1 1 3 3 1 1 3 3 2 2 1 1 3 3 3 3 5 5 2 2 1 1 3 3


Ladda ner ppt "För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph."

Liknande presentationer


Google-annonser