ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Σχετικά έγγραφα
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Αλγόριθμοι και πολυπλοκότητα Τα συντομότερα μονοπάτια(shortest Paths)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 2: Εφαρμογές Δικτυωτής Ανάλυσης (1 ο Μέρος)

Αλγόριθμοι και πολυπλοκότητα Περιήγηση Πανεπιστημίων

Αλγόριθμοι και πολυπλοκότητα Συγχωνευτική Ταξινόμηση

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Εισαγωγή στους Αλγορίθμους

Διοικητική Λογιστική

Εισαγωγή στους Αλγορίθμους Ενότητα 10η

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Ενδεικτικές λύσεις ασκήσεων διαχείρισης έργου υπό συνθήκες αβεβαιότητας

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Αλγόριθμοι και πολυπλοκότητα Minimum Spanning Trees

1 η Διάλεξη. Ενδεικτικές λύσεις ασκήσεων

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Εισαγωγή στους Αλγορίθμους

Αλγόριθμοι και πολυπλοκότητα Οριζόντια διερεύνηση

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 3: Εφαρμογές Δικτυωτής Ανάλυσης (2 ο Μέρος)

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Μάρκετινγκ Αγροτικών Προϊόντων

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Ψηφιακή Επεξεργασία Εικόνων

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Διαφήμιση και Δημόσιες Σχέσεις Ενότητα 9: Σχέσεις διαφημιστή-διαφημιζόμενου

Διοικητική Λογιστική

Μηχανολογικό Σχέδιο Ι

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Βάσεις Περιβαλλοντικών Δεδομένων

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 5

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Αλγόριθμοι και πολυπλοκότητα Μελανέρυθρα δεντρα

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 8

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Σχεδίαση Δικτύων Υπολογιστών

Πληροφοριακά Συστήματα Διοίκησης (ΜΒΑ) Ενότητα 1: Δικτυωτή Ανάλυση (Θεωρία Γράφων)

Προσχολική Παιδαγωγική Ενότητα 2: Οργάνωση χρόνου και χώρου στα νηπιαγωγεία

Βάσεις Περιβαλλοντικών Δεδομένων

Εισαγωγή στη Δικτύωση Υπολογιστών

Δομές Δεδομένων Ενότητα 1

Αλγόριθμοι και πολυπλοκότητα Ταχυταξινόμηση (Quick-Sort)

Κβαντική Επεξεργασία Πληροφορίας

Βάσεις Δεδομένων. Ενότητα 1: Εισαγωγή στις Βάσεις δεδομένων. Πασχαλίδης Δημοσθένης Τμήμα Ιερατικών σπουδών

Διδακτική Πληροφορικής

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Γραμμική Άλγεβρα και Μαθηματικός Λογισμός για Οικονομικά και Επιχειρησιακά Προβλήματα

Τεχνικό Σχέδιο - CAD

Εισαγωγή στην Διοίκηση Επιχειρήσεων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δομές Δεδομένων. Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Βέλτιστος Έλεγχος Συστημάτων

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 4: ΑΝΑΠΑΡΑΣΤΑΣΗ ΔΕΔΟΜΕΝΩΝ - ΔΕΝΤΡΑ

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Στατιστική. 6 ο Μάθημα: Διαστήματα Εμπιστοσύνης και Έλεγχοι Υποθέσεων. Γεώργιος Μενεξές Τμήμα Γεωπονίας ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

Μάρκετινγκ Αγροτικών Προϊόντων

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.3: Μεθοδολογία εφαρμογής προγράμματος Ολικής Ποιότητας

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 6

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Τεχνικό Σχέδιο - CAD

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 4

Μυελού των Οστών Ενότητα #1: Ερωτήσεις κατανόησης και αυτόαξιολόγησης

Μάρκετινγκ Αγροτικών Προϊόντων

ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΚΑΛΑΘΟΣΦΑΙΡΙΣΗΣ ΙΙ

Εκπαιδευτική Διαδικασία και Μάθηση στο Νηπιαγωγείο Ενότητα 1: Εισαγωγή

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

Διοίκηση Ολικής Ποιότητας & Επιχειρηματική Αριστεία Ενότητα 1.3.2: Παραδοσιακή VS νέα προσέγγιση της ΔΟΠ

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Διαχείριση Πολιτισμικών Δεδομένων

