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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

q(g \ S ) = q(g \ S) S + d = S.

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

X i, i I Y j, j J. X i. Z j P = (J, B) G T = (I, J) 1 2 i i + 1 n. 1 i V

Graph Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Καούρη Γεωργία Μήτσου Βάλια

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

Fast broadcasting and gossiping in radio networks. Chrobak, Gasieniec, Rytter 2002.

z 1 E(G) 2(k 1) = 2k 3. x z 2 H 1 H 2

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

Transcript:

Εκλογή αρχηγού σε γενικά δίκτυα 20 Οκτωβρίου 2016 Παναγιώτα Παναγοπούλου

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

Περίληψη 1 Εκλογή αρχηγού σε γενικά δίκτυα 2 Παραλλαγές και εφαρμογές

1 Εκλογή αρχηγού σε γενικά δίκτυα 2 Παραλλαγές και εφαρμογές

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

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

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

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

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

Ψευδοκώδικας (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

Ψευδοκώδικας (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 1 n 1 2 3 4 n 2 n 1 n 1 # transmissions

Αντιπαράδειγμα για τον 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 )

Παραλλαγές και εφαρμογές 1 Εκλογή αρχηγού σε γενικά δίκτυα 2 Παραλλαγές και εφαρμογές

Ορισμοί Εκλογή αρχηγού σε γενικά δίκτυα Παραλλαγές και εφαρμογές Ένα κατευθυνόμενο επικαλυπτικό δέντρο ενός κατευθυνόμενου γραφήματος 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) Υποθέτουμε πλήρως συνεκτικό γράφημα Ο αλγόριθμος πρέπει να δίνει ως έξοδο τη δομή ενός πρώτα κατά πλάτος κατευθυνόμενου επικαλυπτικού δένδρου Η έξοδος πρέπει να δίνεται κατανεμημένα: κάθε διεργασία πρέπει να ορίζει το γονέα της

Εκλογή αρχηγού σε γενικά δίκτυα Παραλλαγές και εφαρμογές Οι διεργασίες διατηρούν μια μεταβλητή μαρκαρισμένη η οποία αρχικά είναι false και μια μεταβλητή γονέας με αρχική τιμή 0

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εκλογή αρχηγού σε γενικά δίκτυα Βιβλιογραφία Σημειώσεις του μαθήματος Βιβλίο Distributed Algorithms (NLynch) Κεφάλαιο 4: Algorithms in General Synchronous Networks