Κατανεμημένα Συστήματα Ι

Σχετικά έγγραφα
Κατανεμημένα Συστήματα Ι

Ενδεικτικές Λύσεις 1ου Σετ Ασκήσεων

Εκλογή αρχηγού σε σύγχρονο δακτύλιο: Οι αλγόριθμοι LCR και HS. 1 Ο αλγόριθμος LCR (Le Lann, Chang, and Roberts)

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι

Κατανεμημένα Συστήματα Ι

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Κατανεμημένα Συστήματα Ι

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Μοντέλο Σύγχρονου ικτύου. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων

Διάλεξη 3: Αλγόριθμοι σε Γράφους ΙΙ. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατανεμημένα Συστήματα Ι

Κατανεµηµένα Συστήµατα Ένα κατανεµηµένο σύστηµα είναι µια συλλογή από αυτόνοµες διεργασίες οι οποίες έχουν τη δυνατότητα να επικοινωνούν µεταξύ τους.

Διάλεξη 4: Εκλογή Προέδρου σε Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Αναζήτηση Κατά Πλάτος

Κατανεμημένα Συστήματα Ι

Αναζήτηση Κατά Πλάτος

Διάλεξη 17: Συμφωνία με Βυζαντινά Σφάλματα. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Σύνοψη 3 ης ιάλεξης

Συνεκτικότητα Γραφήματος

έντρα ιδάσκοντες:. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Αναζήτηση Κατά Πλάτος

ιδάσκοντες: Φ. Αφράτη,. Φωτάκης,. Σούλιου Επιμέλεια διαφανειών:. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Θεωρία Γραφημάτων 6η Διάλεξη

Δυναμικός προγραμματισμός για δέντρα

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Υποστήριξη Φοιτητών

Επαγωγή και αναδρομή για άκυκλα συνεκτικά γραφήματα

Διάλεξη 5: Κάτω Φράγμα για Αλγόριθμους Εκλογής Προέδρου. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Αναζήτηση Κατά Πλάτος

Κατανεμημένα Συστήματα. Ενότητα # 2: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

ΣΥΝΕΚΤΙΚΟΤΗΤΑ ΓΡΑΦΗΜΑΤΩΝ

Σειρά Προβλημάτων 1 Λύσεις

ΕΠΛ 211: Θεωρία Υπολογισμού και Πολυπλοκότητας. Διάλεξη 2: Μαθηματικό Υπόβαθρο

Διάλεξη 6: Εκλογή Προέδρου σε Σύγχρονους Δακτύλιους. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Κατανεμημένα Συστήματα. Javascript LCR example

Αναζήτηση στους γράφους. - Αναζήτηση η κατά βάθος Συνεκτικές Συνιστώσες - Αλγόριθμος εύρεσης συνεκτικών συνιστωσών

Αλγόριθμοι και Πολυπλοκότητα

u v 4 w G 2 G 1 u v w x y z 4

Αλγόριθµοι Γραφηµάτων

Εκλογήαρχηγού. Εισαγωγή Ισχυρά συνδεδεµένος γράφος ακτύλιος µίας κατεύθυνσης Τοπολογία δένδρου. Κατανεµηµένα Συστήµατα 06-1

Προηγούµενο Μάθηµα. Κατανεµηµένα Συστήµατα Ι Μάθηµα Βασικής Επιλογής, Χειµερινού Εξαµήνου Τοµέας Εφαρµογών και Θεµελιώσεων. Υποστήριξη Φοιτητών

Θεωρία Γραφημάτων 5η Διάλεξη

Κινητά και Διάχυτα Συστήματα. Ενότητα # 8: Εκλογή αρχηγού Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Κατανεμημένα Συστήματα με Java. Ενότητα # 4: Αμοιβαίος αποκλεισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εντοπισμός τερματισμού. Κατανεμημένα Συστήματα 1

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Επαγωγή και αναδρομή για συνεκτικά γραφήματα

Σχεδίαση και Ανάλυση Αλγορίθμων

Ασκήσεις στους Γράφους. 2 ο Σετ Ασκήσεων. Δέντρα

ΟΙΚΟΝΟΜΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΛΓΟΡΙΘΜΩΝ ΒΟΗΘΟΣ: ΒΑΓΓΕΛΗΣ ΔΟΥΡΟΣ

Τομές Γραφήματος. Γράφημα (μη κατευθυνόμενο) Συνάρτηση βάρους ακμών. Τομή : Διαμέριση του συνόλου των κόμβων σε δύο μη κενά σύνολα

Λύσεις 4ης Σειράς Ασκήσεων

Περίληψη Φροντιστηρίου. Κατανεμημένα Συστήματα Ι. Το περιβάλλον DAP - Χαρακτηριστικά. Το περιβάλλον DAP Τι είναι.

Διάλεξη 1: Εισαγωγή στον Κατανεμημένο Υπολογισμό. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

3η Σειρά Γραπτών Ασκήσεων

Διαχρονικές δομές δεδομένων

Θέματα Υπολογισμού στον Πολιτισμό - Δένδρα. Δένδρα

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

Θεωρία Γραφημάτων 5η Διάλεξη

Θεωρία Γραφημάτων και Εφαρμογές - Διακριτά Μαθηματικά ΙΙ Φεβρουάριος 2017

Θεωρία Γραφημάτων: Ορολογία και Βασικές Έννοιες

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

