Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

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

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Θεωρία & Αλγόριθμοι Γράφων Θεωρία & Αλγόριθμοι Γράφων Εφαρμογές DFS Data Science Lab 1."— Μεταγράφημα παρουσίασης:

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)


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

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google