Στοιχεία Θεωρίας Γράφων (Graph Theory) Ε Εξάμηνο, Τμήμα Πληροφορικής & Τεχνολογίας Υπολογιστών ΤΕΙ Λαμίας plam@inf.teilam.gr,
Οι διαφάνειες βασίζονται στα βιβλία:. Αλγόριθμοι, Σχεδιασμός & Ανάλυση, η έκδοση, Παν. Μποζάνης, Εκδόσεις Τζιόλα,. Computer Networking: A Top Down Approach Featuring the Internet, rd edition, Jim Kurose, Keith Ross, Addison-Wesley,. plam@inf.teilam.gr,
Στόχοι της Ενότητας Παρουσίαση της έννοιας του γράφου (graph) H χρήση γράφων για την αναπαράσταση δικτύων δεδομένων Παρουσίαση βασικών εννοιών της θεωρίας γράφων Εισαγωγή στον τρόπο αντιμετώπισης ζητημάτων των δικτύων με γράφους plam@inf.teilam.gr,
Ορισμός Ι Ένας γράφος ή γράφημα (graph) G(V,E) αποτελείται από δύο σύνολα αντικειμένων: Κορυφές (vertices) ή κόμβοι(nodes), το πεπερασμένο σύνολο V Ακμές (edges) το σύνολο E Πρόκειται για μια συλλογή υποσυνόλων του V με μέγεθος Μια ακμή είναι ένα μη διατεταγμένο ζεύγος κορυφών (μη κατευθυνόμενος γράφος undirected graph) Η ακμή διατεταγμένο ζεύγος κατευθυνόμενος (directed) γράφος Απεικονίζεται ως τελείες ή κύκλοι (κορυφές) που συνδέονται με γραμμές (ακμές) plam@inf.teilam.gr,
Παράδειγμα Μη κατευθυνόμενος Γράφος V = {,,,, } V = E = E = {(, ), (,), (, ), (, ), (, ), (, ), (, ), (, ), (, ), (, ), (, ), (, )} plam@inf.teilam.gr,
Παράδειγμα Κατευθυνόμενος Γράφος V = {,,,, } H ακμή είναι ένα διατεταγμένο ζεύγος κορυφών (κατευθυνόμενος γράφος directed graph) E = {(, ), (,), (, ), (,), (, ), (, )} 6 plam@inf.teilam.gr,
Ορισμός ΙΙ Γράφος G(V, E): Ηκορυφήi είναι γειτονική με την κορυφή j αν (i,j) E Οι διαστάσεις του γράφου χαρακτηρίζονται από: το πλήθος των κορυφών, V (καλείται τάξη (order) του G), και το πλήθος των ακμών, E (καλείται μέγεθος (size) του G) Ο χρόνος εκτέλεσης των αλγορίθμων που αφορούν γράφους μετριέται σε σχέση με την τάξη και το μέγεθος του γράφου plam@inf.teilam.gr,
Παράδειγμα plam@inf.teilam.gr,
Γράφοι και Δίκτυα Τα δίκτυα επικοινωνιών μπορούν να αναπαρασταθούν με γράφους Ενεργός δικτυακός εξοπλισμός και υπολογιστικά συστήματα είναι κορυφές (vertices) του γράφου Οι γραμμές επικοινωνιών είναι ακμές (edges) Τα πρωτόκολλα δρομολόγησης χρησιμοποιούν αλγορίθμους ελάχιστου μονοπατιού (shortest path algorithms) 9 plam@inf.teilam.gr,
Δίκτυο ως Γράφος Καρπενήσι Kbps Λαμία Άμφισσα 6Kbps Mbps Θεσσαλονίκη Λάρισα Βόλος plam@inf.teilam.gr,
GEANT plam@inf.teilam.gr,
Γράφοι με Βάρη (Weighted Graphs) Υποθέτουμε ότι ο G=(V,E) είναι γράφος. Τότε κάθε συνάρτηση τύπου ω : Ε Ν καλείται συνάρτηση βάρους (weight function) ΟγράφοςG μαζί με τη συνάρτηση, καλείται γράφος με βάρη (weighted graph) ω(,) E = {(, ), (, ), (, ), (, ), (, ), (,)} ω : Ε Ν = ω(,) ω(,) = ω(,) = ω(,) = ω(,) = plam@inf.teilam.gr, =
Περίπατοι, Μονοπάτια και Κύκλοι Ένας περίπατος (walk) σε ένα γράφο G = (V, E) είναι μια ακολουθία κορυφών: v, v,, v k V τέτοια ώστε για κάθε i =,, k,{ v, v } i i E Σε αυτή την περίπτωση λέμε ότι έχουμε έναν περίπατο από τη στη v vk plam@inf.teilam.gr,
Κύκλος σε Γράφο Αν όλες οι κορυφές είναι διακριτές, τότε ο περίπατος καλείται μονοπάτι (path) Αν όλες οι κορυφές είναι διακριτές εκτός από v = v k τότε ο περίπατος καλείται κύκλος (cycle) Ένας γράφος καλείται συνεκτικός (connected) αν για κάθε ζεύγος ξεχωριστών κορυφών x, y, υπάρχει ένας περίπατος από το x στο y plam@inf.teilam.gr,
Παράδειγμα Θεωρείστε τον ακόλουθο γράφο: Το,,,,,, είναι περίπατος, αλλά όχι μονοπάτι ή κύκλος Οπερίπατος,,,, είναι μονοπάτι, ενώ ο περίπατος,,, είναι κύκλος plam@inf.teilam.gr,
Πίνακας Γειτνίασης (Adjacency Matrix) Χρησιμοποιείται για την προγραμματιστική αναπαράσταση ενός γράφου Αρίθμηση κορυφών Αυθαίρετη,,,,, V Ο πίνακας γειτνίασης A=(a i,j ), V x V, ορίζεται ως: a i,j = αν (i,j) E, αλλιώς Συμμετρικός πίνακας ως προς τη διαγώνιο a i,i Όταν η ακμή ορίζεται ως μη διατεταγμένο ζεύγος (δηλ. ο γράφος είναι μη κατευθυνόμενος) 6 plam@inf.teilam.gr,
Πίνακας Γειτνίασης I plam@inf.teilam.gr,
Πίνακας Γειτνίασης II plam@inf.teilam.gr,
Πίνακας Γειτνίασης ΙΙΙ Καλούμε βαθμό (degree) μιας κορυφής υ και συμβολίζουμε με deg(υ) το πλήθος των ακμών που εισέρχονται και εξέρχονται στην κορυφή Εύκολος έλεγχος ύπαρξης διασύνδεσης Σπάταλη για αραιά γραφήματα πολυπλοκότητας Ο(V) Εύρεση deg(υ) σε χρόνο Ο(V) Καταλληλότερος για πυκνούς γράφους 9 plam@inf.teilam.gr,
Αναπαράσταση με λίστα Ι plam@inf.teilam.gr,
Αναπαράσταση με λίστα ΙΙ Καταλληλότερη για αραιά γραφήματα Κόστος σε μνήμη γραμμικό στο πλήθος των ακμών του γραφήματος ( Ε σε κατευθυνόμενο και E σε μη κατευθυνόμενο γράφημα) Εύρεση γειτονικών κορυφών σε deg(υ) Διαπίστωση εάν δύο κορυφές διασυνδέονται σε χρόνο deg(υ) (σάρωση λίστας) plam@inf.teilam.gr,
Διαπεράσεις Γράφων Κάθε διαδικασία συστηματικής και εξαντλητικής εξερεύνησης ενός γράφου, με την εξέταση των κορυφών και των ακμών του Παρ όλη την απλότητά τους, οι διαπεράσεις είναι ισχυρές και ικανές να ανακαλύψουν τις ιδιότητες των γράφων plam@inf.teilam.gr,
Διαπέραση σε Βάθος (Depth First Search DFS) Έστω ένας γράφος G=(V,E): () Εκκίνηση από μια επιλεγμένη κορυφή υ V () Επαναληπτική επιλογή της επόμενης νέας γειτονικής κορυφής, έως ότου να μην υπάρχει νέα γειτονική κορυφή (επιλέγεται αυτή με το μικρότερο όνομα) () Επέστρεψε σε κορυφή που έχει νέα γειτονική κορυφή () Επανέλαβε το βήμα μέχρι να επιστρέψουμε στη υ και να μην υπάρχει νέα γειτονική κορυφή (δηλ. έχουν εξεταστεί όλες) plam@inf.teilam.gr,
Διαπέραση σε Βάθος Παράδειγμα 9 6 9 6 9 6 9 6 plam@inf.teilam.gr,
Διαπέραση σε Βάθος Παράδειγμα 9 6 9 6 9 6 9 6 plam@inf.teilam.gr,
6 6 Διαπέραση σε Βάθος Παράδειγμα 9 9 6 6 6 9 9 6 6 6 plam@inf.teilam.gr, 6 9
Διαπέραση σε Βάθος Σχηματική Αναπαράσταση Αντικατάστησε το x με το y και το W με το W {(x,y)} Έστω x= υ και W = νέα κορυφή γειτονική της x ναι επιλογή μιας νέας κορυφής y γειτονικής με τη x όχι T = W Τέλος ναι x= υ όχι Ανίχνευση προς τα πίσω: αντικατέστησε τη x με τη z, όπου (z, x) W plam@inf.teilam.gr,
Διαπέραση σε Βάθος Δένδρο 9 6 9 9 Αριθμοί προδιάταξης (pre-order) και μεταδιάταξης (post-order) 9 6 6 6 plam@inf.teilam.gr,
Αριθμοί Προδιάταξης και Μεταδιάταξης Η υ απόγονος της ω εάν έχει μεγαλύτερο αριθμό προδιάταξης και μικρότερο αριθμό μεταδιάταξης Η υ πρόγονος της ω εάν έχει μικρότερο αριθμό προδιάταξης και μεγαλύτερο αριθμό μεταδιάταξης Σε κάθε άλλη περίπτωση οι κορυφές δε σχετίζονται... 9 plam@inf.teilam.gr,
Διαπέραση σε Βάθος Εφαρμογές Εντοπισμός Κύκλου Εύρεση Απλού Μονοπατιού μεταξύ υ και ω: Εκκίνηση διαπέρασης σε βάθος από την υ (απόδειξη με επαγωγή στο μήκος του μονοπατιού) Επικαλύπτον Δένδρο ή Δάσος: Εάν το γράφημα είναι συνεκτικό, τότε το δένδρο που προκύπτει είναι επικαλύπτον. Αλλιώς, κάθε επανεκκίνηση ανακαλύπτει και μία συνεκτική συνιστώσα plam@inf.teilam.gr,
Διαπέραση σε Πλάτος (Breadth- First Search BFS) Έστω ένας γράφος G=(V,E): () Εκκίνηση από μια κορυφή υ V () Πρόσθεσε στη λίστα όλες τις νέες κορυφές που είναι γειτονικές στη υ (κατά αύξουσα σειρά) () Έστω η επόμενη κορυφή μετά τη υ στη λίστα (FIFO σάρωση στη λίστα). Πρόσθεσε στη λίστα όλες τις νέες γειτονικές σε αυτή κορυφές () Επανέλαβε τη διαδικασία με όλες τις κορυφές της λίστας, έως ότου φτάσουμε στην τελευταία κορυφή (αυτή που δεν έχει νέα γειτονική κορυφή) plam@inf.teilam.gr,
Διαπέραση σε Πλάτος Παράδειγμα 9 6 9 6 9 6 9 6 plam@inf.teilam.gr,
Διαπέραση σε Πλάτος Παράδειγμα 9 6 9 6 9 6 9 6 plam@inf.teilam.gr,
Διαπέραση σε Πλάτος Παράδειγμα 9 6 9 6 9 6 plam@inf.teilam.gr,
Διαπέραση σε Πλάτος Σχηματική Αναπαράσταση Πρόσθεσε το y στη λίστα και αντικατέστησε το W με το W {(x,y)} Έστω x= υ και W = νέα κορυφή γειτονική της x ναι επιλογή μιας νέας κορυφής y γειτονικής με τη x όχι T = W Τέλος ναι Το x είναι η τελευταία κορυφή όχι αντικατέστησε τη x με τη z, την πρώτη κορυφή μετά τη x στη λίστα plam@inf.teilam.gr,
Διαπέραση σε Πλάτος Δένδρο 9 9 6 6 6 plam@inf.teilam.gr,
Διαπέραση σε Πλάτος Εφαρμογές Εντοπισμός Κύκλου Εύρεση Απλού Μονοπατιού μεταξύ υ και ω: Εκκίνηση Διαπέρασης σε Πλάτος από την υ (απόδειξη με επαγωγή στο μήκος του μονοπατιού) Επικαλύπτον Δένδρο ή Δάσος: Εάν το γράφημα είναι συνεκτικό, τότε το δένδρο που προκύπτει είναι επικαλύπτον. Αλλιώς, κάθε επανεκκίνηση ανακαλύπτει και μία συνεκτική συνιστώσα Συντομότερα, σε # ακμών, μονοπάτια από μία κορυφήπηγή: Εκκίνηση Διαπέρασης σε Πλάτος από την υ plam@inf.teilam.gr,
Δένδρα (Trees) Ένας γράφος Τ = (V, E) είναι δένδρο (tree) αν ικανοποιεί τις ακόλουθες συνθήκες: Ο Τ είναι συνεκτικός Ο Τ δεν περιέχει κύκλο plam@inf.teilam.gr,
Προτάσεις Ι () Έστω ότι ο Τ = (V,E) είναι δένδρο με τουλάχιστον δύο κορυφές. Τότε για κάθε ζεύγος διακριτών κορυφών x, y V, υπάρχει ένα μοναδικό μονοπάτι στο Τ από το x στο y () Έστω ότι ο Τ = (V,E) είναι δένδρο με τουλάχιστον δύο κορυφές. Τότε ο γράφος που προκύπτει από το Τ μετά την αφαίρεση μιας ακμής, έχει δύο συνιστώσες (components), κάθε μια από τις οποίες είναι δένδρο 9 plam@inf.teilam.gr,
Προτάσεις ΙΙ () Έστω ότι ο Τ = (V,E) είναι δένδρο. Τότε Ε = V -. Απόδειξη: Επαγωγή στο πλήθος των κορυφών του Τ: Για V = ισχύει Υποθέτουμε ότι ισχύει για V = k Έστω V = k+. Αν αφαιρέσουμε μια ακμή από τον Τ τότε από την προηγούμενη πρόταση προκύπτει ένας γράφος με δύο συνιστώσες (έστω Τ = (V, E ) και T = (V, E )) κάθε μια από τις οποίες είναι δένδρο. Επειδή V <= kκαι V <=k, από την υπόθεση ισχύει: Ε = V - και E = V -. Επειδή V = V + V και E = E + E +, προκύπτει το ζητούμενο plam@inf.teilam.gr,
Επικαλύπτοντα Δένδρα (Spanning Trees) Έστω ένας συνεκτικός γράφος G=(V,E). Ένα υποσύνολο Τ του Ε καλείται επικαλύπτον δένδρο (spanning tree) του G αν το Τ ικανοποιεί τις ακόλουθες δύο συνθήκες: κάθε κορυφή στο V ανήκει σε μια ακμή του Τ οι ακμές στο Τ σχηματίζουν ένα δένδρο plam@inf.teilam.gr,
Παράδειγμα: Γράφος και Επικαλύπτον Δένδρο 6 Το επικαλύπτον δένδρο του σχήματος αποτελείται από τις ακμές: (, ), (, ), (, ), (, ), (, ), (, 6), (, ) Προφανώς, δεν υπάρχει ένα μόνο επικαλύπτον δένδρο! plam@inf.teilam.gr,
Αλγόριθμος Απληστίας (Greedy) για Επικαλύπτον Δένδρο Έστω G=(V,E) ένας συνεκτικός γράφος () Θεώρησε μια οποιαδήποτε κορυφή από το V ως ένα αρχικό μερικό δένδρο () Επέλεξε ακμές από το Ε μιατηφοράέτσιώστε κάθε νέα ακμή να συνδέει μια νέα κορυφή του V με το μερικό δένδρο () Σταμάτα όταν όλες οι κορυφές του V είναι στο μερικό δένδρο plam@inf.teilam.gr,
Ορθότητα Αλγορίθμου Μπορεί να αποδειχθεί με απαγωγή σε άτοπο: Έστω S το σύνολο των κορυφών στο μερικό δένδρο σε κάθε στάδιο. Στη γενική περίπτωση ισχύει: S και S V Υποθέτουμε ότι δεν μπορούμε να συνδέσουμε μια επιπλέον ακμή από το V στο μερικό δένδρο Ερώτημα: Με ποια υπόθεση δημιουργείται αντίθεση; plam@inf.teilam.gr,
Ελάχιστα Επικαλύπτοντα Δένδρα (Minimum Spanning Trees) Έστω G ένας γράφος με βάρη. Υποθέτουμε ότι ο G είναι συνεκτικός και έστω Τ ένα επικαλύπτον δένδρο του G. Η τιμή: ω( T ) = ω( e) e T το άθροισμα των βαρών των ακμών του Τ, καλείται βάρος του επικαλύπτοντος δένδρου plam@inf.teilam.gr,
Ελάχιστα Επικαλύπτοντα Δένδρα: Ορισμοί Για κάθε επικαλύπτον δένδρο Τ του G έχουμε ω(t ) Ν Υπάρχουν πεπερασμένα επικαλύπτοντα δένδρα Τ ενός γράφου G Θα πρέπει να υπάρχει ένα επικαλύπτον δένδρο T γιατοοποίοητιμήω(τ) είναι η ελάχιστη μεταξύ όλων των επικαλυπτόντων δένδρων του G 6 plam@inf.teilam.gr,
Ορισμοί Υποθέτουμε ότι ο G=(V,E) μαζί με μια συνάρτηση βάρους ω : Ε Ν, σχηματίζουν ένα γράφο με βάρη. Έστω επίσης ότι ο G είναι συνεκτικός Τότε, ένα επικαλύπτον δένδρο Τ του G, για το οποίο το βάρος ω(τ) είναι το μικρότερο μεταξύ όλων των επικαλυπτόντων δένδρων του G, καλείται ελάχιστο επικαλύπτον δένδρο (minimal spanning tree) του G Ερώτημα: Πως δημιουργείται ένα ελάχιστο επικαλύπτον δένδρο; plam@inf.teilam.gr,
Παράδειγμα: Ελάχιστα Επικαλύπτοντα Δένδρα 6 6 Ερώτηση: Το ελάχιστο επικαλύπτον δένδρο είναι μοναδικό; plam@inf.teilam.gr,
Αλγόριθμος Prim για Ελάχιστο Επικαλύπτον Δένδρο Ξεκινώντας από ένα στοιχειώδες δένδρο-κορυφή, το επεκτείνει, ακμή προς ακμή, διαλέγοντας κάθε φορά την ελαφρύτερη ακμή που συνδέει κορυφή του τρέχοντος δένδρου με κορυφή εκτός (γιατί;) του τρέχοντος δένδρου Ορθότητα (σχεδιάγραμμα): V οι κορυφές του υπό διαμόρφωση EEΔ, V =V- V : Με βάση αυτή τη διαμέριση του συνόλου των κορυφών υπάρχει ένα ΕΕΔ που περιλαμβάνει την ακμή e (ελάχιστου βάρους) που συνδέει κορυφή του V με κορυφή του V 9 plam@inf.teilam.gr,
Αλγόριθμος Prim Παράδειγμα 6 6 6 6 6 6,,, 6, 6 6 6 6 6 6,, 6,, 6, 6,,6 6 6 6 6 6 6,6,, plam@inf.teilam.gr,
Αλγόριθμος Kruskal για Ελάχιστο Επικαλύπτον Δένδρο Εξετάζει μία προς μία τις ακμές, κατά αύξουσα τιμή βάρους, και τις προσθέτει μόνον εφόσον δε δημιουργείται κύκλος Ξεκινά από V στοιχειώδη δένδρα, τα οποία, εν τέλει, με τιςδιαδοχικέςπροσαρτήσειςακμών, ενοποιούνται στο τελικό ΕΕΔ Ορθότητα (σχεδιάγραμμα): Σε κάθε βήμα, έστω e=(a,b) η ακμή που επιλέγεται, a<b V = όλες οι γειτονικές, μέσω ακμών δένδρων, της a κορυφές V = V-V plam@inf.teilam.gr,
Αλγόριθμος Kruskal Παράδειγμα 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 plam@inf.teilam.gr,
Πρωτόκολλο Επικαλύπτοντος Δένδρου Χρησιμοποιείται για την αποφυγή κύκλων σε τοπικά δίκτυα που υπάρχουν περισσότερα του ενός μονοπάτια μεταξύ δύο σημείων του δικτύου Προκύπτει ένας κόμβος ως ρίζα και μετά το τρέξιμο του αλγορίθμου κάποιες θύρες δεν αναμεταδίδουν πλαίσια (στο διπλανό σχήμα το port του switch B) plam@inf.teilam.gr,