Γράφοι - ocw.aoc.ntua.gr

Post on 17-Oct-2021

9 views 0 download

Transcript of Γράφοι - ocw.aoc.ntua.gr

Γράφοι

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

Σχολή Ηλεκτρολόγων Μηχανικώνκαι Μηχανικών ΥπολογιστώνΕθνικό Μετσόβιο Πολυτεχνείο

Άδεια ΧρήσηςΤο παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς.

Γράφοι• Ένας γράφος ή αλλιώς γράφηµα αποτελείται απο

– πλευρές (ακµές) και – κορυφές (κόµβους).

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

3

Graph Drawing

4 πιθανές αναπαραστάσεις του ίδιου γράφου

4

Σηµασιολογία• Ένας γράφος συµβολίζεται µε G=(V,E)

– Όπου V={1,…,n} ένα σύνολο από κορυφές (vertices)– ένα σύνολο από πλευρές ή ακµές (edges)– συµβολίζουµε µια πλευρά– n=|V| το πλήθος των κορυφών– m=|E| το πλήθος των πλευρών

Παρατηρήσεις: Οι πλευρές είναι ένα διατεταγµένο ζέυγοςµε στοιχεία κορυφές δηλαδή

εν γένει (1,2) δεν είναι το ίδιο µε το (2,1)Θα γράφουµε (u,v) και θα εννοούµε οτι η κορυφή u

‘επικοινωνεί’ µε την κορυφή v.

