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

Σχετικά έγγραφα
Εισαγωγή στους Αλγορίθμους

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 11η Άσκηση - Σταθμισμένος Χρονοπρογραμματισμός Διαστημάτων

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

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

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

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

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

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

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

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

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Εφαρμογές πληροφορικής σε θέματα πολιτικού μηχανικού

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

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

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

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

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

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

Εφαρμογές των Τεχνολογιών της Πληροφορίας και των Επικοινωνιών στη διδασκαλία και τη μάθηση

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

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

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

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

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

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

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

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

Εισαγωγή στην Πληροφορική

Εκκλησιαστικό Δίκαιο

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

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

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

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

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

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

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

Ιδιότητες και Τεχνικές Σύνταξης Επιστημονικού Κειμένου

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

Ιδιότητες και Τεχνικές Σύνταξης Επιστημονικού Κειμένου

Transcript:

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Διδάσκων Χρήστος Ζαρολιάγκης Καθηγητής Τμήμα Μηχανικών Η/Υ & Πληροφορικής Πανεπιστήμιο Πατρών Email: zaro@ceid.upatras.gr

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

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

Σκοποί ενότητας Ορισμός συντομότερης διαδρομής Ανάλυση μοντέλου εύρεσης συντομότερων διαδρομών Περιγραφή και ανάλυση του αλγορίθμου του Dijkstra 4

Περιεχόμενα ενότητας Συντομότερες Διαδρομές Αλγόριθμος Dijkstra 5

Άπληστοι Αλγόριθμοι Συντομότερες Διαδρομές Αλγόριθμος Dijkstra

Συντομότερες Διαδρομές σε ένα Γράφημα Εικόνα 1 7

Πρόβλημα Συντομότερης Διαδρομής Δίκτυο συντομότερων διαδρομών. Κατευθυνόμενο γράφημα G = (V, E) Αφετηρία s, προορισμός t e (e) 0 : κόστος της ακμής e (P) = Σ e P (e) : κόστος διαδρομής P Πρόβλημα συντομότερης διαδρομής s-t : βρείτε τη συντομότερη (κατευθυνόμενη) διαδρομή από τον s στον t. Κόστος συντομότερης s-t διαδρομής δ(s,t) 9 a 23 b s 15 14 5 c 20 30 d 18 11 2 16 e 6 6 19 Κόστος διαδρομής (s,a,b,d,t) = 9 + 23 + 2 + 16 = 50 f 44 t 8

Συντομότερες Διαδρομές Ιδιότητα. Έστω P = (v 1,, v k ) μια συντομότερη v 1 - v k διαδρομή. Τότε, οποιαδήποτε υποδιαδρομή (v i,, v j ), 1 i < j k, της P είναι μια συντομότερη v i - v j διαδρομή. 9 a 23 b s 14 c 18 2 6 15 5 20 30 d 11 16 e 6 19 f 44 t 9

Συντομότερες Διαδρομές ΣΔ από Αφετηρία (ΣΔΑ). Έστω s V διακεκριμένος κόμβος του G = (V, E). Ζητείται τα βρεθούν οι ΣΔ s-t για κάθε t V. Ιδιότητα. Η λύση του ΣΔΑ είναι ένα γεννητικό δένδρο T του G με ρίζα τον s, που ονομάζεται Δένδρο Συντομότερων Διαδρομών. Το κόστος μιας διαδρομής s-v στο T ισούται με δ(s,v) (κόστος ΣΔ στο G). 9 a 23 b s 14 c 18 2 6 15 5 20 30 d 11 16 e 6 19 f 44 t 10

Αλγόριθμος Dijkstra Αλγόριθμος Dijkstra. Διατήρηση ετικέτας d(v), v V (απόσταση v από s) Διατήρηση συνόλων S (κόμβοι u S με d(u) = δ(s,u)) και S = V S (κόμβοι v S με d(v) δ(s,v)) Αρχικά S = Ø, S = V, d(s) = 0. Εικόνα 2 Επαναληπτικά, διάλεξε τον κόμβο v S με την ελάχιστη προσωρινή ετικέτα d(v), διέγραψε τον από το S και πρόσθεσέ τον στο S (v,z) E: if d(z) > d(v) + (v,z) then d(z) = d(v) + (v,z) d(v) S s d(u) u v e z d(z) 11

Αλγόριθμος Dijkstra Αλγόριθμος Dijkstra. Διατήρηση ετικέτας d(v), v V (απόσταση v από s). Διατήρηση συνόλων S (κόμβοι u S με d(u) = δ(s,u)) και S = V S (κόμβοι v S με d(v) δ(s,v)) Αρχικά S = Ø, S = V, d(s) = 0. Εικόνα 2 Επαναληπτικά, διάλεξε τον κόμβο v S με την ελάχιστη προσωρινή ετικέτα d(v), διέγραψε τον από το S και πρόσθεσέ τον στο S (v,z) E: if d(z) > d(v) + (v,z) then d(z) = d(v) + (v,z) d(v) S s d(u) u v e z d(z) 12

