Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεΕκάτη Βασιλειάδης Τροποποιήθηκε πριν 8 χρόνια
1
Θεωρία & Αλγόριθμοι Γράφων Θεωρία & Αλγόριθμοι Γράφων Εφαρμογές DFS Data Science Lab 1
2
Μη κατευθυνόμενοι γράφοι Συνδεδεμένες συνιστώσες - connected components Σημεία άρθρωσης - articulation points Γέφυρες – bridges Δισυνδεδεμένες συνιστώσες - biconnected components Κατευθυνόμενοι γράφοι Κυκλικοί/άκυκλοι γράφοι Τοπολογική ταξινόμηση Ισχυρά συνδεδεμένες συνιστώσες – strongly connected components 2 Εφαρμογές της DFS Data Science Lab
3
Ένας μη κατευθυνόμενος γράφος λέγεται συνδεδεμένος αν υπάρχει μονοπάτι μεταξύ δύο οποιωνδήποτε κορυφών του. Μία συνδεδεμένη συνιστώσα ενός μη κατευθυνόμενου γράφου είναι ένας υπογράφος, όπου δύο κορυφές του ενώνονται μεταξύ τους με μονοπάτια, χωρίς να ενώνονται με άλλες κορυφές του υπεργράφου. 3 Συνδεδεμένες συνιστώσες Data Science Lab 1 2 3 4 5 6 7
4
Με την κλήση της DFS-VISIT(G,s) προσπελαύνουμε όλους τους κόμβους της ίδιας συνδεδεμένης συνιστώσας Το πλήθος των συνδεδεμένων συνιστωσών ισούται με το πλήθος των κλήσεων της DFS-VISIT from DFS 4 Εύρεση συνδεδεμένων συνιστωσών με DFS Data Science Lab
5
Έστω G=(V,E) ένας συνδεδεμένος μη κατευθυνόμενος γράφος Σημείο άρθρωσης είναι μία κορυφή που αν διαγραφεί διασπάται ο γράφος Γέφυρα είναι μία ακμή που αν διαγραφεί διασπάται ο γράφος Συνδεδεμένη συνιστώσα του G είναι το μέγιστο σύνολο ακμών έτσι ώστε δύο οποιεσδήποτε ακμές του συνόλου ανήκουν σε ένα κύκλο Οι έννοιες αυτές είναι σημαντικές επειδή μπορούν να χρησιμοποιηθούν για τον εντοπισμό τρωτών σημείων ενός δικτύου. 5 Σημεία άρθρωσης, γέφυρες Data Science Lab
6
1 2 3 4 5 6 7 8 6 Παράδειγμα Data Science Lab
7
Ωμή βία: διαγράφονται οι κορυφές μία-προς-μία και κάθε φορά διαπιστώνεται αν ο γράφος διασπάται. 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
8
Μπορούμε να αποδείξουμε τα εξής: 1.Η ρίζα του DFS-δένδρου είναι σημείο άρθρωσης αν και μόνο αν έχει τουλάχιστον 2 παιδιά. 2.Ένας κόμβος v πλην της ρίζας ενός DFS-δένδρου είναι ένα σημείο άρθρωσης του G αν και μόνο αν έχει ένα παιδί s τέτοιο ώστε να μην υπάρχει μία οπίσθια ακμή από το s ή κάποιου απογόνου του s προς ένα πρόγονο του v. 3.Τα φύλλα του DFS-δένδρου δεν είναι σημεία άρθρωσης. 8 Εύρεση σημείων άρθρωσης με DFS Data Science Lab
9
2 14 6 5 7 3 8 Περίπτωση 1: Η ρίζα είναι σημείο άρθρωσης αν και μόνο αν έχει 2 παιδιά τουλάχιστον. Ο κόμβος 2 είναι σημείο άρθρωσης επειδή οποιοσδήποτε κόμβος από το αριστερό υποδένδρο δεν συνδέεται με οποιοδήποτε κόμβο του δεξιού υποδένδρου παρά μόνο μέσω ενός μονοπατιού που περνά από το 2. 9 Εύρεση σημείων άρθρωσης με DFS (2) Data Science Lab 1 2 3 4 5 6 7 8
10
Περίπτωση 2: ένας κόμβος που δεν είναι ρίζα του DFS-tree είναι σημείο άρθρωσης αν έχει ένα παιδί με το οποίο δεν είναι συνδεδεμένο (από ανιόντες ή κατιόντες) ή μέσω των απογόνων του με μαύρη ακμή προς ένα πρόγονο. Ο κόμβος 6 είναι σημείο άρθρωσης επειδή ο κόμβος 7 ενώνεται με οπίσθια ακμή με τον πρόγονο του 6. 10 Data Science Lab 2 14 6 5 7 3 8 1 2 3 4 5 6 7 8 Εύρεση σημείων άρθρωσης με DFS (3)
11
Περίπτωση 2: ένας κόμβος που δεν είναι ρίζα του DFS-tree είναι σημείο άρθρωσης αν έχει ένα παιδί με το οποίο δεν είναι συνδεδεμένο (από ανιόντες ή κατιόντες) ή μέσω των απογόνων του με μαύρη ακμή προς ένα πρόγονο. Ο κόμβος 6 είναι σημείο άρθρωσης επειδή ο κόμβος 7 ενώνεται με οπίσθια ακμή με τον πρόγονο του 6. 11 1 2 3 4 5 6 7 8 Data Science Lab Πως μπορούμε να υλοποιήσουμε αποτελεσματικά αυτό το τεστ? Η συνάρτηση LOW ! Εύρεση σημείων άρθρωσης με DFS (4)
12
2 14 6 5 7 3 8 1/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 Χρόνοι ανακάλυψης-τερματισμού
13
2 14 6 5 7 3 8 Για ένα κόμβο 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
14
Αργοριθμική αρχή: Κατά τη διάρκεια της 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 Εύρεση των σημείων άρθρωσης
15
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
16
1 2 3 4 5 6 16 Data Science Lab Γέφυρες - παράδειγμα
17
Ωμή βία: διαγράφονται οι ακμές μία-προς-μία και κάθε φορά διαπιστώνεται αν ο γράφος διασπάται: 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 Εύρεση γεφυρών
18
Μία ακμή του G είναι γέφυρα αν και μόνο αν δεν ανήκει σε κάποιο κύκλο του G. Αν για κάποιο κόμβο u υπάρχει μία οπίσθια ακμή που να τον δείχνει, τότε ουδεμία ακμή κάτω από τον u στο DFS-δένδρο μπορεί να είναι γέφυρα. Ο λόγος είναι ότι κάθε οπίσθια ακμή δημιουργεί κύκλο. Αν ένας κόμβος v έχει τον κόμβο u για πατέρα στο DFS-δένδρο, και δεν υπάρχει οπίσθια ακμή από τον v προς πρόγονο του v, τότε η ακμή (u,v) είναι γέφυρα. 18 Data Science Lab Εύρεση γεφυρών με DFS
19
1 2 3 4 5 6 1 2 5 6 4 3 1/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)
20
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
21
1 2 3 4 5 6 7 8 21 Data Science Lab Δισυνδεδεμένες συνιστώσες
22
Δύο δισυνδεδεμένες συνιστώσες δεν μπορούν να έχουν κοινή ακμή, αλλά μπορούν να έχουν κοινή κορυφή. Σημαδεύουμε τις ακμές με το id της αντίστοιχης δισυνδεδεμένης συνιστώσας Η κοινή κορυφή μεταξύ οποιωνδήποτε συνδεδεμένων συνιστωσών είναι ένα σημείο άρθρωσης Θα βρούμε τις δισυνδεδεμένες συνιστώσες κατά την εύρεση των σημείων άρθρωσης. 22 Data Science Lab Δισυνδεδεμένες συνιστώσες (2)
23
Αλγοριθμική αρχή: Κατά τη διάρκεια του DFS, χρησιμοποιούμε μία στοίβα για την αποθήκευση των επισκεφθέντων ακμών. Μετά τον τερματισμό της αναδρομικής αναζήτησης ενός παιδιού v από ένα κόμβο u, ελέγχουμε αν ο u είναι σημείο άρθρωσης για το v. Αν είναι, εξάγουμε όλες τις ακμές από τη στοίβα μέχρι την ακμή (u,v). Αυτές οι ακμές αποτελούν μία δισυνδεδεμένη συνιστώσα. Όταν επιστρέφουμε στη ρίζα του DFS-δένδρου, εξάγουμε τις ακμές ακόμη και αν η ρίζα δεν είναι σημείο άρθρωσης (δεν εξετάζουμε την περίπτωση η ρίζα να είναι σημείο άρθρωσης). 23 Data Science Lab Εύρεση δισυνδεδεμένων συνιστωσών
24
1 2 5 6 4 3 7 8 24 Data Science Lab Εύρεση δισυνδεδεμένων συνιστωσών (2)
25
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
26
Μη κατευθυνόμενοι γράφοι Συνδεδεμένες συνιστώσες - Connected components Σημεία άρθρωσης - articulation points Γέφυρες – bridges Δισυνδεδεμένες συνιστώσες - biconnected components Κατευθυνόμενοι γράφοι Κυκλικοί/άκυκλοι γράφοι Τοπολογική ταξινόμηση Ισχυρά συνδεδεμένες συνιστώσες – strongly connected components 26 Εφαρμογές της DFS Data Science Lab
27
Ένας άκυκλος κατευθυνόμενος γράφος (DAG) είναι ένας κατευθυνόμενος γράφος χωρίς κατευθυνόμενους κύκλους 1 2 3 1 2 3 άκυκλος κυκλικός 27 Data Science Lab Κατευθυνόμενοι άκυκλοι γράφοι
28
Ένας γράφος G είναι άκυκλος αν δεν υπάρχουν οπίσθιες ακμές u vw x yz 1/ 2/ 3/4/ 28 Data Science Lab DFS και κύκλοι σε ένα γράφο
29
Τοπολογική ταξινόμηση ενός DAG είναι η γραμμική διάταξη των κορυφών, έτσι ώστε η κορυφή u βρίσκεται πριν την κορυφή v αν υπάρχει η ακμή (u,v) G Η ιδιότητα αυτή είναι σημαντική σε προβλήματα δρομολόγησης - scheduling 29 Data Science Lab Τοπολογική ταξινόμηση
30
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 Παράδειγμα
31
Αλγοριθμική αρχή: 1.Καλούμε την DFS για να υπολογίσουμε το χρόνο τερματισμού v.f για κάθε κόμβο v. 2.Όποτε τερματίζει ένας κόμβος (γίνεται μαύρος) τον εισάγουμε σε μία στοίβα. 3.Εξάγουμε τα στοιχεία της στοίβας και λαμβάνουμε τη διάταξη της τοπολογικής ταξινόμησης. Time: O(V+E) 31 Data Science Lab Τοπολογική ταξινόμηση
32
32 Data Science Lab Παράδειγμα τοπολογικής ταξινόμησης
33
Πρόταση: (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 Ορθότητα τοπολογικής ταξινόμησης
34
F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 34
35
F C G A B D E H dfs(A) Data Science Lab Animation τοπολογικής ταξινόμησης 35
36
dfs(A) dfs(D) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 36
37
dfs(A) dfs(D) dfs(E) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 37
38
dfs(A) dfs(D) dfs(E) dfs(F) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 38
39
dfs(A) dfs(D) dfs(E) dfs(F) dfs(H) F C G A B D E H Data Science Lab Animation τοπολογικής ταξινόμησης 39
40
dfs(A) dfs(D) dfs(E) dfs(F) H 7 F C GAB D E Data Science Lab Animation τοπολογικής ταξινόμησης 40
41
dfs(A) dfs(D) dfs(E) F C A B D E H 7 6 G Data Science Lab Animation τοπολογικής ταξινόμησης 41 η αρίθμηση στους κόμβους δηλώνει την εξαγωγής (pop) από τη στοίβα
42
dfs(A) dfs(D) F C G A B D E H 7 6 5 Data Science Lab Animation τοπολογικής ταξινόμησης 42
43
dfs(A) dfs(D) F C G A B D E H 7 6 5 Data Science Lab Animation τοπολογικής ταξινόμησης 43
44
dfs(A) F C G A B D E H 7 6 5 4 Data Science Lab Animation τοπολογικής ταξινόμησης 44
45
dfs(A) F C G A B D E H 7 6 4 5 Data Science Lab Animation τοπολογικής ταξινόμησης 45
46
F C G A B D E H 7 6 4 5 3 Data Science Lab Animation τοπολογικής ταξινόμησης 46
47
F C G A B D E H 7 6 4 5 3 dfs(B) Data Science Lab Animation τοπολογικής ταξινόμησης 47
48
F C G A B D E H 7 6 4 5 3 dfs(B) Data Science Lab Animation τοπολογικής ταξινόμησης 48
49
F C G A B D E H 7 6 4 5 3 2 Data Science Lab Animation τοπολογικής ταξινόμησης 49
50
F C G A B D E H 7 6 4 5 3 dfs(C) 2 Data Science Lab Animation τοπολογικής ταξινόμησης 50
51
F C G A B D E H 7 6 4 5 3 dfs(C) 2 Data Science Lab Animation τοπολογικής ταξινόμησης 51
52
F C G A B D E H 7 6 4 5 3 dfs(C) 2 Data Science Lab Animation τοπολογικής ταξινόμησης 52
53
F C G A B D E H 7 6 4 5 3 dfs(C) 2 Data Science Lab Animation τοπολογικής ταξινόμησης 53
54
F C G A B D E H 7 6 4 5 3 dfs(C) dfs(G) 2 Data Science Lab Animation τοπολογικής ταξινόμησης 54
55
F C G A B D E H 7 6 4 5 3 2 dfs(C) 1 Data Science Lab Animation τοπολογικής ταξινόμησης 55
56
F C G A B D E H 7 6 4 5 3 2 1 0 Data Science Lab Animation τοπολογικής ταξινόμησης 56
57
F C G A B D E H 7 6 4 5 3 2 1 0 Topological order: C G B A D E F H Data Science Lab Animation τοπολογικής ταξινόμησης 57
58
Μία ισχυρά συνδεδεμένη συνιστώσα ενός κατευθυνόμενου γράφου G=(V,E) είναι το μέγιστο σύνολο κορυφών C, έτσι ώστε για κάθε ζεύγος ακμών u και v του C, και οι δύο κορυφές είναι προσπελάσιμες η μία από την άλλη. 58 Data Science Lab Ισχυρά συνδεδεμένες συνιστώσες
59
a bd e fh g c 59 Data Science Lab Παράδειγμα
60
abe cd fg h Ο γράφος συνιστωσών έχει ως κορυφές τις ισχυρά συνδεδεμένες συνιστώσες και ως ακμές, εκείνες τις ακμές του αρχικού γράφου που ενώνουν τις συνδεδεμένες συνιστώσες Πρόταση: ο γράφος συνιστωσών είναι DAG 60 Data Science Lab Γράφος συνιστωσών
61
Αλγοριθμική αρχή: 1.Καλούμε τη DFS(G) για να υπολογίσουμε τους χρόνους τερματισμού u.f για κάθε κόμβο u. 2.Υπολογίζουμε το GT (αντίστροφος του G). 3.Καλούμε τη DFS(GT), αλλά στον κύριο βρόχο του DFS, θεωρούμε τις κορυφές κατά φθίνουσα σειρά των u.f που υπολογίσθηκαν στο Βήμα 1. 4.Εξάγουμε τις κορυφές κάθε DFS-δένδρου που σχηματίσθηκαν στο Βήμα 3 ως κορυφές μίας ισχυρά συνδεδεμένης συνιστώσας. 61 Data Science Lab Ισχυρά συνδεδεμένες συνιστώσες
62
Βήμα 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 Παράδειγμα
63
Βήμα 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)
64
Βήμα 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)
65
Βήμα 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)
66
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
67
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
68
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
69
Θεώρημα Ο προηγούμενος αλγόριθμος βρίσκει τις ισχυρά συνδεδεμένες συνιστώσες του G. Απόδειξη Πρέπει να αποδείξουμε ότι ένα σύνολο κορυφών σχηματίζει μία ισχυρά συνδεδεμένη συνιστώσα αν και μόνο αν είναι κορυφές ενός δένδρου στο DFS-δάσος του G T 69 Data Science Lab Ορθότητα του αλγορίθμου για ισχυρά συνδεδεμένες συνιστώσες
70
Έστω ότι v,w είναι κορυφές της ίδιας ισχυρά συνδεδεμένης συνιστώσας Γίνεται μία αναζήτηση DFS στο GT, η οποία αρχίζει στην κορυφή r και φθάνει μέχρι την κορυφή v. Εφόσον οι v,w βρίσκονται σε ίδια συνδεδεμένη συνιστώσα, υπάρχει ένα μονοπάτι από την κορυφή v προς την κορυφή w και από την κορυφή w προς την κορυφή v => οπότε η w θα προσεγγισθεί επίσης από την αναζήτηση DFS => οι κορυφές v,w ανήκουν στο ίδιο ζευγνύον δένδρο του GT. 70 Data Science Lab Ορθότητα του αλγορίθμου για ισχυρά συνδεδεμένες συνιστώσες (2)
71
Έστω ότι v,w είναι κορυφές στο ίδιο DFS-δένδρο του GT. Έστω ότι r είναι η ρίζα αυτού του ζευγνύοντος δένδρου Άρα υπάρχουν μονοπάτια στο GT από την κορυφή r πρός τις κορυφές v και w. Συνεπώς υπάρχουν μονοπάτια στο G προς τη ρίζα r από τις κορυφές v και w. 71 Data Science Lab Ορθότητα του αλγορίθμου για ισχυρά συνδεδεμένες συνιστώσες (3)
72
Θα αποδείξουμε ότι υπάρχουν μονοπάτια στο 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)
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.