Αναζήτηση Κατά Βάθος. Επιμέλεια διαφανειών: Δ. Φωτάκης Συμπληρώσεις: Α. Παγουρτζής. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Μορφές αποδείξεων Υπάρχουν πολλά είδη αποδείξεων. Εδώ θα δούμε τα πιο κοινά: Εξαντλητική μέθοδος ή μέθοδος επισκόπησης. Οταν το πρόβλημα έχει πεπερασμ

Μορφές αποδείξεων. Μαθηματικά Πληροφορικής 2ο Μάθημα. Μορφές αποδείξεων (συνέχεια) Εξαντλητική μέθοδος

Βασικές Έννοιες Θεωρίας Γραφημάτων

Τίτλος Μαθήματος: Θεωρία Γραφημάτων. Ενότητα: Συνεκτικότητα και Δισυνεκτικότητα. Διδάσκων: Λέκτορας Xάρης Παπαδόπουλος. Τμήμα: Μαθηματικών

Θεωρία Γραφημάτων και Εφαρμογές - Διακριτά Μαθηματικά ΙΙ Σεπτέμβριος 2017

Σχέσεις. Διμελής Σχέση. ΣτοΊδιοΣύνολο. Αναπαράσταση

Βασικές Έννοιες Θεωρίας Γραφημάτων

ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

Αναζήτηση Κατά Βάθος. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Διακριτά Μαθηματικά ΙΙ Χρήστος Νομικός Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πανεπιστήμιο Ιωαννίνων 2018 Χρήστος Νομικός ( Τμήμα Μηχανικών Η/Υ Διακριτά

Διάλεξη 4: Απόδειξη: Για την κατεύθυνση, παρατηρούμε ότι διαγράφοντας μια κορυφή δεν μπορούμε να διαχωρίσουμε τα u και v. Αποδεικνύουμε

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Θεωρία Υπολογισμού και Πολυπλοκότητα Κανονικές Γλώσσες (1)

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

Κεφάλαιο 11 Ένωση Ξένων Συνόλων

Το πρόβλημα μονοδρόμησης (The One-Way Street Problem)

ΠΛΗ 20, 4 η ΟΣΣ: Βασικές Έννοιες Θεωρίας Γραφημάτων

Outline 1 Άσκηση 1: Εφαρμογές BFS DFS 2 Άσκηση 2: Μια Συνάρτηση Κόστους σε Κατευθυνόμενα Γραφήματα 3 Άσκηση 3: Ανάλυση Ασφάλειας 4 Άσκηση 4: Το Σύνολο

Σχεδίαση & Ανάλυση Αλγορίθμων

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόγχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Μη κατευθυνόµενα γραφήµατα. Στοιχεία Θεωρίας Γραφηµάτων (1) Υπογραφήµατα.

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Διάλεξη 4: Θεωρία Γραφημάτων Γραφέας: Σ. Κ. Διδάσκων: Σταύρος Κολλιόπουλος συνεκτικά γραφήματα (συνέχεια) Πρόταση 4.1 Δύο μπλοκ ενός

Κατευθυνόμενα γραφήματα. Μαθηματικά Πληροφορικής 6ο Μάθημα. Βρόχοι. Μη κατευθυνόμενα γραφήματα. Ορισμός

Αλγόριθμοι και πολυπλοκότητα: 4 η σειρά ασκήσεων ΣΗΜΜΥ - Ε.Μ.Π.

Outline 1 Άσκηση 1 2 Άσκηση 2 3 Άσκηση 3 4 Άσκηση 4 5 Άσκηση 5 6 Προγραμματιστική Άσκηση 1 7 Προγραμματιστική Άσκηση 2 (CoReLab - NTUA) Αλγόριθμοι - 3

Συντομότερες Διαδρομές

E(G) 2(k 1) = 2k 3.

4η Γραπτή Ασκηση Αλγόριθμοι και Πολυπλοκότητα CoReLab ΣΗΜΜΥ 7 Φεβρουαρίου 2017 CoReLab (ΣΗΜΜΥ) 4η Γραπτή Ασκηση 7 Φεβρουαρίου / 38

2 ) d i = 2e 28, i=1. a b c

Αναζήτηση Κατά Βάθος. ιδάσκοντες: Σ. Ζάχος,. Φωτάκης Επιμέλεια διαφανειών:. Φωτάκης. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Transcript:

Κατανεμημένα Συστήματα Ι Εκλογή αρχηγού και κατασκευή BFS δένδρου σε σύγχρονο γενικό δίκτυο Παναγιώτα Παναγοπούλου

Περίληψη Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax Ο αλγόριθμος OptFloodMax Αναζήτηση πρώτα κατά πλάτος Ορισμός του προβλήματος Ο αλγόριθμος SynchBFS Παραλλαγές και εφαρμογές

Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax Ο αλγόριθμος OptFloodMax Αναζήτηση πρώτα κατά πλάτος Ορισμός του προβλήματος Ο αλγόριθμος SynchBFS Παραλλαγές και εφαρμογές

Μοντέλο Το κατευθυνόμενο γράφημα G = (V, E) είναι ισχυρά συνεκτικό, δηλαδή υπάρχει κατευθυνόμενο μονοπάτι ανάμεσα σε κάθε ζεύγος κόμβων Υποθέτουμε και πάλι ότι οι κόμβοι/διεργασίες έχουν δείκτες 1, 2,, n (αυθαίρετη ανάθεση στις διεργασίες) Οι διεργασίες δεν ξέρουν τους δείκτες (τους χρησιμοποιούμε εμείς για να αναφερόμαστε στις διεργασίες) Οι διεργασίες έχουν μοναδικές ταυτότητες (UIDs) Κάθε διεργασία γνωρίζει μόνο το δικό της UID

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

