Κατανεμημένα Συστήματα Ι Παναγιώτα Παναγοπούλου 11η Διάλεξη 12 Ιανουαρίου 2017 1 Ανεξάρτητο σύνολο Δοθέντος ενός μη κατευθυνόμενου γραφήματος G = (V, E), ένα ανεξάρτητο σύνολο (independent set) είναι ένα υποσύνολο κορυφών U V, τέτοιο ώστε να μην υπάρχει πλευρά ανάμεσα σε οποιεσδήποτε δύο κορυφές στο U, δηλαδή τέτοιο ώστε: u, v U = (u, v) / E. Ένα ανεξάρτητο σύνολο U είναι maximal αν δεν μπορεί να προστεθεί κάποια κορυφή στο U χωρίς να παραβιαστεί η ανεξαρτησία. Ένα ανεξάρτητο σύνολο με το μεγαλύτερο δυνατό πλήθος κορυφών (δηλαδή μέγιστου μεγέθους) είναι maximum (μέγιστο). Παρατηρήσεις. Ένα μέγιστο ανεξάρτητο σύνολο είναι πάντα maximal, αφού δεν μπορούμε να προσθέσουμε άλλη κορυφή χωρίς να παραβιαστεί η ανεξαρτησία (αν μπορούσαμε, τότε θα είχαμε ένα ανεξάρτητο σύνολο με μέγεθος μεγαλύτερο από το μέγιστο, άτοπο). Το αντίστροφο γενικά δεν ισχύει. Για παράδειγμα, θεωρήστε ένα γράφημα με τοπολογία αστεριού και n κορυφές (δηλαδή 1 κεντρικός κόμβος-ρίζα που συνδέεται με n 1 κόμβους-φύλλα). Ο κεντρικός κόμβος αποτελεί ένα maximal ανεξάρτητο σύνολο: δεν μπορούμε να προσθέσουμε κάποια άλλη κορυφή χωρίς να παραβιαστεί η ανεξαρτησία. Ωστόσο, το μέγιστο ανεξάρτητο σύνολο αποτελείται από τους n 1 κόμβους-φύλλα. Επομένως, ένα maximal ανεξάρτητο σύνολο μπορεί να είναι πολύ μικρότερο από το μέγιστο ανεξάρτητο σύνολο. 1
Ο υπολογισμός ενός μέγιστου ανεξάρτητου συνόλου είναι ένα υπολογιστικά δύσκολο πρόβλημα (είναι NP-hard, αλλά είναι και μάλλον απίθανο να μπορεί να προσεγγιστεί ικανοποιητικά σε πολυωνυμικό χρόνο). Στη συνέχεια θα ασχοληθούμε με το πρόβλημα υπολογισμού ενός maximal ανεξάρτητου συνόλου (MIS). Ο υπολογισμός ενός MIS ακολουθιακά (δηλαδή με έναν κεντρικοποιημένο, όχι κατανεμημένο αλγόριθμο) είναι εύκολος: Εξετάζουμε όλες τις κορυφές με αυθαίρετη σειρά. Αν ένας κόμβος u δεν παραβιάζει την ανεξαρτησία, προσθέτουμε τον u στο MIS. Παρακάτω δίνουμε μια κατανεμημένη εκδοχή του απλού αυτού αλγορίθμου. Υποθέτουμε ότι οι κορυφές έχουν μοναδικές ταυτότητες (unique IDs). Αλγόριθμος MIS Κάθε κόμβος v εκετελεί τα παρακάτω βήματα: 1. if όλοι οι γείτονες του v με μεγαλύτερο ID από τον v έχουν αποφασίσει να μην μπουν στο MIS then 2. ο v αποφασίζει να μπει στο MIS 3. endif Μπορεί να αποδειχθεί ότι ο παραπάνω αλγόριθμος δεν είναι καλύτερος από τον ακολουθιακό στη χειρότερη περίπτωση, επειδή υπάρχουν στιγμιότυπα (γραφήματα στα οποία εκτελείται ο αλγόριθμος) στα οποία μόνο ένας κόμβος σε όλο το δίκτυο αποφασίζει να μπει στο MIS κάθε φορά. Η χρονική πολυπλοκότητα του αλγορίθμου είναι O(n) και η πολυπλοκότητα επικοινωνίας είναι O(m). Ανεξάρτητα σύνολα και χρωματισμοί κορυφών. Υπάρχει μια σχέση που συνδέει ανεξάρτητα σύνολα και χρωματισμούς των κορυφών ενός γραφήματος. Κάθε χρωματική κλάση (δηλαδή κάθε υποσύνολο κόμβων με το ίδιο χρώμα) είναι ένα ανεξάρτητο σύνολο, αλλά όχι απαραίτητα ένα MIS. Ξεκινώντας όμως από έναν χρωματισμό, μπορούμε εύκολα να αναπτύξουμε ένα αλγόριθμο MIS: Στον πρώτο γύρο, όλοι οι κόμβοι της πρώτης χρωματικής κλάσης μπαίνουν στο MIS και ενημερώνουν τους γείτονές του. Στη συνέχεια, όλοι οι κόμβοι της δεύτερης χρωματικής κλάσης που δεν έχουν γείτονα που να είναι ήδη στο MIS μπαίνουν στο MIS, και ενημερώνουν τους γείτονές τους. Η διαδικασία αυτή συνεχίζεται για όλες τις χρωματικές κλάσεις. Επομένως, αν έχουμε έναν αλγόριθμο χρωματισμού που τρέχει σε χρόνο T και απαιτεί C χρώματα, μπορούμε να κατασκευάσουμε ένα MIS σε 2
συνολικό χρόνο T + C. 2 Κυρίαρχο σύνολο Δοθέντος ενός μη κατευθυνόμενου γραφήματος G = (V, E), ένα κυρίαρχο σύνολο (dominating set) είναι ένα υποσύνολο κορυφών S V, τέτοιο ώστε, για κάθε κορυφή v V, ισχύει ότι v S ή u S για κάποιο γείτονα u του v. Με άλλα λόγια, αν μια κορυφή δεν ανήκει στο κυρίαρχο σύνολο, τότε πρέπει απαραίτητα να έχει έναν γείτονα στο κυρίαρχο σύνολο. Ο υπολογισμός ενός κυρίαρχου συνόλου με το ελάχιστο δυνατό μέγεθος είναι NP-hard, επομένως αναζητάμε προσεγγιστικούς αλγορίθμους που να υπολογίζουν ένα όσο γίνεται μικρό κυρίαρχο σύνολο σε πολυωνυμικό χρόνο. Παρατηρήστε ότι ένα κυρίαρχο σύνολο δεν είναι απαραίτητα ανεξάρτητο. Ω- στόσο, ένα maximal ανεξάρτητο σύνολο (MIS) είναι κυρίαρχο σύνολο: κάθε κορυφή που δεν ανήκει στο MIS συνδέεται με κάποια κορυφή στο MIS (διαφορετικά το MIS δεν θα ήταν maximal, άτοπο). Ωστόσο, γενικά, το μέγεθος ενός MIS μπορεί να είναι κατά πολύ μεγαλύτερο (συγκεκριμένα κατά έναν παράγοντα Ω(n)) από αυτό ενός κυρίαρχου συνόλου. Για παράδειγμα, θεωρήστε το γράφημα που προκύπτει όταν ενώσουμε με πλευρά τα κέντρα δύο γραφημάτων με τοπολογία αστεριού. Στο γράφημα αυτό, κάθε MIS περιλαμβάνει είτε (1) όλα τα φύλλα του ενός αστεριού και το κέντρο του άλλου, είτε (2) όλα τα φύλλα και των δύο αστεριών. Άρα κάθε MIS έχει μέγεθος Ω(n). Ωστόσο υπάρχει κυρίαρχο σύνολο με μέγεθος μόλις 2 (αποτελείται από τα κέντρα των δύο αστεριών). Ακολουθιακός αλγόριθμος. Ως συνήθως, θα ξεκινήσουμε από έναν απλό ακολουθιακό (όχι κατανεμημένο) αλγόριθμο για το πρόβλημα και στη συνέχεια θα δούμε μια κατανεμημένη εκδοχή του. Η γενική ιδέα είναι να ξεκινήσουμε από S = και να προσθέτουμε κόμβους στο S μέχρι το S να γίνει κυρίαρχο σύνολο. Για να απλοποιήσουμε την παρουσίαση του αλγορίθμου, χρωματίζουμε τους κόμβους ανάλογα με την κατάστασή τους κατά την εκτέλεση του αλγορίθμου. Οι κόμβοι που ανήκουν στο S ονομάζονται μάυροι, οι κόμβοι που δεν ανήκουν στο S αλλά έχουν γείτονα στο S ονομάζονται γκρι, και οι υπόλοιποι κόμβοι ονομάζονται άσπροι. Έτσι, το S είναι κυρίαρχο σύνολο αν και μόνο αν δεν υπάρχουν άσπροι κόμβοι στο γράφημα. Συμβολίζουμε με W (v) το σύνολο των άσπρων κόμβων στη γειτονιά του v (συμπεριλαμβανομένου και του ίδιου του v). Το μέγεθος αυτού του συνόλου ονομάζεται span: span(v) = W (v). 3
Διαισθητικά, για να καταλήξουμε σε ένα μικρό κυρίαρχο σύνολο S, οι κόμβοι στο S πρέπει να καλύπτουν όσο το δυνατό περισσότερους γείτονες. Επομένως ένας άπληστος αλγόριθμος προσθέτει κάθε φορά στο S τον κόμβο v με το μέγιστο span(v). Έτσι έχουμε τον παρακάτω ακολουθιακό αλγόριθμο: Άπληστος αλγόριθμος 1. S = 2. while υπάρχουν άσπροι κόμβοι do 3. v := {u span(u) = max t V span(t)} 4. S = S {v} 5. endwhile Κατανεμημένος αλγόριθμος. Για την κατανεμημένη εκδοχή του παραπάνω αλγορίθμου, παρατηρούμε το εξής. Το span ενός κόμβου μπορεί να μειωθεί μόνο αν κάποιος από τους κόμβους σε απόσταση το πολύ 2 μπει στο κυρίαρχο σύνολο. Επομένως, αν το span του κόμβου v είναι μεγαλύτερο από το span οποιουδήποτε άλλου κόμβου σε απόσταση το πολύ 2 από τον v, τότε ο άπληστος αλγόριθμος επιλέγει τον v πριν από οποιοδήποτε άλλο κόμβο σε απόσταση το πολύ 2. Αυτό μας οδηγεί σε μια απλή κατανεμημένη εκδοχή του άπληστου αλγορίθμου, όπου κάθε κόμβος εκτελεί τον παρακάτω αλγόριθμο: 4
Κατανεμημένος άπληστος αλγόριθμος (στον κόμβο v) 1. while ο v έχει άσπρους γείτονες do 2. υπολόγισε το span(v) 3. στείλε το span(v) στους κόμβους σε απόσταση το πολύ 2 4. if span(v) μέγιστο ανάμεσα σε όλους τους κόμβους σε απόσταση το πολύ 2 (σε περίπτωση ισοπαλίας ευνοείται ο κόμβος με το μέγιστο ID) then 5. μπες στο κυρίαρχο σύνολο 6. endif 7. endwhile Μπορεί να αποδειχθεί ότι ο παραπάνω αλγόριθμος υπολογίζει ένα κυρίαρχο σύνολο μεγέθους το πολύ ln + 2 φορές το μέγεθος ενός βέλτιστου (ελάχιστου) κυρίαρχου συνόλου σε χρόνο O(n). Τυχαίος (randomized) κατανεμημένος αλγόριθμος. Στη συνέχεια θα δείξουμε πώς μπορούμε να χρησιμοποιήσουμε την τυχαιότητα (randomization) ώστε να βελτιώσουμε σημαντικά το χρόνο υπολογισμού ενός κυρίαρχου συνόλου. Εστιάζουμε σε δ-κανονικά (δ-regular) γραφήματα: ένα γράφημα είναι δ-κανονικό αν ο βαθμός κάθε κορυφής είναι ακριβώς δ. Θεωρήστε τον παρακάτω αλγόριθμο: Αλγόριθμος για κυρίαρχο σύνολο σε δ-κανονικό γράφημα (στον κόμβο v) 1. Με πιθανότητα p = ln(δ+1) δ+1 μπες στο κυρίαρχο σύνολο. 2. Στείλε την απόφασή σου, joined ή not joined στους γείτονες. 3. if not joined and όλοι οι γείτονες επίσης αποφάσισαν not joined then 4. μπες στο κυρίαρχο σύνολο 5. endif 5
Καταρχάς παρατηρήστε ότι το πλήθος των βημάτων που εκτελεί κάθε κόμβος είναι σταθερό, επομένως η χρονική πολυπλοκότητα του αλγορίθμου είναι σταθερή (O(1)). Ποιο είναι όμως το μέγεθος του κυρίαρχου συνόλου που υπολογίζεται από τον αλγόριθμο; Επειδή χρησιμοποιείται τυχαιότητα, το μέγεθος του κυρίαρχου συνόλου είναι μια τυχαία μεταβλητή. Ας υπολογίσουμε την αναμενόμενη τιμή της, δηλαδή το αναμενόμενο πλήθος κόμβων που επιλέγουν να μπουν στο κυρίαρχο σύνολο: Ένας κόμβος μπορεί να μπει στο κυρίαρχο σύνολο είτε στο βήμα 1 είτε στο βήμα 5. Η πιθανότητα ένας κόμβος να μπει στο κυρίαρχο σύνολο στο βήμα 1 ισούται με p = ln(δ+1) δ+1. Η πιθανότητα ένας κόμβος να μπει στο κυρίαρχο σύνολο στο βήμα 5 ισούται με την πιθανότητα τόσο ο ίδιος όσο και όλοι οι γείτονές του να μην μπήκαν στο κυρίαρχο σύνολο στο βήμα 1. Η πιθανότητα αυτή ισούται με (1 p) δ+1. Για να φράξουμε την παραπάνω πιθανότητα, χρησιμοποιούμε την ανισότητα ( 1 x ) n e x x < n N. n Θέτουμε n = δ + 1 και x = ln(δ + 1) και προκύπτει ότι η πιθανότητα να μπει ένας κόμβος στο κυρίαρχο σύνολο στο βήμα 5 είναι το πολύ e ln(δ+1) = 1 δ + 1. Επομένως, η πιθανότητα ένας κόμβος να μπει στο κυρίαρχο σύνολο (σε οποιοδήποτε βήμα του αλγορίθμου) είναι το πολύ ln(δ + 1) + 1 δ + 1. Από τη γραμμικότητα της μέσης τιμής, προκύπτει ότι ο αναμενόμενος πλήθος κόμβων στο κυρίαρχο σύνολο ισούται με n ln(δ + 1) + 1 δ + 1. 6