Κεφάλαιο 3. Γραφήματα. v1.3 ( ) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Σχετικά έγγραφα
Κεφάλαιο 3. Γραφήµατα v1.0 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 3. Γραφήµατα v1.1 ( ) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Κεφάλαιο 3. Γραφήματα. ver. 21/12/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

(elementary graph algorithms)

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

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

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

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

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

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

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

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

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

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

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Στοιχεία Θεωρίας Γράφων (Graph Theory)

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

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

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

u v 4 w G 2 G 1 u v w x y z 4

Βασικές Έννοιες Θεωρίας Γραφημάτων

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

Βασικές Έννοιες Θεωρίας Γραφημάτων

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

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

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

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

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

Γράφοι. Ένας γράφος ή αλλιώς γράφηµα αποτελείται απο. Εφαρµογές: Τηλεπικοινωνιακά και Οδικά ίκτυα, Ηλεκτρονικά Κυκλώµατα, Β.. κ.ά.

Γράφοι. Αλγόριθμοι και πολυπλοκότητα. Στάθης Ζάχος, Δημήτρης Φωτάκης

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

Βασικές Έννοιες Δοµών Δεδοµένων

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

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

Θεωρία Γραφημάτων: Ορολογία και Βασικές Έννοιες

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

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Θεωρία Γραφημάτων: Ορολογία και Βασικές Έννοιες

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

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

Πανεπιστήμιο Πειραιώς Σχολή Τεχνολογιών Πληροφορικής και Επικοινωνιών Τμήμα Ψηφιακών Συστημάτων ομές εδομένων

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

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

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

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

ΑΛΓΟΡΙΘΜΟΙ Άνοιξη I. ΜΗΛΗΣ

Θεωρία Γραφημάτων 6η Διάλεξη

ΑΝΤΙΣΤΟΙΧΗΣΕΙΣ ΟΡΩΝ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙOΥΝΤΑΙ ΣΤΟΥΣ ΤΟΜΟΥΣ Α ΚΑΙ Β ΤΗΣ ΘΕ «ΔΙΑΚΡΙΤΑ ΜΑΘΗΜΑΤΙΚΑ» Ένα γράφημα αποτελείται από ένα σύνολο 94.

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

Συνεκτικότητα Γραφήματος

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

Ασκήσεις στους Γράφους. 1 ο Σετ Ασκήσεων Βαθμός Μονοπάτια Κύκλος Euler Κύκλος Hamilton Συνεκτικότητα

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

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

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

Αναζήτηση στους γράφους. - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών

Κεφάλαιο 2. Η δομή δεδομένων Σωρός και η Ταξινόμηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.3, 14/11/2014

ΠΛΗ 20, 6 η ΟΣΣ: Δέντρα Εξετάσεις

Μαθηματικά Πληροφορικής

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

Αλγόριθμοι για Ασύρματα Δίκτυα. Θεωρία Γραφημάτων

Κεφάλαιο 1. Πέντε Αντιπροσωπευτικά Προβλήματα. Έκδοση 1.4, 30/10/2014. Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

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

Εισαγωγή στη Θεωρία Γράφων

βασικές έννοιες (τόμος Β)

1 Διάσχιση κατευθυνόμενων γραφημάτων

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

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

Κεφάλαιο 8. NP και Υπολογιστική Δυσεπιλυσιμότητα. Παύλος Εφραιμίδης V1.1,

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

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

Γράφημα ; Γειτονικές είναι κορυφές που ενώνονται με ακμή

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

Θεωρία γραφημάτων. Παλιό αντικείμενο 18 ος αιώνας Leonhard Euler (Ελβετός μαθηματικός): πρόβλημα γεφυρών της πόλης Königsberg

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

Γραφήματα. Θέματα Υπολογισμού στον Πολιτισμό Γραφήματα

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

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

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

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

Δρομολόγηση Και Πολύχρωματισμός. Γραφημάτων ΚΑΡΑΓΕΩΡΓΟΣ ΤΙΜΟΘΕΟΣ Α.Μ 1026

2 ) d i = 2e 28, i=1. a b c

Θεωρία Γραφημάτων 10η Διάλεξη

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem)

Ασκηση 1 [ ] Παράδοση : Τετάρτη , 13:00

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

Βασικές Δοµές Δεδοµένων. Σύντοµη επανάληψη (ΕΠΛ 035).

Κεφάλαιο 4 Γραφήματα και Δένδρα

