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

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

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

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

Εισαγωγή στους Αλγορίθμους Ενότητα 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

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

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

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

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

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

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

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

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

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

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

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

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

(elementary graph algorithms)

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

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

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

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

Στοιχεία Θεωρίας Γραφηµάτων (1)

Κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Πολυγραφήµατα (Multigraphs)

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

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

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

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

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

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

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

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

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι είναι οι γράφοι; Εφαρµογές των γράφων Γράφοι

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι είναι οι γράφοι; Εφαρµογές των γράφων Γράφοι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2. Η δοµή δεδοµένων Σωρός και η Ταξινόµηση Σωρού (The Heap data structure and Heapsort) Έκδοση 1.1, 12/05/2010

Απλές Δοµές Δεδοµένων Στην ενότητα αυτή θα γνωρίσουµε ορισµένες απλές Δοµές Δεδοµένων και θα τις χρησιµοποιήσουµε για την αποδοτική επίλυση του προβλή

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

HY118- ιακριτά Μαθηµατικά

ΕΠΛ 231 οµές εδοµένων και Αλγόριθµοι Άννα Φιλίππου,

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

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

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

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

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

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

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

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

ΕΠΛ 231 Δοµές Δεδοµένων και Αλγόριθµοι 11-1

Ενότητα 10 Γράφοι (ή Γραφήµατα)

jτο πλήθος των ταξιδιών που κάνει η αεροσυνοδός µέχρι την j ηµέρα. Σχηµατίζω µία ακολουθία που αποτελείται από τα a.

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

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

(elementary graph algorithms)

Κεφάλαιο 4. Διαίρει και Βασίλευε (Divide and Conquer) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του Kevin Wayne.

Αλγόριθµοι Τύπου Μείωσης Προβλήµατος

Transcript:

Κεφάλαιο 3 Γραφήµατα v1.0 (2010-05-25) Χρησιµοποιήθηκε υλικό από τις αγγλικές διαφάνειες του 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

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

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

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

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

διατροφική αλυσίδα Γράφηµα διατροφικής αλυσίδας. Κόµβοι = είδη. Ακµή = από θηρευτή σε θήραµα. 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 9

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

αναπαράσταση γραφήµατος: πίνακας γειτνίασης Πίνακας γειτνίασης (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 11

αναπαράσταση γραφήµατος: λίστα γειτνίασης λίστα γειτνίασης (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 12

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

µονοπάτια και συνεκτικότητα Ορισµός. Ένα µονοπάτι (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. 14

κύκλοι (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 15

δέντρα

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

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

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

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

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

συνεκτικότητα πρόβληµα της συνεκτικότητας 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. 22

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

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

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

Αναζήτηση Πρώτα σε Πλάτος (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 εµφανίζει σε κάποιο από τα επίπεδα. 26

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

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) 28

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

(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 r s t u 1 0 Q (b) w r 1 1 1 v w x y (e) r s t u 1 0 2 3 2 1 2 v w 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 30

(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 31

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

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

(a) r s t u 0 v w x y Q s 0 (d) r s t u 1 0 2 v 1 w x y Q w 1 r s t u 1 0 Q (b) w r 1 1 1 v w x y (e) r s t u 1 0 2 3 2 1 2 v w 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 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

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

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

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

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

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

έλεγχος διµερότητας Έλεγχος διµερότητας. Δεδοµένου ενός γραφήµατος 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 41

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

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

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

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

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

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