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

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

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

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

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

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

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

Βραχύτερα Μονοπάτια σε Γράφους (CLR, κεφάλαιο 25)

Αλγόριθμοι Γραφημάτων

Ελαφρύτατες διαδρομές

Αλγόριθμοι Γραφημάτων

Συντομότερες Διαδρομές

Συντομότερες ιαδρομές

Σχεδίαση & Ανάλυση Αλγορίθμων

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

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

Συντομότερες ιαδρομές

Συντομότερες ιαδρομές

Συντομότερες Διαδρομές

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

Αλγόριθμοι Γραφημάτων

Αλγόριθμοι Eλάχιστα μονοπάτια

Ελάχιστο Γεννητικό Δένδρο. Παράδειγμα - Αλγόριθμος Prim. Γιατί δουλεύουν αυτοί οι αλγόριθμοι;

Δομές Δεδομένων και Αλγόριθμοι

Γράφοι (συνέχεια) Ο αλγόριθµος Dijkstra για εύρεση βραχυτέρων µονοπατιών Ta µονοπάτια Euler

Άσκηση 1. Ψευδοκώδικας Kruskal. Παρακάτω βλέπουμε την εφαρμογή του στο παρακάτω συνδεδεμένο γράφημα.

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ

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

Κεφάλαιο 4. Αλγόριθμος του Dijkstra. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Διάλεξη 21: Γράφοι IV - Βραχύτερα Μονοπάτια σε Γράφους

Κεφάλαιο 4. Αλγόριθµος του Dijkstra. Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Διδάσκων: Παναγιώτης Ανδρέου

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

Κατ οίκον Εργασία 5 Σκελετοί Λύσεων

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

3η Σειρά Γραπτών Ασκήσεων

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Γ. Κορίλη Αλγόριθµοι ροµολόγησης

Σχεδίαση και Ανάλυση Αλγορίθμων

Ελάχιστο Συνδετικό Δέντρο

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

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Ελάχιστο Συνδετικό Δέντρο

Ελάχιστο Συνδετικό έντρο

Ελάχιστο Συνδετικό Δέντρο

Περιεχόμενα. 1. Εισαγωγή: Κάποια αντιπροσωπευτικά προβλήματα Βασικά στοιχεία ανάλυσης αλγορίθμων Γραφήματα...

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 3/2/2019 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 3/2/ / 37

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

Επίλυση Προβληµάτων µε Greedy Αλγόριθµους

ΑΛΓΟΡΙΘΜΟΙ. Ενότητα 9: Άπληστοι Αλγόριθμοι. Ιωάννης Μανωλόπουλος, Καθηγητής Αναστάσιος Γούναρης, Επίκουρος Καθηγητής Τμήμα Πληροφορικής ΑΠΘ

Σχεδιαση Αλγοριθμων -Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο

Ταιριάσματα. Γράφημα. Ταίριασμα (matching) τέτοιο ώστε κάθε κορυφή να εμφανίζεται σε το πολύ μια ακμή του

Ελάχιστο Συνδετικό έντρο

Κατανεμημένα Συστήματα Ι

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

Ελάχιστα Γεννητορικά ένδρα

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

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Ουρές Προτεραιότητας. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

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

Συντομότερα Μονοπάτια για Όλα τα Ζεύγη Κορυφών

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Γράφοι. κόµβοι) και ένα σύνολο από γραµµές (που λέγονται ακµές) οι οποίες

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

Γράφοι: κατευθυνόμενοι και μη

3η Σειρά Γραπτών Ασκήσεων

ΑΛΓΟΡΙΘΜΟΙ ΚΑΙ ΠΟΛΥΠΛΟΚΟΤΗΤΑ Φεβρουάριος 2005 Σύνολο μονάδων: 91

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Κατ οίκον Εργασία 2 Σκελετοί Λύσεων

Ενότητα 5: Αλγόριθμοι γράφων και δικτύων

Ενότητα 9 Ξένα Σύνολα που υποστηρίζουν τη λειτουργία της Ένωσης (Union-Find)