Μαθηματικά Πληροφορικής

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Θεωρία Υπολογισμού. Ενότητα 3 : Γραφήματα & Αποδείξεις. Αλέξανδρος Τζάλλας

Γράφηµα (Graph) Εργαστήριο 10. Εισαγωγή

Θεωρία Υπολογισμού και Πολυπλοκότητα Μαθηματικό Υπόβαθρο

Network Science. Θεωρεία Γραφηµάτων (2)

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

HY118-Διακριτά Μαθηματικά. Θεωρία γράφων/ γραφήματα. Τι είδαμε την προηγούμενη φορά. Συνεκτικότητα. 25 -Γράφοι

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

HY118-Διακριτά Μαθηματικά

Transcript:

Κεφάλαιο 3 Γραφήματα v1.3 (2014-01-30) Χρησιμοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne. 1

3.1 Βασικοί Ορισμοί και Εφαρμογές

γραφήματα γράφημα G: ένας τρόπος κωδικοποίησης των σχέσεων ανά ζεύγη μεταξύ των αντικειμένων ενός συνόλου G = (V, E) V = κόμβοι (nodes) E = ακμές (edges) μεταξύ ζευγών κόμβων Μια ακμή e E είναι ένα υποσύνολο του V με δύο στοιχεία: e={u, v} Οι κόμβοι u και v της ακμής e={u, v} ονομάζονται άκρα της e Οι ακμές αναπαριστούν διμερή σχέση μεταξύ κόμβων. Παράμετροι του γραφήματος: n = V, m = E. 3

μη κατευθυνόμενα και κατευθυνόμενα γραφήματα Μη-κατευθυνόμενο γράφημα (undirected graph) ή απλά γράφημα (graph) Οι ακμές υποδεικνύουν μια συμμετρική σχέση μεταξύ των άκρων τους Κατευθυνόμενο γράφημα (directed graph) Οι ακμές κωδικοποιούν ασύμμετρες σχέσεις Κάθε κατευθυνόμενη ακμή είναι ένα διατεταγμένο ζεύγος Παράδειγμα μη-κατευθυνόμενου γραφήματος V = { 1, 2, 3, 4, 5, 6, 7, 8 } E = { 1-2, 1-3, 2-3, 2-4, 2-5, 3-5, 3-7, 3-8, 4-5, 5-6 } n = 8 m = 11 4

εφαρμογές γραφημάτων

Königsberg, 1736 ο Euler σε ώρα περιπάτου στις όχθες του ποταμού Pregel (Königsberg 1736). Leonhard Euler (1707-1783) Mathematician and physicist Απόφοιτος: University of Basel Institutions: Imperial Russian Academy of Sciences Berlin Academy Doctoral advisor: Johann Bernoulli Doctoral students: Johann Hennert Joseph Lagrange Δομές Δεδομένων και Αλγόριθμοι

το πρόβλημα Υπάρχει διαδρομή που περνάει από όλες τις γέφυρες ακριβώς μία φορά και τερματίζει στο σημείο εκκίνησης; 7 Δομές Δεδομένων και Αλγόριθμοι

πιο αναλυτικά? Δομές Δεδομένων και Αλγόριθμοι

το πρώτο γραφοθεωρητικό πρόβλημα Δομές Δεδομένων και Αλγόριθμοι

η λύση του Euler ο Euler βρήκε τη λύση χρησιμοποιώντας το βαθμό των κορυφών του γραφήματος βαθμός: το πλήθος των ακμών που προσπίπτουν στην κορυφή Δομές Δεδομένων και Αλγόριθμοι

η λύση του Euler ο Euler βρήκε τη λύση χρησιμοποιώντας το βαθμό των κορυφών του γραφήματος βαθμός: το πλήθος των ακμών που προσπίπτουν στην κορυφή Η λύση: Το γράφημα πρέπει να είναι συνεκτικό και όλες οι κορυφές να έχουν ζυγό βαθμό. Δομές Δεδομένων και Αλγόριθμοι

ορισμένες εφαρμογές των γραφημάτων Γράφημα Κόμβοι Ακμές μεταφορές διασταυρώσεις δρόμων δρόμοι επικοινωνία υπολογιστές καλώδια οπτικών ινών World Wide Web ιστοσελίδες υπερσυνδέσεις κοινωνικές άνθρωποι σχέσεις διατροφική αλυσίδα είδη θηρευτής-θήραμα συστήματα λογισμικού συναρτήσεις κλήσεις συναρτήσεων χρονοπρογραμματισμός εργασίες περιορισμοί προτεραιότητας κυκλώματα πύλες καλώδια 12

