62
1 Data Engineering Lab Θεωρία Γράφων Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι- Θεμελιώσεις-Αλγόριθμοι- Εφαρμογές Εφαρμογές Κεφάλαιο 4: Συνδεσμικότητα 1

Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4 : Συνδεσμικότητα

  • Upload
    weston

  • View
    87

  • Download
    4

Embed Size (px)

DESCRIPTION

Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο 4 : Συνδεσμικότητα. 1. Μελέτη βαθμού συνδεσμικότητας ενός γράφου Εφαρμογές: σε οποιασδήποτε μορφής δίκτυα (τηλεπικοινωνιακά , συγκοινωνιακά κ.α.). Εισαγωγή. Ποιο είναι το καλύτερο δίκτυο από άποψη αντοχής σε λάθη;. 2. - PowerPoint PPT Presentation

Citation preview

Page 1: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

1Data Engineering Lab

Θεωρία ΓράφωνΘεωρία ΓράφωνΘεμελιώσεις-Αλγόριθμοι-ΕφαρμογέςΘεμελιώσεις-Αλγόριθμοι-Εφαρμογές

Κεφάλαιο 4: Συνδεσμικότητα

1

Page 2: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

2Data Engineering Lab

Μελέτη βαθμού συνδεσμικότητας ενός γράφου

Εφαρμογές: σε οποιασδήποτε μορφής δίκτυα (τηλεπικοινωνιακά, συγκοινωνιακά κ.α.)

ΕισαγωγήΕισαγωγή

Ποιο είναι το καλύτερο δίκτυο από άποψη αντοχής σε λάθη;

2

Page 3: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

3Data Engineering Lab

Σύνολο αποκοπτουσών κορυφών V΄ (vertex cut set, vertex separating set) ενός συνδεδεμένου γράφου G είναι το σύνολο των κορυφών ώστε ο γράφος G–V΄ να μην είναι συνδεδεμένος και να μην υπάρχει γνήσιο υποσύνολο του V΄ με την ίδια ιδιότητα

Συνδεσμικότητα κορυφών (vertex connectivity), VC(G), είναι το ελάχιστο k=|V΄|, ώστε ο γράφος G να είναι συνδεδεμένος αν διαγραφούν λιγότερες από k κορυφές.

Ο G λέγεται k-συνδεδεμένος k-connected αν VC(G)≥k

Συνδεσμικότητα ΚορυφώνΣυνδεσμικότητα Κορυφών

3

Page 4: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

4Data Engineering Lab

Συνδεσμικότητα ΚορυφώνΣυνδεσμικότητα Κορυφών – – ΆσκησηΆσκηση

4

Ποιά είναι η τιμή VC των γράφων N5, K5, S6, W6, C4, K4,3, κλωβός(5,3) ?

Page 5: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

5Data Engineering Lab

Θεώρημα: Μια κορυφή v ενός δένδρου είναι αποκόπτουσα αν και μόνον αν d(v)>1

Πόρισμα: Κάθε μη ασήμαντος απλός συνδεδεμένος γράφος έχει τουλάχιστον 2 κορυφές που δεν είναι αποκόπτουσες

Θεώρημα: Μια κορυφή v είναι αποκόπτουσα αν και μόνον αν υπάρχουν 2 κορυφές u και w (u,w≠v), ώστε η v να βρίσκεται σε κάθε μονοπάτι από την u προς την w

Μερικά ΘεωρήματαΜερικά Θεωρήματα

5

Page 6: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

6Data Engineering Lab

Σύνολο αποκοπτουσών ακμών Ε΄ – edge cut set, edge separating set – είναι το σύνολο των ακμών ώστε ο γράφος G-E΄ να μην είναι συνδεδεμένος, χωρίς να υπάρχει γνήσιο υποσύνολο του Ε΄ με την ίδια ιδιότητα

Συνδεσμικότητα ακμών EC(G) – edge connectivity – ενός γράφου G είναι το ελάχιστο k=|E΄|, ώστε ο G να παραμένει συνδεδεμένος έπειτα από διαγραφή k-1 ακμών

Ένας γράφος G λέγεται k-συνδεδεμένος ως προς τις ακμές – edge k-connected – αν EC(G)≥k

Συνδεσμικότητα ΑκμώνΣυνδεσμικότητα Ακμών