ΕΠΛ 232: Αλγόριθµοι και Πολυπλοκότητα. Κατ οίκον Εργασία 2A Σκελετοί Λύσεων

Αναζήτηση Κατά Πλάτος

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ.

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Δρομολόγηση μιας οντότητας ανάμεσα σε δύο σημεία ενός δικτύου έτσι ώστε να ελαχιστοποιήσουμε ένα κόστος, μια διάρκεια, κτλ.

Αλγόριθµοι Γραφηµάτων

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

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

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

ιακριτά Μαθηµατικά και Μαθηµατική Λογική ΠΛΗ20 Ε ρ γ α σ ί α 3η Θεωρία Γραφηµάτων

Προσεγγιστικοί Αλγόριθμοι

6η Διάλεξη Διάσχιση Γράφων και Δέντρων

Κατανεμημένα Συστήματα Ι

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

#2 Αλγόριθµοι, οµές εδοµένων και Πολυπλοκότητα

Αναζήτηση Κατά Βάθος. Επιµέλεια διαφανειών:. Φωτάκης διαφάνειες για SCC: A. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Heapsort Using Multiple Heaps

ΕΥΡΕΣΗ ΕΛΑΧΙΣΤΩΝ ΜΟΝΟΠΑΤΙΩΝ & ΚΑΤΗΓΟΡΙΕΣ ΑΛΓΟΡΙΘΜΩΝ

Εισαγωγή στην Επιστήμη των Υπολογιστών

Ουρά Προτεραιότητας: Heap

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

Άπληστοι Αλγόριθµοι (CLR, κεφάλαιο 17)

Εισαγωγή στην Επιστήμη των Υπολογιστών

Τεχνολογίες Υλοποίησης Αλγορίθµων

Προσεγγιστικοί Αλγόριθμοι

Transcript:

Αλγόριθµοι και Πολυπλοκότητα Ν. Μ. Μισυρλής Τµήµα Πληροφορικής και Τηλεπικοινωνιών, Πανεπιστήµιο Αθηνών Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 1 / 42

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

Μονοπάτια σε γραφήµατα Εστω γράφηµα 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 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 3 / 42

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

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

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

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

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

Αλγόριθµος του 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 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 9 / 42

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 10 / 42

Παράδειγµα Αλγορίθµου Dijkstra Αρχικοποίηση Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 11 / 42

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 12 / 42

Παράδειγµα Αλγορίθµου Dijkstra Χαλάρωση όλων των ακµών που ξεκινούν από την Α. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 13 / 42

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 14 / 42

Παράδειγµα Αλγορίθµου Dijkstra Χαλάρωση όλων των ακµών που ξεκινούν από την C. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 15 / 42

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 16 / 42

Παράδειγµα Αλγορίθµου Dijkstra Χαλάρωση όλων των ακµών που ξεκινούν από την E. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 17 / 42

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 18 / 42

Παράδειγµα Αλγορίθµου Dijkstra Χαλάρωση όλων των ακµών που ξεκινούν από την B. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 19 / 42

Παράδειγµα Αλγορίθµου Dijkstra Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 20 / 42

Ορθότητα 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 Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 21 / 42

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

Ορθότητα 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) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 23 / 42

Ορθότητα 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 ο προκάτοχός του: Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 24 / 42

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

Ορθότητα 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) που αντιβαίνει στην υπόθεσή µας. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 26 / 42

Ανάλυση του 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. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 27 / 42

Ανάλυση του 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) Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 28 / 42

Γράφοι χωρίς Βάρη Θεωρήστε 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). Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 29 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 30 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 31 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 32 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 33 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 34 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 35 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 36 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 37 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 38 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 39 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 40 / 42

Παράδειγµα Αλγορίθµου Αναζήτησης Κατά-Πλάτος Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 41 / 42

Ορθότητα του Αλγορίθµου Αναζήτησης Κατά-Πλάτος 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. Καθηγητής: Ν. Μ. Μισυρλής () Αλγόριθµοι και Πολυπλοκότητα 6 Μαΐου 2015 42 / 42