World Wide Web Web γράφημα. Κόμβος: ιστοσελίδα. Ακμή: υπερσύνδεση από μία σελίδα σε άλλη. cnn.com netscape.com novell.com cnnsi.com timewarner.com hbo.com sorpranos.com 13

ένα κοινωνικό δίκτυο Γράφημα κοινωνικής δικτύωσης Κόμβοι: άνθρωποι. Ακμή: σχέση μεταξύ δύο ανθρώπων. Reference: wikipedia, http://en.wikipedia.org/wiki/social_network 14

διατροφική αλυσίδα Γράφημα διατροφικής αλυσίδας. Κόμβοι = είδη. Ακμή = από θηρευτή σε θήραμα. References: http://www.twingroves.district96.k12.il.us/wetlands/salamander/salgraphics/salfoodweb.giff http://www.aqualex.org/elearning/marine_environment/greek/chap4/images/fig20.gif 15

αναπαράσταση γραφημάτων

αναπαράσταση γραφήματος: πίνακας γειτνίασης Πίνακας γειτνίασης (adjacency matrix). πίνακας n x n με A uv = 1 εάν (u, v) είναι μια ακμή. Δύο κελιά για κάθε ακμή. Χώρος ανάλογος του n 2. Έλεγχος για ύπαρξη ακμής (u, v): σε χρόνο (1). Εύρεση όλων των ακμών: σε χρόνο (n 2 ). 1 2 3 4 5 6 7 8 1 0 1 1 0 0 0 0 0 2 1 0 1 1 1 0 0 0 3 1 1 0 0 1 0 1 1 4 0 1 0 1 1 0 0 0 5 0 1 1 1 0 1 0 0 6 0 0 0 0 1 0 0 0 7 0 0 1 0 0 0 0 1 8 0 0 1 0 0 0 1 0 17

αναπαράσταση γραφήματος: λίστα γειτνίασης λίστα γειτνίασης (adjacency list). Πίνακας από λίστες, με μία λίστα για κάθε κόμβο. Δύο αναπαραστάσεις για κάθε ακμή. Χώρος ανάλογος του m + n. Ο έλεγχος για την ύπαρξη ακμής (u, v) γίνεται σε O(deg(u)). Εύρεση όλων των ακμών σε χρόνο (m + n). βαθμός (degree) = το πλήθος των γειτόνων του κόμβου u 1 2 3 2 3 1 3 4 5 1 2 5 7 8 4 2 5 5 6 2 3 4 6 5 7 3 8 8 3 7 18

μονοπάτια, κύκλοι, κτλ.

μονοπάτια και συνεκτικότητα Ορισμός. Ένα μονοπάτι (path) σε ένα μη-κατευθυνόμενο γράφημα G = (V, E) είναι μια ακολουθία P από κόμβους v 1, v 2,, v k-1, v k με την ιδιότητα ότι κάθε διαδοχικό ζευγάρι v i, v i+1 συνδέεται με μια ακμή στο E. Ορισμός. Ένα μονοπάτι είναι απλό (simple) εάν όλοι οι κόμβοι είναι διακριτοί (δεν εμφανίζεται κόμβος πάνω από μία φορά). Ορισμός. Ένα μη-κατευθυνόμενο γράφημα είναι συνεκτικό (connected) εάν για κάθε ζεύγος κορυφών nodes u και v, υπάρχει μονοπάτι μεταξύ u και v. 20

κύκλοι (cycles) Ορισμός. Ένας κύκλος (cycle) είναι ένα μονοπάτι v 1, v 2,, v k-1, v k στο οποίο v 1 = v k, k > 2, και οι πρώτοι k-1 κόμβοι είναι διακριτοί. κύκλος C = 1-2-4-5-3-1 21

δέντρα

δέντρα (tree) Ορισμός. Ένα η-κατευθυνόμενο γράφημα είναι δέντρο (tree) εάν είναι συνεκτικό και άκυκλο (δεν περιλαμβάνει κύκλο). Θεώρημα. Έστω G ένα μη-κατευθυνόμενο γράφημα με n κόμβους. Τότε οποιεσδήποτε δύο από τις παρακάτω ιδιότητες συνεπάγεται την τρίτη. Το G είναι συνεκτικό. Το G είναι άκυκλο. Το G έχει n-1 ακμες. 23