6

Page 7: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

7Data Engineering Lab

Συνδεσμικότητα Ακμών Συνδεσμικότητα Ακμών – – ΆσκησηΆσκηση

7

Ποιά είναι η τιμή ΕC των γράφων N5, K5, S6, W6, C4, K4,3, κλωβός(5,3) ?

Page 8: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

8Data Engineering Lab

Θεώρημα: Μια ακμή e είναι αποκόπτουσα αν και μόνον αν υπάρχουν 2 κορυφές u και w, τέτοιες ώστε η e να βρίσκεται σε κάθε μονοπάτι από την u προς την w.

Θεώρημα: Μια ακμή είναι αποκόπτουσα αν και μόνον αν δεν περιέχεται σε κύκλο

Θεώρημα Whitney: VC(G) ≤ EC(G) ≤ d(G) Πόρισμα: EC(G) ≤ floor(2m/n) Θεώρημα: Έστω 1≤λ≤n-1. Αν d(G)(n+λ-2)/2,

τότε ο G είναι λ-συνδεδεμένος

8

Μερικά ΘεωρήματαΜερικά Θεωρήματα

Page 9: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

9Data Engineering Lab

ΠαράδειγμαΠαράδειγμα

1

3

2

546

7

8

VC(G)=?ΕC(G)=?

9

Page 10: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

10Data Engineering Lab

Ένας δισυνδεδεμένος-biconnected γράφος δεν έχει αποκόπτουσες κορυφές.

Ένας τέτοιος γράφος αποτελεί ένα τεμάχιο-block ή μια δισυνιστώσα-bicomponent (biconnected component)

Τεμάχιο ενός γράφου λέγεται ένας υπογράφος που είναι δισυνδεδεμένος και έχει το μέγιστο αριθμό κορυφών.

Πόσα τεμάχια έχει ο διπλανός γράφος?

Τεμάχια ΓράφουΤεμάχια Γράφου

10

h

g

d

b

aci

f

e

x

j

Page 11: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

11

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

γράφου. Τα τεμάχια ενός γράφου χωρίζουν τις ακμές σε ανεξάρτητα

σύνολα.

Τεμάχια Γράφου – συνέχειαΤεμάχια Γράφου – συνέχεια

Data Engineering Lab 11

Page 12: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

12Data Engineering Lab

Εσωτερικά ξένα μονοπάτια (internally disjoint paths) είναι δύο μονοπάτια με κοινές τερματικές κορυφές, χωρίς άλλες κοινές κορυφές.

12

1

2

3 4

5

6

7

8 9

0

Εσωτερικά ξένα μονοπάτιαΕσωτερικά ξένα μονοπάτια

Page 13: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

13Data Engineering Lab

Θεώρημα: Ένας γράφος G με n≥3 είναι δι-συνδεδεμένος αν και μόνον αν δύο οποιεσδήποτε κορυφές του είναι συνδεδεμένες με τουλάχιστον δύο εσωτερικά ξένα μονοπάτια.

Πόρισμα: Αν ένας γράφος G είναι δισυνδεδεμένος, τότε δύο οποιεσδήποτε κορυφές του ανήκουν σε έναν κύκλο.

Πόρισμα: Αν ένας γράφος αποτελείται από ένα τεμάχιο με n≥3, τότε δύο οποιεσδήποτε ακμές του ανήκουν σε έναν κύκλο.

ΘεώρημαΘεώρημα Whitney Whitney

13

Page 14: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

14Data Engineering Lab

Θεώρημα: Ο μέγιστος αριθμός εσωτερικά ξένων μονοπατιών από μία κορυφή u σε μια κορυφή v ενός συνδεδεμένου γράφου ισούται με τον ελάχιστο αριθμό κορυφών, που χωρίζουν τις κορυφές u και v.

11 διατυπώσεις του Θεωρήματος Menger

Θεώρημα Whitney: Ένας γράφος είναι k-συνδεδεμένος αν και μόνον αν όλα τα ζεύγη κορυφών ενώνονται με τουλάχιστον k εσωτερικά ξένα μονοπάτια.

14

Θεώρημα Θεώρημα MengerMenger

Page 15: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

15Data Engineering Lab

