© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 8 Relationer, prioritetsköer och grafer.

Slides:



Advertisements
Liknande presentationer
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
Advertisements

Föreläsning 6 Slumptal Testa slumptal Slumptal för olika fördelningar
© 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
Logikprogrammering Ons, 25/9
Kurslitteraturen består av 11 kapitel som var och en belyser olika delar av automatiseringstekniken. De utgör fristående delar men har en gemensam röd.
© 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.
DoA VT -07 © Anders Broberg, Lena Kallin Westin, 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.
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.
Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
FL2 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
732G22 Grunder i statistisk metodik
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 1.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 1.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 6 Asymtotisk analys.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 7 Träd.
DAV B04 - Databasteknik Indexering (kap 14).
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 7: Deadlocks.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning l5 Abstrakta datatyper och algoritmdesign.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
1 ITK:P1 Föreläsning 7 Algoritmer och datastrukturer DSV Marie Olsson.
Vektorer (klassen Vector) Sortering
Algoritmer och datastrukturer
1.Välj en nod vilken som helst och markera den som öppen. Låt den bli rot. A R B F C D E G
Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Bredden-först exempel ABCD EFGH IJKL MNOP = Obesökt.
F. Drewes, Inst. f. datavetenskap1 Föreläsning 11: Funktionella språk Funktioner och variabler i matematiken Funktionella språk LISP, ML och.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 11 Trie, Sökning och Sökträd.
Datastrukturer och algoritmer
Logikprogrammering 21/10 Binära träd
Datastrukturer och algoritmer
Läsbar prolog CM 8.1. allmäna principer correctness user-friendliness efficiency readability modifiability robustness documentation.
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.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 16.
Institutionen för matematik, KTH Mats Boij 5B1118 Diskret matematik 27 november B1118 Diskret matematik Tionde föreläsningen Bipartita grafer.
Datastrukturer och algoritmer
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Institutionen för matematik, KTH Mats Boij 5B1118 Diskret matematik 26 november B1118 Diskret matematik Nionde föreläsningen Grafer.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 13.
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:
Föreläsning 11 Logik med tillämpningar Innehåll u Generell resolution u Kapitel i Ben-Ari.
Föreläsning 9 Logik med tillämpningar Innehåll u Semantiska tablåer i predikatlogiken u Klausulform u Herbrandmodeller u Kapitel 3.5,
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
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 12.
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.
Föreläsning 16 Logik med tillämpningar Innehåll u Information kring kursvärdering och tentagenomgång u Genomgång av övningstenta 2.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 13 Sortering.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 10.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Gruppövning 0.
Datastrukturer och algoritmer
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 14.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 4.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 8-9 Relationer, prioritetsköer, grafer och grafalgoritmer.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 16.
Växjö 14 april -04Språk & logik: Finita automater1 DAB760: Språk och logik 14/4:Finita automater Leif Grönqvist Växjö Universitet.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Hash Tabeller och Graf.
Relationer, prioritetsköer, grafer och grafalgoritmer
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 8 Relationer, prioritetsköer och grafer

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Innehåll  Relationer  Snabb genomgång, resten läses på egen hand.  Prioritetsköer  Modell, organisation, konstruktioner, implementationer  Grafer  Modell, organisation, konstruktioner, implementationer  Kapitel 16, och i kursboken

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Relationer  En instans av datatypen Relationer består av alla de relationer (relationsobjekt) som kan bildas ur en domänbas för instansen.  ”Kurstillfällen” är en relation över domänmängden (Kurskoder, År, Termin, Del av termin) med element som (TDBA36, 03, VT, 1) och (TDBA47, 03, VT, 2)  ”Läsperioder” är en annan relation över samma mängd med element som (03, VT, 1), (98, HT, 3) etc.  En relationsdatatyp kan alltså ha relationsobjekt med olika aritet.

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Modell av Relation  Ofta beskriver man en relation med hjälp av en tabell över de element som ingår i relationen.  Relationen Kursansvar: Anders BrobergTDBA36 Johan EliassonTDBA63 Lena Kallin WestinTDBA47 Helena LindgrenTDBD06 ……

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Tillämpningar av Relation  Relationsdatabaser  Vilka lärare undervisar på våren? LärareKurskod Anders BrobergTDBA36 Johan EliassonTDBA63 Lena Kallin WestinTDBA47 Helena LindgrenTDBD06 …… KurskodÅrTerminPeriod TDBA3603VT1 TDBA6303VT1 TDBA4703VT2 TDBD0602HT3 …………

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Prioritetskö  Modell: Patienterna på en akutmottagning, man kommer in i en viss tidsordning men behandlas utifrån en annan ordning.  Organisation: En mängd vars grundmängd är linjärt ordnad av en prioritetsordning.  Avläsningar och borttagningar görs endast på de element som har högst prioritet.  Andra mängdoperationer är inte aktuella

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Specifikation av prioritetskö  Gränsytan Pqueue(val, R): Empty()  Pqueue(val, R) Insert(v:val, p:Pqueue(val, R))  Pqueue(val, R) Isempty(p:Pqueue(val, R))  Bool Inspect-first (p:Pqueue(val, R))  val Delete-first (p:Pqueue(val, R))  Pqueue(val, R)  R är relationen för prioritetsordningen.  Ibland slås de två sista metoderna ihop.  Ytan ovan förutsätter statisk prioritet. Vill man ha dynamisk prioritet måste en update- metod finnas.

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Specifikation av prioritetskö  Man kan också tänka sig att prioritetskön tar element (val) som består av ett värde och en prioritet.  Förra fallet antog man att värde = prioritet  Gränsytan kan varieras på flera sätt  update har vi redan nämnt  Vi kan också vilja finna det högsta/minsta prioritetsvärdet i kön

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Stack och kö är specialfall av prioritetskön!  Om R är den totala relationen, dvs gäller för alla par av värden blir prioritetskön en stack.  Om R är den tomma relationen, dvs inte gäller för några par av värden, blir det en kö.  Dessutom:  Om R är en strikt partiell ordning, som ”>”, kommer lika element behandlas som en kö.  Om R är icke-strikt, som ”≥” behandlas lika element som en stack. Se axiomen på s 294!

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Konstruktioner av Prioritetskö  Man utgå från konstruktioner av Mängd eller Lexikon  Men de har vi inte stött på än…  Lista, ej sorterad  Insert O(1), Delete-first O(n)  Lista, sorterad  Insert O(n), Delete-first O(1)

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Konstruktioner av Prioritetskö  Man kan också använda ett partiellt sorterat binärt träd (kallas också för Hög/Heap).  Etiketterna är sorterade efter en relation R så att a är förälder till b endast om a är före b i ordningen som ges av R.  Insättningar och borttagningar görs så att trädet hålls komplett.  Insert O(log n), Delete-first O(log n) Se figur och s 296!

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Tillämpningar  Operativsystem som fördelar jobb mellan olika processer  Enkelt sätt att sortera något.  Stoppa in allt i en prioritetskö och plocka ut det igen.  Hjälpmedel vid traversering av graf  Jmfr att stack och kö används vid traversering av träd.

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Graf  Modell:  Vägkarta med enkelriktade gator utritade.  Tillämpningar  Signaturdiagrammen  Elektroniska kretsar  Nätverk (gator, flygrutter, kommunikation)  Neurala nätverk  … Se figur 17.1 s 337 och 17.3 s 340!

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Mängorienterad specifikation (vanlig inom matematiken)  En graf G = (V, E) består av  V : en mängd av noder (vertices)  E : en mängd av bågar (edges) som binder samman noderna i V. oEn båge e = (u, v) är ett par av noder. ab c de V = {a, b, c, d, e} E = {(a,b), (a,c), a,d), (b,e), (c,d), (c,e), (d,e)}

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Navigeringsorienterad specifikation  En graf är en mängd med noder där man till varje nod associerar en grannskapsmängd av noder som kallas grannar.  Alla noder tillhör samma typ  Alla ordnade par av en godtycklig nod och en av noderna i dess grannskapsmängd utgör en båge.  Denna specifikation passar ofta bättre i algoritmer eftersom de förutsätter effektiva navigeringsoperationer.

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Riktade/oriktade grafer  Oriktade grafer  Bågen är en mängd av två noder. Noderna är grannar till varandra.  Gradtalet = Antalet bågar till grannar (eller sig själv)  Riktade grafer  Bågen är ordnade par av noder.  Gradtalet indelas i oIngradtalet = antalet bågar som går till noden oUtgradtalet = antalet bågar som startar i noden och går till en annan nod. ab c de ab c de

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Bokens informella specifikation: Empty – konstruerar en tom graf utan noder och bågar Insert-node(v, g) – sätter in noden v i grafen g Insert-edge(e, g) – sätter in en båge e i grafen g. Det förutsätts att noderna finns i grafen Isempty(g) – testar om grafen g är tom, dvs utan noder Has-no-edges(g) – testar om grafen g saknar bågar Choose-node(g) – väljer ut en nod ur grafen g Neighbours(v, g) – mängden av alla grannar till v i grafen g Delete-node(v, g) – tar bort noden v ur grafen g, förutsatt att v inte ingår i någon båge Delete-edge(e, g) – tar bort bågen e ur grafen g

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Terminologi  Väg/stig (path): En sekvens av noder v 1, v 2, …, v n så att v i och v i+1 är grannar.  I figuren ovan, a, b, e, c  Enkel väg (simple path): Inga noder förekommer två gånger i vägen.  Cykel (cycle): En enkel väg där den sista noden i sekvensen är densamma som den första. ab c de

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Terminologi  Sammanhängande (connected) graf  Varje nod har en väg till varje annan nod.  Delgraf (subgraf) en delmängd av noderna och kanterna som formar en graf.  Sammanhängande komponenter  En sammanhängande subgraf  Grafen uppe till höger har två sammanhängande komponenter. ab c de ab c de

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Connectivity (nåbarhet)  Låt n = antalet noder och m = antalet bågar.  En komplett graf (complete graph) får man när alla noder är grannar till alla andra.  I en komplett oriktad graf är m = n(n-1)/2  För ett träd gäller m = n-1  Om m < n-1 så är grafen inte sammanhängande ab dc m=5, n =6 m=6, n =4 ab c de m=3, n =5

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Digraph och DAGs  DiGraph = Directed graph  dvs riktad graf  kan vara sammanhängande (dvs vägar finns från alla till alla noder)  kan ha sammanhängande komponenter  DAG = Directed Acyclic Graf  dvs, en riktad graf utan cykler ab c de ab c de

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Mer grafer…  Viktad graf  En graf där bågarna har vikter  Multigraf  Tillåtet med flera bågar mellan två noder. Dessa bågar har då olika egenskaper som måste lagras.  Ordnad graf har inbördes ordning mellan grannarna till en nod.

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Konstruktion av grafer  Förbindelsematris  Bågarna representeras av ettor i en matris.  Rad 1 visar vilka bågar man kan nå från a.  Kolumn 3 visar från vilka noder det kommer bågar till c. + Enkel att implementera och passar när man har siffror på noder och bågar. -Matrisen kan bli stor och gles och kräva specialtrick ab c de

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Konstruktion av grafer  Graf som fält av lista.  Listan är grannskapslistan.  Man utgår att det finns minst en båge från varje nod (Fält) men inte att går en båge från varje nod till varje annan nod (därför Lista). + Inte lika utrymmeskrävande som en gles matris. Utrymmet = O(n+m) - Fixt antal noder ab c de a b c d e c c c b de e

Datastrukturer och algoritmer VT © Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Grafalgoritmer  Traversera  Bredden-först och djupet-först  Konstruera ett uppspännande träd  Finna vägarna från en nod till alla andra noder  Man kan vilja hitta kortaste vägen mellan två noder  Finna maximala flödet  Finna det maximala flödet mellan två noder