δέντρα με ρίζα δέντρο με ρίζα (rooted tree). Ένα δέντρο T, στο οποίο ορίζουμε μία κορυφή ως ρίζα. Ένα δέντρο με ρίζα το απεικονίζουμε συνήθως όπως φαίνεται στο σχήμα. Σημασία/χρησιμότητα. Τα δέντρα με ρίζα είναι κατάλληλα για τη μοντελοποίηση ιεραρχικών δομών. ρίζα r γονέας της v v παιδί της v ένα δέντρο το ίδιο δέντρο, με ρίζα τον κόμβο 1 24

δέντρο εξέλιξης http://www.exeldim.bravehost.com/exelixi/thilastika/eikones/ailouroeidi/dendro_gatas_a.jpg 25

Ιεραρχία αντικειμένων σε GUI Ιεραρχία αντικειμένων σε GUI (graphical user interface). Περιγράφει την οργάνωση των GUI widgets. Reference: http://java.sun.com/docs/books/tutorial/uiswing/overview/anatomy.html 26

συνεκτικότητα

συνεκτικότητα πρόβλημα της συνεκτικότητας s-t (s-t connectivity problem). Δεδομένων δύο κόμβων s και t, υπάρχει μονοπάτι μεταξύ των s και t; πρόβλημα συντομότερου μονοπατιού s-t (s-t shortest path problem). Δεδομένων δύο κόμβων s και t, ποιο είναι το μήκος του συντομότερου μονοπατιού μεταξύ των s και t; εφαρμογές. δρομολόγηση σε δίκτυα επικοινωνιών επιλογή διαδρομής στις μεταφορές δίκτυο κοινωνικής δικτύωσης Friendster. διάτρεξη λαβύρινθου (maze traversal). Erdös number. 28

Συνεκτική Συνιστώσα (Connected Component) Συνεκτική συνιστώσα. Εύρεση όλων των κόμβων που είναι προσπελάσιμοι από έναν κόμβο s. Η συνεκτική συνιστώσα που περιλαμβάνει τον κόμβο 1 είναι { 1, 2, 3, 4, 5, 6, 7, 8 }. 29

3.2 διάτρεξη γραφήματος

διέλευση/διερεύνηση γραφήματος 1 3 5 12 11 6 2 4 13 20 15 14 7 9 17 19 8 10 16 18 31

διέλευση/διερεύνηση γραφήματος 1 3 5 12 11 6 2 4 13 20 15 14 7 9 17 19 8 10 16 18 32

Αναζήτηση Πρώτα σε Πλάτος (Breadth First Search) διαίσθηση της BFS. Εξερευνούνται όλοι οι κόμβοι ξεκινώντας από τον κόμβο s προς κάθε κατεύθυνση, έτσι ώστε να προστίθεται ένα επίπεδο κόμβων κάθε φορά. αλγόριθμος BFS. L 0 = { s }. L 1 = όλοι οι γείτονες του L 0. s L 1 L 2 L n-1 L 2 = όλοι οι κόμβοι που δεν ανήκουν στο L 0 ή στο L 1, και συνδέονται με ακμή με έναν κόμβο στο L 1. L i+1 = όλοι οι κόμβοι που δεν ανήκουν σε ένα από τα προηγούμενα επίπεδα και συνδέονται με ακμή με έναν κόμβο στο L i. Θεώρημα. Για κάθε i, το L i αποτελείται από όλους τους κόμβους που απέχουν ακριβώς i (ακμές) από το s. Υπάρχει μονοπάτι από το s στο t αν και μόνο αν το t εμφανίζει σε κάποιο από τα επίπεδα. 33

Αναζήτηση Πρώτα σε Πλάτος (Breadth First Search) Ιδιότητα. Έστω T ένα δέντρο BFS του γραφήματος G = (V, E), and έστω (x, y) μια ακμή του G. Τότε τα επίπεδα των x και y διαφέρουν το πολύ κατά 1. L 0 L 1 L 2 L 3 34