Πόρισμα: Ο μέγιστος αριθμός εσωτερικά ξένων μονοπατιών από μία κορυφή u σε μια κορυφή v ενός συνδεδεμένου γράφου ισούται με τον ελάχιστο αριθμό ακμών, που χωρίζουν τις κορυφές u και v.

Πόρισμα: Ένας γράφος G είναι k-συνδεδεμένος ως προς τις ακμές, αν και μόνον αν όλα τα ζεύγη κορυφών ενώνονται με τουλάχιστον k εσωτερικά ξένα μονοπάτια.

15

Πορίσματα (ως προς ακμές)Πορίσματα (ως προς ακμές)

Page 16: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

16

Το λεγόμενο πρόβλημα του συνδέσμου αναφέρεται στο πρόβλημα της εύρεσης ελάχιστων ζευγνυόντων δένδρων.

Ένα ελάχιστο ζευγνύον δένδρο με n≥3 έχει EC=VC=1. Το γενικευμένο πρόβλημα του συνδέσμου είναι

“να βρεθεί υπογράφος δοθέντος γράφου με ελάχιστο βάρος, ώστε η συνδεσμικότητα να ισούται με l”

Αν l=1, τότε τα προβλήματα ταυτίζονται.Ποιό είναι πιο

αξιόπιστο ?n=8

VC=EC=4

Γενικευμένο πρόβλημα συνδέσμουΓενικευμένο πρόβλημα συνδέσμου

Data Engineering Lab

VC=1 EC=3

16

Page 17: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

17

Θα θεωρηθεί η περίπτωση μη ζυγισμένου γράφου. Σκοπός είναι η εύρεση ενός γράφου με n κορυφές και

επιγραφές [0..n-1]), l-συνεδεδεμένου και με τον ελάχιστο αριθμό ακμών.

Ο γράφος αυτός συμβολίζεται με Hl,n Διακρίνονται τρεις περιπτώσεις:

l άρτιο (l=2r). l περιττό (l=2r+1), n άρτιο. l περιττό (l=2r+1), n περιττό.

Γενικευμένο πρόβλημα συνδέσμουΓενικευμένο πρόβλημα συνδέσμου

Data Engineering Lab 17

Page 18: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

18

l άρτιο (l=2r). Δύο κόμβοι i και j είναι γειτονικοί, αν i–r ≤ j ≤ i+r

l περιττό (l=2r+1), n άρτιο. Κατασκευάζεται ο γράφος H2r,n (όπως άνω). Επίσης δύο κόμβοι i και i+n/2 ενώνονται για 1≤i≤ n/2.

l περιττό (l=2r+1), n περιττό. Κατασκευάζεται ο γράφος H2r,n. Επίσης ενώνεται ο κόμβος 0 με τους (n–1)/2 και (n+1)/2 και ο κόμβος i με τον κόμβο i+(n+1)/2 για 1≤i≤(n–1)/2.

Data Engineering Lab

Γενικευμένο πρόβλημα συνδέσμουΓενικευμένο πρόβλημα συνδέσμου

H4,8

H5,8

H5,9

18

Page 19: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

19

Θεώρημα: Ο γράφος Ηl,n είναι l-συνδεδεμένος.

Θεώρημα: Ο ελάχιστος αριθμός ακμών του γράφου Ηl,n είναι ceil(ln/2).

H4,8 H5,8 H5,9

Data Engineering Lab

Γενικευμένο πρόβλημα συνδέσμουΓενικευμένο πρόβλημα συνδέσμου

19

Page 20: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

20

Ορισμός: Δύο γράφοι G1=(V1,E1) και G2=(V2,E2) λέγονται ισομορφικοί-isomorphic αν υπάρχει μία αμφιμονοσήμαντη αντιστοιχία f από το το σύνολο V1 στο σύνολο V2 με την ιδιότητα ότι οι κορυφές a, b είναι γειτονικές στο G1 αν και μόνο αν οι κορυφές f(a), f(b) είναι γειτονικές στο G2, για κάθε ζεύγος a,b του V1.

Η συνάρτηση f ονομάζεται ισομορφική- isomorphism.

ΙσομορφισμόςΙσομορφισμός

Data Engineering Lab 20

Page 21: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

21

Διαπίστωση Ισομορφισμού – 1Διαπίστωση Ισομορφισμού – 1ηη λύση λύση

Data Engineering Lab

