HY118-Διακριτά Μαθηματικά Θεωρία γράφων / γραφήματα Πέμπτη, 11/05/2017 Αντώνης Α. Αργυρός e-mail: argyros@csd.uoc.gr 11-May-17 1 1 11-May-17 2 2 Τι έχουμε δει μέχρι τώρα Κατευθυνόμενοι μη κατευθυνόμενοι γράφοι Απλοί γράφοι πολυγράφοι Γειτνίαση κόμβων Βαθμός κορυφής Υπογράφημα Ένα υπογράφημα ενός γράφου G=(V,E) είναι ένας γράφος H=(W,F) όπου W V και F E. Πλήρης γράφος K n Κυκλικός γράφος C n Διμερής γράφος Πλήρης διμερής γράφος K m,n G H 11-May-17 3 3 11-May-17 4 4 1
Υπογράφημα Ένα υπογράφημα ενός γράφου G=(V,E) είναι ένα γράφημα H=(W,F) όπου W V και F E. ΣΗΜΕΙΩΣΗ: αφού ο Η είναι γράφος, υποχρεωτικά το σύνολο Fτων ακμών του θα συνδέει κορυφές που ανήκουν στο W! Παραδείγματα Υπογράφημα 11-May-17 5 5 11-May-17 6 6 Επικαλύπτον υπογράφημα Ο γράφος H=(V,F) αποτελεί ένα επικαλύπτον υπογράφημα του γράφου G=(V,E). ΣΗΜΕΙΩΣΗ: υπογράφημα με το ίδιο σύνολο κορυφών αλλά με σύνολο ακμών F που είναι υποσύνολο του Ε. Συμπλήρωμα γραφήματος Το συμπλήρωμα ενός γράφου G =(V,E ) ως προς ένα γράφο G=(V,E) είναι ένας γράφος G =(Q, E-E ). ΣΗΜΕΙΩΣΗ: Περιλαμβάνει δηλαδή τις ακμές που ανήκουν στο Ε αλλά όχι στο Ε, και όλες τις κορυφές του V που συνδέονται με ακμές στο σύνολο Ε-Ε,ΚΑΙ τους απομονωμένους κόμβους του G. Συνήθως μιλάμε για συμπλήρωμα ενός γράφου ως προς τον αντίστοιχο πλήρη γράφο 11-May-17 7 7 11-May-17 8 8 2
Συμπλήρωμα γραφήματος Παράδειγμα: Ο (α) γράφος είναι το συμπλήρωμα του (γ) ως προς τον (β) (α) (β) (γ) Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων Μπορούμε με ακρίβεια να πούμε αν δύο γράφοι είναι «παρόμοιοι» Προφανώς, ένας δοσμένος γράφος (V,E) μπορεί να σχεδιαστεί με διαφορετικούς τρόπους. Αλλά ακόμα και αν (V,E) και (V,E ) (όπου V<>V και E<>E ) μπορούν να είναι υπό κάποια έννοια ισοδύναμοι: Ισομορφισμός γράφων (άτυπα): Δύο γράφοι είναι ισομορφικοί αν και μόνο αν είναι ίδιοι εκτός από τα ονόματα των κόμβων τους. 11-May-17 9 9 11-May-17 10 10 Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων Παραδείγματα Ισομορφισμός γράφων, τυπικός ορισμός Οι απλοί γράφοι G 1 =(V 1, E 1 )και G 2 =(V 2, E 2 )είναι ισομορφικοί αν και μόνο ανυπάρχειμία αμφιμονοσήμαντη συνάρτηση f:v 1 V 2, τέτοια ώστε για κάθε a,b V 1, οι aκαι bείναι γειτονικοί στον G 1 αν και μόνο αν οι f(a)καιf(b)είναι γειτονικοί στο G 2. Η fείναι η συνάρτηση αλλαγής ονόματος μεταξύ των κόμβων των δύο γράφων, η οποία κάνει τους δύο γράφους ίδιους. Αυτός ο ορισμός μπορεί να επεκταθεί και σε άλλους τύπους γράφων 11-May-17 11 11 11-May-17 12 12 3
Ισομορφισμός γράφων Οι ισομορφικοί γράφοι μοιράζονται όλες τις `σημαντικές τους ιδιότητες, π.χ., Τον αριθμό κορυφών και ακμών Τους βαθμούς των κόμβων Εάν είναι /δεν είναι διμερείς, κλπ. Πως θα ορίζαμε τυπικά τον ισομορφισμό γράφων; Εστιάζουμε για απλότητα στους απλούς γράφους Πως μπορούμε να αποφασίσουμε το κατά πόσον δύο γράφοι είναι ισομορφικοί; Οι καλύτεροι γνωστοί αλγόριθμοι που επιλύουν το πρόβλημα έχουν εκθετική πολυπλοκότητα (ωστόσο, δεν αποκλείεται να υπάρχουν καλύτεροι αλγόριθμοι). 11-May-17 13 13 11-May-17 14 14 n=2 n=5 n=10 n=50 n=60 n=100 n 2 5 10 50 60 100 10n 20 50 100 500 600 1,000 1000n 2,000 5,000 10,000 50,000 60,000 100,000 n 2 4 25 100 2,500 3,600 10,000 n 3 8 125 1,000 125,000 216,000 1,000,000 n 5 32 3,125 100,000 3.13E+08 7.78E+08 1E+10 2 n 4 32 1,024 1.13E+15 1.15E+18 1.27E+30 3 n 9 243 59,049 7.18E+23 4.24E+28 5.15E+47 n! 2 120 3,628,800 3.04E+64 8.32E+81 9.3E+157, παράδειγμα Ι Έστω ότι μας δίνονται nακέραιοι, a 1, a 2,, a n και ότι θέλουμε να βρούμε πoιός είναι ο μεγαλύτερος από αυτούς. Ο αλγόριθμος είναι απλός: max=a 1 ; For (i=2; i<=n; i++) If (a i > max) max=a i ; n συγκρίσεις αρκούν για να επιλύσουν το πρόβλημα 11-May-17 15 15 11-May-17 16 16 4
, παράδειγμα ΙΙ Πρόβλημα του σακιδίου: Σακίδιο με χωρητικότητα Κ, nαντικείμενα με μεγέθη a i, θέλουμε να γεμίσουμε το σακίδιο ώστε να περισσεύει όσο το δυνατόν λιγότερος χώρος. Έστω ότι μας δίνονται n ακέραιοι, a 1, a 2,, a n και μία σταθερά Κ. Θέλουμε να βρούμε ένα υποσύνολο του συνόλου των ακεραίων τέτοιο ώστε το άθροισμά τους να είναι ίσο με Κ, ή να υπολείπεται όσο το δυνατόν λιγότερο από αυτό. Ο προφανής αλγόριθμος: Για κάθε δυνατό υποσύνολο του συνόλου των ακεραίων, υπολόγισε το άθροισμα των στοιχείων του. Κράτα εκείνο το υποσύνολο για το οποίο το άθροισμα των στοιχείων είναι ο μεγαλύτερος αριθμός, που είναι μικρότερος ή ίσος του Κ. Όλα τα 2 n υποσύνολα του συνόλου των αριθμών πρέπει να ελεγχθούν για να επιλύσουμε το πρόβλημα!, παραδείγματα Για το πρόβλημα της εύρεσης του μεγίστου από n αριθμούς Έστω ΑΡΓΟΣ υπολογιστής που μπορεί να εκτελεί 1000 συγκρίσεις το δευτερόλεπτο Για n=100το πρόβλημα λύνεται σε 100msec Για το πρόβλημα του σακιδίου με n αντικείμενα Έστω ΓΡΗΓΟΡΟΣ υπολογιστής που μπορεί να εξετάζει 10 10 υποσύνολα το δευτερόλεπτο Για n=100το πρόβλημα λύνεται σε περίπου 4,02x10 12 χρόνια (1 έτος = 3,15x10 7 δευτερόλεπτα) [Η ηλικία του σύμπαντος εκτιμάται στα 1,37 10 10 χρόνια... ] 11-May-17 17 17 11-May-17 18 18 Λέμε ότι ένας αλγόριθμος είναι αποδοτικός όταν απαιτεί λιγότερες από n k πράξεις για κάποια σταθερήτιμή του k (nτο μέγεθος της εισόδου του) Ένα πρόβλημα λέγεται πρακτικώς επιλύσιμο (υπολογιστικά εύκολο) όταν υπάρχειγι αυτό αποδοτικός αλγόριθμος Για να δείξουμε ότι ένα πρόβλημα είναι πρακτικώς επιλύσιμο αρκεί να βρούμε γι αυτό έναν αλγόριθμο και να αποδείξουμε ότι αυτός είναι αποδοτικός Ένα πρόβλημα λέγεται δυσεπίλυτοόταν γι αυτό δεν υπάρχει αποδοτικός αλγόριθμος (όλοι οι αλγόριθμοι που το επιλύουν είναι μη-αποδοτικοί) Για να δείξουμε ότι ένα πρόβλημα είναι δυσεπίλυτο πρέπει να αποδείξουμε ότι δεν υπάρχει γι αυτό αποδοτικός αλγόριθμος 11-May-17 19 19 11-May-17 20 20 5
ΠΡΟΦΑΝΩΣ, υπάρχουν πρακτικώς επιλύσιμα προβλήματα Υπάρχουν επίσης προβλήματα για τα οποία παρότι ο βέλτιστος γνωστός αλγόριθμος δεν είναι αποδοτικός, δεν έχουμε καταφέρει να αποδείξουμε ότι δεν μπορεί να υπάρξει αποδοτικός αλγόριθμος που να τα επιλύει. Αυτά αναφέρονται ως NP προβλήματα Επίσης, ένα πρόβλημα λέγεται NP complete αν κάθε NP πρόβλημα μπορεί να μετασχηματιστεί σε αυτό με μετασχηματισμούς της εισόδου του οι οποίες μπορούν να γίνουν σε πολυωνυμικό χρόνο. Επομένως, αν μπορέσουμε για ΟΠΟΙΟΔΗΠΟΤΕ NPcomplete πρόβλημα να αποδείξουμε ότι είναι πρακτικώς επιλύσιμο τότε το ίδιο θα ισχύει για όλα αυτά τα προβλήματα (ισοδυναμία!) Το παραπάνω, αποτελεί το μεγαλύτερο ανοιχτό πρόβλημα στην θεωρητική Επιστήμη των Υπολογιστών 11-May-17 21 21 11-May-17 22 22 Για περισσότερες πληροφορίες κοιτάξτε το κεφάλαιο 8 του βιβλίου του Liu Επίσης στο http://en.wikipedia.org/wiki/computational _complexity_theory Ισομορφισμός γράφων Έστω γράφοι G 1 και G 2. Είναι ο G 1 ισομορφικόςμε τον G 2 ; NP πρόβλημα. Έστω γράφοι G 1 και G 2. Είναι ο G 1 ισομορφικόςμε κάποιο υπογράφημα τουg 2 ; NP πρόβλημα. 11-May-17 23 23 11-May-17 24 24 6
Ισομορφισμός γράφων Αναγκαίες αλλάόχι ικανές συνθήκες για να είναι δύο γράφοι G 1 =(V 1, E 1 )και G 2 =(V 2, E 2 ): ισομορφικοί: V 1 = V 2 και E 1 = E 2. Το πλήθος των κόμβων με βαθμό nείναι το ίδιο και στους δύο γράφους. Παράδειγμα ισομορφισμού Εάν είναι ισομορφικοί, ονόμασε τους κόμβους του2ουγράφουγια να δείξεις τον ισομορφισμό, αλλιώς δείξε τη διαφορά. a e b d f c c b f d a e 11-May-17 25 25 11-May-17 26 26 Είναι αυτοί οι γράφοι ισομορφικοί; Όχι! c a d b e Ίδιος #κόμβων Ίδιος#ακμών Διαφορετικός #κόμβωνμε βαθμό2! (1 / 3) Ισομορφισμός γράφων: Μία σχέση ισοδυναμίας μεταξύ γράφων ƒ(a) = 1 ƒ(b) = 6 ƒ(c) = 8 ƒ(d) = 3 ƒ(g) = 5 ƒ(h) = 2 ƒ(i) = 4 ƒ(j) = 7 11-May-17 27 27 11-May-17 28 28 7