BFS: Ανάλυση Θεώρημα. Η παραπάνω (ενότητα 3.3 βιβλίου) υλοποίηση της BFS εκτελείται σε χρόνο O(m + n) εάν το γράφημα δίνεται με την αναπαράσταση λίστας γειτνίασης. Απόδειξη. Είναι εύκολο να δείξουμε πολυπλοκότητα χρόνου O(n 2 ): το πολύ n λίστες L[i] κάθε κόμβος εμφανίζεται το πολύ σε μία λίστα και επομένως ο βρόχος for εκτελείται n φορές για κάθε κόμβο u που εξετάζει ο αλγόριθμος, υπάρχουν n προσπίπτουσες ακμές (u, v) που περιέχουν τον u, και απαιτεί χρόνο O(1) η επεξεργασία κάθε ακμής Όμως η πολυπλοκότητα χρόνου είναι O(m + n): όταν εξετάζουμε έναν κόμβο u, υπάρχουν deg(u) προσπίπτουσες ακμές ο συνολικός χρόνος επεξεργασίας των ακμών είναι u V deg(u) = 2m κάθε ακμή (u, v) μετριέται ακριβώς δύο φορές στο άθροισμα: μια φορά στο deg(u) και μία στο deg(v) 35

διερεύνηση γραφήματος πρώτα κατά πλάτος 36

(a) r s t u 0 v w x y Q s 0 (d) r s t u 1 0 2 2 v 1 w 2 x y Q t x v 2 2 2 (b) r s t u 1 0 v 1 w x y Q w r 1 1 (e) r s t u 1 0 2 3 2 v 1 w 2 x y Q x v u 2 2 3 (c) r s t u 1 0 2 v 1 w 2 x y Q r t x 1 2 2 (f) r s t u 1 0 2 3 2 v 1 w 2 x 3 y Q v u y 2 3 3 37