Εκλογή αρχηγού Οι διεργασίες έχουν UIDs από κάποιο ολικά διατεταγμένο σύνολο (πχ N + ) Το UID κάθε διεργασίας είναι διαφορετικό από των υπολοίπων Δεν υπάρχει περιορισμός στο ποια UIDs εμφανίζονται τελικά από το σύνολο Ακριβώς μία διεργασία ορίζει τελικά τον εαυτό της αρχηγό θέτοντας leader true Εκδοχές του προβλήματος: Μπορεί να απαιτείται και οι από τους μη-αρχηγούς να θέσουν leader false Το n και το diam μπορεί να είναι γνωστά ή άγνωστα στις διεργασίες (ή μπορεί απλά να γνωρίζουν άνω φράγματα σε αυτές τις ποσότητες)

Ο αλγόριθμος FloodMax Περιγραφή του αλγορίθμου Οι διεργασίες διατηρούν μια μεταβλητή leader (αρχηγός) η οποία αρχικά είναι false, και μια μεταβλητή max_uid (μέγιστη_ταυτότητα) με αρχική τιμή την ταυτότητα της διεργασίας Σε κάθε γύρο, οι διεργασίες εκπέμπουν το max_uid σε όλους τους γείτονες Μόλις λάβουν μία ταυτότητα απο κάποιον γείτονα, τη συγκρίνουν με τo max_uid Αν είναι μεγαλύτερη, θέτουν τη μεταβλητή στη νέα τιμή Μετά από diam γύρους, αν η μεταβλητή ισούται με την ταυτότητα της διεργασίας, η διεργασία μεταβαίνει στην κατάσταση εκλεγμένη θέτοντας τη μεταβλητή leader στην τιμή true

Ο αλγόριθμος FloodMax Χαρακτηριστικά του αλγορίθμου Οι διεργασίες δεν γνωρίζουν το πλήθος των διεργασιών n Οι διεργασίες γνωρίζουν τη διάμετρο του γραφήματος diam Ο αλγόριθμος βασίζεται σε απλές πράξεις σύγκρισης ταυτοτήτων Ο αλγόριθμος πλημμυρίζει (floods) το δίκτυο με το μέγιστο UID

Ο αλγόριθμος FloodMax Ψευδοκώδικας (1/2) Το αλφάβητο μηνυμάτων M είναι το σύνολο των UIDs states i αποτελείται από: u, ένα UID, αρχικά το UID της i max_uid, ένα UID, αρχικά το UID της i leader {unknown, true, false}, αρχικά unknown rounds, ένας ακέραιος, αρχικά 0 msgs i : if rounds < diam then στείλε max_uid σε κάθε j out_nbrs

Ο αλγόριθμος FloodMax Ψευδοκώδικας (2/2) trans i : rounds rounds + 1 Έστω U το σύνολο των UIDs που έλαβες από in_nbrs max_uid max({max_uid} U) if rounds = diam then if max_uid = u then leader true else leader false

Παράδειγμα εκτέλεσης του αλγορίθμου FloodMax Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Γενικό δίκτυο, diam = 3 Οι διεργασίες είναι αριθμημένες από 1 έως 8

Παράδειγμα εκτέλεσης του αλγορίθμου FloodMax Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Γενικό δίκτυο, diam = 3 Οι διεργασίες είναι αριθμημένες από 1 έως 8 Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών

Παράδειγμα εκτέλεσης του αλγορίθμου FloodMax Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Γενικό δίκτυο, diam = 3 Οι διεργασίες είναι αριθμημένες από 1 έως 8 Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος (αποστολή μηνυμάτων)

Παράδειγμα εκτέλεσης του αλγορίθμου FloodMax Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Γενικό δίκτυο, diam = 3 Οι διεργασίες είναι αριθμημένες από 1 έως 8 Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος (αποστολή μηνυμάτων) Δεύτερος γύρος

Παράδειγμα εκτέλεσης του αλγορίθμου FloodMax Έστω ένα σύγχρονο κατανεμημένο σύστημα από n = 8 διεργασίες Γενικό δίκτυο, diam = 3 Οι διεργασίες είναι αριθμημένες από 1 έως 8 Οι διεργασίες έχουν μοναδικές ταυτότητες Δεν γνωρίζουν την ταυτότητα των υπόλοιπων διεργασιών Πρώτος γύρος (αποστολή μηνυμάτων) Δεύτερος γύρος Εκλογή αρχηγού (διεργασία 2)

Ανάλυση του αλγορίθμου FloodMax Έστω n διεργασίες και m = E κανάλια, όπου η διεργασία με τη μεγαλύτερη ταυτότητα είναι η i max Η διεργασία i max εκλέγεται αρχηγός στο τέλος του γύρου diam Καμμία διεργασία εκτός της i max δεν είναι σε κατάσταση εκλεγμένη Η χρονική πολυπλοκότητα είναι O(diam(G)) Η πολυπλοκότητα επικοινωνίας είναι O(diam(G) m)

Απόδειξη ορθότητας του FloodMax (1/3) Θεώρημα Στον αλγόριθμο FloodMax, η διεργασία i max θέτει leader true και κάθε άλλη διεργασία θέτει leader false σε diam γύρους Απόδειξη Αρκεί να δό στο γύρο r = diam κάθε j V έχει ήδη θέσει ή θέτει max_uid u max Αν ισχύει αυτό, τότε η i max βλέπει max_uid = u max και θέτει leader true, ενώ κάθε j V, j i max βλέπει max_uid = u max > u και θέτει leader false

