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

50
Γράφοι Αλγόριθμοι και πολυπλοκότητα Στάθης Ζάχος, Δημήτρης Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

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

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

Γράφοι

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

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

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

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

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

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

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

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

3

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

Graph Drawing

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

4

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

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

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

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

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

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

VVE ×⊆Evue ∈= ),(

VV ×

5

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

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

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

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

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

6

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

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

• Σε ένα κατευθυνόµενο γράφο (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

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

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

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

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

ℜ→Ew :

BCABAC +≤

8

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

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

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

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

πλευρές.

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

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

2)1(

2−

=

=

nnnm

9

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

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

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

10

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

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

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

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

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

22n

11

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

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

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

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

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

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

12

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

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

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

13

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

Euler & Hamilton (paths & cycles)

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

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

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

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

14

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

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

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

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

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

15

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

Υπογράφος

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

EEVV

⊆⊆''

16

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

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

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

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

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

2)1)(( +−−

≤≤−knknmkn

2)2)(1( −−

>nnm

17

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

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

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

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

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

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

18

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

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

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

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

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

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

• Κλίκας (clique)19

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

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

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

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

20

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

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

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

21

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

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

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

22

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

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

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

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

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

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

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

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

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

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

24

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

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

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

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

25

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

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

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

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

26

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

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

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

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

27

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

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

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

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

BAV ∪=

28

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

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

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

29

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

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

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

30

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

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

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

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

31

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

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

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

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

32

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

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

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

33

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

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

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

34

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

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

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

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

35

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

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

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

36

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

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

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

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

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

37

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

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

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

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

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

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

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

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

39

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

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

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

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

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

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

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

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

41

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

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

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

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

42

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

Παράδειγµα

• Γράφος

43

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

Παράδειγµα

• Γράφος

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

44

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

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

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

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

45

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

Άσκηση 1η

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

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

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

46

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

Λύση

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

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

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

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

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

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

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

48

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

Άσκηση

• Εύρεση maximum spanning tree.

49

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

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

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