(elementary graph algorithms) Παύλος Εφραιμίδης
περιεχόμενα αναπαραστάσεις οριζόντια διερεύνηση καθοδική διερεύνηση
αναπαράσταση δύο καθιερωμένοι τρόποι: πίνακας γειτνίασης συλλογή από καταλόγους γειτνίασης
μη-κατευθυνόμενο γράφημα κατάλογοι γειτνίασης 5 5 5 5 5
5 μη-κατευθυνόμενο γράφημα πίνακας γειτνίασης 5 5 5
κατευθυνόμενο γράφημα κατάλογοι γειτνίασης 5 5 5 6
7 κατευθυνόμενο γράφημα πίνακας γειτνίασης 5 5 5
οριζόντια διερεύνηση οριζόντια διερεύνηση (breadth first search): ένας απλός τρόπος διερεύνησης ενός γραφήματος Δίνονται γράφημα G(V,E) αφετηριακός κόμβος s Ζητείται: συστηματική εξέταση των ακμών του G ώστε να εντοπιστούν όλοι οι κόμβοι που είναι προσπελάσιμοι από τον s Ο χαρακτηρισμός «οριζόντια» αναφέρεται στη σειρά με την οποία επισκέπτεται τους κόμβους του γραφήματος 8
οριζόντια διερεύνηση ή διερεύνηση πρώτα σε πλάτος ο αλγόριθμος επεκτείνει το σύνορο μεταξύ εντοπισμένων και μη εντοπισμένων κόμβων ομοιόμορφα σε όλο το εύρος του συνόρου αυτού ήμεάλλαλόγια: ο αλγόριθμος εντοπίζει πρώτα όλους τους κόμβους σε απόσταση k από τον s, και μόνο αφού εξαντλήσει αυτούς τους κόμβους προχωρά στον εντοπισμό κόμβων σε απόσταση k+ 9
παράδειγμα οριζόντιας διερεύνησης
(a) r s t u v w x y Q s (d) r s t u v w x y Q t x v (b) r s t u v w x y Q w r (e) r s t u v w x y Q x v u (c) r s t u v w x y Q r t x (f) r s t u v w x y Q v u y
(g) r s t u v w x y Q u y (h) r s t u v w x y Q y (i) r s t u Q empty
καθοδική διερεύνηση καθοδική διερεύνηση (depth first search): ακόμη ένας απλός τρόπος διερεύνησης ενός γραφήματος Δίνονται γράφημα G(V,E) αφετηριακός κόμβος s Ζητείται: συστηματική εξέταση των ακμών του G ώστε να εντοπιστούν όλοι οι κόμβοι που είναι προσπελάσιμοι από τον s Ο χαρακτηρισμός «καθοδική» αναφέρεται στη σειρά με την οποία επισκέπτεται τους κόμβους του γραφήματος
καθοδική διερεύνηση ή διερεύνηση πρώτα σε βάθος όπως υποδηλώνει το όνομά της, η καθοδική διερεύνηση επεκτείνεται προς μεγαλύτερα βάθη στο γράφημα, οποτεδήποτε αυτό είναι δυνατό. οι ακμές εξερευνώνται με αφετηρία τον πιο πρόσφατα εντοπισμένο κόμβο v από τον οποίο εκκινούν μη εξερευνημένες ακμές αφού εξερευνηθούν όλες οι ακμές του v, η διερεύνηση επιστρέφει στον κόμβο από τον οποίο εντοπίστηκε ο v και συνεχίζει με τις τυχόν άλλες ακμές που εκκινούν από αυτόν 5
παράδειγμα καθοδικής διερεύνησης 6
(a) u v w / (b) u v w / / (c) u v w / / (d) u v w / / / / / 7
(i) u / /7 F B /5 /6 (j) u v w /8 /7 F B /5 /6 (k) u v w /8 /7 9/ F B /5 /6 (l) u v w /8 /7 9/ F B C /5 /6 8
(e) u v w / / B / / (g) u v w / / B /5 /6 (f) u v w / / B /5 / (h) u v w / /7 B /5 /6 9
(e) u v w / / B / / (g) u v w / / B /5 /6 (f) u v w / / B /5 / (h) u v w / /7 B /5 /6
Αναφορές/Πηγές Εισαγωγή στους αλγόριθμους, Κεφάλαιο Σημείωση: Ορισμένα σχήματα είναι από αντίστοιχη παρουσίαση στο http://www.csie.nctu.edu.tw/~sctsai/algo/notes/