Απόδειξη ορθότητας του FloodMax (2/3) Απόδειξη (συνέχεια) Αρκεί να δό στο γύρο r = diam κάθε j V έχει ήδη θέσει ή θέτει max_uid u max Παρατηρούμε ότι j V ισχύει ότι dist(i max, j) diam Δηλ μονοπάτι από την i max στην j μήκους x diam i max 1 2 3 4 5 x

Απόδειξη ορθότητας του FloodMax (3/3) Απόδειξη (συνέχεια) i max 1 2 3 4 5 x Αρκεί να δό στο γύρο x, η διεργασία σε απόσταση x από την i max παραλαμβάνει u max Με επαγωγή στον αριθμό των γύρων (βάση) Αρχικά η i max έχει max_uid = u max Άρα στο γύρο 1 η i max στέλνει u max και η 1 το παραλαμβάνει υπόθεση) Έστω ότι στο γύρο r η διεργασία r παραλαμβάνει u max (βήμα) Επειδή u max > u i, i V, i i max, η r θέτει max-uid u max, άρα στο γύρο r + 1 στέλνει u max και η r + 1 παραλαμβάνει στο γύρο r + 1 j V, j i max, στο γύρο dist(i max, j) diam, η j παραλαμβάνει u max και θέτει max_uid u max

Ανάλυση πολυπλοκότητας του FloodMax Χρονική Πολυπλοκότητα

Ανάλυση πολυπλοκότητας του FloodMax Χρονική Πολυπλοκότητα Στο γύρο diam όλοι παίρνουν μια απόφαση, άρα η χρονική πολυπλοκότητα είναι diam γύροι Πολυπλοκότητα Επικοινωνίας

Ανάλυση πολυπλοκότητας του FloodMax Χρονική Πολυπλοκότητα Στο γύρο diam όλοι παίρνουν μια απόφαση, άρα η χρονική πολυπλοκότητα είναι diam γύροι Πολυπλοκότητα Επικοινωνίας Σε κάθε γύρο, κάθε διεργασία στέλνει το max_uid σε όλες τις εξερχόμενες ακμές της Επειδή κάθε e E είναι εξερχόμενη ακριβώς μίας κορυφής, σε κάθε γύρο στέλνεται ακριβώς ένα μήνυμα από την e, άρα E μηνύματα σε κάθε γύρο Αφού ο αριθμός των γύρων είναι diam, συνολικά στέλνονται diam E μηνύματα

Ανάλυση πολυπλοκότητας του FloodMax Χρονική Πολυπλοκότητα Στο γύρο diam όλοι παίρνουν μια απόφαση, άρα η χρονική πολυπλοκότητα είναι diam γύροι Πολυπλοκότητα Επικοινωνίας Σε κάθε γύρο, κάθε διεργασία στέλνει το max_uid σε όλες τις εξερχόμενες ακμές της Επειδή κάθε e E είναι εξερχόμενη ακριβώς μίας κορυφής, σε κάθε γύρο στέλνεται ακριβώς ένα μήνυμα από την e, άρα E μηνύματα σε κάθε γύρο Αφού ο αριθμός των γύρων είναι diam, συνολικά στέλνονται diam E μηνύματα Σημείωση: Ο αλγόριθμος δουλεύει ακόμα και αν οι διεργασίες γνωρίζουν ένα άνω φράγμα d στη διάμετρο (δηλ d diam) Η πολυπλοκότητα τότε εξαρτάται από το d (στη θέση του diam)

Βελτίωση πολυπλοκότητας επικοινωνίας Ιδέα: Οι διεργασίες στέλνουν τις max_uid τιμές τους μόνο όταν τις μαθαίνουν για πρώτη φορά (όχι σε κάθε γύρο) Το u max προωθείται σαν κύμμα προς όλες τις διεργασίες Βελτιώνει στην πράξη αλλά όχι στη χειρότερη περίπτωση (Αλγόριθμος OptFloodMax)

Αλγόριθμος OptFoodMax Ψευδοκώδικας (1/2) Το M είναι το σύνολο των UIDs states i αποτελείται από: u, ένα UID, αρχικά το UID της i max_uid, ένα UID, αρχικά το UID της i leader {unknown, true, false}, αρχικά unknown rounds, ακέραιος, αρχικά 0 new_info, boolean, αρχικά true msgs i : if rounds < diam and new_info =true then στείλε max_uid σε κάθε j out_nbrs

Αλγόριθμος OptFoodMax Ψευδοκώδικας (2/2) trans i : rounds rounds + 1 Έστω U το σύνολο των UIDs που έλαβες από in_nbrs if max(u) > max_uid then new_info true max_uid max(u) else new_info false if rounds = diam then if max_uid = u then leader true else leader false

Απόδειξη ορθότητας του OptFloodMax (1/2) Θεώρημα Στον αλγόριθμο OptFloodMax η διεργασία i max θέτει leader true και κάθε άλλη διεργασία θέτει leader false σε diam γύρους Απόδειξη Θα αποδείξουμε την ορθότητα του OptFloodMax δείχνοντας ότι όταν ξεκινάει από την ίδια ανάθεση UIDs και το ίδιο δίκτυο με τον FloodMax, προσομοιώνει τη συμπεριφορά του Θα αποδείξουμε μια σχέση προσομοίωσης που περιλαμβάνει τις καταστάσεις και των δύο αλγορίθμων μετά τον ίδιο αριθμό γύρων