Αλγόριθμος ελέγχου ισομορφισμού:Είσοδος: γράφος G και γράφος ΗΈξοδος: ΝΑΙ ή ΟΧΙ1. Αν |V(G)|≠ |V(H)|, τότε return OXI2. Θεωρούμε μία διάταξη των κορυφών του G3. Καταγράφουμε τον πίνακα γειτονίας ΑG του G4. Για κάθε διάταξη των κορυφών του H

Καταγράφουμε τον πίνακα γειτονίας ΑH Αν ΑG=ΑH τότε return NAI

5. return OXI Πολυπλοκότητα ?

21

Page 22: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

22Data Engineering Lab

Έστω ότι οι γράφοι αναπαριστώνται με τη μέθοδο των πινάκων πρόσπτωσης (incidence matrix).

Μπορεί ο ένας πίνακας πρόσπτωσης να μετασχηματισθεί στον άλλο μέσω αντιμεταθέσεων γραμμών ή/και στηλών. Επίσης μη αποτελεσματική λύση.

Υπάρχουν αποτελεσματικοί αλγόριθμοι μόνο για ειδικές περιπτώσεις γράφων.

Επίσης, μπορεί να είναι εύκολη η απόδειξη ότι δύο γράφοι δεν είναι ισομορφικοί

22

Διαπίστωση Ισομορφισμού – 2Διαπίστωση Ισομορφισμού – 2ηη λύση λύση

Page 23: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

23Data Engineering Lab

Συνθήκες για την εύκολη διαπίστωση αν δύο γράφοι δεν είναι ισομορφικοί: Ίδια τάξη? Ίδιο μέγεθος? Ίδια ακολουθία βαθμών? Ίδιος αριθμός συνιστωσών? Για κάθε συνιστώσα του (4) απαντώνται θετικά οι πρώτες

τρεις ερωτήσεις; Έχουν οι δύο γράφοι το ίδιο χρωματικό πολυώνυμο;

Για n<8, αν όλες οι ερωτήσεις απαντηθούν θετικά, τότε οι γράφοι είναι ισομορφικοί (έχει αποδειχθεί).

Αμετάβλητες – Αμετάβλητες – invariantsinvariants

23

Page 24: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

24

dd

aa

bb

cc

ee

dd

aa

bbcc

ee

f(a) = ef(b) = af(c) = bf(d) = cf(e) = d

Παραδείγματα - ΆσκησηΠαραδείγματα - Άσκηση

a b

cd

ef

1

6

23

4

5

f(a) = 6f(b) = 1f(c) = 3f(d) = 5f(e) = 2f(f) = 4

Data Engineering Lab 24

Page 25: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

25

Παραδείγματα - ΆσκησηΠαραδείγματα - Άσκηση

dd

aabb

cc

ee

dd

aa

bbcc

ee

Data Engineering Lab

2 3

5

6 7

81 4

3

a

c

d

b

e

f g

h

25

Page 26: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

26Data Engineering Lab

Δύο γράφοι είναι 1-ισομορφικοί αν καθίστανται ισομορφικοί μετά την επανειλημμένη διάσπαση των αποκοπτουσών κορυφών.

Τα τεμάχια ενός γράφου είναι ισομορφικά προς τις συνιστώσες ενός άλλου γράφου.

Γενίκευση ΙσομορφισμούΓενίκευση Ισομορφισμού

26

Page 27: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

27Data Engineering Lab

ΠαράδειγμαΠαράδειγμα

27

Page 28: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

28

0

1

4

2 3

8

7

6

5

9

1

4

2 3

7

6

5

0

1

3 5

8

7 7

9

Ποιός είναι ο 1-ισομορφικός με διάσπαση αποκοπτουσών κορυφών ?

Παράδειγμα – ΆσκησηΠαράδειγμα – Άσκηση

Data Engineering Lab 28

Page 29: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

29Data Engineering Lab

Αν ο γράφος αποτελείται από ένα τεμάχιο, τότε η έννοια της 1-ισομορφικότητας ταυτίζεται με την έννοια της ισομορφικότητας.

Θεώρημα: Αν δύο γράφοι είναι 1-ισομορφικοί, τότε η σειρά και η μηδενικότητά τους είναι ίσες.

Γενίκευση ΙσομορφισμούΓενίκευση Ισομορφισμού