Αλγόριθμος Dijkstra Απόδειξη Ορθότητας Ιδιότητα. u S, d(u) είναι το μήκος της συντομότερης διαδρομής s-u. Απόδειξη. (με επαγωγή στο S ) Βάση επαγωγής: Για S = 1 ισχύει (d(s) = 0). Επαγωγική υπόθεση: Υποθέτουμε ότι ισχύει για S = k 1. Έστω v ο επόμενος κόμβος που προστίθεται στο S, και έστω (u,v) η επιλεγμένη ακμή Συντομότερη διαδρομή s-u (u,v) διαδρομή s-v κόστους d(v) Έστω P οποιαδήποτε s-v διαδρομή Θα δείξουμε ότι δεν είναι συντομότερη από αυτή με κόστος d(v) Έστω (x,y) η πρώτη ακμή της P που φεύγει από το S, και έστω P η υποδιαδρομή s-x P' s P x y (P) (P') + (x,y) = d(x) + (x, y) = d(y) d(v) S u v Μη αρνητικά κόστη Επαγωγική υπόθεση Ορισμός d(y) Ο Dijkstra επέλεξε τον v αντί του y 13

Αλγόριθμος Dijkstra Υλοποίηση Επόμενος κόμβος προς εξερεύνηση = κόμβος με ελάχιστο d(v) Εξερεύνηση v: προσκείμενη ακμή e = (v, z), ενημέρωση d(z) = d(v) + (v,z) Αποδοτική υλοποίηση. Διατηρήστε το S σαν μια ουρά προτεραιότητας (PQ) από κόμβους με προτεραιότητα d(v). Dijkstra(G,, s) { foreach (v V) {d[v] = ; π[v] = 0;} Αρχικοποίησε μια άδεια ουρά προτεραιότητας Q; d[s]=0; Insert(Q,s); while (Q δεν είναι άδεια) { v ExtractMin(Q) // διαγραφή του Priority στοιχείου Queue με ελάχιστο d[] foreach e = (v,z) Ε { M = d[v] + (v,z); if (π[z] = 0 z s) then {d[z] = M; Insert(Q,z); π[z] = v} // αν d[z] =, εισαγωγή στην Q else if d[z]> M then {d[z] = M; ChangeKey(Q,z); π[z] = v} // μείωση προτεραιότητας } } 14

Αλγόριθμος Dijkstra Υλοποίηση Επόμενος κόμβος προς εξερεύνηση = κόμβος με ελάχιστο d(v) Εξερεύνηση v: προσκείμενη ακμή e = (v, z), ενημέρωση d(z) = d(v) + (v,z) Αποδοτική υλοποίηση. Διατηρήστε το S σαν μια ουρά προτεραιότητας (PQ) από κόμβους με προτεραιότητα d(v). Priority Queue Λειτουργία PQ Dijkstra Πίνακας Δυαδ. Σωρός d-μερής Σωρός Ουρά Fib Insert n n log n d log d n 1 ExtractMin n n log n d log d n log n ChangeKey m 1 log n log d n 1 IsEmpty n 1 1 1 1 Σύνολο n 2 m log n m log m/n n m + n log n Ουρά Fibonacci: τα όρια των διακριτών λειτουργιών είναι επιμερισμένοι χρόνοι 15

Βιβλιογραφία 1. J. Kleinberg and E. Tardos, Σχεδιασμός Αλγορίθμων, ελληνική έκδοση, Εκδόσεις Κλειδάριθμος, 2008 2. T. Cormen, C. Leiserson, R. Rivest, and C. Stein, Εισαγωγή στους Αλγορίθμους, ελληνική έκδοση, Πανεπιστημιακές Εκδόσεις Κρήτης, 2012 3. K. Mehlhorn and P. Sanders, Αλγόριθμοι και Δομές Δεδομένων Τα βασικά εργαλεία, ελληνική έκδοση, Εκδόσεις Κλειδάριθμος, 2014 4. S. Dasgupta, C. Papadimitriou, and U. Vazirani, Αλγόριθμοι, ελληνική έκδοση, Εκδόσεις Κλειδάριθμος, 2008 5. Θ. Παπαθεοδώρου, Αλγόριθμοι: Εισαγωγικά Θέματα και Παραδείγματα, Εκδόσεις Πανεπιστημίου Πατρών, 1999 16

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

Σημείωμα Ιστορικού Εκδόσεων Έργου Το παρόν έργο αποτελεί την έκδοση 1.0. 18

Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Χρήστος Ζαρολιάγκης, 2014. «Εισαγωγή στους Αλγορίθμους». Έκδοση: 1.0. Πάτρα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ceid1083 19

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

Πηγές εικόνων - Χρήση Έργων Τρίτων Εικόνα 1: σελ. 6, https://www.google.gr/maps (δημιουργήθηκε χρησιμοποιώντας την υπηρεσία Google Maps) Εικόνα 2: σελ. 10-11, http://en.wikipedia.org/wiki/eindhoven_university_of_technology#mediaviewer/file:edsge r_wybe_dijkstra.jpg 21

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 22