Απόδειξη ορθότητας του OptFloodMax (2/4) Θα δό r, 0 r diam, μετά από r γύρους οι τιμές των u, max-uid, leader, και rounds μεταβλητών είναι ίδιες στις καταστάσεις και των δύο αλγορίθμων Για τα u, rounds, και leader, ισχύει τετριμμένα για κάθε r < diam

Απόδειξη ορθότητας του OptFloodMax (3/4) Απόδειξη (συνέχεια) Απομένει να δό μετά από κάθε γύρο r, max_uid i = max_uid i, όπου με αναφερόμαστε στον OptFloodMax Αυτό θα συνεπάγεται και leader i = leader i μετά το γύρο diam, δηλαδή ότι και οι δύο αλγόριθμοι παίρνουν τελικά την ίδια απόφαση σε όλες τις διεργασίες

Απόδειξη ορθότητας του OptFloodMax (4/4) Θα δείξουμε ότι μετά από κάθε γύρο r, max_uid i = max_uid i, όπου με αναφερόμαστε στον OptFloodMax Απόδειξη με επαγωγή στον αριθμό των γύρων r: Αν στο γύρο r ισχύει max_uid i = max_uid i, τότε δό ισχύει και στον r + 1 (ισχύει τετριμμένα για r = 0) Η μόνη ενδιαφέρουσα περίπτωση είναι όταν η i δεν στέλνει στον OptFoodMax ενώ στέλνει στον FloodMax Όμως εύκολα μπορούμε να δείξουμε ότι σε αυτή την περίπτωση καμμία διεργασία δεν μπορεί να μη γνωρίζει το max_uid i Άρα η αποστολή του max_uid i από τον FloodMax είναι περιττή

Σημειώσεις για μέθοδο προσομοίωσης Η μέθοδος της προσομοίωσης είναι πολύ χρήσιμη στην απόδειξη της ορθότητας βελτιστοποιημένων εκδοχών κατανεμημένων αλγορίθμων Πρώτα αποδεικνύεται ορθή μία απλή εκδοχή Έπειτα μία πιο αποδοτική αλλά πιο σύνθετη εκδοχή επαληθεύεται αποδεικνύοντας μία τυπική σχέση μεταξύ αυτής και του απλού αλγορίθμου Στους σύγχρονους αλγορίθμους γίνεται γενικά μέσω των καταστάσεων και των δύο αλγορίθμων μετά από τον ίδιο αριθμό γύρων

Παρατηρήσεις Μπορούμε να μειώσουμε λίγο ακόμα το πλήθος των μηνυμάτων του FloodMax: Αν μια διεργασία i λάβει νέο μέγιστο από τη διεργασία j που είναι και εισερχόμενος και εξερχόμενος γείτονάς της, τότε η i δεν χρειάζεται να στείλει μήνυμα στη j στον επόμενο γύρο Ο FloodMax μπορεί να θεωρηθεί γενίκευση του LCR, όμως ο LCR δεν χρειάζεται να ξέρει τη διάμετρο, στον LCR ο αρχηγός εκλέγεται όταν μια διεργασία λάβει μήνυμα με το δικό της UID και όχι μετά από ένα συγκεκριμένο αριθμό γύρων όπως στον FloodMax

Αντιπαράδειγμα για τον OptFloodMax (1/3) Παρουσιάζουμε ένα δίκτυο και μία ανάθεση UIDs στις διεργασίες του, στα οποία ο αλγόριθμος στέλνει Θ(n 3 ) μηνύματα Η πολυπλοκότητα επικοινωνίας του FloodMax είναι diam E = O(n 3 ) Άρα θα έχουμε δείξει ότι ο OptFloodMax δεν βελτιώνει τον FloodMax στη χειρότερη περίπτωση

Αντιπαράδειγμα για τον OptFloodMax n n 1 n 2 n 3 3 2 1 UIDs i, 2 i n, (i, i 1) E (η κατευθυνόμενη γραμμή προς τα δεξιά), u i = i i, j, 1 i < j n, (i, j) E (όλες οι αντίστροφες ακμές - προσοχή, δεν είναι όλες ζωγραφισμένες στην εικόνα) diam = n 1, γιατί dist(n, 1) = n 1 Η διεργασία 1 έχει n 1 εξερχόμενες ακμές και i > 1, η διεργασία i έχει n i + 1 εξερχόμενες ακμές Οι αντίστροφες ακμές δεν συνεισφέρουν νέα γνώση αφού πάντα στέλνουν μικρότερο id σε διεργασία που ξέρει μεγαλύτερο id

Αντιπαράδειγμα για τον OptFloodMax (2/3) n n 1 n 2 n 3 3 2 1 n n 1 n 2 4 3 2 n n 1 5 4 3 n 6 5 4 n n n 1 1 2 3 n 2 n 1 n 1 # transmissions 4

Αντιπαράδειγμα για τον OptFloodMax (3/3) Αριθμός μηνυμάτων: n #messages = (n 1) 2 + (n i + 1) 2 i=2 [ n ] = (n i + 1) 2 2n + 1 i=1 [ n ] = i 2 2n + 1 i=1 = n3 3 + n2 2 + n 6 2n + 1 = Θ(n 3 )

Εκλογή αρχηγού σε γενικά δίκτυα Ορισμός του προβλήματος Ο αλγόριθμος FloodMax Ο αλγόριθμος OptFloodMax Αναζήτηση πρώτα κατά πλάτος Ορισμός του προβλήματος Ο αλγόριθμος SynchBFS Παραλλαγές και εφαρμογές