29

Page 30: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

30Data Engineering Lab

Αντιστοιχία κύκλωνΑντιστοιχία κύκλων Δύο γράφοι έχουν αντιστοιχία κύκλων – circuit

correspondence, αν υπάρχει αμφιμονοσήμαντη αντιστοιχία ακμών και κύκλων, έτσι ώστε ένας κύκλος του πρώτου γράφου να έχει αντίστοιχο κύκλο στο δεύτερο γράφο, που αποτελείται από τις αντίστοιχες ακμές.

Θεώρημα: Δύο 1-ισομορφικοί γράφοι έχουν αντιστοιχία κύκλων

30

Page 31: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

31Data Engineering Lab

Δύο γράφοι είναι 2-ισομορφικοί αν καθίστανται ισομορφικοί μετά την επανειλημμένη εφαρμογή μιας ή δύο από τις εξής πράξεις διαδοχική διάσπαση αποκοπτουσών κορυφών διαχωρισμός του ενός γράφου σε δύο ξένους υπογράφους,

που έχουν 2 ζεύγη κοινών κορυφών και επανασύνδεση των υπογράφων ταυτοποιώντας τις κορυφές με διαφορετικό τρόπο

2-Ισομορφισμός2-Ισομορφισμός

31

Page 32: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

32Data Engineering Lab

2-Ισομορφισμός – Παράδειγμα2-Ισομορφισμός – Παράδειγμα

32

Page 33: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

33Data Engineering Lab

Δύο ισομορφικοί γράφοι είναι 1-ισομορφικοί, δύο 1-ισομορφικοί γράφοι είναι 2-ισομορφικοί. Το αντίθετο δεν ισχύει.

Θεώρημα (Whitney): Δύο γράφοι είναι 2-ισομορφικοί αν και μόνον αν έχουν αντιστοιχία κύκλων

2-Ισομορφισμός2-Ισομορφισμός

33

Page 34: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

34Data Engineering Lab

ΠαράδειγμαΠαράδειγμα

1

3 2

5

4

6

7

9

8

10

11

34

3

5

4

6

7

9

8

10

11

1 2

Page 35: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

35Data Engineering Lab

Αλγόριθμοι διάσχισης γράφων BFS, αναζήτηση κατά πλάτος DFS, αναζήτηση κατά βάθος

Οι αλγόριθμοι αυτοί χρησιμοποιούνται για την εύρεση αποστάσεων από κάποια κορυφή για τη διαπίστωση αν γράφος είναι συνδεδεμένος για την εύρεση (ισχυρά συνδεδεμένων) συνιστωσών για την τοπολογική ταξινόμηση για την εύρεση των σημείων άρθρωσης για την εύρεση γεφυρών για τη διαπίστωση κύκλων για τη διαπίστωση επιπεδικότητας

ΑλγόριθμοιΑλγόριθμοι

35

Page 36: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

36

BFS 1959 Moore Επισκεπτόμαστε

τον πιο ρηχό κόμβο Υλοποίηση με ουρά.

BFS vs DFSBFS vs DFS DFS

1973 Hopcroft-Tarjan Επισκεπτόμαστε

τον πιο βαθύ κόμβο Υλοποίηση με στοίβα.

Data Engineering Lab 36

Η διαφορά έγκειται στη δομή δεδομένων!

Page 37: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

37

BFS BFS σε δένδροσε δένδρο

Data Engineering Lab 37

Page 38: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

38

DFSDFS σε δένδρο σε δένδρο

Data Engineering Lab 38

Ταυτίζεται με την προδιατεταγμένη (preorder) διάσχιση

Page 39: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

3939

bfs(G) list L = empty tree T = empty choose a starting vertex x visit(x) while(L nonempty) remove edge (v,w) from beginningbeginning of L if w not visited add (v,w) to T visit(w)

dfs(G) list L = empty tree T = empty choose a starting vertex x visit(x) while(L nonempty) remove edge (v,w) from endend of L if w not visited add (v,w) to T visit(w)

Visit ( vertex v) mark v as visited for each edge (v,w) add edge (v,w) to end of L

BFS vs DFSBFS vs DFS

Data Engineering Lab

Page 40: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

40Data Engineering Lab

