Αλγόριθµοι και Πολυπλοκότητα

Σχετικά έγγραφα
Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

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

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

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα

Αριθµητική Ανάλυση. Ενότητα 6 Αριθµητική Παραγώγιση και Ολοκλήρωση. Ν. Μ. Μισυρλής. Τµήµα Πληροφορικής και Τηλεπικοινωνιών,

Αλγόριθµοι και Πολυπλοκότητα

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

Τµήµα Πληροφορικής και Τηλεπικοινωνιών

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

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

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

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

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

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

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

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

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

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

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

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

Θεατρικές Εφαρμογές και Διδακτική της Φυσικής Ι

Έλεγχος και Διασφάλιση Ποιότητας Ενότητα 4: Μελέτη ISO Κουππάρης Μιχαήλ Τμήμα Χημείας Εργαστήριο Αναλυτικής Χημείας

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

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

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

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

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

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

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

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

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

Διδακτική των εικαστικών τεχνών Ενότητα 1

Διδακτική των εικαστικών τεχνών Ενότητα 3

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

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

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 7: Αλγόριθμοι γραμμικής άλγεβρας

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

Διδακτική των εικαστικών τεχνών Ενότητα 2

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

Εισαγωγή στις Επιστήμες της Αγωγής

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 6: Αποτελεσματικότητα αλγορίθμων

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

Λειτουργία και εφαρμογές της πολιτιστικής διαχείρισης

Διδακτική των εικαστικών τεχνών Ενότητα 2

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

Φιλοσοφία της Ιστορίας και του Πολιτισμού

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

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

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

Γενική Φυσική Ενότητα: Εισαγωγή στην Ειδική Θεωρία της Σχετικότητας

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

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

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

Ορισμός κανονικής τ.μ.

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

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

Συστήματα Επικοινωνιών

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

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

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

Σχεδίαση CMOS Ψηφιακών Ολοκληρωμένων Κυκλωμάτων

Ανάπτυξη Ανοικτού Ακαδημαϊκού Μαθήματος Ενότητα 1: Παρουσίαση Ανοικτού Ακαδημαϊκού Μαθήματος

P (B) P (B A) = P (AB) = P (B). P (A)

Έλεγχος Ποιότητας Φαρμάκων

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

Εορτολογία. Ενότητα 4: Οι Εορτές της Αναλήψεως και της Πεντηκοστής. Γεώργιος Φίλιας Θεολογική Σχολή Τμήμα Κοινωνικής Θεολογίας

Ηλεκτρονική. Ενότητα 9: Τρανζίστορ Επίδρασης Πεδίου (FET) Αγγελική Αραπογιάννη Τμήμα Πληροφορικής και Τηλεπικοινωνιών

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

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

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 8: ΧΡΗΣΗ ΔΟΜΩΝ ΔΕΝΤΡΟΥ ΚΑΙ ΣΩΡΟΥ ΓΙΑ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΟΣ ΤΑΞΙΝΟΜΗΣΗΣ ΑΛΓΟΡΙΘΜΟΣ HEAPSORT

Διδακτική των εικαστικών τεχνών Ενότητα 2

Έννοιες Φυσικών Επιστημών Ι

Γενική Φυσική Ενότητα: Ταλαντώσεις

Σχεδίαση και Ανάλυση Αλγορίθμων Ενότητα 5: ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΙΚΩΝ ΠΡΟΒΛΗΜΑΤΩΝ-ΑΝΑΓΩΓΗ

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 8: Αναζήτηση και ταξινόμηση

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

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 4: Συναρτήσεις

Λειτουργία και εφαρμογές της πολιτιστικής διαχείρισης

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

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

Μικροοικονομική Ανάλυση της Κατανάλωσης και της Παραγωγής

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

Παιδαγωγική ή Εκπαίδευση ΙΙ

Πρακτική Άσκηση σε σχολεία της δευτεροβάθμιας εκπαίδευσης

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

Ποιοτική μεθοδολογία έρευνας στη Διδακτική των Μαθηματικών Ενότητα 7: Συγγραφή μιας εργασίας

Transcript:

Αλγόριθµοι και Πολυπλοκότητα Ενότητα 3 Αλγόριθµοι Γραφηµάτων Dijkstra Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 1 / 46

Εύρεση Ελάχιστου Μονοπατιού Ιδιότητες ελάχιστου µονοπατιού Αλγόριθµος Dijkstra Πολυπλοκότητα Ορθότητα Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 2 / 46

Μονοπάτια σε γραφήµατα Εστω γράφηµα G = (V, E) µε συνάρτηση ϐάρους w : E R. Τότε το ϐάρος ενός µονοπατιού p = v 1 v 2... v k ορίζεται ως εξής: Παράδειγµα k 1 w(p) = w(v i, v i+1 ). i=1 Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 3 / 46