Ορισμοί Ένα κατευθυνόμενο επικαλυπτικό δέντρο ενός κατευθυνόμενου γραφήματος G = (V, E) είναι ένα δέντρο με ρίζα που αποτελείται απκλειστικά από κατευθυνόμενες ακμές του E, με όλες τις ακμές να έχουν κατεύθυνση από τους γονείς στα παιδιά τους, και που περιέχει κάθε κορυφή του G Ένα κατευθυνόμενο επικαλυπτικό δέντρο του G με ρίζα τον κόμβο i 0 είναι πρώτα κατά πλάτος αν κάθε κόμβος σε απόσταση d από τον i 0 στο G εμφανίζεται σε βάθος d στο δένδρο Κάθε ισχυρά συνεκτικό κατευθυνόμενο γράφημα έχει ένα πρώτα κατά πλάτος κατευθυνόμενο επικαλυπτικό δένδρο

Αναζήτηση πρώτα κατά πλάτος Σε ένα σύγχρονο δίκτυο G, η αναζήτηση πρώτα κατά πλάτος (breadth-first search, BFS) απαιτεί την κατασκευή ενός επικαλυπτικού δέντρου T(G), με ρίζα μια διεργασία i 0, όπου οι κορυφές που είναι σε απόσταση d από την i 0 στο G βρίσκονται στο επίπεδο d του δέντρου T(G) Υποθέτουμε πλήρως συνεκτικό γράφημα Ο αλγόριθμος πρέπει να δίνει ως έξοδο τη δομή ενός πρώτα κατά πλάτος κατευθυνόμενου επικαλυπτικού δένδρου Η έξοδος πρέπει να δίνεται κατανεμημένα: κάθε διεργασία πρέπει να ορίζει το γονέα της

Ο αλγόριθμος SynchBFS Οι διεργασίες διατηρούν μια μεταβλητή μαρκαρισμένη η οποία αρχικά είναι false και μια μεταβλητή γονέας με αρχική τιμή 0

Ο αλγόριθμος SynchBFS Οι διεργασίες διατηρούν μια μεταβλητή μαρκαρισμένη η οποία αρχικά είναι false και μια μεταβλητή γονέας με αρχική τιμή 0 Αρχικά, η διεργασία u 0 θέτει τη μεταβλητή μαρκαρισμένη ως true, τη γονέας ίση με την ταυτότητα της, και στέλνει ένα μήνυμα αναζήτησης σε όλους τους γείτονες της

Ο αλγόριθμος SynchBFS Οι διεργασίες διατηρούν μια μεταβλητή μαρκαρισμένη η οποία αρχικά είναι false και μια μεταβλητή γονέας με αρχική τιμή 0 Αρχικά, η διεργασία u 0 θέτει τη μεταβλητή μαρκαρισμένη ως true, τη γονέας ίση με την ταυτότητα της, και στέλνει ένα μήνυμα αναζήτησης σε όλους τους γείτονες της Σε κάθε γύρο, εάν μια διεργασία λάβει ένα μήνυμα αναζήτησης και η τιμή της μεταβλητής μαρκαρισμένη είναι false, τότε θέτει τη μεταβλητή σε true, θέτει τη γονέας ίση με την ταυτότητα της διεργασίας από όπου έλαβε το μήνυμα, και στον επόμενο γύρο στέλνει ένα μήνυμα αναζήτησης σε όλους τους γείτονες της

Ο αλγόριθμος SynchBFS Οι διεργασίες διατηρούν μια μεταβλητή μαρκαρισμένη η οποία αρχικά είναι false και μια μεταβλητή γονέας με αρχική τιμή 0 Αρχικά, η διεργασία u 0 θέτει τη μεταβλητή μαρκαρισμένη ως true, τη γονέας ίση με την ταυτότητα της, και στέλνει ένα μήνυμα αναζήτησης σε όλους τους γείτονες της Σε κάθε γύρο, εάν μια διεργασία λάβει ένα μήνυμα αναζήτησης και η τιμή της μεταβλητής μαρκαρισμένη είναι false, τότε θέτει τη μεταβλητή σε true, θέτει τη γονέας ίση με την ταυτότητα της διεργασίας από όπου έλαβε το μήνυμα, και στον επόμενο γύρο στέλνει ένα μήνυμα αναζήτησης σε όλους τους γείτονες της Υποθέσεις: Οι διεργασίες δεν γνωρίζουν το πλήθος των διεργασιών n Οι διεργασίες έχουν μοναδικές ταυτότητες

Παράδειγμα εκτέλεσης του αλγορίθμου SynchBFS Αρχικό δίκτυο Το δίκτυο έχει 9 κόμβους, 14 ακμές Η διεργασία 1 ξεκινά την εκτέλεση του αλγορίθμου Η διεργασία 1 θεωρείται μαρκαρισμένη Όλες οι άλλες διεργασίες δεν είναι μαρκαρισμένες Αρχικό δίκτυο 1 5 2 6 3 7 9 4 8 1

Παράδειγμα εκτέλεσης του αλγορίθμου SynchBFS 1ος γύρος 1ο βήμα Η διεργασία 1 στέλνει μήνυμα αναζήτησης σε όλους του γείτονες της 1ος γύρος 1ο βήμα 1 5 2 6 3 7 9 4 8 1 s s

