(elementary graph algorithms) Παύλος Εφραιμίδης 1
περιεχόμενα γραφήματα αναπαραστάσεις οριζόντια διερεύνηση καθοδική διερεύνηση 2
ΓΡΑΦΉΜΑΤΑ 3
αναπαράσταση δύο καθιερωμένοι τρόποι: πίνακας γειτνίασης συλλογή από καταλόγους γειτνίασης 4
Königsberg, 1736 ο Euler σε ώρα περιπάτου στις όχθες του ποταμού Pregel (Königsberg 1736). Leonhard Euler (1707-1783) 1783) Mathematician and physicist Απόφοιτος: University of Basel Institutions: Imperial p Russian Academy of Sciences Berlin Academy Doctoral advisor: Johann Bernoulli Doctoral students: Johann Hennert Joseph p Lagrange g 5
το πρόβλημα Υπάρχει διαδρομή που περνάει από όλες τις γέφυρες ακριβώς μία φορά και τερματίζει στο σημείο εκκίνησης; 6
πιο αναλυτικά? 7
το πρώτο γραφοθεωρητικό πρόβλημα 8
η λύση του Euler ο Euler βρήκε τη λύση χρησιμοποιώντας το βαθμό των κορυφών του γραφήματος βαθμός: το πλήθος των ακμών που προσπίπτουν στην κορυφή 9
θεωρία βασική ορολογία
βασική ορολογία Γράφημα G = (V,E) V: κόμβοι κορυφές του γραφήματος E: γραμμές ακμές του γραφήματος μη κατευθυνόμενο γράφημα G=(V,E) u ε v1 v2 κατευθυνόμενο γράφημα G=(V,E)
απλό γράφημα Η ακμή e=(v1 (v1,v2) v2) εφάπτεται (incident on) των κορυφών v1 και v2. Οι κορυφές v1 και v2 λέγονται γειτονικές. Παράλληλες ακμές σε μη κατευθυνόμενο γράφημα Ανακύκλωση (loop) Απλό γράφημα (simple graph): Γράφημα G δίχως ανακυκλώσεις και παράλληλες ακμές.
μονοπάτια - κύκλοι μονοπάτια απλό μονοπάτι (simple path) σε γράφημα Γ: μονοπάτι δίχως επαναλαμβανόμενες κορυφές κύκλος (cycle) : Μονοπάτι δίχως επαναλαμβανόμενες ακμές όπου αρχική και τελική κορυφή συμπίπτουν απλός κύκλος (simple cycle): κύκλος δίχως επαναλαμβανόμενες κορυφές (εκτός αρχικής και τελικής)
βάρη μεμονωμένη μμ μ κορυφή: Μια κορυφή στην οποία V δεν εφάπτεται καμία ακμή καλείται μεμονωμένη κορυφή (isolated vertex). γράφημα με βάρη: Γράφημα στο οποίο έχει συσχετιστεί με κάθε ακμή ένας αριθμός, το βάρος. G 1 v 3 v 4 1 4 5 5 7 6 1 2 1 10 v 1 v 2 v 5 v 6 μήκος μονοπατιού σε γράφημα με βάρη: Το άθροισμα των βαρών των ακμών του μονοπατιού.
ειδικά γραφήματα ειδικές κατηγορίες : πλήρες γράφημα (complete graph) με v κορυφές διμερές γράφημα (bipartite graph) πλήρες διχοτομήσιμο γράφημα (bipartite graph) με ν και μ κορυφές
διμερές μρςγράφημα ένα γράφημα G=(V (V, E)στο οποίο το σύνολο κορυφών μπορεί να διαμεριστεί σε δύο σύνολα V1 και V2 έτσι ώστε: Για κάθε ακμή e = (u,v) είτε uinv1και vinv2 είτε v in V1 και u in V2 σε ένα διμερές γράφημα υπάρχουν ακμές μόνο μεταξύ μιας κορυφής του V1 και μιας κορυφής του V2 16 Γραφήματα
συνδεόμενα γραφήματα συνδεόμενο γράφημα (connected graph) υπογράφημα (sub-graph): Τμήμα του γραφήματος G που περιέχει την κορυφή ν (part of the graph)
υπεργράφημα (hypergraph) p Η γενίκευση του μοντέλου των το οποίο αντί για ακμές έχει υπερ-ακμές: Κάθε ακμή του είναι ένα σύνολο 2 ή περισσότερων κορυφών Στα γραφήματα κάθε ακμή είναι ένα σύνολο 2 κορυφών (ή ένα διατεταγμένο ζεύγος 2 κορυφών για κατευθυνόμενα γραφήματα) 18 Γραφήματα
δέντρο άκυκλο γράφημα: Ένα γράφημα το οποίο δεν έχει κύκλους απλό γράφημα: Δεν έχει πολλαπλές ακμές συνδεδεμένο (συνεκτικό) γράφημα: Υπάρχει μονοπάτι μεταξύ κάθε ζεύγους κορυφών του γραφήματος Δέντρο: Ένα άκυκλο απλό συνδεδεμένο γράφημα ονομάζεται δέντρο. 19 Γραφήματα
ΑΝΑΠΑΡΆΣΤΑΣΗ ΓΡΑΦΗΜΆΤΩΝ 20
μη-κατευθυνόμενο μ γράφημα κατάλογοι γειτνίασης 1 2 5 4 3 1 2 3 4 5 2 5 1 3 4 5 2 4 2 3 5 1 2 4 21
μη-κατευθυνόμενο μ γράφημα πίνακας γειτνίασης 1 2 3 4 5 1 2 5 4 3 1 0 1 0 0 1 2 1 0 1 1 1 3 0 1 0 1 0 4 0 1 1 0 1 5 1 1 0 1 0 22
κατευθυνόμενο γράφημα κατάλογοι γειτνίασης 1 2 1 2 2 5 3 4 3 3 3 4 4 1 5 4 4 5 23
κατευθυνόμενο γράφημα πίνακας γειτνίασης 1 2 3 4 5 1 2 1 0 1 0 0 1 2 0 0 1 1 0 3 3 0 0 1 1 0 24 5 4 4 1 0 0 0 0 5 0 0 0 1 0
οριζόντια ρζ διερεύνηση η οριζόντια διερεύνηση (breadth first search): ένας απλός τρόπος διερεύνησης ενός γραφήματος Δίνονται γράφημα G(V,E) αφετηριακός κόμβος s Ζητείται: συστηματική εξέταση των ακμών του G ώστε να εντοπιστούν όλοι οι κόμβοι που είναι προσπελάσιμοι από τον s Ο χαρακτηρισμός «οριζόντια» αναφέρεται στη σειρά με την οποία επισκέπτεται τους κόμβους του γραφήματος 25
οριζόντια διερεύνηση ή διερεύνηση πρώτα σε πλάτος ο αλγόριθμος επεκτείνει το σύνορο μεταξύ εντοπισμένων και μη εντοπισμένων κόμβων ομοιόμορφα σε όλο το εύρος του συνόρου αυτού ή με άλλα λόγια: ο αλγόριθμος εντοπίζει πρώτα όλους τους κόμβους σε απόσταση k από τον s, και μόνο αφού εξαντλήσει αυτούς τους κόμβους προχωρά στον εντοπισμό κόμβων σε απόσταση k+1 26
παράδειγμα οριζόντιας διερεύνησης 27
(a) r s t u 0 v w x y Q s 0 r s t u 1 0 Q (b) w r 1 1 1 v w x y (c) r s t u 1 0 2 1 2 v w x y Q r t x 1 2 2 (d) r s t u 1 0 2 2 1 2 v w x y Q t x v 2 2 2 r s t u 1 0 2 3 Q (e) x v u 2 1 2 2 2 3 v w x y (f) r s t u 1 0 2 3 2 1 2 3 v w x y Q v u y 2 3 3 28
(g) r s t u 1 0 2 3 2 v 1 w 2 x 3 y Q u y 3 3 (h) r s t u 1 0 2 3 2 1 2 3 v w x y Q y 3 (i) r s t u 1 0 2 3 Q empty 2 1 2 3 29
30
καθοδική διερεύνηση η καθοδική διερεύνηση (depth first search): ακόμη ένας απλός τρόπος διερεύνησης ενός γραφήματος Δίνονται γράφημα G(V,E) αφετηριακός κόμβος s Ζητείται: συστηματική εξέταση των ακμών του G ώστε να εντοπιστούν όλοι οι κόμβοι που είναι προσπελάσιμοι από τον s Ο χαρακτηρισμός «καθοδική» αναφέρεται στη σειρά με την οποία επισκέπτεται τους κόμβους του γραφήματος 31
καθοδική διερεύνηση ή διερεύνηση πρώτα σε βάθος όπως υποδηλώνει το όνομά της, η καθοδική διερεύνηση επεκτείνεται προς μεγαλύτερα βάθη στο γράφημα, οποτεδήποτε αυτό είναι δυνατό. οι ακμές εξερευνώνται με αφετηρία τον πιο πρόσφατα εντοπισμένο κόμβο v από τον οποίο εκκινούν μη εξερευνημένες ακμές αφού εξερευνηθούν όλες οι ακμές του v, η διερεύνηση η επιστρέφει ρφ στον κόμβο από τον οποίο εντοπίστηκε ο v και συνεχίζει με τις τυχόν άλλες ακμές που εκκινούν από αυτόν 32
παράδειγμα καθοδικής διερεύνησης 33
(a) r s t u 0 v w x y Q s 0 r s t u 1 0 Q (b) w r 1 1 1 v w x y (c) r s t u 1 0 2 1 v w x y Q w v 1 2 (d) r s t u 1 0 2 1 v w x y Q w 1 r s t u 1 0 2 3 Q (e) t x 2 1 2 2 2 v w x y (f) r s t u 1 0 2 3 2 1 2 3 v w x y Q t u y 2 3 3 34
(g) r s t u 1 0 2 3 2 v 1 w 2 x 3 y Q t u 2 3 (h) r s t u 1 0 2 3 2 1 2 3 v w x y Q t 2 (i) r s t u 1 0 2 3 Q empty 2 1 2 3 35
36
Αναφορές/Πηγές ς Εισαγωγή στους αλγόριθμους, Κεφάλαιο 22 Διακριτά μαθηματικά και μαθηματική λογική, Ελληνικό Ανοικτό Πανεπιστήμιο Χρησιμοποιήθηκε υλικό από: http://www.csie.nctu.edu.tw/~sctsai/algo/notes/ http://en.wikipedia.org/wiki/seven_bridges_of_k%c3%b6nigsberg http://en.wikipedia.org/wiki/leonhard_euler http://www.jcu.edu/math/vignettes/bridges.htm 37