Ελάχιστα Μονοπάτια Ελάχιστο µονοπάτι από τον κόµβο u στον v είναι ένα απλό µονοπάτι ελάχιστου ϐάρους από τον u στον v. Το ϐάρος του ελάχιστου µονοπατιού από τον u στον v ορίζεται ως δ(u, v) = min{w(p) : p είναι ένα µονοπάτι από τον u στον v.} δ(u, v) = αν δεν υπάρχει µονοπάτι από τον u στον v. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 4 / 46

Καλά Ορισµένα Ελάχιστα Μονοπάτια Αν ένα γράφηµα G περιέχει κύκλο αρνητικού ϐάρους, τότε κάποια ελάχιστα µονοπάτια µπορεί να µην υπάρχουν. Παράδειγµα δ(s, v) = Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 5 / 46

Βέλτιστη Υποδοµή Theorem Ενα υπο-µονοπάτι ενός ελάχιστου µονοπατιού είναι ένα ελάχιστο µονοπάτι. Κόψε και επικόλλησε: (cut and paste) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 6 / 46

Τριγωνική Ανισότητα Εστω G ένα εµβαρές, κατευθυντό γράφηµα µε συνάρτηση ϐάρους w. Τότε δ(u, v) δ(u, x) +δ(x, v) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 7 / 46

Ελάχιστα Μονοπάτια Πρόβληµα: εδοµένου ενός αφετηριακού κόµβου s V, να ϐρεθούν τα ϐάρη των ελάχιστων µονοπατιών δ(s, v) για όλους τους v V Αν όλες οι ακµές έχουν µη αρνητικά ϐάρη w(u, v), τότε όλα τα ελάχιστα µονοπάτια πρέπει να υπάρχουν. Ιδέα: Απληστία. 1 ιατήρησε ένα συνόλο S κόµβων, των οποίων τα ελάχιστα µονοπάτια από τον s είναι γνωστά. 2 Σε κάθε ϐήµα πρόσθεσε στο S τον κόµβο v V S, του οποίου η εκτίµηση για την απόστασή του από τον s είναι ελάχιστη. 3 Ενηµέρωσε τις εκτιµήσεις των αποστάσεων των γειτονικών κόµβων του v. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 8 / 46

Αλγόριθµος του Dijkstra d[s] 0 for each v V {s} do d[v] S Q V /* Q είναι µια ουρά προτεραιότητας που διατηρεί τις V S */ while Q do u Extract Min(Q) S S {u} for each v Adj[u] do if d[v] > d[u]+w(u, v) then d[v] d[u]+w(u, v) } relaxation step Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 9 / 46

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 10 / 46

Παράδειγµα Αλγορίθµου Dijkstra Αρχικοποίηση Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 11 / 46

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 12 / 46

Παράδειγµα Αλγορίθµου Dijkstra Χαλάρωση όλων των ακµών που ξεκινούν από την Α. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 13 / 46

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 14 / 46

Παράδειγµα Αλγορίθµου Dijkstra Χαλάρωση όλων των ακµών που ξεκινούν από την C. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 15 / 46

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 16 / 46

Παράδειγµα Αλγορίθµου Dijkstra Χαλάρωση όλων των ακµών που ξεκινούν από την E. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 17 / 46

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 18 / 46

Παράδειγµα Αλγορίθµου Dijkstra Χαλάρωση όλων των ακµών που ξεκινούν από την B. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 19 / 46

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 20 / 46

Ορθότητα I Lemma Αρχικοποιώντας d[s] 0 και d[v] για όλους τους v V ισχύει ότι d[v] δ(s, v) για όλους τους v V. Η συνθήκη αυτή διατηρείται για οποιαδήποτε ακολουθία πράξεων χαλάρωσης στις ακµές του G. Επιπλέον, από την στιγµή που d[v] = δ(s, v) η d[v] δεν µεταβάλλεται ποτέ. Proof. Με επαγωγή ως προς το πλήθος των πράξεων χαλάρωσης. Βάση. d[s] = 0 δ(s, s) δ(s, v) = d[v] Επαγωγικό ϐήµα. Χαλάρωση της ακµής (u, v). Από την επαγωγική υπόθεση, έπεται ότι πριν από την πράξη χαλάρωσης ισχύει d[x] δ(s, x) x V Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 21 / 46

Ορθότητα I d[v] = d[u]+w(u, v) χαλάρωση δ(s, u) + w(u, v) επαγωγική υπόθεση = δ(s, u) +δ(u, v) δ(s, v) τριγωνική ανισότητα. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 22 / 46

Ορθότητα II Lemma Εστω u ο προκάτοχος του v στο ελάχιστο µονοπάτι από τον s στον v. Τότε, αν d[u] = δ(s, u) και εφαρµοστεί η χαλάρωση στην ακµή (u, v), έχουµε d[v] = δ(s, v) µετά την χαλάρωση. Proof. Από το προηγούµενο Λήµµα έχουµε ότι d[v] δ(s, v) πριν την χαλάρωση. Αν d[v] = δ(s, v) τελειώσαµε. Αν d[v] > δ(s, v). Τότε, αν d[v] > d[u]+w(u, v) εφαρµόζεται χαλάρωση και d[v] = d[u]+w(u, v) = δ(s, u)+w(u, v) λόγω της υπόθεσης = δ(s, v) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 23 / 46