Παράδειγμα εκτέλεσης του αλγορίθμου SynchBFS 1ος γύρος 1ο βήμα Η διεργασία 1 στέλνει μήνυμα αναζήτησης σε όλους του γείτονες της 1ος γύρος 2ο βήμα Οι διεργασίες 2, 5 μαρκάρονται Οι διεργασίες 2, 5 θέτουν την 1 ως γονέα στο δέντρο 1ος γύρος 2ο βήμα 1 5 2 6 3 7 9 4 8 1 1 1

Παράδειγμα εκτέλεσης του αλγορίθμου SynchBFS 2ος γύρος 1ο βήμα Οι διεργασίες 2, 5 στέλνουν μήνυμα αναζήτησης σε όλους τους γείτονες τους 2ος γύρος 1ο βήμα 1 5 2 6 3 7 9 4 8 1 1 1 s s s s s s s s

Παράδειγμα εκτέλεσης του αλγορίθμου SynchBFS 2ος γύρος 1ο βήμα Οι διεργασίες 2, 5 στέλνουν μήνυμα αναζήτησης σε όλους τους γείτονες τους 3 2ος γύρος 2ο βήμα 5 2ος γύρος 2ο βήμα Η διεργασία 1 αγνοεί τα μηνύματα αναζήτησης που έλαβε Οι διεργασίες 3, 4, 7, 8, 9 μαρκάρονται Οι διεργασίες 3, 8 θέτουν την 5 ως γονέα στο δέντρο 5 1 8 5 9 2 6 4 2 Οι διεργασίες 4, 7 θέτουν την 2 ως γονέα στο δέντρο 1 1 1 2 7 2 Η διεργασία 9 διαλέγει τυχαία την 2 ως γονέα στο δέντρο

Παράδειγμα εκτέλεσης του αλγορίθμου SynchBFS 3ος γύρος 1ο βήμα Οι διεργασίες 3, 4, 7, 8, 9 στέλνουν μήνυμα αναζήτησης σε όλους τους γείτονες τους 3ος γύρος 1ο βήμα 1 5 2 6 3 7 9 4 8 1 1 5 2 1 2 5 2 s s s s s s s s s s s s s s s s

Παράδειγμα εκτέλεσης του αλγορίθμου SynchBFS 3ος γύρος 1ο βήμα Οι διεργασίες 3, 4, 7, 8, 9 στέλνουν μήνυμα αναζήτησης σε όλους τους γείτονες τους 3ος γύρος 2ο βήμα Οι διεργασίες 2, 3, 4, 5, 7, 8, 9 αγνοούν τα μηνύματα αναζήτησης που έλαβαν Η διεργασία 6 μαρκάρεται Η διεργασία 6 διαλέγει τυχαία την 8 ως γονέα στο δέντρο 3ος γύρος 2ο βήμα 1 5 2 6 3 7 9 4 8 1 1 5 2 1 8 2 5 2

Παράδειγμα εκτέλεσης του αλγορίθμου SynchBFS 4ος γύρος 1ο βήμα Η διεργασία 6 στέλνει μήνυμα αναζήτησης σε όλους του γείτονες της 4ος γύρος 1ο βήμα 1 5 2 6 3 7 9 4 8 1 1 5 2 1 8 2 5 2 s s

Παράδειγμα εκτέλεσης του αλγορίθμου SynchBFS 4ος γύρος 1ο βήμα Η διεργασία 6 στέλνει μήνυμα αναζήτησης σε όλους του γείτονες της 4ος γύρος 2ο βήμα Οι διεργασίες 4, 8 αγνοούν τα μηνύματα αναζήτησης που έλαβαν 4ος γύρος 2ο βήμα 1 5 2 6 3 7 9 4 8 1 1 5 2 1 8 2 5 2

Παράδειγμα εκτέλεσης του αλγορίθμου SynchBFS Τελικό δίκτυο Το δέντρο αναζήτησης κατά εύρος έχει κατασκευαστεί Ο αλγόριθμος εκτελέστηκε σε 4 γύρους Συνολικά μεταδόθηκαν 28 μηνύματα Τελικό δίκτυο 1 5 2 6 3 7 9 4 8 1 1 5 2 1 8 2 5 2

Χαρακτηριστικά του αλγορίθμου SynchBFS Ο αλγόριθμος SynchBFS κατασκευάζει ένα δέντρο αναζήτησης πρώτα κατά πλάτος Η δομή του δέντρου δεν είναι αποθηκευμένη σε κάποια κεντρική διεργασία Η χρονική πολυπλοκότητα είναι το πολύ diam γύροι Στην πραγματικότητα είναι η μέγιστη απόσταση από τη u0 Στο παράδειγμα, η διάμετρος είναι 4, αλλά η μέγιστη απόσταση από τη u 0 είναι 3 Η πολυπλοκότητα επικοινωνίας είναι m

Βελτίωση της πολυπλοκότητας επικοινωνίας Μπορούμε να μειώσουμε τον αριθμό των μηνυμάτων που χρησιμοποιεί ο αλγόριθμος ως εξής: Οι διεργασίες μπορούν να αναγνωρίσουν το κανάλι από το οποίο έλαβαν ένα μήνυμα Οι διεργασίες δεν στέλνουν μηνύματα αναζήτησης στα κανάλια από τα οποία έλαβαν ένα μήνυμα αναζήτησης Στο παράδειγμα εκτέλεσης του SynchBFS τα συνολικά μηνύματα μειώνονται κατά 10