(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 v 1 w 2 x 3 y Q y 3 (i) r s t u 1 0 2 3 Q empty 2 1 2 3 38

αναζήτηση πρώτα σε βάθος 39

διερεύνηση γραφήματος πρώτα σε βάθος 40

(a) 0 1 2 3 0 v w x y Q s 0 (d) r s t u 1 0 2 v 1 w x y Q w 1 (b) r s t u 1 0 v 1 w x y Q w r 1 1 (e) r s t u 1 0 2 3 2 v 1 w 2 x y Q t x 2 2 (c) r s t u 1 0 2 v 1 w x y Q w v 1 2 (f) r s t u 1 0 2 3 2 v 1 w 2 x 3 y Q t u 2 3 y 3 41

(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 v 1 w 2 x 3 y Q t 2 (i) r s t u 1 0 2 3 Q empty 2 1 2 3 42

Εκτελέστε αναζήτηση BFS και DFS στο παρακάτω γράφημα G, ξεκινώντας από τον κόμβο 0. 0 2 3 1 4 5 6 7 8 9 43

Υλοποίηση BFS και DFS

Αλγόριθμοι BFS και DFS Οι αλγόριθμοι για την BFS και την DFS έχουν την ίδια βασική δομή Οι βασικές διαφορές: A. Η δομή δεδομένων για αποθήκευση των κόμβων σε εκκρεμότητα Η δομή δεδομένων στην BFS είναι τύπου FIFO (ουρά) Η δομή δεδομένων στην DFS είναι τύπου LIFO (στοίβα) Β. Πότε ελέγχεται ότι ένας κόμβος είναι ήδη «γνωστός» στον αλγόριθμος: Στην BFS ο έλεγχος γίνεται τη στιγμή που ο αλγόριθμος ανακαλύπτει έναν κόμβο. Στην DFS κάθε κόμβος που συναντάει ο αλγόριθμος εισάγεται στη στοίβα. Κάθε κόμβος που συναντά ο αλγόριθμος μπαίνει στη στοίβα. Όταν αφαιρείται ένας κόμβος από τη στοίβα ελέγχεται το εάν έχει ήδη επεξεργαστεί ο κόμβος αυτός. 45

Αλγόριθμοι BFS και DFS: Χρήση της ουράς Β. Πότε ελέγχεται ότι ένας κόμβος είναι ήδη «γνωστός» στον αλγόριθμο: Στην BFS ο έλεγχος γίνεται τη στιγμή που ο αλγόριθμος ανακαλύπτει έναν κόμβο. Πρώτα ελέγχεται το εάν ο κόμβος είναι ήδη γνωστός. Μόνο κόμβοι που δεν έχουν μπει ήδη στην ουρά (δομή FIFO) μπαίνουν σε αυτή. Για αυτό το λόγο η δομή δεδομένων για την παρακολούθηση των γνωστών κόμβων ονομάζεται Discovered στο βιβλίο. Σημείωση: Και να προστεθεί περισσότερες από μία φορές ένα κόμβος, η ουρά FIFO έτσι και αλλιώς θα επιστρέψει πρώτα την παλαιότερη εισαγωγή του κόμβου. Κάθε επιπλέον εισαγωγή του κόμβου θα αγνοηθεί κατά την εκτέλεση. Εάν κάθε κόμβος προστίθεται στην ουρά μόνο την πρώτη φορά που τον ανακαλύπτει ο αλγόριθμος (όπως περιγράφεται και στο βιβλίο) τότε έχουμε λιγότερες πράξεις εισαγωγής στην ουρά FIFO, 46

Αλγόριθμοι BFS και DFS: Χρήση της ουράς (συνέχεια) Β. Πότε ελέγχεται ότι ένας κόμβος είναι ήδη «γνωστός» στον αλγόριθμο: Στην DFS ο έλεγχος γίνεται όταν αφαιρείται ο κόμβος από τη στοίβα. Κάθε κόμβος που συναντά ο αλγόριθμος εισάγεται στη δομή LIFO (στοίβα). Όταν αφαιρείται ένας κόμβος από τη στοίβα ελέγχεται το εάν έχει ήδη επεξεργαστεί ο κόμβος αυτός. Εάν δεν έχει γίνει επεξεργασία του κόμβου, τότε ο αλγόριθμος τον επεξεργάζεται και ο κόμβος σημειώνεται στους γνωστούς κόμβους. Διαφορετικά, ο κόμβος απλά αφαιρείται από τη στοίβα και ο αλγόριθμος τον αγνοεί. Η δομή δεδομένων για τη φύλαξη των γνωστών κόμβων ονομάζεται Explored στο βιβλίο. 47

Συνεκτικές Συνιστώσες

Flood Fill Flood fill. Δίνοντας πράσινο χρώμα σε ένα pixel μιας εικόνας, αλλάζει το τμήμα της εικόνας που περιλαμβάνει το pixel αυτό σε πράσινο. Κόμβος: pixel. Ακμή: δύο γειτονικά pixel. Τμήμα εικόνας: συνεκτική συνιστώσα με πράσινα pixels. χρωματισμός του πράσινου τμήματος με μπλε 49

Flood Fill Flood fill. Δίνοντας πράσινο χρώμα σε ένα pixel μιας εικόνας, αλλάζει το τμήμα της εικόνας που περιλαμβάνει το pixel αυτό σε πράσινο. Κόμβος: pixel. Ακμή: δύο γειτονικά pixel. Τμήμα εικόνας: συνεκτική συνιστώσα με πράσινα pixels. χρωματισμός του πράσινου τμήματος με μπλε 50

Συνεκτική Συνιστώσα Συνεκτική Συνιστώσα. Βρες όλους τους κόμβους που είναι προσπελάσιμοι από τον s. s R u v μπορούμε να προσθέσουμε τον κόμβο v Θεώρημα. Όταν ολοκληρωθεί η διαδικασία, το R είναι η συνεκτική συνιστώσα που περιλαμβάνει τον κόμβο s. BFS = εξερευνά με σειρά που βασίζεται στην απόσταση από τον s. DFS = εξερευνά με έναν διαφορετικό τρόπο. 51

3.4 Έλεγχος διμερότητας

διμερές γράφημα (bipartite graph) Ορισμός. Ένα μη-κατευθυνόμενο γράφημα G = (V, E) είναι διμερές εάν οι κόμβοι του μπορούν να χρωματιστούν με δύο χρώματα, πχ. κόκκινο και μπλε, έτσι ώστε κάθε ακμή να έχει ένα άκρο κόκκινο και ένα μπλε. Εφαρμογές. Ευσταθές ταίριασμα: άντρες = κόκκινο, γυναίκες = μπλε. Χρονοπρογραμματισμός: μηχανές = κόκκινο, εργασίες = μπλε. ένα διμερές γράφημα 53

έλεγχος διμερότητας Έλεγχος διμερότητας. Δεδομένου ενός γραφήματος G, είναι διμερές; Πολλά γραφοθεωρητικά προβλήματα γίνονται: ευκολότερα όταν εφαρμόζονται σε διμερή γραφήματα (matching) tractable όταν εφαρμόζονται σε διμερή γραφήματα (ανεξάρτητο σύνολο) Η δομή των διμερών γραφημάτων. v 2 v 3 v 2 v 1 v 4 v 6 v 5 v 4 v 3 v 5 v 6 v 7 v 1 v 7 ένα διμερές γράφημα G μια άλλη απεικόνιση του ίδιου γραφήματος G 54

ένα εμπόδιο για τη διμερότητα Λήμμα. Εάν ένα γράφημα είναι διμερές, δεν μπορεί να περιέχει έναν κύκλου περιττού μήκους. Απόδειξη. Δεν είναι δυνατό να χρωματίσουμε κατάλληλα τον περιττό κύκλο και επομένως ούτε και ολόκληρο το γράφημα G. διμερές (2-colorable) δεν είναι διμερές (not 2-colorable) 55

διμερή γραφήματα Λήμμα. Έστω G ένα συνεκτικό γράφημα, και έστω L 0,, L k τα επίπεδα που παράγονται από BFS ξεκινώντας από τον κόμβο s. Ισχύει ακριβώς ένα από τα παρακάτω. (i) Καμία ακμή του G δεν ενώνει κόμβους ίδιου επιπέδου και το G είναι διμερές. (ii) Υπάρχει ακμή του G που ενώνει κόμβους του ίδιου επιπέδου και το G περιέχει κύκλο περιττού μήκους (και επομένως δεν είναι διμερές). L 1 L 2 L 3 περίπτωση (i) L 1 L 2 L 3 περίπτωση (ii) 56

διμερή γραφήματα Λήμμα. Έστω G ένα συνεκτικό γράφημα, και έστω L 0,, L k τα επίπεδα που παράγονται από BFS ξεκινώντας από τον κόμβο s. Ισχύει ακριβώς ένα από τα παρακάτω. (i) Καμία ακμή του G δεν ενώνει κόμβους ίδιου επιπέδου και το G είναι διμερές. (ii) Υπάρχει ακμή του G που ενώνει κόμβους του ίδιου επιπέδου και το G περιέχει κύκλο περιττού μήκους (και επομένως δεν είναι διμερές). Απόδειξη. (i) Έστω ότι δεν υπάρχει ακμή που να ενώνει κόμβους του ίδιου επιπέδου. Από προηγούμενο λήμμα, όλες οι ακμές ενώνουν κόμβους σε γειτονικά επίπεδα. Διαμέριση: red = κόμβοι σε μονά επίπεδα, blue = κόμβοι σε ζυγά επίπεδα. L 1 L 2 L 3 Περίπτωση (i) 57

διμερή γραφήματα Λήμμα. Έστω G ένα συνεκτικό γράφημα, και έστω L 0,, L k τα επίπεδα που παράγονται από BFS ξεκινώντας από τον κόμβο s. Ισχύει ακριβώς ένα από τα παρακάτω. (i) Καμία ακμή του G δεν ενώνει κόμβους ίδιου επιπέδου και το G είναι διμερές. (ii) Υπάρχει ακμή του G που ενώνει κόμβους του ίδιου επιπέδου και το G περιέχει κύκλο περιττού μήκους (και επομένως δεν είναι διμερές). Απόδειξη. (ii) Έστω ακμή (x, y) με x, y στο ίδιο επίπεδο L j. Έστω z = lca(x, y) = κοντινότερος κοινός πρόγονος. Έστω L i το επίπεδο στο οποίο ανήκει η z. Έστω ο κύκλος με την ακμή (x, y), το μονοπάτι από το y στο z, και το μονοπάτι από το z στο x. Το μήκος του είναι 1 + (j-i) + (j-i), (περιττός αριθμός) z = lca(x, y) (x, y) μονοπάτι από y στο z μονοπάτι από z στο x 58

εμπόδιο στη διμερότητα Corollary. Ένα γράφημα G είναι διμερές αν και μόνο αν δεν περιέχει κύκλου περιττού μήκους. 5-cycle C διμερές (2-colorable) δεν είναι διμερές (not 2-colorable) 59

πηγές/αναφορές Κεφάλαιο 3, Σχεδίαση Αλγορίθμων, J. Kleinberg and E. Tardos, Ελληνική έκδοση από τις Εκδ. Κλειδάριθμος Κεφάλαιο 22, Εισαγωγή στους αλγόριθμους, T. Cormen, C. Leiserson, R. Rivest and C. Stein, Ελληνική έκδοση από τις Πανεπιστημιακές Εκδ. Κρήτης 60