Ορθότητα III Theorem Ο αλγόριθµος του Dijkstra τερµατίζει µε d[v] = δ(s, v) για όλους τους v V. Proof. Αρκεί να δείξουµε ότι d[v] = δ(s, v) για κάθε v V όταν ο v προστίθεται στο S. Εστω u ο πρώτος κόµβος που εισάγεται στο S και d[u] > δ(s, u). Εστω y ο πρώτος κόµβος στο V S κατά µήκος του ελάχιστου µονοπατιού από τον s στον u και x ο προκάτοχός του: Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 24 / 46

Ορθότητα III (συν.) Αφού ο u είναι ο πρώτος κόµβος που παραβιάζει τον ισχυρισµό µας, έχουµε d[x] = δ(s, x). Οταν ο x προστέθηκε στο S, εφαρµόστηκε η χαλάρωση στην ακµή (x, y), το οποίο συνεπάγεται d[y] = δ(s, y). Ο κόµβος y προηγείται του u και όλα τα ϐάρη των ακµών είναι µη αρνητικά, συνεπώς δ(s, y) δ(s, u). Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 25 / 46

Ορθότητα III (συν.) Συνοψίζοντας έχουµε τελικά ότι d[y] = δ(s, y) δ(s, u) d[u] όπου η τελευταία προκύπτει από την ιδιότητα του άνω ϕράγµατος. Αλλά, η επιλογή του u έγινε διότι d[u] d[y] Συνεπώς οι ανωτέρω ανισότητες είναι ισότητες, δηλαδή d[y] = δ(s, y) = δ(s, u) = d[u] Τελικά d[u] = δ(s, u) που αντιβαίνει στην υπόθεσή µας. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 26 / 46

Ανάλυση του Dijkstra V times while Q do u Extract Min(Q) S S {u} degree(u) times for each v Adj[u] do if d[v] > d[u]+w(u, v) then d[v] d[u]+w(u, v) Θ(E) ακριβώς Decrease Key s. Χρόνος =Θ(V T Extract Min + E T Decrease Key ) Ιδια όπως στην ανάλυση του αλγορίθµου του Prim. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 27 / 46

Ανάλυση του Dijkstra (συν.) Χρόνος = Θ(V T Extract Min + E T Decrease Key ) Q T Extract Min T Decrease Key Συνολικό array O(V) O(1) O(V 2 ) binary Heap O(log V) O(log V) O(E log V) fibonacci Heap O(log V) O(1) O(E + V log V) Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 28 / 46

Γράφοι χωρίς Βάρη Θεωρήστε w(u, v) = 1 για όλες τις (u, v) E. Μπορεί να ϐελτιωθεί ο αλγόριθµος του Dijkstra ; Χρησιµοποίησε µια ουρά FIFO ant i gia our a proterai othtac Αναζήτηση Κατά-Πλάτος while Q do u Dequeue(Q) for each v Adj[u] do if d[n] = then d[v] d[u]+1 Enqueue(Q, v) Χρόνος = O(V + E). Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 29 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 30 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 31 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 32 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 33 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 34 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 35 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 36 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 37 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 38 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 39 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 40 / 46

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 41 / 46

Ορθότητα του Αλγορίθµου Αναζήτησης Κατά-Πλάτος while Q do u Dequeue(Q) for each v Adj[u] do if d[n] = then d[v] d[u]+1 Enqueue(Q, v) Βασική Ιδέα: Η ουρά FIFO Q στην αναζήτηση κατά πλάτος µιµείται την ουρά προτεραιότητας Q του Dijkstra Το γεγονός ότι η v έρχεται µετά την u στην Q συνεπάγεται ότι d[v] = d[u] ή d[v] = d[u]+1. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 42 / 46

Σηµειώµατα Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 43 / 46

Σηµείωµα Αναφοράς Copyright Εθνικόν και Καποδιστριακόν Πανεπιστήµιον Αθηνών 2015, Νικόλαος Μισυρλής, Αλγόριθµοι και Πολύπλοκότητα. Ενότητα 3 - Αλγόριθµοι Γραφηµάτων Εκδοση:1.01. Αθήνα 2015. ιαθέσιµο από τη δικτυακή διεύθυνση:http://opencourses.uoa.gr/courses/di13/. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 44 / 46

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

ιατήρηση Σηµειωµάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού ϑα πρέπει να συµπεριλαµβάνει: το Σηµείωµα Αναφοράς το Σηµείωµα Αδειοδότησης τη δήλωση ιατήρησης Σηµειωµάτων το Σηµείωµα Χρήσης Εργων Τρίτων (εφόσον υπάρχει) µαζί µε τους συνοδευόµενους υπερσυνδέσµους. Καθηγητής: Ν. Μ. Μισυρλής Αλγόριθµοι και Πολυπλοκότητα - Ενότητα 3 Dijkstra 46 / 46