Οικονομική Γεωργικών Εκμεταλλεύσεων

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Ιστορία της μετάφρασης

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Αλγόριθμοι και πολυπλοκότητα Δυναμικός Προγραμματισμός

Τεχνικό Σχέδιο - CAD. Τόξο Κύκλου. Τόξο Κύκλου - Έλλειψη. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Ενδεικτικές λύσεις ασκήσεων διαγραμμάτων περίπτωσης χρήσης (1ο Μέρος)

Μαθηματικά Διοικητικών & Οικονομικών Επιστημών

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Κβαντική Επεξεργασία Πληροφορίας

Εισαγωγή στους Η/Υ. Ενότητα 2β: Αντίστροφο Πρόβλημα. Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών

Το Εικονογραφημένο Βιβλίο στην Προσχολική Εκπαίδευση

Transcript:

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Δομές Δεδομένων Ιωάννης Γ. Τόλλης Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Κρήτης» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Σημείωμα αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση, Όχι Παράγωγο Έργο 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί.. 3

Το συντομότερο μονοπάτι 0 A 4 7 1 B C D 5 3 9 5 E F 3 Shortest Path 4

Κύρια σημεία για μελέτη Συντομότερο μονοπάτι Ζυγισμένος γράφος Το πρόβλημα του συντομότερου μονοπατιού Ιδιότητες του συντομότερου μονοπατιού Ο αλγόριθμος του Dijkstra( 7.1.1) Ο αλγόριθμος Edge relaxation Παράδειγμα Ανάλυση Shortest Path 5

Ζυγισμένος γράφος Σε έναν ζυγισμένο γράφο, κάθε ακμή έχει μια σχετιζόμενη αριθμητική τιμή, που ονομάζεται βάρος της ακμής Τα βάρη των ακμών μπορεί να αναπαριστούν,αποστάσεις, κόστη, κλπ. παράδειγμα: Σε έναν γράφο πορείας πτήσεων, το βάρος μιας ακμής αναπαριστά την απόσταση σε μίλια ανάμεσα σε δύο αεροδρόμια SFO ORD PVD LGA HNL LAX DFW MIA Shortest Path 6

Το πρόβλημα του συντομότερου μονοπατιού Δοθέντος ενός ζυγισμένου γράφου και δύο κόμβων u και v, θέλουμε να βρούμε το μονοπάτι του ελάχιστου συνολικού βάρους ανάμεσα στον u και στον v Εφαρμογές Κρατήσεις πτήσεων Πορείες οδήγησης Δρομολόγηση πακέτων στο διαδίκτυο Shortest Path 7

Το πρόβλημα του συντομότερου μονοπατιού Παράδειγμα: Το συντομότερο μονοπάτι ανάμεσα στην Providence και στην Honolulu SFO ORD LGA PVD HNL LAX DFW MIA Shortest Path

Ιδιότητα 1: Ιδιότητες του συντομότερου μονοπατιού Ένα υπο-μονοπάτι ενός ελάχιστου μονοπατιού είναι από μόνο του ελάχιστο μονοπάτι Ιδιότητα : Υπάρχει ένα δέντρο ελάχιστων μονοπατιών από έναν αρχικό κόμβο σε όλους τους άλλους κόμβους Παράδειγμα: Δέντρο συντομότερων μονοπατιών από Providence SFO ORD LGA PVD HNL LAX DFW MIA Shortest Path 9

Ο αλγόριθμος του Dijkstra Η απόσταση ενός κόμβου v από έναν κόμβο s είναι το μήκος ενός συντομότερου μονοπατιού ανάμεσα στον s και στον v Ο αλγόριθμος Dijkstra υπολογίζει τις αποστάσεις όλων των κόμβων από έναν αρχικό κόμβο s Υποθέσεις: Ο γράφος είναι συνδεδεμένος Οι ακμές δεν είναι κατευθυνόμενες Τα βάρη των ακμών είναι θετικά Δημιουργούμε ένα σύννεφο από κόμβους, ξεκινώντας με τον s και καλύπτοντας σταδιακά όλους τους κόμβους Αποθηκεύουμε με κάθε κόμβο v μια ετικέτα d(v) που αναπαριστά την απόσταση του v από τον s στον υπογράφο στον υπογράφο που αποτελείται από το σύννεφο και τους προσκείμενους κόμβους Σε κάθε βήμα Προσθέτουμε στο σύννεφο τον κόμβο u έξω από το σύννεφο με την μικρότερη ετικέτα απόστασης Ενημερώνουμε τις ετικέτες των κόμβων που είναι προσκείμενες στον u Shortest Path 10

