Θεωρία & Αλγόριθμοι Γράφων Θεωρία & Αλγόριθμοι Γράφων Εφαρμογές DFS Data Science Lab 1.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Γραφήματα & Επίπεδα Γραφήματα
Advertisements

Αλγόριθμοι Αναζήτησης
Διακριτά Μαθηματικά ΙI Δέντρα
Επίπεδα Γραφήματα : Προβλήματα και Υπολογιστική Πολυπλοκότητα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 2: Μονοπάτια και Κύκλοι (Euler) Data Engineering Lab.
Ο αλγόριθμος του Ukkonen Βεργούλης Θανάσης Το suffix trie Το suffix trie του string D=“book” b o o k o o k k k $ $ $ $
Ψηφιακά Δένδρα TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Μπορούμε να χρησιμοποιήσουμε την παραπάνω αναπαράσταση.
11-1 ΜΑΘΗΜΑ 12 ο Γράφοι, Διάσχιση Γράφων Υλικό από τις σημειώσεις Ν. Παπασπύρου, 2006.
Γραφήματα & Επίπεδα Γραφήματα
Διαίρει και Βασίλευε πρόβλημα μεγέθους Ν διάσπαση πρόβλημα μεγέθους Ν-k πρόβλημα μεγέθους k.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Δυναμική Διατήρηση Γραμμικής Διάταξης Διατηρεί μια γραμμική διάταξη δυναμικά μεταβαλλόμενης συλλογής στοιχείων. Υποστηρίζει τις λειτουργίες: Έλεγχος της.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου 2015Δευτέρα, 12 Ιανουαρίου.
Γράφοι: Προβλήματα και Αλγόριθμοι
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι12-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος του Prim και ο αλγόριθμος του Kruskal.
Σχεδιαση Αλγοριθμων - Τμημα Πληροφορικης ΑΠΘ - Κεφαλαιο 9ο1 Άπληστοι αλγόριθμοι βελτιστοποίησης Προβλήματα βελτιστοποίησης λύνονται με μια σειρά επιλογών.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 1: Βασικές Έννοιες (ορισμοί) Data Engineering Lab.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 1: Βασικές Έννοιες (πράξεις) Data Engineering Lab.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 9: Αντιστοιχίσεις και καλύμματα Data Engineering Lab.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Ουρά Προτεραιότητας: Heap
ΜΑΘΗΜΑ: ΣΧΕΔΙΑΣΗ ΑΛΓΟΡΙΘΜΩΝ ΔΙΔΑΣΚΩΝ: Π. ΚΑΤΣΑΡΟΣ Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Δευτέρα, 30 Μαρτίου 2015Τμ. Πληροφορικής,
Συντομότερες Διαδρομές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Σχεδίαση Αλγορίθμων - Τμήμα Πληροφορικής ΑΠΘ - Eξάμηνο 4ο1 Μείωσε και Βασίλευε Μειώνουμε το στιγμιότυπο του προβλήματος σε ένα μικρότερο στιγμιότυπο.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A Θέλουμε να υποστηρίξουμε δύο βασικές λειτουργίες:
Επίπεδα Γραφήματα: Έλεγχος Επιπεδότητας TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A αβ ζ η ε γ θ Το γράφημα.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα Data Engineering Lab 1.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Διερεύνηση γραφήματος. Ένας αλγόριθμος διερεύνησης γραφήματος επισκέπτεται τους κόμβους του γραφήματος με μια καθορισμένη στρατηγική, π.χ. κατά εύρος.
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Αναζήτηση Κατά Βάθος Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Ενότητα 4 Δ ΕΝΔΡΑ Σταύρος Δ. Νικολόπουλος 1.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι 8-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: 2-3 Δένδρα, Υλοποίηση και πράξεις Β-δένδρα B-Δένδρα.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
ΔιαΙρεςη και κυριαρχια
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι13-1 Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: Ο αλγόριθμος Dijkstra για εύρεση βραχυτέρων μονοπατιών.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Δένδρα ΘΕΩΡΙΑ ΓΡΑΦΩΝ Εργαστήριο Τεχνολογίας & Επεξεργασίας Δεδομένων Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 3: Δένδρα.
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - 4ο εξάμηνο
Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές TSP, Μέτρα κεντρικότητας, Dijkstra Data Engineering Lab.
Ελαφρύτατες διαδρομές TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A.
Δομές ΔεδομένωνΤμήμα Πληροφορικής ΑΠΘ1 Δομές Δεδομένων - DFS σε κατευθυνόμενο γράφο - Ελάχιστα Μονοπάτια - Τοπολογική Ταξινόμηση - Eλάχιστα Ζευγνύοντα.
Συνδεσμικότητα ΘΕΩΡΙΑ ΓΡΑΦΩΝ Εργαστήριο Τεχνολογίας & Επεξεργασίας Δεδομένων Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα.
Θεωρία Γραφημάτων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές
Μέγιστη ροή TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A AA A A Συνάρτηση χωρητικότητας Κατευθυνόμενο γράφημα.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ. 2 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα –Αναζήτηση κατά βάθος (Depth-first search – DFS) –Αναζήτηση κατά πλάτος (Breadth-first.
Γράφημα Συνδυαστικό αντικείμενο που αποτελείται από 2 σύνολα:
Επίλυση Προβλημάτων με Αναζήτηση
Δένδρα.
Δένδρα Δένδρο είναι ένα συνεκτικό άκυκλο γράφημα. Δένδρο Δένδρο Δένδρο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
ΓΡΑΦΟΙ (GRAPHS).
Αλγόριθμοι - Τμήμα Πληροφορικής ΑΠΘ - Κεφάλαιο 9ο
Μέγιστη ροή Κατευθυνόμενο γράφημα 12 Συνάρτηση χωρητικότητας
Θεωρία & Αλγόριθμοι Γράφων Αποστάσεις
EPL231 – Data Structures and Algorithms
Θεωρία & Αλγόριθμοι Γράφων Κατευθυνόμενοι Γράφοι
Δομές Αναζήτησης Χειριζόμαστε ένα σύνολο στοιχείων όπου το κάθε στοιχείο έχει ένα κλειδί από ολικά διατεταγμένο σύνολο Θέλουμε να υποστηρίξουμε δύο.
ΣΤΟΙΧΕΙΑ ΘΕΩΡΙΑΣ ΓΡΑΦΗΜΑΤΩΝ II
(2,4) Trees 11/15/2018 8:56 PM (2,4) Δέντρα (2,4) Δέντρα.
Αναδρομή Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα:
Μεταγράφημα παρουσίασης:

Θεωρία & Αλγόριθμοι Γράφων Θεωρία & Αλγόριθμοι Γράφων Εφαρμογές DFS Data Science Lab 1

 Μη κατευθυνόμενοι γράφοι  Συνδεδεμένες συνιστώσες - connected components  Σημεία άρθρωσης - articulation points  Γέφυρες – bridges  Δισυνδεδεμένες συνιστώσες - biconnected components  Κατευθυνόμενοι γράφοι  Κυκλικοί/άκυκλοι γράφοι  Τοπολογική ταξινόμηση  Ισχυρά συνδεδεμένες συνιστώσες – strongly connected components 2 Εφαρμογές της DFS Data Science Lab

Ένας μη κατευθυνόμενος γράφος λέγεται συνδεδεμένος αν υπάρχει μονοπάτι μεταξύ δύο οποιωνδήποτε κορυφών του. Μία συνδεδεμένη συνιστώσα ενός μη κατευθυνόμενου γράφου είναι ένας υπογράφος, όπου δύο κορυφές του ενώνονται μεταξύ τους με μονοπάτια, χωρίς να ενώνονται με άλλες κορυφές του υπεργράφου. 3 Συνδεδεμένες συνιστώσες Data Science Lab

Με την κλήση της DFS-VISIT(G,s) προσπελαύνουμε όλους τους κόμβους της ίδιας συνδεδεμένης συνιστώσας Το πλήθος των συνδεδεμένων συνιστωσών ισούται με το πλήθος των κλήσεων της DFS-VISIT from DFS 4 Εύρεση συνδεδεμένων συνιστωσών με DFS Data Science Lab

Έστω G=(V,E) ένας συνδεδεμένος μη κατευθυνόμενος γράφος Σημείο άρθρωσης είναι μία κορυφή που αν διαγραφεί διασπάται ο γράφος Γέφυρα είναι μία ακμή που αν διαγραφεί διασπάται ο γράφος Συνδεδεμένη συνιστώσα του G είναι το μέγιστο σύνολο ακμών έτσι ώστε δύο οποιεσδήποτε ακμές του συνόλου ανήκουν σε ένα κύκλο Οι έννοιες αυτές είναι σημαντικές επειδή μπορούν να χρησιμοποιηθούν για τον εντοπισμό τρωτών σημείων ενός δικτύου. 5 Σημεία άρθρωσης, γέφυρες Data Science Lab

Παράδειγμα Data Science Lab

Ωμή βία: διαγράφονται οι κορυφές μία-προς-μία και κάθε φορά διαπιστώνεται αν ο γράφος διασπάται. For every vertex v, do : Remove v from graph See if the graph remains connected (use BFS or DFS) If graph is disconnected, add v to AP list Add v back to the graph Η πολυπλοκότητα αυτής της μεθόδου είναι O(V*(V+E)) αν ο γράφος αναπαρίσταται με λίστες γειτονίας Μπορούμε καλύτερα? 7 Εύρεση σημείων άρθρωσης Data Science Lab

Μπορούμε να αποδείξουμε τα εξής: 1.Η ρίζα του DFS-δένδρου είναι σημείο άρθρωσης αν και μόνο αν έχει τουλάχιστον 2 παιδιά. 2.Ένας κόμβος v πλην της ρίζας ενός DFS-δένδρου είναι ένα σημείο άρθρωσης του G αν και μόνο αν έχει ένα παιδί s τέτοιο ώστε να μην υπάρχει μία οπίσθια ακμή από το s ή κάποιου απογόνου του s προς ένα πρόγονο του v. 3.Τα φύλλα του DFS-δένδρου δεν είναι σημεία άρθρωσης. 8 Εύρεση σημείων άρθρωσης με DFS Data Science Lab

Περίπτωση 1: Η ρίζα είναι σημείο άρθρωσης αν και μόνο αν έχει 2 παιδιά τουλάχιστον. Ο κόμβος 2 είναι σημείο άρθρωσης επειδή οποιοσδήποτε κόμβος από το αριστερό υποδένδρο δεν συνδέεται με οποιοδήποτε κόμβο του δεξιού υποδένδρου παρά μόνο μέσω ενός μονοπατιού που περνά από το 2. 9 Εύρεση σημείων άρθρωσης με DFS (2) Data Science Lab

Περίπτωση 2: ένας κόμβος που δεν είναι ρίζα του DFS-tree είναι σημείο άρθρωσης αν έχει ένα παιδί με το οποίο δεν είναι συνδεδεμένο (από ανιόντες ή κατιόντες) ή μέσω των απογόνων του με μαύρη ακμή προς ένα πρόγονο. Ο κόμβος 6 είναι σημείο άρθρωσης επειδή ο κόμβος 7 ενώνεται με οπίσθια ακμή με τον πρόγονο του Data Science Lab Εύρεση σημείων άρθρωσης με DFS (3)

Περίπτωση 2: ένας κόμβος που δεν είναι ρίζα του DFS-tree είναι σημείο άρθρωσης αν έχει ένα παιδί με το οποίο δεν είναι συνδεδεμένο (από ανιόντες ή κατιόντες) ή μέσω των απογόνων του με μαύρη ακμή προς ένα πρόγονο. Ο κόμβος 6 είναι σημείο άρθρωσης επειδή ο κόμβος 7 ενώνεται με οπίσθια ακμή με τον πρόγονο του Data Science Lab Πως μπορούμε να υλοποιήσουμε αποτελεσματικά αυτό το τεστ? Η συνάρτηση LOW ! Εύρεση σημείων άρθρωσης με DFS (4)

/16 2/5 3/4 6/15 7/14 8/13 9/12 10/11 Η DFS δίδει σε κάθε κόμβο v το χρόνο ανακάλυψης (discovery) και το χρόνο τερματισμού (finish) v.d /v.f Ο χρόνος ανακάλυψης ενός κόμβου v είναι μικρότερος από τον κόμβο ανακάλυψης οποιουδήποτε απογόνου Μία οπίσθια ακμή οδηγεί σε κόμβο με μικρότερο χρόνο ανακάλυψης 12 Data Science Lab Χρόνοι ανακάλυψης-τερματισμού

Για ένα κόμβο u, η τιμή LOW(u) ισούται με το μικρότερο χρόνο ανακάλυψης του υψηλότερου προγόνου που μπορούμε να φτάσουμε από ένα απόγονο με οπίσθιες ακμές. Ο κόμβος u είναι σημείο άρθρωσης αν έχει έναν απόγονο v με LOW(v)>=u.d 1/16 2/5 3/4 6/15 7/14 8/13 9/12 10/11 Low=1 Low=6 Low=8 13 Data Science Lab Η συνάρτηση LOW

Αργοριθμική αρχή:  Κατά τη διάρκεια της DFS, υπολογίζουμε και τις τιμές της LOW για κάθε κόμβο  Μετά την αναδρομική αναζήτηση από ένα παιδί v ενός κόμβου u, ενημερώνουμε την τιμή u.low με την τιμή v.low. Ο κόμβος u είναι σημείο άρθρωσης αποσυνδέοντας τον κόμβο v, αν v.low>=u.d  Αν ο κόμβος u είναι ρίζα του DFS-δένδρου, ελέγχουμε αν ο κόμβος v είναι το δεύτερο παιδί  Όταν συναντούμε την οπίσθια ακμή (u,v), ενημερώνουμε την τιμή u.low με την τιμή of v.d 14 Data Science Lab Εύρεση των σημείων άρθρωσης

DFS_VISIT_AP(G, u) time=time+1 u.d=time u.color=GRAY u.low=u.d for each v in G.Adj[u] if v.color==WHITE v.pi=u DFS_VISIT_AP(G,v) if (u.pi==NIL) if (v is second son of u) “u is AP” // Case 1 else u.low=min(u.low, v.low) if (v.low>=u.d) “u is AP” // Case 2 else if ((v<>u.pi) and (v.d <u.d)) u.low=min(u.low, v.d) u.color=BLACK time=time+1 u.f=time 15 Data Science Lab

Data Science Lab Γέφυρες - παράδειγμα

Ωμή βία: διαγράφονται οι ακμές μία-προς-μία και κάθε φορά διαπιστώνεται αν ο γράφος διασπάται: For every edge e, do : Remove e from graph See if the graph remains connected (use BFS or DFS) If graph is disconnected, add e to B list Add e back to the graph Η πολυπλοκότητα αυτής της μεθόδου είναι O(E*(V+E)) αν ο γράφος αναπαρίσταται με λίστες γειτονίας. Μπορούμε καλύτερα? 17 Data Science Lab Εύρεση γεφυρών

Μία ακμή του G είναι γέφυρα αν και μόνο αν δεν ανήκει σε κάποιο κύκλο του G. Αν για κάποιο κόμβο u υπάρχει μία οπίσθια ακμή που να τον δείχνει, τότε ουδεμία ακμή κάτω από τον u στο DFS-δένδρο μπορεί να είναι γέφυρα. Ο λόγος είναι ότι κάθε οπίσθια ακμή δημιουργεί κύκλο. Αν ένας κόμβος v έχει τον κόμβο u για πατέρα στο DFS-δένδρο, και δεν υπάρχει οπίσθια ακμή από τον v προς πρόγονο του v, τότε η ακμή (u,v) είναι γέφυρα. 18 Data Science Lab Εύρεση γεφυρών με DFS

/12 Η ακμή (u,v) είναι γέφυρα αν LOW(v)>u.d 2/5 3/4 6/11 7/10 8/9 Low=1 Low=6 19 Data Science Lab Εύρεση γεφυρών με DFS (2)

DFS_VISIT_Bridges(G, u) time=time+1 u.d=time u.color=GRAY u.low=u.d for each v in G.Adj[u] if v.color==WHITE v.pi=u DFS_VISIT_AP(G,v) u.low=min(u.low, v.low) if (v.low>u.d) “(u,v) is Bridge” else if ((v<>u.pi) and (v.d <u.d)) u.low=min(u.low, v.d) u.color=BLACK time=time+1 u.f=time 20 Data Science Lab

Data Science Lab Δισυνδεδεμένες συνιστώσες

Δύο δισυνδεδεμένες συνιστώσες δεν μπορούν να έχουν κοινή ακμή, αλλά μπορούν να έχουν κοινή κορυφή. Σημαδεύουμε τις ακμές με το id της αντίστοιχης δισυνδεδεμένης συνιστώσας Η κοινή κορυφή μεταξύ οποιωνδήποτε συνδεδεμένων συνιστωσών είναι ένα σημείο άρθρωσης Θα βρούμε τις δισυνδεδεμένες συνιστώσες κατά την εύρεση των σημείων άρθρωσης. 22 Data Science Lab Δισυνδεδεμένες συνιστώσες (2)

Αλγοριθμική αρχή:  Κατά τη διάρκεια του DFS, χρησιμοποιούμε μία στοίβα για την αποθήκευση των επισκεφθέντων ακμών.  Μετά τον τερματισμό της αναδρομικής αναζήτησης ενός παιδιού v από ένα κόμβο u, ελέγχουμε αν ο u είναι σημείο άρθρωσης για το v. Αν είναι, εξάγουμε όλες τις ακμές από τη στοίβα μέχρι την ακμή (u,v). Αυτές οι ακμές αποτελούν μία δισυνδεδεμένη συνιστώσα.  Όταν επιστρέφουμε στη ρίζα του DFS-δένδρου, εξάγουμε τις ακμές ακόμη και αν η ρίζα δεν είναι σημείο άρθρωσης (δεν εξετάζουμε την περίπτωση η ρίζα να είναι σημείο άρθρωσης). 23 Data Science Lab Εύρεση δισυνδεδεμένων συνιστωσών

Data Science Lab Εύρεση δισυνδεδεμένων συνιστωσών (2)

DFS_VISIT_BiconnectedComp(G, u) time=time+1 u.d=time u.color=GRAY u.low=u.d u.AP=false for each v in G.Adj[u] if v.color==WHITE v.pi=u EdgeStack.push(u,v) DFS_VISIT_AP(G,v) u.low=min(u.low, v.low) if (v.low>=u.d) pop all edges from EdgeStack until (u,v) these are the edges of a Biconn Comp else if ((v<>u.pi) and (v.d <u.d)) EdgeStack.push(u,v) u.low=min(u.low, v.d) u.color=BLACK time=time+1 u.f=time 25 Data Science Lab

 Μη κατευθυνόμενοι γράφοι  Συνδεδεμένες συνιστώσες - Connected components  Σημεία άρθρωσης - articulation points  Γέφυρες – bridges  Δισυνδεδεμένες συνιστώσες - biconnected components  Κατευθυνόμενοι γράφοι  Κυκλικοί/άκυκλοι γράφοι  Τοπολογική ταξινόμηση  Ισχυρά συνδεδεμένες συνιστώσες – strongly connected components 26 Εφαρμογές της DFS Data Science Lab

Ένας άκυκλος κατευθυνόμενος γράφος (DAG) είναι ένας κατευθυνόμενος γράφος χωρίς κατευθυνόμενους κύκλους άκυκλος κυκλικός 27 Data Science Lab Κατευθυνόμενοι άκυκλοι γράφοι

Ένας γράφος G είναι άκυκλος αν δεν υπάρχουν οπίσθιες ακμές u vw x yz 1/ 2/ 3/4/ 28 Data Science Lab DFS και κύκλοι σε ένα γράφο

Τοπολογική ταξινόμηση ενός DAG είναι η γραμμική διάταξη των κορυφών, έτσι ώστε η κορυφή u βρίσκεται πριν την κορυφή v αν υπάρχει η ακμή (u,v)  G Η ιδιότητα αυτή είναι σημαντική σε προβλήματα δρομολόγησης - scheduling 29 Data Science Lab Τοπολογική ταξινόμηση

u vw x yz Υπάρχουν πολλές διατάξεις που ικανοποιούν την απαίτηση της τοπολογικής ταξινόμησης:  u, v, w, y, x, z  w, z, u, v, y, x  w, u, v, y, x, z  … 30 Data Science Lab Παράδειγμα

Αλγοριθμική αρχή: 1.Καλούμε την DFS για να υπολογίσουμε το χρόνο τερματισμού v.f για κάθε κόμβο v. 2.Όποτε τερματίζει ένας κόμβος (γίνεται μαύρος) τον εισάγουμε σε μία στοίβα. 3.Εξάγουμε τα στοιχεία της στοίβας και λαμβάνουμε τη διάταξη της τοπολογικής ταξινόμησης. Time: O(V+E) 31 Data Science Lab Τοπολογική ταξινόμηση

32 Data Science Lab Παράδειγμα τοπολογικής ταξινόμησης

Πρόταση: (u,v)  G  u.f>v.f Κατά την εξερεύνηση της ακμής (u,v), ο κόμβος u is γκρίζος v = γκρίζος  η (u,v) είναι οπίσθια ακμή. Άτοπο, εφόσον ο G είναι DAG δεν περιέχει οπίσθιες ακμές v = λευκός  ο v καθίσταται απόγονος του u  v.f<u.f (διότι πρέπει ο v να τερματίσει πριν την οπισθοδρόμηση και τον τερματισμό του u) v = μαύρος  ο v έχει ήδη τερματίσει  v.f<u.f 33 Data Science Lab Ορθότητα τοπολογικής ταξινόμησης

F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 34

F C G A B D E H dfs(A) Data Science Lab Animation τοπολογικής ταξινόμησης 35

dfs(A) dfs(D) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 36

dfs(A) dfs(D) dfs(E) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 37

dfs(A) dfs(D) dfs(E) dfs(F) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 38

dfs(A) dfs(D) dfs(E) dfs(F) dfs(H) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 39

dfs(A) dfs(D) dfs(E) dfs(F) H 7 F C GAB D E Data Science Lab Animation τοπολογικής ταξινόμησης 40

dfs(A) dfs(D) dfs(E) F C A B D E H 7 6 G Data Science Lab Animation τοπολογικής ταξινόμησης 41 η αρίθμηση στους κόμβους δηλώνει την εξαγωγής (pop) από τη στοίβα

dfs(A) dfs(D) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 42

dfs(A) dfs(D) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 43

dfs(A) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 44

dfs(A) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 45

F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 46

F C G A B D E H dfs(B) Data Science Lab Animation τοπολογικής ταξινόμησης 47

F C G A B D E H dfs(B) Data Science Lab Animation τοπολογικής ταξινόμησης 48

F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 49

F C G A B D E H dfs(C) 2 Data Science Lab Animation τοπολογικής ταξινόμησης 50

F C G A B D E H dfs(C) 2 Data Science Lab Animation τοπολογικής ταξινόμησης 51

F C G A B D E H dfs(C) 2 Data Science Lab Animation τοπολογικής ταξινόμησης 52

F C G A B D E H dfs(C) 2 Data Science Lab Animation τοπολογικής ταξινόμησης 53

F C G A B D E H dfs(C) dfs(G) 2 Data Science Lab Animation τοπολογικής ταξινόμησης 54

F C G A B D E H dfs(C) 1 Data Science Lab Animation τοπολογικής ταξινόμησης 55

F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 56

F C G A B D E H Topological order: C G B A D E F H Data Science Lab Animation τοπολογικής ταξινόμησης 57

Μία ισχυρά συνδεδεμένη συνιστώσα ενός κατευθυνόμενου γράφου G=(V,E) είναι το μέγιστο σύνολο κορυφών C, έτσι ώστε για κάθε ζεύγος ακμών u και v του C, και οι δύο κορυφές είναι προσπελάσιμες η μία από την άλλη. 58 Data Science Lab Ισχυρά συνδεδεμένες συνιστώσες

a bd e fh g c 59 Data Science Lab Παράδειγμα

abe cd fg h  Ο γράφος συνιστωσών έχει ως κορυφές τις ισχυρά συνδεδεμένες συνιστώσες και ως ακμές, εκείνες τις ακμές του αρχικού γράφου που ενώνουν τις συνδεδεμένες συνιστώσες  Πρόταση: ο γράφος συνιστωσών είναι DAG 60 Data Science Lab Γράφος συνιστωσών

Αλγοριθμική αρχή: 1.Καλούμε τη DFS(G) για να υπολογίσουμε τους χρόνους τερματισμού u.f για κάθε κόμβο u. 2.Υπολογίζουμε το GT (αντίστροφος του G). 3.Καλούμε τη DFS(GT), αλλά στον κύριο βρόχο του DFS, θεωρούμε τις κορυφές κατά φθίνουσα σειρά των u.f που υπολογίσθηκαν στο Βήμα 1. 4.Εξάγουμε τις κορυφές κάθε DFS-δένδρου που σχηματίσθηκαν στο Βήμα 3 ως κορυφές μίας ισχυρά συνδεδεμένης συνιστώσας. 61 Data Science Lab Ισχυρά συνδεδεμένες συνιστώσες

Βήμα 1: καλούμε DFS(G) και υπολογίζουμε τα u.f για κάθε u a bd e fh g c 1/10 2/73/45/6 8/911/1613/14 12/15 62 Data Science Lab Παράδειγμα

Βήμα 2: υπολογίζουμε το GT a bd e fh g c 1/10 2/73/45/6 8/911/1613/14 12/15 63 Data Science Lab Παράδειγμα (2)

Βήμα 3: καλούμε τη DFS(GT) και θεωρούμε τις κορυφές κατά φθίνουσα σειρά u.f a bd e fh g c 1/10 2/73/45/6 8/911/1613/14 12/15 64 Data Science Lab Παράδειγμα (3)

Βήμα 3: καλούμε τη DFS(GT) θεωρώντας τις κορυφές σε φθίνουσα σειρά των u.f a bd e fh g c 1/10 2/73/45/6 8/911/1613/14 12/15 65 Data Science Lab Παράδειγμα (4)

a bd e fh g c 1/10 2/73/45/6 8/911/1613/14 12/15 66 Data Science Lab Παράδειγμα (5) Βήμα 3: καλούμε τη DFS(GT) θεωρώντας τις κορυφές σε φθίνουσα σειρά των u.f

a bd e fh g c 1/10 2/73/45/6 8/911/1613/14 12/15 67 Data Science Lab Παράδειγμα (6) Βήμα 3: καλούμε τη DFS(GT) θεωρώντας τις κορυφές σε φθίνουσα σειρά των u.f

a bd e fh g c 1/10 2/73/45/6 8/911/1613/14 12/15 68 Data Science Lab Παράδειγμα (7) Βήμα 3: καλούμε τη DFS(GT) θεωρώντας τις κορυφές σε φθίνουσα σειρά των u.f

Θεώρημα Ο προηγούμενος αλγόριθμος βρίσκει τις ισχυρά συνδεδεμένες συνιστώσες του G. Απόδειξη Πρέπει να αποδείξουμε ότι ένα σύνολο κορυφών σχηματίζει μία ισχυρά συνδεδεμένη συνιστώσα αν και μόνο αν είναι κορυφές ενός δένδρου στο DFS-δάσος του G T 69 Data Science Lab Ορθότητα του αλγορίθμου για ισχυρά συνδεδεμένες συνιστώσες

Έστω ότι v,w είναι κορυφές της ίδιας ισχυρά συνδεδεμένης συνιστώσας Γίνεται μία αναζήτηση DFS στο GT, η οποία αρχίζει στην κορυφή r και φθάνει μέχρι την κορυφή v. Εφόσον οι v,w βρίσκονται σε ίδια συνδεδεμένη συνιστώσα, υπάρχει ένα μονοπάτι από την κορυφή v προς την κορυφή w και από την κορυφή w προς την κορυφή v => οπότε η w θα προσεγγισθεί επίσης από την αναζήτηση DFS => οι κορυφές v,w ανήκουν στο ίδιο ζευγνύον δένδρο του GT. 70 Data Science Lab Ορθότητα του αλγορίθμου για ισχυρά συνδεδεμένες συνιστώσες (2)

Έστω ότι v,w είναι κορυφές στο ίδιο DFS-δένδρο του GT. Έστω ότι r είναι η ρίζα αυτού του ζευγνύοντος δένδρου Άρα υπάρχουν μονοπάτια στο GT από την κορυφή r πρός τις κορυφές v και w. Συνεπώς υπάρχουν μονοπάτια στο G προς τη ρίζα r από τις κορυφές v και w. 71 Data Science Lab Ορθότητα του αλγορίθμου για ισχυρά συνδεδεμένες συνιστώσες (3)

Θα αποδείξουμε ότι υπάρχουν μονοπάτια στο G από τη ρίζα r προς την κορυφή v και την κορυφή w. Γνωρίζουμε ότι r.f>v.f (όταν η ρίζα r επιλέγεται ως ρίζα του DFS-δένδρου). Αν δεν υπάρχει μονοπάτι από την κορυφή r προς την κορυφή v, τότε επίσης δεν υπάρχει μονοπάτι από την κορυφή v προς την κορυφή r, πράγμα άτοπο Συνεπώς, υπάρχει μονοπάτι στο G από την κορυφή r προς την κορυφή v, και το ίδιο ισχύει για το μονοπάτι από την κορυφή r προς την κορυφή w. Άρα, οι κορυφές v και w ανήκουν σε ένα κύκλο του G και πρέπει να ανήκουν στην ίδια συνδεδεμένη συνιστώσα. 72 Data Science Lab Ορθότητα του αλγορίθμου για ισχυρά συνδεδεμένες συνιστώσες (4)