VVE ×⊆Evue ∈= ),(

VV ×

5

Μη κατευθυνόµενος γράφος

• Ένας µη κατευθυνόµενος γράφος (undirected graph), είναι ένας γράφος για τον οποίο ισχύει

(u,v) αν και µόνο αν (v,u)

– Οι κορυφές u και v λέγονται άκρα της (u,v)– Οι κορυφές u και v λέγονται γείτονες αν υπάρχει η (u,v).– Αν η u έχει d γείτονες τότε λέµε πως έχει βαθµό d.

6

Κατευθυνόµενος γράφος

• Σε ένα κατευθυνόµενο γράφο (directed graph) τα επόµενα δεν είναι (εν γένει) ισοδύναµα

Πχ. Υπάρχει η ακµή (1,2) ενώ δεν υπάρχει η ακµή (2,1)

• Στη κατευθυνόµενη πλέον πλευρά (u,v) η κορυφή u λέγεται πηγή (origin) και η v προορισµός (destination).

• Η κορυφή v • είναι γείτονας της u αν υπάρχει η κατευθυνόµενη πλευρά (u,v).

• έχει out-degree= d, αν έχει d γείτονες.• έχει in-degree= d, αν είναι ο γείτονας d κορυφών.

),( ),( uvvu

7

Γράφος µε βάρη• Θεωρούµε µια συνάρτηση βάρους

• Το w µπορεί να µοντελοποιεί βάρος, απόσταση, µήκος, χρόνο, κόστος, χωρητικότητα κ.ά. (επιτρέπονται και αρνητικά βάρη).

• Γενικά τα βάρη δεν ικανοποιούν την τριγωνική ανισότητα

ℜ→Ew :

BCABAC +≤

8

Απλός γράφος (simple)• Απλός γράφος λέγεται ο γράφος που δεν έχει

– παράλληλες πλευρές – Self loops (πλευρές µε του τύπου (u,u))

• Σε απλό µη κατευθυνόµενο γράφο υπάρχουν το πολύ

πλευρές.

• Σε απλό κατευθυνόµενο γράφο υπάρχουν το πολύ m=n(n-1) πλευρές.

• Πυκνός γράφος: m=Θ(n2) • Αραιός γράφος: m=Θ(n)

2)1(

2−

=

=

nnnm

9

Ισοµορφισµός µεταξύ γράφων

• ∆ύο γράφοι G1 και G2 λέγονται ισοµορφικοί αν υπάρχει ένα προς ένα αντιστοιχία των κορυφών τους έτσι ώστε ένα ζεύγος κορυφών του G1συνδέεται µε µια ακµή αν και µόνο αν το αντίστοιχο ζεύγος κορυφών του G2 συνδέεται µε µια ακµή

10

Γράφος µε ετικέτες (labelled)

• Σε γράφο µε ετικέτες κάθε κορυφή έχει µια µοναδική ετικέτα (ID) που τη χαρακτηρίζει µονοσήµαντα. (Συνήθως 1..n)

• Για ένα γράφο µε ετικέτες µε n κορυφές υπάρχουν µη ισοµορφικοί του.

– Π.χ. Για n=3 υπάρχουν 8 τέτοιοι γράφοι

22n

11

Μονοπάτια (paths) και κύκλοι (cycles)

• Μονοπάτι P=(v0, v1 ,…,vk) µήκους k είναι µια ακολουθία απο κορυφές έ.ώ. να υπάρχει πλευρά (vi, vi+1) για 0<=i<=k-1 (µε όλες τις πλευρές διαφορετικές)

• Κύκλος C=(v0, v1 ,…,vk-1, v0) µήκους k είναι ένα µονοπάτι που ξεκινά και τελειώνει µε την ίδια κορυφή.

• Απλό µονοπάτι: όλες οι κορυφές είναι διαφορετικές

• Απλός κύκλος: όλες οι κορυφές είναι διαφορετικές εκτός από την αρχική και τελική που είναι ίσες

12

Οι γέφυρες του Königsberg

• Πρόβληµα : Είναι δυνατόν να διασχίσει κανείς και τις 7 γέφυρες περνώντας µια φορά από κάθε µια, ξεκινώντας και τελειώνοντας σε οποιοδήποτε σηµείο;

13

Euler & Hamilton (paths & cycles)

• Euler µονοπάτι (Euler tour): µονοπάτι που περιέχει µια φορά ακριβώς όλες τις ακµές.

• Euler κύκλος: κύκλος που περιέχει µια φορά ακριβώς όλες τις ακµές.

• Hamilton µονοπάτι (Hamilton tour): απλό µονοπάτι που περιέχει µια φορά ακριβώς όλες τις κορυφές.

• Hamilton κύκλος: απλό κύκλος που περιέχει µια φορά ακριβώς όλες τις κορυφές.

14

Συνεκτικός γράφος• Ένας µη κατευθυνόµενος γράφος θα λέγεται συνεκτικόςαν για κάθε ζεύγος κορυφών του υπάρχει µονοπάτι που τις συνδέει.

• Ένας κατευθυνόµενος γράφος θα λέγεται ισχυρά συνεκτικός (strongly connected) αν για κάθε ζεύγος κορυφών του υπάρχει ‘κατευθυνόµενο’ µονοπάτι που τις συνδέει.

• Ένας κατευθυνόµενος γράφος θα λέγεται ασθενά συνεκτικός (weakly connected) αν ο αντίστοιχος µη κατευθυνόµενος γράφος είναι συνεκτικός.– Σε απλό συνεκτικό µη κατευθυνόµενο γράφο υπάρχουν τουλάχιστον m=n-1 πλευρές.

– Σε απλό ισχυρά συνεκτικό κατευθυνόµενο γράφο υπάρχουν τουλάχιστον m=n πλευρές.

15

Υπογράφος

• Ο γράφος G’=(V’,E’) θα λέγεται υπογράφος ενός γράφου G=(V,E) αν:

EEVV

⊆⊆''

16

Πλήθος Πλευρών

• Θεώρηµα: Έστω G ένας απλός µη κατευθυνόµενος γράφος και k το πλήθος των συνεκτικών συνιστωσών τότε:

• Πρόταση: Ένας απλός µη κατευθυνόµενος γράφος µε n κορυφές είναι συνεκτικός αν έχει m πλευρές µε:

δηλαδή να έχει περισσότερες από τις ακµές του πλήρους γράφου n-1 ακµών.

2)1)(( +−−

≤≤−knknmkn

2)2)(1( −−

>nnm

17

Θεώρηµα 4 χρωµάτων

• Είναι δυνατόν να χρωµατίσουµε ένα χάρτη µε 4 χρώµατα ώστε γειτονικές χώρες να έχουν διαφορετικό χρώµα;

• Ή είναι δυνατόν να χρωµατίσουµε τις κορυφές του γράφου µε το πολύ 4 χρώµατα;

• Μπορεί να χρωµατιστεί ένας επίπεδος γράφος µε το πολύ 4 χρώµατα;

• Θεώρηµα 4-χρωµάτων (4-coloring theorem)Το ελάχιστο πλήθος χρωµάτων που απαιτείται για το χρωµατισµό ενός επίπεδου γράφου είναι 4.

18

∆ιάφορα Προβλήµατα

• Ταιριάσµατος (matching)

• Περιπλανώµενου (πλανόδιου) πωλητή (TSP)

• Κάλυψης κορυφών (vertex cover)

• Ισοµορφισµού (subgraph-isomorphism)

• Κλίκας (clique)19

Πρόβληµα πλανόδιου πωλητή• Ένας πωλητής θέλει να επισκευτεί 5 πόλεις A, B, C,

D, E ξεκινώντας και τελειώνοντας στην Α, διανύοντας την µικρότερη απόσταση;

• Πρόβληµα: Να βρεθεί το συντοµότερο µονοπάτι που περνά από όλες τις πόλεις µια φορά ακριβώς, ξεκινώντας και καταλήγοντας στην κορυφή Α. (Shortest Hamiltonian cycle)

20

Χηµικό Μόριο• Στο µόριο CxHy, x άτοµα άνθρακα ενώνονται µε y άτοµα υδρογόνου. Το υδρογόνο ενώνεται µε έναν άνθρακα, ενώ ο άνθρακας ενώνεται µε 4 στοιχεία, υδρογόνα ή άνθρακες. Πόσες διαφορετικές δοµές υπάρχουν για το µόριο C4H10;

• Πόσοι µη ισοµορφικοίσυνεκτικοί γράφοι υπάρχουνµε x κορυφές µε βαθµό 4 καιy κορυφές µε βαθµό 1;

21

Συνήθως ένας γράφος είναι:

• Απλός• Μη κατευθυνόµενος• Συνεκτικός • Χωρίς βάρη και ετικέτες

22

∆άσος & ∆έντρο• ∆άσος καλέιται ένας γράφος χωρίς κύκλους• ∆έντρο καλείται ένας συνεκτικός γράφος χωρίς

κύκλους• Παρατηρήσεις:

– Το δέντρο είναι ένα συνεκτικό δάσος– Κάθε συνεκτική συνιστώσα ενός δάσους είναι ένα δέντρο

• Κριτήρια για να είναι ένας γράφος δέντρο Συνεκτικός χωρίς κύκλους, Συνεκτικός µε n-1 πλευρέςΧωρίς κύκλους µε n-1 πλευρέςΑφαιρώντας µια οποιαδήποτε πλευρά ο γραφός από συνεκτικός γίνεται

µη συνεκτικόςΚάθε ζεύγος κορυφών συνδέεται µε ακριβώς ένα µονοπάτι, ∆εν έχει κύκλους αλλά η πρόσθεση µιας νέας πλευράς δηµιουργεί έναν κύκλο. 23

Ειδικές µορφές δέντρων

• ∆υαδικό δέντρο: ∆έντρο µε ρίζα και κάθε κορυφή έχει το πολύ 2 παιδιά.

• Αστέρας (Star): ∆έντρο µε ρίζα καιn-1 φύλλα. Ο Βαθµός µιας κορυφής είναιn-1 και όλων των άλλων είναι 1.• Αλυσίδα (chain) ή µονοπάτι :∆έντρο µε 2 φύλλα. Ο βαθµός κάθε κόµβου είναι 2εκτός από αυτόν των φύλλων που είναι 1.

24

Χωρίς πλευρές & µε όλες τις πλευρές

• Γράφοι χωρίς πλευρέςNull graphs Nn:• Ένας γράφος θα λέγεται πλήρης (complete) αν κάθε ζεύγος κορυφών του συνδέεται µε ακµή. Τέτοιοι γράφοι θα συµβολίζονται µε Kn

• Κλίκα (clique) ενός γράφου λέγεται ένας πλήρης υπογράφος του.

25

Κύκλοι & Μονοπάτια

• Κύκλοι (cycles) Cn: Συνεκτικός γράφος στον οποίο όλες οι κορυφές έχουν βαθµό 2 (n>=3).

• Μονοπάτια (paths) Pn: Κύκλος που του έχει αφαιρεθεί µια πλευρά.

26

Αστέρια & Τροχοί

• Αστέρια (stars) Sn: Μια ρίζα µε n-1 φύλλα

• Τροχοί (wheels) Wn: Αστέρι που όλα τα n-1 φύλλα σχηµατίζουν κύκλο Cn-1 (n>=4)

27

∆ιµερής Γράφος

• ∆ιµερής γράφος (bipartite) καλείται ένας γράφος του οποίου οι κορυφές µπορούν να χωριστούν σε δύο σύνολα έ.ώ κάθε στοιχείο του ενός συνδέεται µε κάποιο στοιχείου του άλλου, και δύο στοιχεία του ίδιου συνόλου δεν συνδέονται.

Παρατήρηση: Ένας γράφος είναι διµερής ανν κάθεκύκλος έχει άρτιο µήκος.

BAV ∪=

28

Πλήρης διµερής γράφος

• Πλήρης διµερής γράφος (complete bipartite graph) Κr,cείναι ένας διµερής γράφος έ.ώ. κάθε στοιχείο του ενός συνόλου της διαµέρισης συνδέεται µε κάθε άλλο στοιχείο του δεύτερου συνόλου.

29

Πρόβληµα γάµου• Κάτω από ποιες συνθήκες µερικά κορίτσια που αγαπούν µερικά αγόρια µπορούν να παντρευτούν, ώστε κάθε ένα από αυτά να πάρει κάποιον που αγαπά;

• Έχει ο διµερής γράφος τέλειο ταίριασµα (matching);

30

Κύβοι• Υπάρχουν n=2k κορυφές που παριστάνουν όλους του δυαδικούς αριθµούς µήκους k.

• ∆ύο κορυφές συνδέονται µε πλευρά αν οι αντίστοιχοι δυαδικοί αριθµοί τους διαφέρουν σε ένα ακριβώς bit.

• Οι κύβοι είναι διµερής;Γιατί;

31

Επίπεδος Γράφος

• Επίπεδος γράφος (planar): γράφος που µπορεί να σχεδιαστεί στο επίπεδο, ώστε όλες οι πλευρές του να µην διασταυρώνονται

• Θεώρηµα: Ένας γράφος είναι επίπεδος αν και µόνο αν δεν περιέχει υπογράφο ισοµορφικό µε τον Κ5 ή τον Κ3,3.

32

Πρόβληµα των 3 επιχειρήσεων κοινής ωφελείας

• Είναι δυνατόν να συνδέσουµε τα τρία σπίτια Α, B, C µε τις επιχειρήσεις κοινής ωφελείας ΕΥ∆ΑΠ, ∆ΕΗ, ΟΤΕ ώστε να µην διασταυρώνονται τα καλώδια τους;

33

Πρόβληµα χρωµατισµού µε 4 χρώµατα• Μπορούµε να χρωµατίσουµε ένα χάρτη µε 4 το πολύ χρώµατα έτσι ώστε γειτονικές χώρες να έχουν διαφορετικό χρώµα;

• Χρωµατίζονται οι κορυφές ενός γράφου µε το πολύ 4χρώµατα;( χρωµατίζεται επίπεδος γράφος µε 4 το πολύ χρώµατα;)

34

d-κανονικός γράφος

• Σε έναν d-κανονικό γράφο, ο βαθµός κάθε κορυφής είναι ακριβώς d.

• Petersen Graph: 3-κανονικός γράφος

35

Γράφος διαστηµάτων

• Γράφος διαστηµάτων (interval)– Σε κάθε ένα διάστηµα αντιστοιχεί µια κορυφή– ∆ύο κόµβοι του γράφου σθνδέονται µε ακµή ανν τα αντίστοιχα διαστήµατα τέµνονται.

36

The Activity Center Problem• Ποιος είναι ο µέγιστος αριθµός από δραστηριότητες που

µπορούν να εξυπηρετηθούν από ένα server;

• Αντίστοιχο πρόβληµα σε γράφους: να βρεθεί ένα µέγιστο υποσύνολο κορυφών χωρίς να υπάρχει ακµή µεταξύ τους;

(εύρεση µέγιστου ανεξάρτητουσυνόλου- maximum independent set)

37

Συµπληρωµατικός γράφος

• Συµπληρωµατικός γράφος (complement)

Ένας γράφος είναι συµπληρωµατικός ενός γράφου G=(V,E) ανν:

για κάθε ζεύγος διακριτών κορυφών38

Παρατηρήσεις

• Παρατηρούµε:

39

Παράσταση γράφου I

• Πίνακας γειτνίασης (adjacency matrix)– Πίνακας A nxn

Παρατηρήσεις:Σε γράφο µε βάρη, τα aij αντικαθήστανται από τααντίστοιχα βάρη

Σε µη κατευθυνόµενο γράφο: aij=ajiΣε απλό γράφο: aii=0Απαιτούµενη µνήµη: Θ(n2) 40

Παράσταση γράφου II

• Πίνακας πρόσπτωσης (incidence matrix):– Πίνακας B nxm όπου:

41

Παράσταση γράφου IIΙ

• Λίστες γειτνίασης (adjacency lists)– Η λίστα γειτνίασης µιας κορυφής v περιέχει όλες τις γειτονικές κορυφές της v.

Παρατηρήσεις:Σε γράφο µε βάρη βάζουµε ένα επιπλέον πεδίογια το βάρος της πλευράς.Σε κατευθυνόµενο γράφο έχουµε 2 λίστες γιακάθε v.Απαιτούµενη µνήµη: Θ(n+m)

42

Παράδειγµα

• Γράφος

43

Παράδειγµα

• Γράφος

• ∆ώστε τονπίνακα πρόσπτωσης!

44

Πίνακα ή λίστες;

• Οι πίνακες πιο εύκολα υλοποιούνται και συντηρούνται. Προσφέρονται για πυκνούς γράφους.

• Οι λίστες προσφέρονται για αραιούς γράφους και προσφέρονται για αλγορίθµους που η πολυπλοκότητά τους εξαρτάται από το m.

45

Άσκηση 1η

• Έστω κατευθυνόµενος γράφος G=(V,E)1. ∆ίνεται παράσταση του G µε πίνακα γειτνίασης

Α nxn, δώστε αλγόριθµο Θ(n2) χρόνου που να υπολογίζει την λίστα πρόσπτωσης του G.

2. ∆ίνεται παράσταση του G µε λίστα γειτνίασης Adj[1..n], δώσε αλγόριθµο Θ(n2) χρόνου που να υπολογίζει τον πίνακα γειτνίασης του G.

46

Λύση

1. for i:= 1 to n do begin construct(in_list_v[i],out_list-v[j]);

for i:= 1 to n dofor j:= 1 to n do

if aij=1 then begin

out_list_v[i]:= out_list_v[i] {vj};in_list_v[j]:= in_list_v[j] {vi}

end

∪∪

47

Άσκηση 2η• Ολική Καταβόθρα (total sink) σε

κατευθυνόµενο γράφο ονοµάζεται µια κορυφή που δεν έχει γείτονες και είναι γείτονας κάθε άλλης κορυφής.

• Ασκήσεις:1. ∆ίνεται παράσταση µε πίνακα γειτνίασης. ∆ώστε

αλγόριθµο Θ(n) χρόνου που να βρίσκει µια ολική καταβόθρα (ή αναφέρει πως δεν υπάρχει τέτοια).

2. ∆ίνεται παράσταση µε λίστες γειτνίασης, δώστε αλγόριθµο χρόνου που να βρίσκει µια ολική καταβόθρα (ή αναφέρει πως δεν υπάρχει τέτοια). Τι πολυπλοκότητας είναι ο αλγόριθµος;

48

Άσκηση

• Εύρεση maximum spanning tree.

49

Χρηματοδότηση

Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα» του ΕΜΠ έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του υλικού.Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.