Edge Relaxation Θεωρείστε μια ακμή e = (u,z) έτσι ώστε u είναι ο κόμβος που προστέθηκε τελευταίος στο σύννεφο s d(u) = 50 u d(z) = 75 z Ο z δεν είναι στο σύννεφο Το relaxation μιας ακμής e ενημερώνει την τιμή d(z) ως εξής d(z) min(d(z),d(u) + weight(e) s d(u) = 50 u d(z) = 60 z Shortest Path 11

Παράδειγμα B 0 A 7 1 C 4 D 4 B 0 A 7 1 C 4 D 3 3 9 5 E F 5 3 9 5 E F 0 0 A 4 A 4 3 B 7 C 1 7 D 7 1 B C D 5 3 9 11 5 3 9 5 E F E F 5 Shortest Path 1 3

Παράδειγμα (συν.) B 7 0 A 7 1 C 4 D 3 5 3 9 5 E F B 7 0 A 7 1 C 4 D 3 5 3 9 5 E F Shortest Path 13

Ο αλγόριθμος του Dijkstra Μια ουρά προτεραιότητας αποθηκεύει τους κόμβους έξω από το σύννεφο Key: απόσταση Element: κόμβος Locator-based μέθοδοι insert(k,e) επιστρέφει έναν locator replacekey(l,k) αλλάζει το κλειδί ενός αντικειμένου Αποθηκεύουμε δύο ετικέτες για κάθε κόμβο: απόσταση Τον locator στην ουρά προτεραιότητας Algorithm DijkstraDistances(G, s) Q new heap-based priority queue for all v G.vertices() if v = s setdistance(v, 0) else setdistance(v, ) l Q.insert(getDistance(v), v) setlocator(v,l) while Q.isEmpty() u Q.removeMin() for all e G.incidentEdges(u) { relax edge e } z G.opposite(u,e) r getdistance(u) + weight(e) if r < getdistance(z) setdistance(z,r) Q.replaceKey(getLocator(z),r) Shortest Path 14

Ανάλυση Λειτουργίες του γράφου Η μέθοδος incidentedges καλείται μια φορά για κάθε κόμβο Λειτουργίες ετικετών Θέτουμε και ανακτούμε τις ετικέτες απόστασης και locator ενός κόμβου z O(deg(z)) φορές Ανάθεση/ανάκτηση μιας ετικέτας παίρνει χρόνο O(1) Λειτουργίες ουρών προτεραιότητας Κάθε κόμβος εισάγεται και απομακρύνεται μια φορά από την ουρά προτεραιότητας, και κάθε τέτοια πράξη παίρνει χρόνο O(log n) Το κλειδί ενός κόμβου στην ουρά προτεραιότητας τροποποιείται το πολύ deg(w) φορές, ενώ κάθε αλλαγή κλειδιού παίρνει χρόνο O(log n) Ο αλγόριθμος του Dijkstra εκτελείται σε χρόνο O((n + m) log n) δεδομένου ότι ο γράφος αναπαρίσταται με την adjacency list δομή Θυμηθείτε ότι S v deg(v) = m Ο χρόνος εκτέλεσης μπορεί επίσης να εκφραστεί ως O(m log n) δεδομένου ότι ο γράφος είναι συνδεδεμένος Shortest Path 15

Επέκταση Χρησιμοποιώντας το template method πρότυπο,μπορούμε να επεκτείνουμε τον αλγόριθμο του Dijkstra για να επιστρέφει ένα δέντρο των συντομότερων μονοπατιών από έναν αρχικό κόμβο σε όλους τους άλλους Αποθηκεύουμε για κάθε κόμβο μια Τρίτη ετικέτα Την ακμή πατέρα στο δέντρο συντομότερων μονοπατιών Στο βήμα του edge relaxation step, ενημερώνουμε την ακμή πατέρα Algorithm DijkstraShortestPathsTree(G, s) for all v G.vertices() setparent(v, ) for all e G.incidentEdges(u) { relax edge e } z G.opposite(u,e) r getdistance(u) + weight(e) if r < getdistance(z) setdistance(z,r) setparent(z,e) Q.replaceKey(getLocator(z),r) Shortest Path 16

Τέλος Ενότητας