Είσοδος: γράφος G με επιγραφές και κορυφή xVΈξοδος: οι αποστάσεις από την κορυφή x προς όλες τις κορυφές

που είναι προσπελάσιμες από αυτήν1. Θέτουμε i0. Στην κορυφή x θέτουμε την επιγραφή i.2. Βρίσκουμε όλες τις κορυφές χωρίς επιγραφές που είναι

γειτονικές προς τουλάχιστον μία κορυφή με επιγραφή iΑν δεν υπάρχει κάποια τέτοια κορυφή, τότε ο γράφος εξαντλήθηκε.

3. Θέτουμε την επιγραφή i+1 σε όλες τις κορυφές που βρέθηκαν στο Βήμα 2

4. Θέτουμε ii+1. Πηγαίνουμε στο Βήμα 2

BFS – BFS – Εύρεση αποστάσεωνΕύρεση αποστάσεων

40

Page 41: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

41

Σε κάθε χρονική στιγμή υπάρχει ένα “μέτωπο” κορυφών που τις έχουμε ανακαλύψει, αλλά δεν τις έχουμε ακόμη επεξεργασθεί

Λαμβάνουμε διαδοχικά τις κορυφές του “μετώπου” και ανακαλύπτουμε τους γείτονες δημιουργώντας ένα νέο “μέτωπο”

s1

11

2

22

22

2

3 3

3

33

BFS – BFS – Εύρεση αποστάσεων, η ιδέαΕύρεση αποστάσεων, η ιδέα

Άσπρες κορυφές: μη μαρκαρισμένες και εκτός ουράς Γκρι κορυφές: μαρκαρισμένες και εντός ουράς Μαύρες κορυφές: μαρκαρισμένες και εκτός ουράς

Data Engineering Lab

Page 42: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

42

Αναλυτικά: Αναλυτικά: BFS –BFS – αρχικοποίηση αρχικοποίησηprocedure BFS(G:graph; s:node;

var color:carray; dist:iarray; parent:parray); for each vertex u do

color[u]:=white; dist[u]:=∞; parent[u]:=nil;

color[s]:=gray; dist[s]:=0; init(Q); enqueue(Q, s);

Data Engineering Lab 42

(n)(n)

Page 43: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

43

while not (empty(Q)) do u:=head(Q); for each v in adj[u] do if color[v]=white then

color[v]:=gray; dist[v]:=dist[u]+1;parent[v]:=u;enqueue(Q,v);