Διάδοση (broadcast) μηνύματος Μπορούμε να χρησιμοποιήσουμε τον αλγόριθμο για τη μετάδοση ενός μηνύματος σε όλο το δίκτυο Η διεργασία u 0 θέλει να στείλει το μήνυμα M σε όλες τις διεργασίες του δικτύου Η διεργασία u 0 ξεκινάει την κατασκευή του δέντρου στέλνοντας το μήνυμα αναζήτησης το οποίο περιέχει και το μήνυμα M Οι άλλες διεργασίες επισυνάπτουν και αυτές με τη σειρά τους το μήνυμα M στα μηνύματα αναζήτησης που στέλνουν Εφόσον το δέντρο περιέχει όλες τις διεργασίες, το μήνυμα M τελικά παραλαμβάνεται από όλες τις διεργασίες του δικτύου

Πλήρης γνώση (1/2) Είναι απαραίτητο κάθε διεργασία να γνωρίζει και τα παιδιά της Τροποποιούμε τον αλγόριθμο SynchBFS ως εξής: Κάθε διεργασία που λαμβάνει ένα μήνυμα αναζήτησης επιστρέφει στον αποστολέα ένα μήνυμα γονέας ή μη-γονέας ανάλογα του αν ο αποστολέας είναι ο γονέας της διεργασίας Χαρακτηριστικά: Κατά την ολοκλήρωση της εκτέλεσης του SynchBFS, όλες οι διεργασίες γνωρίζουν τα παιδιά τους Η χρονική πολυπλοκότητα και η πολυπλοκότητα μηνυμάτων παραμένουν ίδιες (στη χειρότερη περίπτωση)

Πλήρης γνώση (2/2) Μπορούμε να μειώσουμε τον αριθμό των μηνυμάτων που χρησιμοποιεί ο αλγόριθμος Τροποποιούμε τον αλγόριθμο SynchBFS ως εξής: Κάθε διεργασία που λαμβάνει μήνυμα αναζήτησης απαντά στον αποστολέα με ένα μήνυμα γονέας εφόσον ο αποστολέας είναι ο γονέας της διεργασίας Εάν η διεργασία που έστειλε το μήνυμα αναζήτησης σε μία γειτονική διεργασία, δεν λάβει μήνυμα γονέας στον επόμενο γύρο, θεωρεί ότι δεν επιλέχτηκε ως γονέας της γειτονικής διεργασίας Ο αλγόριθμος SynchBFS χρησιμοποιεί m + n 1 μηνύματα

Τερματισμός (1/3) Πώς μπορεί η διεργασία u 0 να μάθει πότε ολοκληρώθηκε η κατασκευή του δέντρου; Δεν είναι γνωστή η διάμετρος του δικτύου και το πλήθος των διεργασιών n Βασιζόμαστε την παραλλαγή SynchBFS όπου οι διεργασίες απαντάνε στον αποστολέα ενός μηνύματος αναζήτησης με ένα μήνυμα γονέας ή μη-γονέας ανάλογα του αν ο αποστολέας είναι ο γονέας της διεργασίας

Τερματισμός (2/3) Επεκτείνουμε τον SynchBFS ως εξής: Εφόσον κάθε μήνυμα αναζήτησης απαντηθεί, κάθε κόμβος ξέρει τα παιδιά του και ότι είναι όλα μαρκαρισμένα Ξεκινώντας από τα φύλα, προωθούμε μήνυμα τερματισμού προς τη ρίζα του δένδρου

Τερματισμός (3/3) Επομένως τα μηνύματα γονέας ή μη-γονέας έχουν δύο χρήσεις: 1 Παροχή πλήρους γνώσης κάθε διεργασία γνωρίζει και τα παιδιά της 2 Ενημέρωση τερματισμού κάθε διεργασία γνωρίζει πότε τα υποδέντρα των παιδιών της έχουν κατασκευαστεί Ο αλγόριθμος SynchBFS τ απαιτεί O(diam(G)) γύρους και χρησιμοποιεί O(m) μηνύματα

Εφαρμογές του αλγορίθμου SynchBFS Διάδοση μηνυμάτων (broadcast) Συλλογή πληροφορίας και υπολογισμοί με κατανεμημένη είσοδο Εκλογή αρχηγού Υπολογισμός της διαμέτρου

Παράδειγμα (1/2) Έλεγχος χώρου στάθμευσης αυτοκινήτων Για λόγους αυτόματου ελέγχου, η εταιρεία τοποθετεί ένα πλήθος από μονάδες εφοδιασμένες με αισθητήρες έτσι ώστε να καλύπτουν όλο το χώρο στάθμευσης Οι μονάδες συνδέονται μέσω ενός ασύρματου δικτύου Το σύστημα υπολογίζει αυτόματα το σύνολο των σταθμευμένων αυτοκινήτων Οι μονάδες έχουν ξεχωριστή διεύθυνση στο δίκτυο Ο χειριστής του συστήματος χρησιμοποιεί έναν τερματικό σταθμό που είναι συνδεδεμένος στο ασύρματο δίκτυο

Παράδειγμα (2/2) Ο τερματικός σταθμός δημιουργεί ένα δέντρο αναζήτησης πρώτα κατά πλάτος Κάθε μονάδα μετράει το πλήθος των αυτοκινήτων που βλέπει και το στέλνει στο γονέα της στο δέντρο Ο γονέας συγκεντρώνει τις τιμές που έλαβε από τα παιδιά της στο δέντρο, τις προσθέτει με τη δικιά της και στέλνει το σύνολο στο δικό της γονέα Το άθροισμα που υπολογίζει η ρίζα του δέντρου είναι το πλήθος των σταθμευμένων αυτοκινήτων