dequeue(Q); color[u]:=black; end BFS )(][ mOud

Vu

Αναλυτικά: Αναλυτικά: BFS – mainBFS – main

Data Engineering Lab 43

O(m)O(m)

Page 44: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

44

Παράδειγμα Παράδειγμα BFSBFS

0

1

1 0

1

r s t u r s t u

v w x y v w x y r s t u r s t u

v w x y v w x y

0s w r

1 0

1

1 2

2

r t x t x v

2

22

Data Engineering Lab 44

Page 45: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

45

2

1

1 0 2

1 2

1 2

1 2

1

2

0 2 3

1 2

r s t u r s t u

v w x y v w x y r s t u r s t u

v w x y v w x y

0.x v u v u y

0

u y y

Τέλος, η κορυφή y βγαίνει από την ουρά και μαυρίζεται

Παράδειγμα Παράδειγμα BFSBFS – συνέχεια – συνέχεια

Data Engineering Lab 45

Page 46: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

46

Πολυπλοκότητα του Πολυπλοκότητα του BFSBFS Αρχικοποίηση Θ(n). Κάθε κόμβος μπαίνει στην ουρά μία φορά (από άσπρος

γίνεται γκρι) και η λίστα γειτνίασης διασχίζεται μία φορά. Το πολύ, όλες οι λίστες διασχίζονται. Κάθε ακμή λαμβάνεται δύο φορές, οπότε ο βρόχος

επαναλαμβάνεται το πολύ 2|E| φορές. Χειρότερη περίπτωση O(n+m)

Αν ο γράφος είναι υλοποιημένος με πίνακα γειτνίασης, τότε η πολυπλοκότητα είναι Ο(n2).

Data Engineering Lab 46

Page 47: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

47

BFS treeBFS tree

0 1

24

5

6

7

8

9

1011

Graph G

01 425

6 7 8

9

11

10

BFS Tree

Όσες ακμές του γράφου G παρουσιάζονται στο BFS tree ονομάζονται δενδρικές –tree edges, οι υπόλοιπες ονομάζονται διασταυρούμενες –cross edges.

Data Engineering Lab 47

Page 48: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

48Data Engineering Lab

Αλγόριθμος DFS των Hopcroft-Tarjan (1973):Είσοδος: γράφος G με επιγραφές και κορυφή xVΈξοδος: σύνολο Τ δενδρικών κορυφών και αρίθμηση dfi(v)1. Θέτουμε TØ, i1. 2. Για κάθε vV, θέτουμε dfi(v)03. Για κάθε u με dfi(u) εκτελείται DFS(u).4. Στην έξοδο δίνεται το σύνολο Τ.5. Διαδικασία DFS(v)6. Θέτουμε dfi(v)i, ii+17. Για κάθε u N(v) εκτελούνται οι εντολές:

Αν dfi(u)=0, τότε θέτουμε TTU{e}, όπου e=(u,v) μία μη χρησιμοποιημένη προσπίπτουσα ακμή, και l(e)used Καλούμε την DFS(u)

48

DFSDFS – Αναζήτηση κατά βάθος – Αναζήτηση κατά βάθος

Page 49: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

49Data Engineering Lab 49

01

42

5

67

8

9

11

10

DFS Tree

0 1

24

5

6

7

8

9

1011

Graph G

DFS treeDFS tree

Όσες ακμές του γράφου G παρουσιάζονται στο DFS tree ονομάζονται δενδρικές –tree edges, οι υπόλοιπες ονομάζονται οπίσθιες –back edges.

Page 50: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

50Data Engineering Lab 50

01

42

5

67

8

9

11

10

DFS Tree

0 1

24

5

6

7

8

9

1011

Graph G

Οπίσθιες ακμέςΟπίσθιες ακμές

Θεώρημα: Κάθε οπίσθια ακμή (u,v) που προκύπτει κατά την αναζήτηση κατά βάθος (DFS) ενός μη κατευθυνόμενου γράφου ενώνει κορυφές που βρίσκονται σε σχέση απογόνου/προγόνου.

Page 51: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

procedure DFS(G:graph; var color: carray; d,f:iarray; parent:parray);for each vertex u do

color[u]:=white; parent[u]:=nil; time:=0;for each vertex u do

if color[u]=white then DFS-Visit(u);

end DFS

Αναλυτικά: Αναλυτικά: DFSDFS

Data Engineering Lab 51

(n)

Page 52: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

color[u]:=gray; time:=time+1; d[u]:=timefor each v in adj[u] do if color[v]=white then parent[v]:=u; DFS-Visit(v); color[u]:=black; time:=time+1; f[u]:=time; end DFS-Visit

Αναλυτικά: Αναλυτικά: DFS-visit(u)DFS-visit(u)

Data Engineering Lab 52

Page 53: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

x y z

u v w

1/

u v w

1/

x y z

2/

u v w

1/

x y z

2/

3/

u v w 1/

x y z

2/

3/4/

B

Παράδειγμα Παράδειγμα DFSDFS

Data Engineering Lab 53

Page 54: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

u v w

x y z

x y z

u v w x y z

4/5

1/ 2/

3/

B

u v w

4/5 3/6

1/ 2/

B

4/5 3/6

1/ 2/7

B

Παράδειγμα Παράδειγμα DFSDFS

Data Engineering Lab 54

x y z

u v w

F4/5 3/6

1/8 2/7

B

Page 55: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

x y z

u v w

x y z

x y z

u v w

F4/5

9

3/6 10

1/8 2/7

B

F4/5

9

3/6 10/11

1/8 2/7

B

u v w

F4/5

9

3/6

1/8 2/7

B C

C

C

Παράδειγμα Παράδειγμα DFSDFS

Data Engineering Lab 55

x y z

F4/5

9/12

3/6 10/11

1/8 2/7

B C

u v w

Page 56: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

Πολυπλοκότητα του Πολυπλοκότητα του DFSDFS Αρχικοποίηση Θ(n). Η DFS-visit καλείται μία φορά για κάθε κόμβο v. Ο βρόχος for εκτελείται dv φορές. Συνολικά η DFS-visit καλείται Θ(m) φορές. Χειρότερη περίπτωση Θ(n+m)

Data Engineering Lab 56

Page 57: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

O γράφος G είναι συνδεδεμένος? Εκτελούμε DFS-Visit(v). Αν προσεγγίζουμε όλες τις κορυφές, τότε NAI, αλλιώς OXI. O(n+m)

Ο γράφος G είναι δένδρο? Εκτελούμε DFS-Visit(v). Αν προσεγγίζουμε όλες τις κορυφές και δεν υπάρχουν οπίσθιες ακμές, τότε ΝΑΙ, αλλιώς OXI. O(n)

Εύρεση τεμαχίων. Εκτελούμε DFS. Αναθέτουμε στις κορυφές ενός τεμαχίου ένα id. Θ(n+m)

Εύρεση κύκλου. Εκτελούμε DFS. Αν υπάρχουν οπίσθιες ακμές, τότε NAI, αλλιώς ΟΧΙ. O(n) διότι προσεγγίζονται το πολύ n ακμές. Προσοχή: οι ακμές (u,v) και (v, u) δεν αποτελούν κύκλο.

Εφαρμογές του Εφαρμογές του DFSDFS

Data Engineering Lab 57

Page 58: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

58Data Engineering Lab

Αλγόριθμος εύρεσης τεμαχίων με Αλγόριθμος εύρεσης τεμαχίων με DFSDFSΑρκεί να εντοπιστούν οι αποκόπτουσες κορυφές ως εξής:1.Αν μία αποκόπτουσα κορυφή v είναι η ρίζα του δένδρου DFS,

τότε η v πρέπει να έχει περισσότερο από ένα γιο.2.Αν μία αποκόπτουσα κορυφή v δεν είναι ρίζα, τότε πρέπει η v

να έχει ένα γιο s, του οποίου κάποιος απόγονος (συμπεριλαμβανομένου του s) να συνδέεται με έναν πρόγονο της v μέσω 1 οπίσθιας ακμής το πολύ.

Για κάθε κορυφή v ορίζεται εκτός από τη d(v) και μία επιπλέον μεταβλητή, η l(v), που δηλώνει τη μικρότερη από τις επιγραφές d(v) και d(s), όπου s είναι είτε απόγονος της v, είτε πρόγονος μέσω μιας το πολύ οπίσθιας ακμής, που ενώνει τον πρόγονο αυτό με έναν απόγονο της v.

Άρα η μέγιστη τιμή που μπορεί να πάρει η l(v) είναι d(v).Άρα για να ισχύει το 2, πρέπει l(s)d(v)

58

Page 59: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

59Data Engineering Lab

Υπολογισμός παραμέτρου Υπολογισμός παραμέτρου l(v)l(v)Αρχικά: l(v)=d(v).Ο υπολογισμός της l(v) γίνεται θέτοντας την τιμή της ίση με το

ελάχιστο στοιχείο του συνόλου:{d(v)}{l(s) | s γιος της v}{d(w) | (s,w) μία οπίσθια ακμή}

Η l(v) ενημερώνεται όποτε προσπελάζεται ένας γιος s, τέτοιος ώστε l(v)l(s) ή όποτε βρίσκεται μία οπίσθια ακμή. Αυτό μπορεί να επιτευχθεί με τη βοήθεια μιας στοίβας.

Αποκόπτουσες κορυφές είναι όσες l(u)d(v)

59

Page 60: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

62Data Engineering Lab

ΠαράδειγμαΠαράδειγμα

1

23

4

567

8

62

Ξεκινώντας από την κορυφή 1, να δοθούν τα dfi και l για όλες τις κορυφές

Page 61: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

63Data Engineering Lab

ΠαράδειγμαΠαράδειγμα

63

Στο γράφο (α) ξεκινούμε από την κορυφή Α. Να εξηγηθούν διαδοχικά οι τιμές του dfi και l.

Page 62: Θεωρία Γράφων Θεμελιώσεις-Αλγόριθμοι-Εφαρμογές Κεφάλαιο  4 : Συνδεσμικότητα

64Data Engineering Lab

ΠαράδειγμαΠαράδειγμα

64

7[5]

1[1]

2[2]

4[2]

3[2]

5[1]

8[1]6[5]

v[l(v)]

Να εξηγηθούν οι τιμές dfi και l.